我正在编写一个驱动程序,通过注册EvtIoDeviceControl来侦听特定设备上的请求。
DF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE(&IoCallbacks, WdfIoQueueDispatchParallel);
IoCallbacks.PowerManaged = WdfFalse;
IoCallbacks.EvtIoDeviceControl = EvtIoDeviceControlCallback;
在Windows 10(KMDF 1.21)上,我可以使用WdfRequestGetRequestorProcessId
来获取在EvtIoDeviceControlCallback中发出请求的进程的进程ID,但是我在找到执行此操作的方法时遇到了问题早期版本的KMDF。有什么见解吗?
答案 0 :(得分:1)
您可以使用WdfRequestWdmGetIrp
(最低KMDF版本1.0 )和IoGetRequestorProcessId
所以简单地使用
ULONG WdfRequestGetRequestorProcessId_1_0(WDFREQUEST Request)
{
return IoGetRequestorProcessId(WdfRequestWdmGetIrp(Request));
}