阅读:2456回复:1
请教,KeSetEvent蓝屏
我首先由应用层调用CreateEvent创建事件
SharedEvent = CreateEvent(NULL, TRUE, FALSE, "SharedEvent"); 然后通过DeviceIoControl将事件名称发送到驱动 DeviceIoControl(DeviceDriver, IOCTL_OPEN_EVENT, NULL, 0, NULL, 0, &bytesReturned, NULL); 内核程序在IOCTL_OPEN_EVENT的处理中 HANDLE SharedEventHandle = NULL;PKEVENT SharedEvent = NULL; UNICODE_STRING EventName; RtlInitUnicodeString(&EventName, L"\BaseNamedObjects\SharedEvent"); SharedEvent = IoCreateNotificationEvent(&EventName, &SharedEventHandle); if (SharedEvent != NULL) { Status = STATUS_SUCCESS; } else { Status = STATUS_UNSUCCESSFUL; } 然后我想在IRP_MN_START_DEVICE事件发生的时候设置该事件 KeSetEvent(SharedEvent,0,FALSE); 大部分时候插入U盘时候正常,但是有的时候慧蓝屏 提示:IRQL_NOT_LESS_OR_EQUAL 请问怎么回事? |
|
沙发#
发布于:2007-04-27 17:12
If Wait is set to FALSE, the caller can be running at IRQL <= DISPATCH_LEVEL. Otherwise, callers of KeSetEvent must be running at IRQL PASSIVE_LEVEL and in a nonarbitrary thread context.
大概是这个意思吧, 不知道怎么用的 |
|
|