代码之家  ›  专栏  ›  技术社区  ›  rooltex

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

  •  0
  • rooltex  · 技术社区  · 6 年前

    我正在写一个能显示硬盘性能的程序。程序的输入数据是逻辑磁盘名(“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:" 等等,但没用。

    1 回复  |  直到 6 年前
        1
  •  2
  •   MSalters    6 年前

    server1 甚至可能没有“物理磁盘索引”的概念。