такая ситуация, у меня есть серийный номер флешки ввиде строки -
\\\\?\\usb#vid_13fe&pid_4100#070c28670e74be11#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
и есть буква этой флешки которую ей назначила система (в моем случае это F). теперь мне нужно получить дескриптор этой флешки и удалить ее, пишу следующий код:
H1 =CreateFile("\\\\?\\usb#vid_13fe&pid_4100#070c28670e74be11#{ a5dcbf10-6530-11d2-901f-00c04fb951ed}",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FI LE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
//H1 =CreateFile("\\\\.\\F:",GENERIC_READ|GENERIC_WRITE,FILE_SHAR E_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
unsigned long ReturnedBytes;
if(DeviceIoControl(H1, FSCTL_DISMOUNT_VOLUME,NULL, 0, NULL, 0, &ReturnedBytes, NULL))
{ShowMessage("USB демонтирован"); }
else
{ShowMessage (SysErrorMessage(GetLastError()));}
так вот, когда я получаю дескриптор моей флешки, подставляя туда букву флешки (закоментированая строчка), то все проходит нормально и флешка демонтируется, а когда в место буквы подставляю строчку -
\\\\?\\usb#vid_13fe&pid_4100#070c28670e74be11#{a5dcbf10-6530-11d2-901f-00c04fb951ed}, то получается ошибка "неправильная функция". обе строчки соответствуют одной и той же флешке. что тут не так?
?