extern BOOLEAN KmtIsCheckedBuild;
extern BOOLEAN KmtIsMultiProcessorBuild;
extern PCSTR KmtMajorFunctionNames[];
+extern PDRIVER_OBJECT KmtDriverObject;
VOID KmtSetIrql(IN KIRQL NewIrql);
BOOLEAN KmtAreInterruptsEnabled(VOID);
/* Globals */
static PDEVICE_OBJECT MainDeviceObject;
+PDRIVER_OBJECT KmtDriverObject = NULL;
/* Entry */
/**
Prcb = KeGetCurrentPrcb();
KmtIsCheckedBuild = (Prcb->BuildType & PRCB_BUILD_DEBUG) != 0;
KmtIsMultiProcessorBuild = (Prcb->BuildType & PRCB_BUILD_UNIPROCESSOR) == 0;
+ KmtDriverObject = DriverObject;
RtlInitUnicodeString(&DeviceName, KMTEST_DEVICE_DRIVER_PATH);
Status = IoCreateDevice(DriverObject, sizeof(KMT_DEVICE_EXTENSION),
ExReleaseFastMutex(Mutex);
CheckMutex(Mutex, 1L, NULL, 0LU, OriginalIrql, OriginalIrql);
-#ifdef _M_X86
+#ifdef _M_IX86
/* ntoskrnl's fastcall version */
ExiAcquireFastMutex(Mutex);
CheckMutex(Mutex, 0L, Thread, 0LU, OriginalIrql, APC_LEVEL);
/* on x86, you can raise to _any_ possible KIRQL value */
/* on x64, anything with more than the least significant 4 bits set bugchecked, last time I tried */
/* TODO: other platforms? */
-#if defined _M_X86
+#if defined _M_IX86
for (Irql = PASSIVE_LEVEL; Irql <= (KIRQL)-1; ++Irql)
{
DPRINT("Raising to %u\n", Irql);
KeLowerIrql(Irql2);
ok_irql(PrevIrql);
}
-#endif /* defined _M_X86 */
+#endif /* defined _M_IX86 */
/* test KeRaiseIrqlToDpcLevel */
ok_irql(PASSIVE_LEVEL);