#define WaitAny 1
typedef HANDLE TRACEHANDLE;
typedef PVOID PWMILIB_CONTEXT;
-typedef PVOID PSYSCTL_IRP_DISPOSITION;
typedef ULONG LOGICAL;
#endif
+/*
+** WmiLib specific structure
+*/
+typedef enum
+{
+ IrpProcessed, // Irp was processed and possibly completed
+ IrpNotCompleted, // Irp was process and NOT completed
+ IrpNotWmi, // Irp is not a WMI irp
+ IrpForward // Irp is wmi irp, but targeted at another device object
+} SYSCTL_IRP_DISPOSITION, *PSYSCTL_IRP_DISPOSITION;
+
/*
** Routines specific to this DDK
*/
#define MAXIMUM_SUSPEND_COUNT MAXCHAR
+#define MAXIMUM_FILENAME_LENGTH 256
+
#define FILE_SUPERSEDED 0x00000000
#define FILE_OPENED 0x00000001
#define FILE_CREATED 0x00000002
extern volatile KSYSTEM_TIME KeTickCount;
+#define NX_SUPPORT_POLICY_ALWAYSOFF 0
+#define NX_SUPPORT_POLICY_ALWAYSON 1
+#define NX_SUPPORT_POLICY_OPTIN 2
+#define NX_SUPPORT_POLICY_OPTOUT 3
+
typedef struct _KUSER_SHARED_DATA
{
ULONG TickCountLowDeprecated;
IN PVOID MapRegisterBase,
IN PVOID Context);
+
+typedef struct _EXCEPTION_RECORD32
+{
+ NTSTATUS ExceptionCode;
+ ULONG ExceptionFlags;
+ ULONG ExceptionRecord;
+ ULONG ExceptionAddress;
+ ULONG NumberParameters;
+ ULONG ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
+} EXCEPTION_RECORD32, *PEXCEPTION_RECORD32;
+
+typedef struct _EXCEPTION_RECORD64
+{
+ NTSTATUS ExceptionCode;
+ ULONG ExceptionFlags;
+ ULONG64 ExceptionRecord;
+ ULONG64 ExceptionAddress;
+ ULONG NumberParameters;
+ ULONG __unusedAlignment;
+ ULONG64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
+} EXCEPTION_RECORD64, *PEXCEPTION_RECORD64;
+
typedef EXCEPTION_DISPOSITION
(DDKAPI *PEXCEPTION_ROUTINE)(
IN struct _EXCEPTION_RECORD *ExceptionRecord,
IN PKSPIN_LOCK SpinLock,
IN KIRQL NewIrql);
+NTKERNELAPI
+BOOLEAN
+FASTCALL
+KeTryToAcquireSpinLockAtDpcLevel(
+ IN OUT PKSPIN_LOCK SpinLock
+);
+
#define KeAcquireSpinLockAtDpcLevel(SpinLock) KefAcquireSpinLockAtDpcLevel(SpinLock)
#define KeReleaseSpinLockFromDpcLevel(SpinLock) KefReleaseSpinLockFromDpcLevel(SpinLock)
#define KeAcquireSpinLock(a,b) *(b) = KfAcquireSpinLock(a)
*/
#define ARGUMENT_PRESENT(ArgumentPointer) \
- ((BOOLEAN) ((PVOID)ArgumentPointer != (PVOID)NULL))
+ ((CHAR*)((ULONG_PTR)(ArgumentPointer)) != (CHAR*)NULL)
/*
* ULONG
#define RtlZeroBytes RtlZeroMemory
#endif
+NTKERNELAPI
+BOOLEAN
+NTAPI
+KeAreAllApcsDisabled(
+ VOID
+);
/* Guarded Mutex routines */
IN OUT PKGUARDED_MUTEX GuardedMutex
);
+NTKERNELAPI
+BOOLEAN
+FASTCALL
+ExAcquireRundownProtectionEx(
+ IN OUT PEX_RUNDOWN_REF RunRef,
+ IN ULONG Count
+);
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExReleaseRundownProtectionEx(
+ IN OUT PEX_RUNDOWN_REF RunRef,
+ IN ULONG Count
+);
+
/* Fast Mutex */
#define ExInitializeFastMutex(_FastMutex) \
{ \
/** WMI library support routines **/
-NTKERNELAPI
NTSTATUS
NTAPI
WmiCompleteRequest(
IN ULONG BufferUsed,
IN CCHAR PriorityBoost);
-NTKERNELAPI
NTSTATUS
NTAPI
WmiFireEvent(
OUT PULONG RequiredLength OPTIONAL,
IN PVOID Buffer OPTIONAL);
-NTKERNELAPI
NTSTATUS
NTAPI
WmiSystemControl(