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