WDK:通过name.exe获取processId

时间:2010-08-07 21:41:43

标签: c windows process kernel driver

我正在Windows过滤平台中开发一个驱动程序,我需要另一个进程的进程ID来完成我需要做的事情。我只知道该进程的文件名(name.exe)。

在win32中,我可以使用CreateToolhelp32Snapshot函数来获取所有进程的列表,我可以在那里搜索PID。 (http://msdn.microsoft.com/en-us/library/ms684834(VS.85).aspx

不幸的是在内核模式下这个东西不可用。任何人都知道如何通过内核空间获取只知道二进制名称的processID?

1 个答案:

答案 0 :(得分:0)

根据时间安排,您似乎可以使用自己的PsSetCreateProcessNotifyRoutineEx()处理程序调用{​​{1}}。然后,您的CreateProcessNotifyEx()会收到指向CreateProcessNotifyEx()的指针。在此结构中,字段PS_CREATE_NOTIFY_INFO以及位ImageFileName

程序名称将位于FileOpenNameAvailable指向的Unicode字符串中。如果ImageFileName,那么该字符串将包含二进制文件的完全限定路径。否则,期望只找到模块名称,可能没有扩展名。