阅读:1328回复:2
用事件同步驱动的问题,请赐教!![]() 驱动: case CTRLMON_sendevent: sendhEvent = *(HANDLE *)InputBuffer; IoStatus->Status =ObReferenceObjectByHandle(sendhEvent,GENERIC_ALL,NULL, KernelMode, &gpSendEventObject, &sendobjHandleInfo); if(gpSendEventObject) DbgPrint("gpSendEventObject\n"); break; case CTRLMON_receiveevent: receivehEvent = *(HANDLE *)InputBuffer; DbgPrint("CTRLMON_receiveevent\n"); IoStatus->Status =ObReferenceObjectByHandle(receivehEvent,GENERIC_ALL,NULL, KernelMode, &gpReceiveEventObject, &receiveobjHandleInfo); switch (IoStatus->Status){ case STATUS_SUCCESS :DbgPrint("STATUS_SUCCESS\n");break; case STATUS_OBJECT_TYPE_MISMATCH:DbgPrint("STATUS_OBJECT_TYPE_MISMATCH\n");break; case STATUS_ACCESS_DENIED:DbgPrint("STATUS_ACCESS_DENIED\n");break; case STATUS_INVALID_HANDLE:DbgPrint("STATUS_INVALID_HANDLE\n");break; default :DbgPrint("1111111\n");break; } if(gpReceiveEventObject) DbgPrint("gpReceiveEventObject\n"); break; 应用: if sendhandle=0 then begin sendhandle:=CreateEvent(nil,false,false,'Send'); DeviceIoControl(hDevice,CTRLMON_sendevent, @sendhandle,4,nil,0, dwBytesReturned,nil); end; if receivehandle=0 then begin receivehandle:=CreateEvent(nil,false,false,'Receive'); DeviceIoControl(hDevice,CTRLMON_receiveevent,nil,0,@receivehandle,4,dwBytesReturned,nil); end; |
|
沙发#
发布于:2009-03-08 17:18
参数给错了
|
|
|
板凳#
发布于:2009-03-08 16:50
已解决,谢谢
|
|