Я пишу программу, которая сможет показать производительность жесткого диска.Входные данные для программы - логическое имя диска («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:"
и т. Д., Но это не помогло.