- cleanup wdm.template.h, move to appropriate headers
- move ntddk stuff after wdm stuff in extypes.h
[NTDDK/WDM]
- Regenerate headers

svn path=/branches/header-work/; revision=46363
This commit is contained in:
Timo Kreuzer 2010-03-23 19:24:29 +00:00
parent 52281dc572
commit 0ce290c185
8 changed files with 195 additions and 202 deletions

View file

@ -289,6 +289,7 @@ typedef struct DECLSPEC_ALIGN(16) _CONTEXT {
/****************************************************************************** /******************************************************************************
* Executive Types * * Executive Types *
******************************************************************************/ ******************************************************************************/
typedef struct _ZONE_SEGMENT_HEADER { typedef struct _ZONE_SEGMENT_HEADER {
SINGLE_LIST_ENTRY SegmentList; SINGLE_LIST_ENTRY SegmentList;
PVOID Reserved; PVOID Reserved;
@ -304,7 +305,6 @@ typedef struct _ZONE_HEADER {
#define PROTECTED_POOL 0x80000000 #define PROTECTED_POOL 0x80000000
/****************************************************************************** /******************************************************************************
* I/O Manager Types * * I/O Manager Types *
******************************************************************************/ ******************************************************************************/
@ -2137,6 +2137,7 @@ typedef ULONG
/****************************************************************************** /******************************************************************************
* Memory manager Types * * Memory manager Types *
******************************************************************************/ ******************************************************************************/
typedef struct _PHYSICAL_MEMORY_RANGE { typedef struct _PHYSICAL_MEMORY_RANGE {
PHYSICAL_ADDRESS BaseAddress; PHYSICAL_ADDRESS BaseAddress;
LARGE_INTEGER NumberOfBytes; LARGE_INTEGER NumberOfBytes;

View file

@ -44,6 +44,14 @@
#include <guiddef.h> #include <guiddef.h>
#endif #endif
#ifdef _MAC
#ifndef _INC_STRING
#include <string.h>
#endif /* _INC_STRING */
#else
#include <string.h>
#endif /* _MAC */
#ifndef _KTMTYPES_ #ifndef _KTMTYPES_
typedef GUID UOW, *PUOW; typedef GUID UOW, *PUOW;
#endif #endif
@ -98,6 +106,12 @@ extern "C" {
#if defined(_MSC_VER) #if defined(_MSC_VER)
/* Disable some warnings */
#pragma warning(disable:4115) /* Named type definition in parentheses */
#pragma warning(disable:4201) /* Nameless unions and structs */
#pragma warning(disable:4214) /* Bit fields of other types than int */
#pragma warning(disable:4820) /* Padding added, due to alignemnet requirement */
/* Indicate if #pragma alloc_text() is supported */ /* Indicate if #pragma alloc_text() is supported */
#if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_IA64) #if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_IA64)
#define ALLOC_PRAGMA 1 #define ALLOC_PRAGMA 1
@ -147,6 +161,34 @@ typedef struct _DMA_ADAPTER *PADAPTER_OBJECT;
typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT; typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT;
#endif #endif
#ifndef DEFINE_GUIDEX
#ifdef _MSC_VER
#define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID name
#else
#define DEFINE_GUIDEX(name) EXTERN_C const GUID name
#endif
#endif /* DEFINE_GUIDEX */
#ifndef STATICGUIDOF
#define STATICGUIDOF(guid) STATIC_##guid
#endif
/* GUID Comparison */
#ifndef __IID_ALIGNED__
#define __IID_ALIGNED__
#ifdef __cplusplus
inline int IsEqualGUIDAligned(REFGUID guid1, REFGUID guid2)
{
return ( (*(PLONGLONG)(&guid1) == *(PLONGLONG)(&guid2)) &&
(*((PLONGLONG)(&guid1) + 1) == *((PLONGLONG)(&guid2) + 1)) );
}
#else
#define IsEqualGUIDAligned(guid1, guid2) \
( (*(PLONGLONG)(guid1) == *(PLONGLONG)(guid2)) && \
(*((PLONGLONG)(guid1) + 1) == *((PLONGLONG)(guid2) + 1)) )
#endif /* __cplusplus */
#endif /* !__IID_ALIGNED__ */
/****************************************************************************** /******************************************************************************
* INTERLOCKED Functions * * INTERLOCKED Functions *
@ -522,6 +564,7 @@ typedef enum _MODE {
} MODE; } MODE;
#define CACHE_FULLY_ASSOCIATIVE 0xFF #define CACHE_FULLY_ASSOCIATIVE 0xFF
#define MAXIMUM_SUSPEND_COUNT MAXCHAR
#define EVENT_QUERY_STATE (0x0001) #define EVENT_QUERY_STATE (0x0001)
#define EVENT_MODIFY_STATE (0x0002) #define EVENT_MODIFY_STATE (0x0002)
@ -1648,6 +1691,10 @@ typedef enum _MM_SYSTEM_SIZE {
MmLargeSystem MmLargeSystem
} MM_SYSTEMSIZE; } MM_SYSTEMSIZE;
extern PBOOLEAN Mm64BitPhysicalAddress;
extern PVOID MmBadPointer;
/****************************************************************************** /******************************************************************************
* Executive Types * * Executive Types *
******************************************************************************/ ******************************************************************************/
@ -1909,6 +1956,13 @@ typedef struct _RESOURCE_PERFORMANCE_DATA {
LIST_ENTRY HashTable[RESOURCE_HASH_TABLE_SIZE]; LIST_ENTRY HashTable[RESOURCE_HASH_TABLE_SIZE];
} RESOURCE_PERFORMANCE_DATA, *PRESOURCE_PERFORMANCE_DATA; } RESOURCE_PERFORMANCE_DATA, *PRESOURCE_PERFORMANCE_DATA;
/* Global debug flag */
#if DEVL
extern ULONG NtGlobalFlag;
#define IF_NTOS_DEBUG(FlagName) if (NtGlobalFlag & (FLG_##FlagName))
#else
#define IF_NTOS_DEBUG(FlagName) if(FALSE)
#endif
/****************************************************************************** /******************************************************************************
@ -7374,6 +7428,25 @@ typedef struct _PCI_MSIX_TABLE_CONFIG_INTERFACE {
* Object Manager Types * * Object Manager Types *
******************************************************************************/ ******************************************************************************/
#define MAXIMUM_FILENAME_LENGTH 256
#define OBJ_NAME_PATH_SEPARATOR ((WCHAR)L'\\')
#define OBJECT_TYPE_CREATE 0x0001
#define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
#define DIRECTORY_QUERY 0x0001
#define DIRECTORY_TRAVERSE 0x0002
#define DIRECTORY_CREATE_OBJECT 0x0004
#define DIRECTORY_CREATE_SUBDIRECTORY 0x0008
#define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
#define SYMBOLIC_LINK_QUERY 0x0001
#define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
#define DUPLICATE_CLOSE_SOURCE 0x00000001
#define DUPLICATE_SAME_ACCESS 0x00000002
#define DUPLICATE_SAME_ATTRIBUTES 0x00000004
#define OB_FLT_REGISTRATION_VERSION_0100 0x0100 #define OB_FLT_REGISTRATION_VERSION_0100 0x0100
#define OB_FLT_REGISTRATION_VERSION OB_FLT_REGISTRATION_VERSION_0100 #define OB_FLT_REGISTRATION_VERSION OB_FLT_REGISTRATION_VERSION_0100
@ -7535,6 +7608,11 @@ extern POBJECT_TYPE NTSYSAPI PsProcessType;
#include <stdarg.h> #include <stdarg.h>
#endif #endif
#ifndef _TRACEHANDLE_DEFINED
#define _TRACEHANDLE_DEFINED
typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
#endif
#ifndef TRACE_INFORMATION_CLASS_DEFINE #ifndef TRACE_INFORMATION_CLASS_DEFINE
typedef struct _ETW_TRACE_SESSION_SETTINGS { typedef struct _ETW_TRACE_SESSION_SETTINGS {
@ -15877,87 +15955,6 @@ ZwSetInformationKey(
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */ #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
/******************************************************************************
* Unsorted *
******************************************************************************/
#ifdef _MAC
#ifndef _INC_STRING
#include <string.h>
#endif
#else
#include <string.h>
#endif /* _MAC */
#ifndef DEFINE_GUIDEX
#ifdef _MSC_VER
#define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID name
#else
#define DEFINE_GUIDEX(name) EXTERN_C const GUID name
#endif
#endif /* DEFINE_GUIDEX */
#ifndef STATICGUIDOF
#define STATICGUIDOF(guid) STATIC_##guid
#endif
/* GUID Comparison */
#ifndef __IID_ALIGNED__
#define __IID_ALIGNED__
#ifdef __cplusplus
inline int IsEqualGUIDAligned(REFGUID guid1, REFGUID guid2)
{
return ( (*(PLONGLONG)(&guid1) == *(PLONGLONG)(&guid2)) &&
(*((PLONGLONG)(&guid1) + 1) == *((PLONGLONG)(&guid2) + 1)) );
}
#else
#define IsEqualGUIDAligned(guid1, guid2) \
( (*(PLONGLONG)(guid1) == *(PLONGLONG)(guid2)) && \
(*((PLONGLONG)(guid1) + 1) == *((PLONGLONG)(guid2) + 1)) )
#endif /* __cplusplus */
#endif /* !__IID_ALIGNED__ */
#define MAXIMUM_SUSPEND_COUNT MAXCHAR
#define MAXIMUM_FILENAME_LENGTH 256
#define OBJ_NAME_PATH_SEPARATOR ((WCHAR)L'\\')
#define OBJECT_TYPE_CREATE (0x0001)
#define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
#define DIRECTORY_QUERY (0x0001)
#define DIRECTORY_TRAVERSE (0x0002)
#define DIRECTORY_CREATE_OBJECT (0x0004)
#define DIRECTORY_CREATE_SUBDIRECTORY (0x0008)
#define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
#define SYMBOLIC_LINK_QUERY 0x0001
#define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
#define DUPLICATE_CLOSE_SOURCE 0x00000001
#define DUPLICATE_SAME_ACCESS 0x00000002
#define DUPLICATE_SAME_ATTRIBUTES 0x00000004
/* Global debug flag */
#if DEVL
extern ULONG NtGlobalFlag;
#define IF_NTOS_DEBUG(FlagName) if (NtGlobalFlag & (FLG_ ## FlagName))
#else
#define IF_NTOS_DEBUG(FlagName) if(FALSE)
#endif
#ifndef _TRACEHANDLE_DEFINED
#define _TRACEHANDLE_DEFINED
typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
#endif
extern PBOOLEAN Mm64BitPhysicalAddress;
extern PVOID MmBadPointer;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View file

@ -1,23 +1,8 @@
/****************************************************************************** /******************************************************************************
* Executive Types * * Executive Types *
******************************************************************************/ ******************************************************************************/
$if (_NTDDK_)
typedef struct _ZONE_SEGMENT_HEADER {
SINGLE_LIST_ENTRY SegmentList;
PVOID Reserved;
} ZONE_SEGMENT_HEADER, *PZONE_SEGMENT_HEADER;
typedef struct _ZONE_HEADER {
SINGLE_LIST_ENTRY FreeList;
SINGLE_LIST_ENTRY SegmentList;
ULONG BlockSize;
ULONG TotalSegmentSize;
} ZONE_HEADER, *PZONE_HEADER;
#define PROTECTED_POOL 0x80000000
$endif
$if (_WDMDDK_) $if (_WDMDDK_)
#define EX_RUNDOWN_ACTIVE 0x1 #define EX_RUNDOWN_ACTIVE 0x1
#define EX_RUNDOWN_COUNT_SHIFT 0x1 #define EX_RUNDOWN_COUNT_SHIFT 0x1
#define EX_RUNDOWN_COUNT_INC (1 << EX_RUNDOWN_COUNT_SHIFT) #define EX_RUNDOWN_COUNT_INC (1 << EX_RUNDOWN_COUNT_SHIFT)
@ -275,6 +260,30 @@ typedef struct _RESOURCE_PERFORMANCE_DATA {
LIST_ENTRY HashTable[RESOURCE_HASH_TABLE_SIZE]; LIST_ENTRY HashTable[RESOURCE_HASH_TABLE_SIZE];
} RESOURCE_PERFORMANCE_DATA, *PRESOURCE_PERFORMANCE_DATA; } RESOURCE_PERFORMANCE_DATA, *PRESOURCE_PERFORMANCE_DATA;
$endif /* Global debug flag */
#if DEVL
extern ULONG NtGlobalFlag;
#define IF_NTOS_DEBUG(FlagName) if (NtGlobalFlag & (FLG_##FlagName))
#else
#define IF_NTOS_DEBUG(FlagName) if(FALSE)
#endif
$endif /* _WDMDDK_ */
$if (_NTDDK_)
typedef struct _ZONE_SEGMENT_HEADER {
SINGLE_LIST_ENTRY SegmentList;
PVOID Reserved;
} ZONE_SEGMENT_HEADER, *PZONE_SEGMENT_HEADER;
typedef struct _ZONE_HEADER {
SINGLE_LIST_ENTRY FreeList;
SINGLE_LIST_ENTRY SegmentList;
ULONG BlockSize;
ULONG TotalSegmentSize;
} ZONE_HEADER, *PZONE_HEADER;
#define PROTECTED_POOL 0x80000000
$endif /* _NTDDK_ */

View file

@ -66,6 +66,7 @@ typedef enum _MODE {
} MODE; } MODE;
#define CACHE_FULLY_ASSOCIATIVE 0xFF #define CACHE_FULLY_ASSOCIATIVE 0xFF
#define MAXIMUM_SUSPEND_COUNT MAXCHAR
#define EVENT_QUERY_STATE (0x0001) #define EVENT_QUERY_STATE (0x0001)
#define EVENT_MODIFY_STATE (0x0002) #define EVENT_MODIFY_STATE (0x0002)

View file

@ -1,28 +1,8 @@
/****************************************************************************** /******************************************************************************
* Memory manager Types * * Memory manager Types *
******************************************************************************/ ******************************************************************************/
$if (_NTDDK_)
typedef struct _PHYSICAL_MEMORY_RANGE {
PHYSICAL_ADDRESS BaseAddress;
LARGE_INTEGER NumberOfBytes;
} PHYSICAL_MEMORY_RANGE, *PPHYSICAL_MEMORY_RANGE;
typedef NTSTATUS
(NTAPI *PMM_ROTATE_COPY_CALLBACK_FUNCTION)(
IN PMDL DestinationMdl,
IN PMDL SourceMdl,
IN PVOID Context);
typedef enum _MM_ROTATE_DIRECTION {
MmToFrameBuffer,
MmToFrameBufferNoCopy,
MmToRegularMemory,
MmToRegularMemoryNoCopy,
MmMaximumRotateDirection
} MM_ROTATE_DIRECTION, *PMM_ROTATE_DIRECTION;
$endif
$if (_WDMDDK_) $if (_WDMDDK_)
#if (NTDDI_VERSION >= NTDDI_WIN2K) #if (NTDDI_VERSION >= NTDDI_WIN2K)
typedef ULONG NODE_REQUIREMENT; typedef ULONG NODE_REQUIREMENT;
#define MM_ANY_NODE_OK 0x80000000 #define MM_ANY_NODE_OK 0x80000000
@ -161,5 +141,31 @@ typedef enum _MM_SYSTEM_SIZE {
MmMediumSystem, MmMediumSystem,
MmLargeSystem MmLargeSystem
} MM_SYSTEMSIZE; } MM_SYSTEMSIZE;
$endif
extern PBOOLEAN Mm64BitPhysicalAddress;
extern PVOID MmBadPointer;
$endif /* _WDMDDK_ */
$if (_NTDDK_)
typedef struct _PHYSICAL_MEMORY_RANGE {
PHYSICAL_ADDRESS BaseAddress;
LARGE_INTEGER NumberOfBytes;
} PHYSICAL_MEMORY_RANGE, *PPHYSICAL_MEMORY_RANGE;
typedef NTSTATUS
(NTAPI *PMM_ROTATE_COPY_CALLBACK_FUNCTION)(
IN PMDL DestinationMdl,
IN PMDL SourceMdl,
IN PVOID Context);
typedef enum _MM_ROTATE_DIRECTION {
MmToFrameBuffer,
MmToFrameBufferNoCopy,
MmToRegularMemory,
MmToRegularMemoryNoCopy,
MmMaximumRotateDirection
} MM_ROTATE_DIRECTION, *PMM_ROTATE_DIRECTION;
$endif /* _NTDDK_ */

View file

@ -2,6 +2,25 @@
* Object Manager Types * * Object Manager Types *
******************************************************************************/ ******************************************************************************/
#define MAXIMUM_FILENAME_LENGTH 256
#define OBJ_NAME_PATH_SEPARATOR ((WCHAR)L'\\')
#define OBJECT_TYPE_CREATE 0x0001
#define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
#define DIRECTORY_QUERY 0x0001
#define DIRECTORY_TRAVERSE 0x0002
#define DIRECTORY_CREATE_OBJECT 0x0004
#define DIRECTORY_CREATE_SUBDIRECTORY 0x0008
#define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
#define SYMBOLIC_LINK_QUERY 0x0001
#define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
#define DUPLICATE_CLOSE_SOURCE 0x00000001
#define DUPLICATE_SAME_ACCESS 0x00000002
#define DUPLICATE_SAME_ATTRIBUTES 0x00000004
#define OB_FLT_REGISTRATION_VERSION_0100 0x0100 #define OB_FLT_REGISTRATION_VERSION_0100 0x0100
#define OB_FLT_REGISTRATION_VERSION OB_FLT_REGISTRATION_VERSION_0100 #define OB_FLT_REGISTRATION_VERSION OB_FLT_REGISTRATION_VERSION_0100

View file

@ -44,6 +44,14 @@
#include <guiddef.h> #include <guiddef.h>
#endif #endif
#ifdef _MAC
#ifndef _INC_STRING
#include <string.h>
#endif /* _INC_STRING */
#else
#include <string.h>
#endif /* _MAC */
#ifndef _KTMTYPES_ #ifndef _KTMTYPES_
typedef GUID UOW, *PUOW; typedef GUID UOW, *PUOW;
#endif #endif
@ -153,6 +161,34 @@ typedef struct _DMA_ADAPTER *PADAPTER_OBJECT;
typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT; typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT;
#endif #endif
#ifndef DEFINE_GUIDEX
#ifdef _MSC_VER
#define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID name
#else
#define DEFINE_GUIDEX(name) EXTERN_C const GUID name
#endif
#endif /* DEFINE_GUIDEX */
#ifndef STATICGUIDOF
#define STATICGUIDOF(guid) STATIC_##guid
#endif
/* GUID Comparison */
#ifndef __IID_ALIGNED__
#define __IID_ALIGNED__
#ifdef __cplusplus
inline int IsEqualGUIDAligned(REFGUID guid1, REFGUID guid2)
{
return ( (*(PLONGLONG)(&guid1) == *(PLONGLONG)(&guid2)) &&
(*((PLONGLONG)(&guid1) + 1) == *((PLONGLONG)(&guid2) + 1)) );
}
#else
#define IsEqualGUIDAligned(guid1, guid2) \
( (*(PLONGLONG)(guid1) == *(PLONGLONG)(guid2)) && \
(*((PLONGLONG)(guid1) + 1) == *((PLONGLONG)(guid2) + 1)) )
#endif /* __cplusplus */
#endif /* !__IID_ALIGNED__ */
$define (_WDMDDK_) $define (_WDMDDK_)
$include (interlocked.h) $include (interlocked.h)
@ -200,87 +236,6 @@ $include (halfuncs.h)
$include (nttmapi.h) $include (nttmapi.h)
$include (zwfuncs.h) $include (zwfuncs.h)
/******************************************************************************
* Unsorted *
******************************************************************************/
#ifdef _MAC
#ifndef _INC_STRING
#include <string.h>
#endif
#else
#include <string.h>
#endif /* _MAC */
#ifndef DEFINE_GUIDEX
#ifdef _MSC_VER
#define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID name
#else
#define DEFINE_GUIDEX(name) EXTERN_C const GUID name
#endif
#endif /* DEFINE_GUIDEX */
#ifndef STATICGUIDOF
#define STATICGUIDOF(guid) STATIC_##guid
#endif
/* GUID Comparison */
#ifndef __IID_ALIGNED__
#define __IID_ALIGNED__
#ifdef __cplusplus
inline int IsEqualGUIDAligned(REFGUID guid1, REFGUID guid2)
{
return ( (*(PLONGLONG)(&guid1) == *(PLONGLONG)(&guid2)) &&
(*((PLONGLONG)(&guid1) + 1) == *((PLONGLONG)(&guid2) + 1)) );
}
#else
#define IsEqualGUIDAligned(guid1, guid2) \
( (*(PLONGLONG)(guid1) == *(PLONGLONG)(guid2)) && \
(*((PLONGLONG)(guid1) + 1) == *((PLONGLONG)(guid2) + 1)) )
#endif /* __cplusplus */
#endif /* !__IID_ALIGNED__ */
#define MAXIMUM_SUSPEND_COUNT MAXCHAR
#define MAXIMUM_FILENAME_LENGTH 256
#define OBJ_NAME_PATH_SEPARATOR ((WCHAR)L'\\')
#define OBJECT_TYPE_CREATE (0x0001)
#define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
#define DIRECTORY_QUERY (0x0001)
#define DIRECTORY_TRAVERSE (0x0002)
#define DIRECTORY_CREATE_OBJECT (0x0004)
#define DIRECTORY_CREATE_SUBDIRECTORY (0x0008)
#define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
#define SYMBOLIC_LINK_QUERY 0x0001
#define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
#define DUPLICATE_CLOSE_SOURCE 0x00000001
#define DUPLICATE_SAME_ACCESS 0x00000002
#define DUPLICATE_SAME_ATTRIBUTES 0x00000004
/* Global debug flag */
#if DEVL
extern ULONG NtGlobalFlag;
#define IF_NTOS_DEBUG(FlagName) if (NtGlobalFlag & (FLG_ ## FlagName))
#else
#define IF_NTOS_DEBUG(FlagName) if(FALSE)
#endif
#ifndef _TRACEHANDLE_DEFINED
#define _TRACEHANDLE_DEFINED
typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
#endif
extern PBOOLEAN Mm64BitPhysicalAddress;
extern PVOID MmBadPointer;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View file

@ -7,6 +7,11 @@
#include <stdarg.h> #include <stdarg.h>
#endif #endif
#ifndef _TRACEHANDLE_DEFINED
#define _TRACEHANDLE_DEFINED
typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
#endif
#ifndef TRACE_INFORMATION_CLASS_DEFINE #ifndef TRACE_INFORMATION_CLASS_DEFINE
typedef struct _ETW_TRACE_SESSION_SETTINGS { typedef struct _ETW_TRACE_SESSION_SETTINGS {