liuyang714
驱动牛犊
驱动牛犊
  • 注册日期2003-06-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3432回复:3

怎样由 \\Device\\HarddiskVolume# 得到 C: D: 或相反?

楼主#
更多 发布于:2003-06-23 19:35
请问有没有什么办法得到它呢?或者从 C: 得到 \\Device\\HarddiskVolum# 也可。我的系统是 Win2k。
我用 ZwQueryVolumeInformationFile 取 FileFsObjectIdInformation 但总是提示参数错误,怀疑 2k 不支持?

谢谢各位。

最新喜欢:

aasa2aasa2
luxs200
驱动牛犊
驱动牛犊
  • 注册日期2001-07-23
  • 最后登录2015-03-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-25 11:33
由DeviceHarddiskVolume#得到WIN32盘符,可以试一下函数RtlVolumeDeviceToDosName。
slwqw
驱动大牛
驱动大牛
  • 注册日期2002-07-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望197点
  • 贡献值0点
  • 好评度147点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-24 13:05
“\\\\??\\\\D:”实际上是一个符号连接,所以通过以下两个函数可以得到相应的“\\Device\\HarddiskVolum#”值。

    ZwOpenSymbolicLinkObject(
        OUT PHANDLE SymbolicLinkHandle,
        IN ACCESS_MASK DesiredAccess,
        IN POBJECT_ATTRIBUTES ObjectAttributes);

    ZwQuerySymbolicLinkObject(
        IN HANDLE SymbolicLinkHandle,
        IN OUT PUNICODE_STRING TargetName,
        OUT PULONG ReturnLength OPTIONAL);

但是怎样通过“\\Device\\HarddiskVolum#”得到“\\\\??\\\\D:”我就不清楚了。
xi903
驱动牛犊
驱动牛犊
  • 注册日期2002-06-19
  • 最后登录2009-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-24 12:50
可以使用下面的IO control:IOCTL_STORAGE_GET_DEVICE_NUMBER,
请参阅MSDN。
游客

返回顶部