阅读:2252回复:1
IoGetDeviceObjectPointer 使用中的问题
void GetKeyboardClass0()
{ PDEVICE_OBJECT pdo=0; UNICODE_STRING KeyboardDeviceName; PFILE_OBJECT pfo=0; PDRIVER_OBJECT pdrv=0; NTSTATUS status= STATUS_UNSUCCESSFUL; RtlInitUnicodeString( &KeyboardDeviceName, L"\\Device\\KeyboardClass0"); status = IoGetDeviceObjectPointer( &KeyboardDeviceName, FILE_ALL_ACCESS, &pfo, &pdo ); if (NT_SUCCESS(status)) { ObDereferenceObject(pfo); pdrv= pdo->DriverObject; DbgPrint( " %ws",pdrv->DriverName.Buffer); // "\Driver\Ctrl2cap" } } 本来期望结果是 KeyboardClass0 ,但当安装了键盘过滤驱动 Ctrl2cap 后 ,得到的结果是 Ctrl2cap . 在安装了ctrl2cap 的情况下 ,怎样写才能得到 KeyboardClass0 ? 谢谢。谢谢。 |
|
沙发#
发布于:2010-02-07 14:41
这个函数是得到你给的名字的设备栈的顶端设备,当然是过滤驱动了
|
|
|