tomegadeth
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору вот - но работать будет только под Цитата: Windows Vista, Windows XP, Windows 2000 Professional, or Windows NT Workstation 4.0. | наглухо заблокирует девайс..... Код: #include <windows.h> #include <Winioctl.h> unsigned long LockCD(char drive, bool lockdrive) { unsigned long junk, lResult; char drv[8] = {'\\', '\\', '.', '\\', drive, ':', 0}; PREVENT_MEDIA_REMOVAL pmr = {lockdrive}; void * hDevice = CreateFile(drv, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if(hDevice != INVALID_HANDLE_VALUE) { if(GetDriveType(&drv[4]) == DRIVE_CDROM) lResult = DeviceIoControl(hDevice, IOCTL_STORAGE_MEDIA_REMOVAL, &pmr, sizeof(pmr), NULL, 0, &junk, 0); CloseHandle(hDevice); } return lResult; } void main() { LockCD('f', true); // блокирует LockCD('f', false); // разблокирует } | Добавлено: Цитата: Может можно как-то экстренно закрывать/открывать сидюк, не обращая внимание на то, есть ли к нему обращение или нет | может и можно - но через ASPI или на низком уровне - не было необходимости, не ковырял... | Всего записей: 560 | Зарегистр. 22-11-2004 | Отправлено: 10:39 29-11-2006 | Исправлено: tomegadeth, 11:08 29-11-2006 |
|