mirror of
https://github.com/reactos/reactos.git
synced 2025-02-21 16:04:57 +00:00
[PSDK]
- 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:
parent
89a27c5264
commit
16e291bd53
9 changed files with 888 additions and 1791 deletions
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
1541
include/ddk/winddk.h
1541
include/ddk/winddk.h
File diff suppressed because it is too large
Load diff
107
include/ddk/wmlib.h
Normal file
107
include/ddk/wmlib.h
Normal 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_ */
|
||||
|
|
@ -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
|
||||
|
|
|
@ -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
267
include/psdk/dpfilter.h
Normal 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
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue