windows-nt/Source/XPSP1/NT/ds/security/protocols/msv_sspi/trace.h
2020-09-26 16:20:57 +08:00

200 lines
4.5 KiB
C

#ifndef _TRACE_H
#define _TRACE_H
/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
trace.h
Abstract:
Include file to contain variables required for event tracing
for NTLM
Author:
15-June-2000 Jason Clark
Revision History:
--*/
//
//
//
#include <nt.h>
#include <ntrtl.h>
#include <nturtl.h>
#include <windows.h>
#include <wtypes.h>
#ifdef __cplusplus
extern "C"
{
#endif // __cplusplus
#include <wmistr.h>
#include <evntrace.h>
#ifdef __cplusplus
}
#endif // __cplusplus
EXTERN_C BOOL NtlmGlobalEventTraceFlag;
EXTERN_C TRACEHANDLE NtlmGlobalTraceRegistrationHandle;
EXTERN_C TRACEHANDLE NtlmGlobalTraceLoggerHandle;
EXTERN_C
ULONG
NtlmInitializeTrace();
// Helper macros for populating the trace
#define SET_TRACE_DATA(TraceVar, MofNum, Data) \
{ \
TraceVar.eventInfo[MofNum].DataPtr = (ULONGLONG) &Data; \
TraceVar.eventInfo[MofNum].Length = sizeof(Data); \
}
#define SET_TRACE_DATAPTR(TraceVar, MofNum, Data) \
{ \
TraceVar.eventInfo[MofNum].DataPtr = (ULONGLONG) Data; \
TraceVar.eventInfo[MofNum].Length = sizeof(*Data); \
}
#define SET_TRACE_USTRING(TraceVar, MofNum, UString) \
{ \
TraceVar.eventInfo[MofNum].DataPtr = (ULONGLONG) &UString.Length; \
TraceVar.eventInfo[MofNum].Length = sizeof(UString.Length) ; \
TraceVar.eventInfo[MofNum+1].DataPtr = (ULONGLONG) UString.Buffer; \
TraceVar.eventInfo[MofNum+1].Length = UString.Length ; \
}
#define SET_TRACE_HEADER(TraceVar, TheGuid, TheType, TheFlags, NumMofs) \
{ \
TraceVar.EventTrace.Guid = TheGuid; \
TraceVar.EventTrace.Class.Type = TheType; \
TraceVar.EventTrace.Flags = TheFlags; \
TraceVar.EventTrace.Size = sizeof(EVENT_TRACE_HEADER)+ \
sizeof(MOF_FIELD) * NumMofs ; \
}
// Helper defines for populating the Init/Accept trace
#define TRACE_INITACC_STAGEHINT 0
#define TRACE_INITACC_INCONTEXT 1
#define TRACE_INITACC_OUTCONTEXT 2
#define TRACE_INITACC_STATUS 3
#define TRACE_INITACC_CLIENTNAME 4
#define TRACE_INITACC_CLIENTDOMAIN 6
#define TRACE_INITACC_WORKSTATION 8
// Helper defines for populating the Logon trace
#define TRACE_LOGON_STATUS 0
#define TRACE_LOGON_TYPE 1
#define TRACE_LOGON_USERNAME 2
#define TRACE_LOGON_DOMAINNAME 4
// Helper defines for populating the Validate trace
#define TRACE_VALIDATE_SUCCESS 0
#define TRACE_VALIDATE_SERVER 1
#define TRACE_VALIDATE_DOMAIN 3
#define TRACE_VALIDATE_USERNAME 5
#define TRACE_VALIDATE_WORKSTATION 7
// Helper defines for populating the Passthrough trace
#define TRACE_PASSTHROUGH_DOMAIN 0
#define TRACE_PASSTHROUGH_PACKAGE 2
// Accept stage hints
#define TRACE_ACCEPT_NEGOTIATE 1
#define TRACE_ACCEPT_AUTHENTICATE 2
#define TRACE_ACCEPT_INFO 3
// Init stage hints
#define TRACE_INIT_FIRST 1
#define TRACE_INIT_CHALLENGE 2
// The current limit is 16 MOF fields.
// Each UNICODE strings needs two MOF fields.
typedef struct _NTLM_TRACE_INFO
{
EVENT_TRACE_HEADER EventTrace;
MOF_FIELD eventInfo[MAX_MOF_FIELDS];
} NTLM_TRACE_INFO, *PNTLM_TRACE_INFO;
//
// This is the control Guid for the group of Guids traced below
//
DEFINE_GUID( // {C92CF544-91B3-4dc0-8E11-C580339A0BF8}
NtlmControlGuid,
0xc92cf544,
0x91b3,
0x4dc0,
0x8e, 0x11, 0xc5, 0x80, 0x33, 0x9a, 0xb, 0xf8);
//
// This is the Accept guid
//
DEFINE_GUID( // {94D4C9EB-0D01-41ae-99E8-15B26B593A83}
NtlmAcceptGuid,
0x94d4c9eb,
0xd01,
0x41ae,
0x99, 0xe8, 0x15, 0xb2, 0x6b, 0x59, 0x3a, 0x83);
//
// This is the Initialize guid
//
DEFINE_GUID( // {6DF28B22-73BE-45cc-BA80-8B332B35A21D}
NtlmInitializeGuid,
0x6df28b22,
0x73be,
0x45cc,
0xba, 0x80, 0x8b, 0x33, 0x2b, 0x35, 0xa2, 0x1d);
//
// This is the LogonUser guid
//
DEFINE_GUID( // {19196B33-A302-4c12-9D5A-EAC149E93C46}
NtlmLogonGuid,
0x19196b33,
0xa302,
0x4c12,
0x9d, 0x5a, 0xea, 0xc1, 0x49, 0xe9, 0x3c, 0x46);
//
// This is the NTLM Password Validate
//
DEFINE_GUID( // {34D84181-C28A-41d8-BB9E-995190DF83DF}
NtlmValidateGuid,
0x34d84181,
0xc28a,
0x41d8,
0xbb, 0x9e, 0x99, 0x51, 0x90, 0xdf, 0x83, 0xdf);
//
// This is the GenericPassthrough Trace Guid
//
DEFINE_GUID( // {21ABB5D9-8EEC-46e4-9D1C-F09DD57CF70B}
NtlmGenericPassthroughGuid,
0x21abb5d9,
0x8eec,
0x46e4,
0x9d, 0x1c, 0xf0, 0x9d, 0xd5, 0x7c, 0xf7, 0xb);
#endif /* _TRACE_H */