c++ - 如何从网络逻辑磁盘名称获取物理磁盘索引?
问题描述
我正在编写一个能够显示硬盘性能的程序。程序的输入数据是逻辑磁盘名称(“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:"
等等,但它没有帮助。
解决方案
你不能。网络协议不支持请求此类信息。server1
甚至可能没有“物理磁盘索引”的概念。
推荐阅读
- javascript - Rspec 在 Github 操作上的 Javascript 测试 headless chrome 失败
- css - 如何将css列变成primeng?
- python - Pyspark 错误 self._sock.recv_into(b) socket.timeout: timed out
- python - 如何将文本文件行附加到 dbf 表?
- fortran - Fortran 基本条件和循环代码错误
- ruby-on-rails-5 - 如何防止 ActiveResource 模型发出请求?
- jenkins - Groovy 请求具有多 url 编码的 Jenkins Rest API
- powerbi - Power BI - 10 月 1 日是否介于两个日期之间
- java - 如何在本机查询 JPA 中传递参数
- c# - 如何使用 Webview2.Effect