- Add dpfilter.h
- batclass.h: Fix BatteryClassSystemControl
- ntdef.h: add ARGUMENT_PRESENT and PEXCEPTION_ROUTINE
[NDK]
- Add some ob functions
[DDK]
- add wmlib.h
- remove winddk.h
[WDM]
- include dpfilter.h
- Add ASSERT_GATE, ASSERT_TIMER, ASSERT_MUTANT, ASSERT_SEMAPHORE, ASSERT_EVENT, TIMER_TABLE_SIZE, TIMER_TABLE_SHIFT, ADDRESS_AND_SIZE_TO_SPAN_PAGES, PoRequestShutdownEvent
- Group architecture specific definitions (currently only x86)
- uncomment some _DECL_HAL_KE_IMPORT


svn path=/branches/header-work/; revision=46137
This commit is contained in:
Timo Kreuzer 2010-03-12 16:37:33 +00:00
parent 89a27c5264
commit 16e291bd53
9 changed files with 888 additions and 1791 deletions

View file

@ -335,6 +335,12 @@ typedef struct _PARTITION_INFORMATION_GPT {
WCHAR Name [36];
} PARTITION_INFORMATION_GPT, *PPARTITION_INFORMATION_GPT;
typedef enum _PARTITION_STYLE {
PARTITION_STYLE_MBR,
PARTITION_STYLE_GPT,
PARTITION_STYLE_RAW
} PARTITION_STYLE;
typedef struct _DISK_PARTITION_INFO {
ULONG SizeOfPartitionInfo;
PARTITION_STYLE PartitionStyle;

View file

@ -1190,8 +1190,32 @@ typedef struct _KUSER_SHARED_DATA
#endif
} KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;
extern NTKERNELAPI PVOID MmHighestUserAddress;
extern NTKERNELAPI PVOID MmSystemRangeStart;
extern NTKERNELAPI ULONG MmUserProbeAddress;
#ifdef _X86_
#define MM_HIGHEST_USER_ADDRESS MmHighestUserAddress
#define MM_SYSTEM_RANGE_START MmSystemRangeStart
#if defined(_LOCAL_COPY_USER_PROBE_ADDRESS_)
#define MM_USER_PROBE_ADDRESS _LOCAL_COPY_USER_PROBE_ADDRESS_
extern ULONG _LOCAL_COPY_USER_PROBE_ADDRESS_;
#else
#define MM_USER_PROBE_ADDRESS MmUserProbeAddress
#endif
#define MM_LOWEST_USER_ADDRESS (PVOID)0x10000
#define MM_KSEG0_BASE MM_SYSTEM_RANGE_START
#define MM_SYSTEM_SPACE_END 0xFFFFFFFF
#if !defined (_X86PAE_)
#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xC0800000
#else
#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xC0C00000
#endif
#define KeGetPcr() PCR
#define KERNEL_STACK_SIZE 12288
#define KERNEL_LARGE_STACK_SIZE 61440
#define KERNEL_LARGE_STACK_COMMIT 12288
@ -1253,6 +1277,13 @@ typedef struct _KPCR {
ULONG HalReserved[16];
} KPCR, *PKPCR;
FORCEINLINE
ULONG
KeGetCurrentProcessorNumber(VOID)
{
return (ULONG)__readfsbyte(FIELD_OFFSET(KPCR, Number));
}
typedef struct _FLOATING_SAVE_AREA {
ULONG ControlWord;
ULONG StatusWord;
@ -1299,6 +1330,173 @@ typedef struct _CONTEXT {
#ifdef _AMD64_
#define PTI_SHIFT 12L
#define PDI_SHIFT 21L
#define PPI_SHIFT 30L
#define PXI_SHIFT 39L
#define PTE_PER_PAGE 512
#define PDE_PER_PAGE 512
#define PPE_PER_PAGE 512
#define PXE_PER_PAGE 512
#define PTI_MASK_AMD64 (PTE_PER_PAGE - 1)
#define PDI_MASK_AMD64 (PDE_PER_PAGE - 1)
#define PPI_MASK (PPE_PER_PAGE - 1)
#define PXI_MASK (PXE_PER_PAGE - 1)
#define PXE_BASE 0xFFFFF6FB7DBED000ULL
#define PXE_SELFMAP 0xFFFFF6FB7DBEDF68ULL
#define PPE_BASE 0xFFFFF6FB7DA00000ULL
#define PDE_BASE 0xFFFFF6FB40000000ULL
#define PTE_BASE 0xFFFFF68000000000ULL
#define PXE_TOP 0xFFFFF6FB7DBEDFFFULL
#define PPE_TOP 0xFFFFF6FB7DBFFFFFULL
#define PDE_TOP 0xFFFFF6FB7FFFFFFFULL
#define PTE_TOP 0xFFFFF6FFFFFFFFFFULL
#define MM_HIGHEST_USER_ADDRESS MmHighestUserAddress
#define MM_SYSTEM_RANGE_START MmSystemRangeStart
#define MM_USER_PROBE_ADDRESS MmUserProbeAddress
#define MM_LOWEST_USER_ADDRESS (PVOID)0x10000
#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xFFFF080000000000ULL
#define KI_USER_SHARED_DATA 0xFFFFF78000000000ULL
typedef struct DECLSPEC_ALIGN(16) _CONTEXT {
ULONG64 P1Home;
ULONG64 P2Home;
ULONG64 P3Home;
ULONG64 P4Home;
ULONG64 P5Home;
ULONG64 P6Home;
/* Control flags */
ULONG ContextFlags;
ULONG MxCsr;
/* Segment */
USHORT SegCs;
USHORT SegDs;
USHORT SegEs;
USHORT SegFs;
USHORT SegGs;
USHORT SegSs;
ULONG EFlags;
/* Debug */
ULONG64 Dr0;
ULONG64 Dr1;
ULONG64 Dr2;
ULONG64 Dr3;
ULONG64 Dr6;
ULONG64 Dr7;
/* Integer */
ULONG64 Rax;
ULONG64 Rcx;
ULONG64 Rdx;
ULONG64 Rbx;
ULONG64 Rsp;
ULONG64 Rbp;
ULONG64 Rsi;
ULONG64 Rdi;
ULONG64 R8;
ULONG64 R9;
ULONG64 R10;
ULONG64 R11;
ULONG64 R12;
ULONG64 R13;
ULONG64 R14;
ULONG64 R15;
/* Counter */
ULONG64 Rip;
/* Floating point */
union {
XMM_SAVE_AREA32 FltSave;
struct {
M128A Header[2];
M128A Legacy[8];
M128A Xmm0;
M128A Xmm1;
M128A Xmm2;
M128A Xmm3;
M128A Xmm4;
M128A Xmm5;
M128A Xmm6;
M128A Xmm7;
M128A Xmm8;
M128A Xmm9;
M128A Xmm10;
M128A Xmm11;
M128A Xmm12;
M128A Xmm13;
M128A Xmm14;
M128A Xmm15;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
/* Vector */
M128A VectorRegister[26];
ULONG64 VectorControl;
/* Debug control */
ULONG64 DebugControl;
ULONG64 LastBranchToRip;
ULONG64 LastBranchFromRip;
ULONG64 LastExceptionToRip;
ULONG64 LastExceptionFromRip;
} CONTEXT;
typedef struct _KPCR
{
_ANONYMOUS_UNION union
{
NT_TIB NtTib;
_ANONYMOUS_STRUCT struct
{
union _KGDTENTRY64 *GdtBase;
struct _KTSS64 *TssBase;
ULONG64 UserRsp;
struct _KPCR *Self;
struct _KPRCB *CurrentPrcb;
PKSPIN_LOCK_QUEUE LockArray;
PVOID Used_Self;
};
};
union _KIDTENTRY64 *IdtBase;
ULONG64 Unused[2];
KIRQL Irql;
UCHAR SecondLevelCacheAssociativity;
UCHAR ObsoleteNumber;
UCHAR Fill0;
ULONG Unused0[3];
USHORT MajorVersion;
USHORT MinorVersion;
ULONG StallScaleFactor;
PVOID Unused1[3];
ULONG KernelReserved[15];
ULONG SecondLevelCacheSize;
ULONG HalReserved[16];
ULONG Unused2;
PVOID KdVersionBlock;
PVOID Unused3;
ULONG PcrAlign1[24];
} KPCR, *PKPCR;
FORCEINLINE
PKPCR
KeGetPcr(VOID)
{
return (PKPCR)__readgsqword(FIELD_OFFSET(KPCR, Self));
}
FORCEINLINE
ULONG
KeGetCurrentProcessorNumber(VOID)
{
return (ULONG)__readgsword(0x184);
}
#if !defined(RC_INVOKED)
#define CONTEXT_AMD64 0x100000
@ -2736,8 +2934,6 @@ ZwSetTimer(
#endif
/* Windows Device Driver Kit */
#include "winddk.h"
#ifdef __cplusplus
}

View file

@ -43,6 +43,10 @@
#include <guiddef.h>
#endif /* GUID_DEFINED */
#if (NTDDI_VERSION >= NTDDI_WINXP)
#include <dpfilter.h>
#endif
#include "intrin.h"
#ifdef __cplusplus
@ -493,9 +497,27 @@ typedef enum _MODE {
((Object)->Type == DpcObject) || \
((Object)->Type == ThreadedDpcObject))
#define ASSERT_GATE(object) \
ASSERT((((object)->Header.Type & KOBJECT_TYPE_MASK) == GateObject) || \
(((object)->Header.Type & KOBJECT_TYPE_MASK) == EventSynchronizationObject))
#define ASSERT_DEVICE_QUEUE(Object) \
ASSERT((Object)->Type == DeviceQueueObject)
#define ASSERT_TIMER(E) \
ASSERT(((E)->Header.Type == TimerNotificationObject) || \
((E)->Header.Type == TimerSynchronizationObject))
#define ASSERT_MUTANT(E) \
ASSERT((E)->Header.Type == MutantObject)
#define ASSERT_SEMAPHORE(E) \
ASSERT((E)->Header.Type == SemaphoreObject)
#define ASSERT_EVENT(E) \
ASSERT(((E)->Header.Type == NotificationEvent) || \
((E)->Header.Type == SynchronizationEvent))
#define DPC_NORMAL 0
#define DPC_THREADED 1
@ -519,17 +541,6 @@ typedef enum _MODE {
#define DBG_STATUS_DEBUG_CONTROL 6
#define DBG_STATUS_WORKER 7
#define KI_USER_SHARED_DATA 0xffdf0000
#define SharedUserData ((KUSER_SHARED_DATA * CONST) KI_USER_SHARED_DATA)
#define EFLAG_SIGN 0x8000
#define EFLAG_ZERO 0x4000
#define EFLAG_SELECT (EFLAG_SIGN | EFLAG_ZERO)
#define RESULT_NEGATIVE ((EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
#define RESULT_ZERO ((~EFLAG_SIGN & EFLAG_ZERO) & EFLAG_SELECT)
#define RESULT_POSITIVE ((~EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
#if defined(_WIN64)
#define MAXIMUM_PROC_PER_GROUP 64
#else
@ -537,72 +548,6 @@ typedef enum _MODE {
#endif
#define MAXIMUM_PROCESSORS MAXIMUM_PROC_PER_GROUP
#if (_M_IX86)
#define KIP0PCRADDRESS 0xffdff000
#endif
#if defined(_X86_)
#define PASSIVE_LEVEL 0
#define LOW_LEVEL 0
#define APC_LEVEL 1
#define DISPATCH_LEVEL 2
#define CMCI_LEVEL 5
#define PROFILE_LEVEL 27
#define CLOCK1_LEVEL 28
#define CLOCK2_LEVEL 28
#define IPI_LEVEL 29
#define POWER_LEVEL 30
#define HIGH_LEVEL 31
#define CLOCK_LEVEL (CLOCK2_LEVEL)
typedef struct _KFLOATING_SAVE {
ULONG ControlWord;
ULONG StatusWord;
ULONG ErrorOffset;
ULONG ErrorSelector;
ULONG DataOffset;
ULONG DataSelector;
ULONG Cr0NpxState;
ULONG Spare1;
} KFLOATING_SAVE, *PKFLOATING_SAVE;
#endif
#if defined(_AMD64_)
#define PASSIVE_LEVEL 0
#define LOW_LEVEL 0
#define APC_LEVEL 1
#define DISPATCH_LEVEL 2
#define CMCI_LEVEL 5
#define CLOCK_LEVEL 13
#define IPI_LEVEL 14
#define DRS_LEVEL 14
#define POWER_LEVEL 14
#define PROFILE_LEVEL 15
#define HIGH_LEVEL 15
#endif
#if defined(_IA64_)
#define PASSIVE_LEVEL 0
#define LOW_LEVEL 0
#define APC_LEVEL 1
#define DISPATCH_LEVEL 2
#define CMC_LEVEL 3
#define DEVICE_LEVEL_BASE 4
#define PC_LEVEL 12
#define IPI_LEVEL 14
#define DRS_LEVEL 14
#define CLOCK_LEVEL 13
#define POWER_LEVEL 15
#define PROFILE_LEVEL 15
#define HIGH_LEVEL 15
#endif
/* Exception Records */
#define EXCEPTION_NONCONTINUABLE 1
#define EXCEPTION_MAXIMUM_PARAMETERS 15
@ -695,13 +640,6 @@ typedef BOOLEAN
IN PVOID Context,
IN BOOLEAN Handled);
typedef enum _KDPC_IMPORTANCE {
LowImportance,
MediumImportance,
HighImportance,
MediumHighImportance
} KDPC_IMPORTANCE;
typedef enum _TRACE_INFORMATION_CLASS {
TraceIdClass,
TraceHandleClass,
@ -892,11 +830,10 @@ typedef PVOID PKIPI_CONTEXT;
typedef
VOID
(NTAPI *PKIPI_WORKER)(
IN PKIPI_CONTEXT PacketContext,
IN PVOID Parameter1,
IN PVOID Parameter2,
IN PVOID Parameter3
);
IN PKIPI_CONTEXT PacketContext,
IN PVOID Parameter1,
IN PVOID Parameter2,
IN PVOID Parameter3);
typedef
ULONG_PTR
@ -972,6 +909,13 @@ typedef VOID
IN PVOID SystemArgument1,
IN PVOID SystemArgument2);
typedef enum _KDPC_IMPORTANCE {
LowImportance,
MediumImportance,
HighImportance,
MediumHighImportance
} KDPC_IMPORTANCE;
typedef struct _KDPC
{
UCHAR Type;
@ -1085,6 +1029,15 @@ typedef struct _DISPATCHER_HEADER {
LIST_ENTRY WaitListHead;
} DISPATCHER_HEADER, *PDISPATCHER_HEADER;
typedef struct _KEVENT {
DISPATCHER_HEADER Header;
} KEVENT, *PKEVENT, *RESTRICTED_POINTER PRKEVENT;
typedef struct _KSEMAPHORE {
DISPATCHER_HEADER Header;
LONG Limit;
} KSEMAPHORE, *PKSEMAPHORE, *RESTRICTED_POINTER PRKSEMAPHORE;
typedef struct _KGATE
{
DISPATCHER_HEADER Header;
@ -1115,6 +1068,9 @@ typedef struct _KMUTANT {
UCHAR ApcDisable;
} KMUTANT, *PKMUTANT, *RESTRICTED_POINTER PRKMUTANT, KMUTEX, *PKMUTEX, *RESTRICTED_POINTER PRKMUTEX;
#define TIMER_TABLE_SIZE 512
#define TIMER_TABLE_SHIFT 9
typedef struct _KTIMER {
DISPATCHER_HEADER Header;
ULARGE_INTEGER DueTime;
@ -1162,15 +1118,6 @@ typedef struct _KSYSTEM_TIME
LONG High2Time;
} KSYSTEM_TIME, *PKSYSTEM_TIME;
typedef struct _KEVENT {
DISPATCHER_HEADER Header;
} KEVENT, *PKEVENT, *RESTRICTED_POINTER PRKEVENT;
typedef struct _KSEMAPHORE {
DISPATCHER_HEADER Header;
LONG Limit;
} KSEMAPHORE, *PKSEMAPHORE, *RESTRICTED_POINTER PRKSEMAPHORE;
typedef struct _PNP_BUS_INFORMATION {
GUID BusTypeGuid;
INTERFACE_TYPE LegacyBusType;
@ -1197,44 +1144,23 @@ typedef struct DECLSPEC_ALIGN(16) _XSAVE_FORMAT {
ULONG MxCsr;
ULONG MxCsr_Mask;
M128A FloatRegisters[8];
#if defined(_WIN64)
M128A XmmRegisters[16];
UCHAR Reserved4[96];
#else
M128A XmmRegisters[8];
UCHAR Reserved4[192];
ULONG StackControl[7];
ULONG Cr0NpxState;
#endif
} XSAVE_FORMAT, *PXSAVE_FORMAT;
#ifdef _AMD64_
typedef XSAVE_FORMAT XMM_SAVE_AREA32, *PXMM_SAVE_AREA32;
#endif // _AMD64_
#if defined(_IA64_)
extern volatile LARGE_INTEGER KeTickCount;
#elif defined(_X86_)
extern volatile KSYSTEM_TIME KeTickCount;
#endif
/******************************************************************************
* Memory manager Types *
******************************************************************************/
#define PAGE_SIZE 0x1000
#define PAGE_SHIFT 12L
#define MM_DONT_ZERO_ALLOCATION 0x00000001
#define MM_ALLOCATE_FROM_LOCAL_NODE_ONLY 0x00000002
#define MM_ALLOCATE_FULLY_REQUIRED 0x00000004
@ -5222,6 +5148,157 @@ typedef struct _QUOTA_LIMITS {
#define HIGH_PRIORITY 31
#define MAXIMUM_PRIORITY 32
#ifdef _X86_
/** Kernel definitions for x86 **/
/* Interrupt request levels */
#define PASSIVE_LEVEL 0
#define LOW_LEVEL 0
#define APC_LEVEL 1
#define DISPATCH_LEVEL 2
#define CMCI_LEVEL 5
#define PROFILE_LEVEL 27
#define CLOCK1_LEVEL 28
#define CLOCK2_LEVEL 28
#define IPI_LEVEL 29
#define POWER_LEVEL 30
#define HIGH_LEVEL 31
#define CLOCK_LEVEL (CLOCK2_LEVEL)
#define KIP0PCRADDRESS 0xffdff000
#define KI_USER_SHARED_DATA 0xffdf0000
#define SharedUserData ((KUSER_SHARED_DATA * CONST) KI_USER_SHARED_DATA)
#define PAGE_SIZE 0x1000
#define PAGE_SHIFT 12L
#define KeGetDcacheFillSize() 1L
#define EFLAG_SIGN 0x8000
#define EFLAG_ZERO 0x4000
#define EFLAG_SELECT (EFLAG_SIGN | EFLAG_ZERO)
#define RESULT_NEGATIVE ((EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
#define RESULT_ZERO ((~EFLAG_SIGN & EFLAG_ZERO) & EFLAG_SELECT)
#define RESULT_POSITIVE ((~EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
typedef struct _KFLOATING_SAVE {
ULONG ControlWord;
ULONG StatusWord;
ULONG ErrorOffset;
ULONG ErrorSelector;
ULONG DataOffset;
ULONG DataSelector;
ULONG Cr0NpxState;
ULONG Spare1;
} KFLOATING_SAVE, *PKFLOATING_SAVE;
extern volatile KSYSTEM_TIME KeTickCount;
#define YieldProcessor _mm_pause
FORCEINLINE
VOID
KeMemoryBarrier(
VOID)
{
volatile LONG Barrier;
#if defined(__GNUC__)
__asm__ __volatile__ ("xchg %%eax, %0" : : "m" (Barrier) : "%eax");
#elif defined(_MSC_VER)
__asm xchg [Barrier], eax
#endif
}
NTHALAPI
VOID
FASTCALL
KfLowerIrql(
IN KIRQL NewIrql);
#define KeLowerIrql(a) KfLowerIrql(a)
NTHALAPI
KIRQL
FASTCALL
KfRaiseIrql(
IN KIRQL NewIrql);
#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
NTHALAPI
KIRQL
DDKAPI
KeRaiseIrqlToDpcLevel(
VOID);
NTHALAPI
KIRQL
DDKAPI
KeRaiseIrqlToSynchLevel(
VOID);
NTHALAPI
KIRQL
FASTCALL
KfAcquireSpinLock(
IN PKSPIN_LOCK SpinLock);
#define KeAcquireSpinLock(a,b) *(b) = KfAcquireSpinLock(a)
NTHALAPI
VOID
FASTCALL
KfReleaseSpinLock(
IN PKSPIN_LOCK SpinLock,
IN KIRQL NewIrql);
#define KeReleaseSpinLock(a,b) KfReleaseSpinLock(a,b)
NTKERNELAPI
VOID
FASTCALL
KefAcquireSpinLockAtDpcLevel(
IN PKSPIN_LOCK SpinLock);
#define KeAcquireSpinLockAtDpcLevel(SpinLock) KefAcquireSpinLockAtDpcLevel(SpinLock)
NTKERNELAPI
VOID
FASTCALL
KefReleaseSpinLockFromDpcLevel(
IN PKSPIN_LOCK SpinLock);
#define KeReleaseSpinLockFromDpcLevel(SpinLock) KefReleaseSpinLockFromDpcLevel(SpinLock)
NTSYSAPI
PKTHREAD
NTAPI
KeGetCurrentThread(
VOID);
NTKERNELAPI
NTSTATUS
NTAPI
KeSaveFloatingPointState(
OUT PKFLOATING_SAVE FloatSave);
NTKERNELAPI
NTSTATUS
NTAPI
KeRestoreFloatingPointState(
IN PKFLOATING_SAVE FloatSave);
/* VOID
* KeFlushIoBuffers(
* IN PMDL Mdl,
* IN BOOLEAN ReadOperation,
* IN BOOLEAN DmaOperation)
*/
#define KeFlushIoBuffers(_Mdl, _ReadOperation, _DmaOperation)
/* x86 and x64 performs a 0x2C interrupt */
#define DbgRaiseAssertionFailure __int2c
#endif /* _X86_ */
/******************************************************************************
* Runtime Library Functions *
******************************************************************************/
@ -6491,19 +6568,11 @@ InterlockedPushEntrySList(
* Kernel Functions *
******************************************************************************/
#if defined(_M_IX86)
#define YieldProcessor _mm_pause
#elif defined (_M_AMD64)
#define YieldProcessor _mm_pause
#elif defined(_M_PPC)
#define YieldProcessor() __asm__ __volatile__("nop");
#elif defined(_M_MIPS)
#define YieldProcessor() __asm__ __volatile__("nop");
#elif defined(_M_ARM)
#define YieldProcessor()
#else
#error Unknown architecture
#endif
NTHALAPI
KIRQL
NTAPI
KeGetCurrentIrql(
VOID);
NTKERNELAPI
VOID
@ -6521,6 +6590,22 @@ KeClearEvent(
#if (NTDDI_VERSION >= NTDDI_WIN2K)
NTKERNELAPI
VOID
NTAPI
ProbeForRead(
IN CONST VOID *Address, /* CONST is added */
IN SIZE_T Length,
IN ULONG Alignment);
NTKERNELAPI
VOID
NTAPI
ProbeForWrite(
IN PVOID Address,
IN SIZE_T Length,
IN ULONG Alignment);
#if defined(SINGLE_GROUP_LEGACY_API)
NTKERNELAPI
VOID
@ -6561,6 +6646,22 @@ KeQuerySystemTime(
OUT PLARGE_INTEGER CurrentTime);
#endif /* !_M_AMD64 */
#if defined(_X86_) && (defined(_WDM_INCLUDED_) || defined(WIN9X_COMPAT_SPINLOCK))
NTKERNELAPI
VOID
NTAPI
KeInitializeSpinLock(
IN PKSPIN_LOCK SpinLock);
#else
FORCEINLINE
VOID
KeInitializeSpinLock(IN PKSPIN_LOCK SpinLock)
{
/* Clear the lock */
*SpinLock = 0;
}
#endif
NTKERNELAPI
DECLSPEC_NORETURN
VOID
@ -6850,7 +6951,7 @@ KeWaitForSingleObject(
#if (NTDDI_VERSION >= NTDDI_WINXP)
// _DECL_HAL_KE_IMPORT
_DECL_HAL_KE_IMPORT
VOID
FASTCALL
KeAcquireInStackQueuedSpinLock(
@ -6907,7 +7008,7 @@ KeRemoveByKeyDeviceQueueIfBusy(
IN OUT PKDEVICE_QUEUE DeviceQueue,
IN ULONG SortKey);
//_DECL_HAL_KE_IMPORT
_DECL_HAL_KE_IMPORT
VOID
FASTCALL
KeReleaseInStackQueuedSpinLock(
@ -6987,6 +7088,12 @@ KeReleaseSpinLockForDpc(
IN OUT PKSPIN_LOCK SpinLock,
IN KIRQL OldIrql);
NTKERNELAPI
BOOLEAN
FASTCALL
KeTestSpinLock(
IN PKSPIN_LOCK SpinLock);
#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
#if (NTDDI_VERSION >= NTDDI_WS03SP1)
@ -7254,84 +7361,14 @@ KeRestoreExtendedProcessorState(
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
#if defined(_X86_)
NTKERNELAPI
NTSTATUS
NTAPI
KeSaveFloatingPointState(
OUT PKFLOATING_SAVE FloatSave);
NTKERNELAPI
NTSTATUS
NTAPI
KeRestoreFloatingPointState(
IN PKFLOATING_SAVE FloatSave);
#endif
#if defined(_IA64_)
FORCEINLINE
VOID
KeFlushWriteBuffer(VOID)
{
__mf ();
return;
}
#else
#if !defined(_IA64_)
NTHALAPI
VOID
NTAPI
KeFlushWriteBuffer(VOID);
#endif
/*
* VOID
* KeFlushIoBuffers(
* IN PMDL Mdl,
* IN BOOLEAN ReadOperation,
* IN BOOLEAN DmaOperation)
*/
#define KeFlushIoBuffers(_Mdl, _ReadOperation, _DmaOperation)
#define ExAcquireSpinLock(Lock, OldIrql) KeAcquireSpinLock((Lock), (OldIrql))
#define ExReleaseSpinLock(Lock, OldIrql) KeReleaseSpinLock((Lock), (OldIrql))
#define ExAcquireSpinLockAtDpcLevel(Lock) KeAcquireSpinLockAtDpcLevel(Lock)
#define ExReleaseSpinLockFromDpcLevel(Lock) KeReleaseSpinLockFromDpcLevel(Lock)
#if (NTDDI_VERSION >= NTDDI_WS03)
NTKERNELAPI
BOOLEAN
FASTCALL
KeTestSpinLock(
IN PKSPIN_LOCK SpinLock
);
#endif
NTHALAPI
KIRQL
NTAPI
KeGetCurrentIrql(
VOID);
#if defined(_M_AMD64)
FORCEINLINE
PKTHREAD
KeGetCurrentThread (
VOID)
{
return (struct _KTHREAD *)__readgsqword(0x188);
}
#endif
#if defined(_M_IX86) || defined(_M_IA64)
NTSYSAPI
PKTHREAD
NTAPI
KeGetCurrentThread(
VOID);
#endif
/*
* VOID
/* VOID
* KeInitializeCallbackRecord(
* IN PKBUGCHECK_CALLBACK_RECORD CallbackRecord)
*/
@ -7361,42 +7398,6 @@ KeGetCurrentThread(
#define PAGED_CODE_LOCKED() NOP_FUNCTION;
#if (NTDDI_VERSION >= NTDDI_WIN2K)
NTKERNELAPI
VOID
NTAPI
ProbeForRead(
IN CONST VOID *Address, /* CONST is added */
IN SIZE_T Length,
IN ULONG Alignment);
NTKERNELAPI
VOID
NTAPI
ProbeForWrite(
IN PVOID Address,
IN SIZE_T Length,
IN ULONG Alignment);
#endif
#if defined(_X86_) || defined(_AMD64_)
/* x86 and x64 performs a 0x2C interrupt */
#define DbgRaiseAssertionFailure __int2c
#elif defined(_ARM_)
//
// TODO
//
#else
#error Unsupported Architecture
#endif
/******************************************************************************
* Memory manager Functions *
******************************************************************************/
@ -7430,32 +7431,41 @@ ProbeForWrite(
/* ULONG
* BYTE_OFFSET(
* IN PVOID Va)
* IN PVOID Va)
*/
#define BYTE_OFFSET(Va) \
((ULONG) ((ULONG_PTR) (Va) & (PAGE_SIZE - 1)))
/* ULONG
* BYTES_TO_PAGES(
* IN ULONG Size)
* IN ULONG Size)
*/
#define BYTES_TO_PAGES(Size) \
(((Size) >> PAGE_SHIFT) + (((Size) & (PAGE_SIZE - 1)) != 0))
/* PVOID
* PAGE_ALIGN(
* IN PVOID Va)
* IN PVOID Va)
*/
#define PAGE_ALIGN(Va) \
((PVOID) ((ULONG_PTR)(Va) & ~(PAGE_SIZE - 1)))
/* ULONG_PTR
* ROUND_TO_PAGES(
* IN ULONG_PTR Size)
* IN ULONG_PTR Size)
*/
#define ROUND_TO_PAGES(Size) \
(((ULONG_PTR) (Size) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1))
/* ULONG
* ADDRESS_AND_SIZE_TO_SPAN_PAGES(
* IN PVOID Va,
* IN ULONG Size)
*/
#define ADDRESS_AND_SIZE_TO_SPAN_PAGES(_Va, _Size) \
((ULONG) ((((ULONG_PTR) (_Va) & (PAGE_SIZE - 1)) \
+ (_Size) + (PAGE_SIZE - 1)) >> PAGE_SHIFT))
/*
* ULONG
* MmGetMdlByteCount(
@ -9590,6 +9600,12 @@ NTAPI
PoUnregisterSystemState(
IN OUT PVOID StateHandle);
NTKERNELAPI
NTSTATUS
NTAPI
PoRequestShutdownEvent(
OUT PVOID *Event);
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
#if (NTDDI_VERSION >= NTDDI_VISTA)
@ -9692,6 +9708,11 @@ PoCreatePowerRequest(
#define ExInterlockedDecrementLong(Addend,Lock) Exfi386InterlockedDecrementLong(Addend)
#define ExInterlockedExchangeUlong(Target, Value, Lock) Exfi386InterlockedExchangeUlong(Target, Value)
#define ExAcquireSpinLock(Lock, OldIrql) KeAcquireSpinLock((Lock), (OldIrql))
#define ExReleaseSpinLock(Lock, OldIrql) KeReleaseSpinLock((Lock), (OldIrql))
#define ExAcquireSpinLockAtDpcLevel(Lock) KeAcquireSpinLockAtDpcLevel(Lock)
#define ExReleaseSpinLockFromDpcLevel(Lock) KeReleaseSpinLockFromDpcLevel(Lock)
#define ExInitializeSListHead InitializeSListHead
#if defined(_X86_)
@ -11538,6 +11559,11 @@ extern ULONG NtGlobalFlag;
#define SERVICE_DEMAND_START 0x00000003
#define SERVICE_DISABLED 0x00000004
#ifndef _TRACEHANDLE_DEFINED
#define _TRACEHANDLE_DEFINED
typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
#endif
#ifdef __cplusplus

File diff suppressed because it is too large Load diff

107
include/ddk/wmlib.h Normal file
View file

@ -0,0 +1,107 @@
#ifndef _WMILIB_
#define _WMILIB_
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _WMIGUIDREGINFO {
LPCGUID Guid;
ULONG InstanceCount;
ULONG Flags;
} WMIGUIDREGINFO, *PWMIGUIDREGINFO;
typedef
NTSTATUS
(NTAPI WMI_QUERY_REGINFO_CALLBACK)(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PULONG RegFlags,
IN OUT PUNICODE_STRING InstanceName,
IN OUT PUNICODE_STRING *RegistryPath OPTIONAL,
IN OUT PUNICODE_STRING MofResourceName,
OUT PDEVICE_OBJECT *Pdo OPTIONAL);
typedef WMI_QUERY_REGINFO_CALLBACK *PWMI_QUERY_REGINFO;
typedef
NTSTATUS
(NTAPI WMI_QUERY_DATABLOCK_CALLBACK)(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp,
IN OUT ULONG GuidIndex,
IN ULONG InstanceIndex,
IN ULONG InstanceCount,
OUT PULONG InstanceLengthArray OPTIONAL,
IN ULONG BufferAvail,
OUT PUCHAR Buffer OPTIONAL);
typedef WMI_QUERY_DATABLOCK_CALLBACK *PWMI_QUERY_DATABLOCK;
typedef
NTSTATUS
(NTAPI WMI_SET_DATABLOCK_CALLBACK)(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp,
IN ULONG GuidIndex,
IN ULONG InstanceIndex,
IN ULONG BufferSize,
IN PUCHAR Buffer);
typedef WMI_SET_DATABLOCK_CALLBACK *PWMI_SET_DATABLOCK;
typedef
NTSTATUS
(NTAPI WMI_SET_DATAITEM_CALLBACK)(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp,
IN ULONG GuidIndex,
IN ULONG InstanceIndex,
IN ULONG DataItemId,
IN ULONG BufferSize,
IN PUCHAR Buffer);
typedef WMI_SET_DATAITEM_CALLBACK *PWMI_SET_DATAITEM;
typedef
NTSTATUS
(NTAPI WMI_EXECUTE_METHOD_CALLBACK)(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp,
IN ULONG GuidIndex,
IN ULONG InstanceIndex,
IN ULONG MethodId,
IN ULONG InBufferSize,
IN ULONG OutBufferSize,
IN OUT PUCHAR Buffer);
typedef WMI_EXECUTE_METHOD_CALLBACK *PWMI_EXECUTE_METHOD;
typedef
NTSTATUS
(NTAPI WMI_FUNCTION_CONTROL_CALLBACK)(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp,
IN ULONG GuidIndex,
IN WMIENABLEDISABLECONTROL Function,
IN BOOLEAN Enable);
typedef WMI_FUNCTION_CONTROL_CALLBACK *PWMI_FUNCTION_CONTROL;
typedef struct _WMILIB_CONTEXT {
ULONG GuidCount;
PWMIGUIDREGINFO GuidList;
PWMI_QUERY_REGINFO QueryWmiRegInfo;
PWMI_QUERY_DATABLOCK QueryWmiDataBlock;
PWMI_SET_DATABLOCK SetWmiDataBlock;
PWMI_SET_DATAITEM SetWmiDataItem;
PWMI_EXECUTE_METHOD ExecuteWmiMethod;
PWMI_FUNCTION_CONTROL WmiFunctionControl;
} WMILIB_CONTEXT, *PWMILIB_CONTEXT;
#ifdef __cplusplus
}
#endif
#endif /* !_WMILIB_ */

View file

@ -74,6 +74,14 @@ ObCreateObjectType(
OUT POBJECT_TYPE *ObjectType
);
NTKERNELAPI
VOID
NTAPI
ObDereferenceSecurityDescriptor(
PSECURITY_DESCRIPTOR SecurityDescriptor,
ULONG Count
);
NTKERNELAPI
ULONG
NTAPI
@ -81,6 +89,15 @@ ObGetObjectPointerCount(
IN PVOID Object
);
NTKERNELAPI
NTSTATUS
NTAPI
ObLogSecurityDescriptor(
IN PSECURITY_DESCRIPTOR InputSecurityDescriptor,
OUT PSECURITY_DESCRIPTOR *OutputSecurityDescriptor,
IN ULONG RefBias
);
NTKERNELAPI
NTSTATUS
NTAPI
@ -108,6 +125,14 @@ ObReferenceObjectByName(
OUT PVOID *Object
);
NTKERNELAPI
VOID
NTAPI
ObReferenceSecurityDescriptor(
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN ULONG Count
);
NTKERNELAPI
NTSTATUS
NTAPI

View file

@ -274,10 +274,10 @@ NTSTATUS
DDKAPI
BatteryClassSystemControl(
IN PVOID ClassData,
IN PWMILIB_CONTEXT WmiLibContext,
IN PVOID WmiLibContext, /* PWMILIB_CONTEXT */
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
OUT PSYSCTL_IRP_DISPOSITION Disposition);
OUT PVOID Disposition); /* PSYSCTL_IRP_DISPOSITION */
BCLASSAPI
NTSTATUS

267
include/psdk/dpfilter.h Normal file
View file

@ -0,0 +1,267 @@
#define DPFLTR_ERROR_LEVEL 0
#define DPFLTR_WARNING_LEVEL 1
#define DPFLTR_TRACE_LEVEL 2
#define DPFLTR_INFO_LEVEL 3
#define DPFLTR_MASK 0x80000000
#if 1
typedef enum _DPFLTR_TYPE
{
DPFLTR_SYSTEM_ID = 0,
DPFLTR_SMSS_ID = 1,
DPFLTR_SETUP_ID = 2,
DPFLTR_NTFS_ID = 3,
DPFLTR_FSTUB_ID = 4,
DPFLTR_CRASHDUMP_ID = 5,
DPFLTR_CDAUDIO_ID = 6,
DPFLTR_CDROM_ID = 7,
DPFLTR_CLASSPNP_ID = 8,
DPFLTR_DISK_ID = 9,
DPFLTR_REDBOOK_ID = 10,
DPFLTR_STORPROP_ID = 11,
DPFLTR_SCSIPORT_ID = 12,
DPFLTR_SCSIMINIPORT_ID = 13,
DPFLTR_CONFIG_ID = 14,
DPFLTR_I8042PRT_ID = 15,
DPFLTR_SERMOUSE_ID = 16,
DPFLTR_LSERMOUS_ID = 17,
DPFLTR_KBDHID_ID = 18,
DPFLTR_MOUHID_ID = 19,
DPFLTR_KBDCLASS_ID = 20,
DPFLTR_MOUCLASS_ID = 21,
DPFLTR_TWOTRACK_ID = 22,
DPFLTR_WMILIB_ID = 23,
DPFLTR_ACPI_ID = 24,
DPFLTR_AMLI_ID = 25,
DPFLTR_HALIA64_ID = 26,
DPFLTR_VIDEO_ID = 27,
DPFLTR_SVCHOST_ID = 28,
DPFLTR_VIDEOPRT_ID = 29,
DPFLTR_TCPIP_ID = 30,
DPFLTR_DMSYNTH_ID = 31,
DPFLTR_NTOSPNP_ID = 32,
DPFLTR_FASTFAT_ID = 33,
DPFLTR_SAMSS_ID = 34,
DPFLTR_PNPMGR_ID = 35,
DPFLTR_NETAPI_ID = 36,
DPFLTR_SCSERVER_ID = 37,
DPFLTR_SCCLIENT_ID = 38,
DPFLTR_SERIAL_ID = 39,
DPFLTR_SERENUM_ID = 40,
DPFLTR_UHCD_ID = 41,
DPFLTR_BOOTOK_ID = 42,
DPFLTR_BOOTVRFY_ID = 43,
DPFLTR_RPCPROXY_ID = 44,
DPFLTR_AUTOCHK_ID = 45,
DPFLTR_DCOMSS_ID = 46,
DPFLTR_UNIMODEM_ID = 47,
DPFLTR_SIS_ID = 48,
DPFLTR_FLTMGR_ID = 49,
DPFLTR_WMICORE_ID = 50,
DPFLTR_BURNENG_ID = 51,
DPFLTR_IMAPI_ID = 52,
DPFLTR_SXS_ID = 53,
DPFLTR_FUSION_ID = 54,
DPFLTR_IDLETASK_ID = 55,
DPFLTR_SOFTPCI_ID = 56,
DPFLTR_TAPE_ID = 57,
DPFLTR_MCHGR_ID = 58,
DPFLTR_IDEP_ID = 59,
DPFLTR_PCIIDE_ID = 60,
DPFLTR_FLOPPY_ID = 61,
DPFLTR_FDC_ID = 62,
DPFLTR_TERMSRV_ID = 63,
DPFLTR_W32TIME_ID = 64,
DPFLTR_PREFETCHER_ID = 65,
DPFLTR_RSFILTER_ID = 66,
DPFLTR_FCPORT_ID = 67,
DPFLTR_PCI_ID = 68,
DPFLTR_DMIO_ID = 69,
DPFLTR_DMCONFIG_ID = 70,
DPFLTR_DMADMIN_ID = 71,
DPFLTR_WSOCKTRANSPORT_ID = 72,
DPFLTR_VSS_ID = 73,
DPFLTR_PNPMEM_ID = 74,
DPFLTR_PROCESSOR_ID = 75,
DPFLTR_DMSERVER_ID = 76,
DPFLTR_SR_ID = 77,
DPFLTR_INFINIBAND_ID = 78,
DPFLTR_IHVDRIVER_ID = 79,
DPFLTR_IHVVIDEO_ID = 80,
DPFLTR_IHVAUDIO_ID = 81,
DPFLTR_IHVNETWORK_ID = 82,
DPFLTR_IHVSTREAMING_ID = 83,
DPFLTR_IHVBUS_ID = 84,
DPFLTR_HPS_ID = 85,
DPFLTR_RTLTHREADPOOL_ID = 86,
DPFLTR_LDR_ID = 87,
DPFLTR_TCPIP6_ID = 88,
DPFLTR_ISAPNP_ID = 89,
DPFLTR_SHPC_ID = 90,
DPFLTR_STORPORT_ID = 91,
DPFLTR_STORMINIPORT_ID = 92,
DPFLTR_PRINTSPOOLER_ID = 93,
DPFLTR_VDS_ID = 94,
DPFLTR_VDSBAS_ID = 95,
DPFLTR_VDSDYNDR_ID = 96,
DPFLTR_VDSUTIL_ID = 97,
DPFLTR_DFRGIFC_ID = 98,
DPFLTR_DEFAULT_ID = 99,
DPFLTR_MM_ID = 100,
DPFLTR_DFSC_ID = 101,
DPFLTR_WOW64_ID = 102,
DPFLTR_ENDOFTABLE_ID
} DPFLTR_TYPE;
#else
typedef enum _DPFLTR_TYPE
{
DPFLTR_SYSTEM_ID = 0,
DPFLTR_SMSS_ID = 1,
DPFLTR_SETUP_ID = 2,
DPFLTR_NTFS_ID = 3,
DPFLTR_FSTUB_ID = 4,
DPFLTR_CRASHDUMP_ID = 5,
DPFLTR_CDAUDIO_ID = 6,
DPFLTR_CDROM_ID = 7,
DPFLTR_CLASSPNP_ID = 8,
DPFLTR_DISK_ID = 9,
DPFLTR_REDBOOK_ID = 10,
DPFLTR_STORPROP_ID = 11,
DPFLTR_SCSIPORT_ID = 12,
DPFLTR_SCSIMINIPORT_ID = 13,
DPFLTR_CONFIG_ID = 14,
DPFLTR_I8042PRT_ID = 15,
DPFLTR_SERMOUSE_ID = 16,
DPFLTR_LSERMOUS_ID = 17,
DPFLTR_KBDHID_ID = 18,
DPFLTR_MOUHID_ID = 19,
DPFLTR_KBDCLASS_ID = 20,
DPFLTR_MOUCLASS_ID = 21,
DPFLTR_TWOTRACK_ID = 22,
DPFLTR_WMILIB_ID = 23,
DPFLTR_ACPI_ID = 24,
DPFLTR_AMLI_ID = 25,
DPFLTR_HALIA64_ID = 26,
DPFLTR_VIDEO_ID = 27,
DPFLTR_SVCHOST_ID = 28,
DPFLTR_VIDEOPRT_ID = 29,
DPFLTR_TCPIP_ID = 30,
DPFLTR_DMSYNTH_ID = 31,
DPFLTR_NTOSPNP_ID = 32,
DPFLTR_FASTFAT_ID = 33,
DPFLTR_SAMSS_ID = 34,
DPFLTR_PNPMGR_ID = 35,
DPFLTR_NETAPI_ID = 36,
DPFLTR_SCSERVER_ID = 37,
DPFLTR_SCCLIENT_ID = 38,
DPFLTR_SERIAL_ID = 39,
DPFLTR_SERENUM_ID = 40,
DPFLTR_UHCD_ID = 41,
DPFLTR_RPCPROXY_ID = 42,
DPFLTR_AUTOCHK_ID = 43,
DPFLTR_DCOMSS_ID = 44,
DPFLTR_UNIMODEM_ID = 45,
DPFLTR_SIS_ID = 46,
DPFLTR_FLTMGR_ID = 47,
DPFLTR_WMICORE_ID = 48,
DPFLTR_BURNENG_ID = 49,
DPFLTR_IMAPI_ID = 50,
DPFLTR_SXS_ID = 51,
DPFLTR_FUSION_ID = 52,
DPFLTR_IDLETASK_ID = 53,
DPFLTR_SOFTPCI_ID = 54,
DPFLTR_TAPE_ID = 55,
DPFLTR_MCHGR_ID = 56,
DPFLTR_IDEP_ID = 57,
DPFLTR_PCIIDE_ID = 58,
DPFLTR_FLOPPY_ID = 59,
DPFLTR_FDC_ID = 60,
DPFLTR_TERMSRV_ID = 61,
DPFLTR_W32TIME_ID = 62,
DPFLTR_PREFETCHER_ID = 63,
DPFLTR_RSFILTER_ID = 64,
DPFLTR_FCPORT_ID = 65,
DPFLTR_PCI_ID = 66,
DPFLTR_DMIO_ID = 67,
DPFLTR_DMCONFIG_ID = 68,
DPFLTR_DMADMIN_ID = 69,
DPFLTR_WSOCKTRANSPORT_ID = 70,
DPFLTR_VSS_ID = 71,
DPFLTR_PNPMEM_ID = 72,
DPFLTR_PROCESSOR_ID = 73,
DPFLTR_DMSERVER_ID = 74,
DPFLTR_SR_ID = 75,
DPFLTR_INFINIBAND_ID = 76,
DPFLTR_IHVDRIVER_ID = 77,
DPFLTR_IHVVIDEO_ID = 78,
DPFLTR_IHVAUDIO_ID = 79,
DPFLTR_IHVNETWORK_ID = 80,
DPFLTR_IHVSTREAMING_ID = 81,
DPFLTR_IHVBUS_ID = 82,
DPFLTR_HPS_ID = 83,
DPFLTR_RTLTHREADPOOL_ID = 84,
DPFLTR_LDR_ID = 85,
DPFLTR_TCPIP6_ID = 86,
DPFLTR_ISAPNP_ID = 87,
DPFLTR_SHPC_ID = 88,
DPFLTR_STORPORT_ID = 89,
DPFLTR_STORMINIPORT_ID = 90,
DPFLTR_PRINTSPOOLER_ID = 91,
DPFLTR_VSSDYNDISK_ID = 92,
DPFLTR_VERIFIER_ID = 93,
DPFLTR_VDS_ID = 94,
DPFLTR_VDSBAS_ID = 95,
DPFLTR_VDSDYN_ID = 96,
DPFLTR_VDSDYNDR_ID = 97,
DPFLTR_VDSLDR_ID = 98,
DPFLTR_VDSUTIL_ID = 99,
DPFLTR_DFRGIFC_ID = 100,
DPFLTR_DEFAULT_ID = 101,
DPFLTR_MM_ID = 102,
DPFLTR_DFSC_ID = 103,
DPFLTR_WOW64_ID = 104,
DPFLTR_ALPC_ID = 105,
DPFLTR_WDI_ID = 106,
DPFLTR_PERFLIB_ID = 107,
DPFLTR_KTM_ID = 108,
DPFLTR_IOSTRESS_ID = 109,
DPFLTR_HEAP_ID = 110,
DPFLTR_WHEA_ID = 111,
DPFLTR_USERGDI_ID = 112,
DPFLTR_MMCSS_ID = 113,
DPFLTR_TPM_ID = 114,
DPFLTR_THREADORDER_ID = 115,
DPFLTR_ENVIRON_ID = 116,
DPFLTR_EMS_ID = 117,
DPFLTR_WDT_ID = 118,
DPFLTR_FVEVOL_ID = 119,
DPFLTR_NDIS_ID = 120,
DPFLTR_NVCTRACE_ID = 121,
DPFLTR_LUAFV_ID = 122,
DPFLTR_APPCOMPAT_ID = 123,
DPFLTR_USBSTOR_ID = 124,
DPFLTR_SBP2PORT_ID = 125,
DPFLTR_COVERAGE_ID = 126,
DPFLTR_CACHEMGR_ID = 127,
DPFLTR_MOUNTMGR_ID = 128,
DPFLTR_CFR_ID = 129,
DPFLTR_TXF_ID = 130,
DPFLTR_KSECDD_ID = 131,
DPFLTR_FLTREGRESS_ID = 132,
DPFLTR_MPIO_ID = 133,
DPFLTR_MSDSM_ID = 134,
DPFLTR_UDFS_ID = 135,
DPFLTR_PSHED_ID = 136,
DPFLTR_STORVSP_ID = 137,
DPFLTR_LSASS_ID = 138,
DPFLTR_SSPICLI_ID = 139,
DPFLTR_CNG_ID = 140,
DPFLTR_EXFAT_ID = 141,
DPFLTR_FILETRACE_ID = 142,
DPFLTR_XSAVE_ID = 143,
DPFLTR_SE_ID = 144,
DPFLTR_DRIVEEXTENDER_ID = 145,
DPFLTR_ENDOFTABLE_ID
} DPFLTR_TYPE;
#endif

View file

@ -167,6 +167,10 @@ typedef enum _WAIT_TYPE {
#define UNALIGNED
#define RESTRICTED_POINTER
#define ARGUMENT_PRESENT(ArgumentPointer) \
((CHAR*)((ULONG_PTR)(ArgumentPointer)) != (CHAR*)NULL)
//
// Returns the base address of a structure from a structure member
//
@ -676,6 +680,13 @@ typedef struct _PROCESSOR_NUMBER {
UCHAR Reserved;
} PROCESSOR_NUMBER, *PPROCESSOR_NUMBER;
typedef EXCEPTION_DISPOSITION
(DDKAPI *PEXCEPTION_ROUTINE)(
IN struct _EXCEPTION_RECORD *ExceptionRecord,
IN PVOID EstablisherFrame,
IN OUT struct _CONTEXT *ContextRecord,
IN OUT PVOID DispatcherContext);
//
// Helper Macros