Re: Программное отключение дисковода для флоппи дисков
От: sasha Грузия  
Дата: 19.02.03 12:41
Оценка: 17 (2)
Здравствуйте, Orifiel, Вы писали:

O>Существуют ли API-функции, позволяющие программно отключить

O>дисковод для флоппи дисков. Сохраняется ли при этом возможность через
O>определенное время снова включить дисковод, не прибегая к перезагрузке
O>винды? Если для различных виндов подходы не одинаковы, просьба
O>рассмотреть ситуацию для каждой винды в отдельности.
O>Заранее благодарен.

Для NT систем все довольно просто:
HANDLE hDevice;
DWORD dw;
BOOL res;

hDevice = CreateFile("\\\\.\\A:", GENERIC_READ | GENERIC_WRITE,
            FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING,
            FILE_ATTRIBUTE_NORMAL, NULL );

// отрубаем дисковод
res = DeviceIoControl( hDevice, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0, &dw, NULL );

// ждем 20 секунд
Sleep(20000);

// опять врубаем
CloseHandle( hDevice );


Для Win9х я этого не делал, но в статье
HOWTO: Eject Removable Media on Windows 95 из MSDN вроде должен быть код для этого.

P.S. Эту статью я в онлайновом MSDN не нашел, но на дисковом варианте она есть.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.