#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 #include #include #include #include #ifdef __cplusplus extern "C" { #endif // __cplusplus #include #include #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 */