我正在编写一个驱动程序,通过注册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。有见识吗? 最佳答案
您可以使用WdfRequestWdmGetIrp
(最低KMDF版本1.0)和IoGetRequestorProcessId
所以简单地使用
ULONG WdfRequestGetRequestorProcessId_1_0(WDFREQUEST Request)
{
return IoGetRequestorProcessId(WdfRequestWdmGetIrp(Request));
}