首页 > 解决方案 > 如何从网络逻辑磁盘名称获取物理磁盘索引?

问题描述

我正在编写一个能够显示硬盘性能的程序。程序的输入数据是逻辑磁盘名称(“D:”、“E:”等)。我必须从逻辑磁盘名称中获取物理磁盘索引。本地机器没有问题。我可以这样做:

 HANDLE h = ::CreateFile( L"\\\\.\\d:" , 0 , 0 , NULL , OPEN_EXISTING, 0 , NULL);  
  STORAGE_DEVICE_NUMBER info = { };   
   DWORD bytesReturned = 0;
   ::DeviceIoControl( h , IOCTL_STORAGE_GET_DEVICE_NUMBER , NULL , 0,&info,sizeof( info ) , &bytesReturned , NULL );

然后info.DeviceNumber用于进一步使用。但我不知道如何为网络驱动器做同样的事情。如果我 L"\\\\.\\D:"需要在名为"server1". 我已经尝试过 L"\\\\server1\\\\.\\D:"L"server1\\\\.\\D:"等等,但它没有帮助。

标签: c++cwindowswinapihard-drive

解决方案


你不能。网络协议不支持请求此类信息。server1甚至可能没有“物理磁盘索引”的概念。


推荐阅读