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? |
|
|