设备驱动程序和模块相似,因为它们都基于 PE 文件。 但是,虽然每个进程都有自己的已加载模块专用列表,但设备驱动程序具有系统全局的模块。 因此,PSAPI 具有用于获取设备驱动程序列表及其名称的特定功能。
可以通过调用 EnumDeviceDrivers 函数来检索每个设备驱动程序的加载地址。 此函数使用系统中所有设备驱动程序的负载地址填充 LPVOID 值的数组。
GetDeviceDriverBaseName 函数采用驱动程序加载地址作为输入,并使用驱动程序的基名称填充缓冲区(例如,Win32k.sys)。 相关函数 GetDeviceDriverFileName,采用相同的参数并返回设备驱动程序的路径(例如,C:\Windows\System32\Win32k.sys)。