首页
社区
课程
招聘
[求助]如何获取设备名对应符号链接名?(已解决)
发表于: 2008-7-13 15:41 7656

[求助]如何获取设备名对应符号链接名?(已解决)

2008-7-13 15:41
7656
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
如用ZwQueryInformationProcess 获取进程路径后,如下:
\Device\HarddiskVolume2\Program Files\EditPlus\EDITPLUS.EXE
怎样得到"\Device\HarddiskVolume2"对于的符号链接名(比如:"D:\")
2008-7-13 15:46
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
在R3下, 可以直接使用
DWORD WINAPI QueryDosDevice(
  __in          LPCTSTR lpDeviceName,
  __out         LPTSTR lpTargetPath,
  __in          DWORD ucchMax
);

但想只在R0下用,这个是用不上了
2008-7-13 16:44
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
还是这个ZwQueryInformationProcess来解决问题,通过
typedef struct _PROCESS_BASIC_INFORMATION {
    PVOID Reserved1;
    PPEB PebBaseAddress;
    PVOID Reserved2[2];
    ULONG_PTR UniqueProcessId;
    PVOID Reserved3;
} PROCESS_BASIC_INFORMATION;
得到PEB,再得到ProcessParameters就可以了
2008-7-13 17:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不知道lz有没有注意到:PEB失效的话 ……Parameter也就不行了? ……
2008-7-13 18:58
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
使用中的确碰到过, 也没有其他的好方法,目前只好MmIsAddressValid过滤一下了,凑合着用吧
2008-7-13 21:07
0
雪    币: 266
活跃值: (50)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
7
不是有一个RtlVolumeDeviceToDosName的函数吗?

NTSTATUS
  RtlVolumeDeviceToDosName(
    IN  PVOID  VolumeDeviceObject,
    OUT PUNICODE_STRING  DosName
    );

RtlVolumeDeviceToDosName returns the MS-DOS® path for a specified device object that represents a file system volume.
2008-7-14 09:13
0
雪    币: 347
活跃值: (25)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
8
膜拜楼上的大牛
2008-7-14 09:17
0
游客
登录 | 注册 方可回帖
返回
//