Я пишу драйвер, который прослушивает запросы на определенных устройствах, регистрируясь на EvtIoDeviceControl.
DF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE(&IoCallbacks, WdfIoQueueDispatchParallel);
IoCallbacks.PowerManaged = WdfFalse;
IoCallbacks.EvtIoDeviceControl = EvtIoDeviceControlCallback;
На Windows 10 (KMDF 1.21) я могу использовать WdfRequestGetRequestorProcessId
чтобы получить идентификатор процесса, который сделал запрос в EvtIoDeviceControlCallback, но у меня не получается найти способ сделать это в более ранних версиях KMDF. Любое понимание?
ты можешь использовать WdfRequestWdmGetIrp
(Минимальная версия KMDF 1.0) а также IoGetRequestorProcessId
так просто используйте
ULONG WdfRequestGetRequestorProcessId_1_0(WDFREQUEST Request)
{
return IoGetRequestorProcessId(WdfRequestWdmGetIrp(Request));
}
Других решений пока нет …