2013-10-06 5 views
1

Я пишу свой первый драйвер устройства.DriverEntry caller

Я пытаюсь выяснить, какой процесс генерировал данный IRP.

Obj->MajorFunction[IRP_MJ_DIRECTORY_CONTROL] = dirCtl; 

NTSTATUS dirCtl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp); 

Учитывая DeviceObject/Irp, как я могу узнать, какой процесс пользовательской земли пытался запросить каталог? (например, explorer.exe)

ответ

1

В большинстве случаев PsGetCurrentProcessId() будет делать трюк, так как ядро ​​фактически находится в пространстве памяти процесса.