2,640
社区成员
发帖
与我相关
我的任务
分享
case IOCTL_QQKEYBOARD_EVENT:
{
KdPrint(("[QQKeyBoard] IOCTL_QQKEYBOARD_EVENT"));
hUserEvent = *(HANDLE*)pIrp->AssociatedIrp.SystemBuffer;
pKeyboardDeviceExtension->hUserEvent = hUserEvent;
status = ObReferenceObjectByHandle(pKeyboardDeviceExtension->hUserEvent, EVENT_MODIFY_STATE, *ExEventObjectType,
KernelMode, (PVOID*)&pEvent, NULL);
if( NT_SUCCESS(status) )
{
KeSetEvent(pEvent, IO_NO_INCREMENT, FALSE);
pKeyboardDeviceExtension->hUserEvent = NULL;
ObDereferenceObject(pEvent);
KdPrint(("[QQKeyBoard] KeSetEvent FINISHED!"));
}
else
{
KdPrint(("[QQKeyBoard] stop log keyboard ObReferenceObjectByHandle failed! error code %u", status));
}
break;
}