阅读:3590回复:4
求助 通过\\Device\\HarddiskVolume1获得盘符名
尝试使用RtlVolumeDeviceToDosName
但是他需要设备指针 然后我通过ObReferenceObjectByName 到ObReferenceObjectByName这一步就错误了 status = ObReferenceObjectByName ( &nameInfo->Volume, OBJ_CASE_INSENSITIVE, NULL, 0, IoDriverObjectType, KernelMode, NULL, &DeviceObject ); STATUS c0000024 返回设备类型错误 显示设备类型不正确 IoDriverObjectType IoDeviceObjectType都试过了 |
|
沙发#
发布于:2011-03-17 17:12
&nameInfo->Volume 为类似 \\Device\\HarddiskVolume1
|
|
板凳#
发布于:2011-03-18 09:07
自己解答吧 很简单的一句代码
RtlInitUnicodeString(&DosName,L"X:\\"); RtlVolumeDeviceToDosName(Data->Iopb->TargetFileObject-> DeviceObject, &DosName); DbgPrint("ParLette is %wZ\n",&DosName); 注意网络上很多范例代码 UNICODE没有分配内存 直接 UNICODE_STRING DosName; 就开始使用了 这样很危险 |
|