Hi, everyone. I do a test: "pause" all registry operations, then "resume".
OS: WIN8X64/WIN8.1X64
I define a global variable:
IF I CALL THIS CODE IN driver dispatch routine:
IF I use the same code in CreateProcessNotify/CreateThreadNotify/LoadImageNotify, that is all OK. No exception occurs.
OS: WIN8X64/WIN8.1X64
I define a global variable:
Code: Select all
I initialize it in DriverEntry: KEVENT gTestNotifyEvent
Code: Select all
I use this code in RegistryCallback: KeInitializeEvent(&gTestNotifyEvent,NotificationEvent,TRUE);
Code: Select all
Then, I call this code in driver dispatch routine: KeWaitForSingleObject(&gTestNotifyEvent,Executive,KernelMode,0,0);
Code: Select all
Before next step, all things are OK.KeClearEvent(&gTestNotifyEvent);
IF I CALL THIS CODE IN driver dispatch routine:
Code: Select all
The system "freeze" immediately. NO BSOD, not response for any operations.KeSetEvent(&gTestNotifyEvent, IO_NO_INCREMENT, FALSE);
IF I use the same code in CreateProcessNotify/CreateThreadNotify/LoadImageNotify, that is all OK. No exception occurs.