#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
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)
/** 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(