阅读:4297回复:18
如何从符号连接名称得到设备名称呢?
如题!
谢谢! |
|
|
沙发#
发布于:2005-05-12 16:15
各位高手,我得目的是:如果我知道以设备的符号连接名称,如何得到他的设备名称呢?是名称啊?谢谢各位了。
不知道几位给的答案是否能够实现那,能具体说说吗? |
|
|
板凳#
发布于:2005-05-12 19:01
NTSTATUS
ObReferenceObjectByName ( IN PUNICODE_STRING ObjectName, IN ULONG Attributes, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess OPTIONAL, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, OUT PVOID *Object ) ObjectName是符号连接名称吗? [编辑 - 5/12/05 by cyliu] |
|
|
地板#
发布于:2005-05-13 09:30
也许我没有说明白我的目的.
我目的是:知道了符号连接名称如何知道他的设备名称. ObReferenceObjectByName中传入符号连接名得到符号连接对象,还是无发得到他的设备名称啊? |
|
|
地下室#
发布于:2005-05-17 15:11
NTSTATUS status = STATUS_SUCCESS;
UNICODE_STRING LinkName; RtlInitUnicodeString(&LinkName, L\"\\\\\"); ObpRootDirectoryObject = 0; if(ObReferenceObjectByName(&LinkName,OBJ_CASE_INSENSITIVE,NULL,0,NULL,KernelMode,NULL,(PVOID*)&ObpRootDirectoryObject)==STATUS_SUCCESS) { DumpObject((PVOID)ObpRootDirectoryObject); } return status; 走到黑体部分就蓝屏,why,难道我使用的不对吗? [编辑 - 5/17/05 by cyliu] |
|
|
5楼#
发布于:2005-05-17 16:52
上面问题解决了.
bmyyyud: 我通过ObReferenceObjectByName得到对象,然后分析对象头得到的是名字是ObReferenceObjectByName中传入的名字.而不是设备对象名字啊. 如: #define DEVICE_NAME L\"\\\\Device\\\\ObjName\" #define DOS_DEVICE_NAME L\"\\\\DosDevices\\\\cyliu\" ObReferenceObjectByName中传入DOS_DEVICE_NAME名字,得到的是cyliu名字.而我想通过DOS_DEVICE_NAME得到\"ObjName\"这个字符串啊,应该怎么办? |
|
|
6楼#
发布于:2005-05-17 18:12
可惜得到的仍然是DOS_DEVICE_NAME名字
|
|
|
7楼#
发布于:2005-05-17 18:26
如何在驱动层通过符号连接得到物理设备名称呢?
如:通过\"\\\\?\\\\c:\"得到\"\\Device\\HarddiskVolume1\"名字或者其他物理设备名称? |
|
|