windows - 从 NT/设备名称获取文件路径

标签 windows device wdm

我想将设备路径转换为文件路径。

我想通过进程id获取进程名,所以我用的是这段代码

PsLookupProcessByProcessId(processId,&pEProcess);
ObOpenObjectByPointer(pEProcess,
                      OBJ_KERNEL_HANDLE,
                      NULL,
                      0,
                      NULL,
                      KernelMode,
                      &hProcess);
ObDereferenceObject (pEProcess);

nts = ZwQueryInformationProcess (hProcess,27,0,0,&ulSize);

但它给出的路径为 \Device\hardDiskVolume1\windows\system32\taskmgr.exe

但我希望将其作为普通文件名C:\windows\system32\taskmgr.exe

最佳答案

Dr. Dobb's(Jim Conyngham 的 NT Handle-to-Path Conversion)中有一篇文章描述了从句柄获取 DOS 路径名的方法:参见 listingGetFileNameFromHandleNT()

在您的情况下,由于您已经拥有设备路径,因此您不需要执行 handle-to-memory-map-to-get-device-path 工作的代码的初始部分。

关于windows - 从 NT/设备名称获取文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3636081/

相关文章:

linux - pdf = rs.getBytes ("pdf");它在 Windows 操作系统中不起作用。从 postgres bytea 字段读取二进制数据的替代方法是什么

database - PostgreSQL 图形安装程序 : The specified service does not exist as an installed service

windows - 即使在其他平台上使用该任务,Ant 的 tar 任务能否设置 Linux 文件权限?

cross-platform - 为不同平台/设备创建应用程序

android - 如何在 Android 上以百分比形式获取设备音频级别?

android - Android 设备可以开始为设备 ID 提供空值吗?

c - WDM驱动与用户态通信: best practices and callback questions

c++ - Hook 窗口创建;钩子(Hook)没有被触发

c++ - 在虚拟 PBDA 驱动程序 : what are the limitations? 中使用 C++

windows - 手动安装 windows XP 驱动程序