如何从网络逻辑磁盘名称获取物理磁盘索引?

时间:2018-10-05 14:37:48

标签: c++ c windows winapi hard-drive

我正在编写一个程序,该程序将能够显示硬盘的性能。程序的输入数据是逻辑磁盘名称(“ 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:"的服务器上获取网络逻辑驱动器“ D:”的句柄,如何更改本地路径"server1"。我试过了   L"\\\\server1\\\\.\\D:"L"server1\\\\.\\D:"等,但没有帮助。

1 个答案:

答案 0 :(得分:2)

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