KMDF 1.11获取发起请求的进程

时间:2018-01-19 15:17:50

标签: c++ windows kmdf

我正在编写一个驱动程序,通过注册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。有什么见解吗?

1 个答案:

答案 0 :(得分:1)

您可以使用WdfRequestWdmGetIrp最低KMDF版本1.0 )和IoGetRequestorProcessId

所以简单地使用

ULONG WdfRequestGetRequestorProcessId_1_0(WDFREQUEST Request)
{
    return IoGetRequestorProcessId(WdfRequestWdmGetIrp(Request));
}