| 
| Orifiel | 
| Отправлено: 10.09.2003, 09:51 |  |  
| 
 Не зарегистрирован
 
 
 
 
 
 
 
  
 | Сначала приведу код: 
 //открываем
 HANDLE hDevice=CreateFile("\\\\.\\A:",GENERIC_READ|GENERIC_WRITE,
 FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,
 FILE_ATTRIBUTE_NORMAL,NULL);
 //если текущим папкой является диск А, то делаем текущим диск С
 //для предотвращения нарушения доступа
 if(GetCurrentDir()=="A:\\") SetCurrentDir("C:\\");
 //блокируем устройство
 DeviceIoControl(hDevice, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0,
 &dwBytesReturned, NULL);
 //ждем нужное время
 Sleep(5000);
 //разблокировка
 CloseHandle(hDevice);
 
 Как вы наверное догадались, блокируется флоп. Код работает прекрасно, если диск А не используется другой программой. Если же
 используется, то GetLastError выводит ACCESS_DENIED. Подскажите, как
 заблокировать флоп, даже если он в данный момент используется другой программой. Что передать в DeviceIoControl?
 |  
|  |  |