KMDF 1.11 Get 发起请求的流程

KMDF 1.11 Get process that initiates request

我正在编写一个驱动程序,通过注册 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 (Minimum KMDF version 1.0) and IoGetRequestorProcessId

所以只需使用

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