Можно сделать еще круче: заблокировать кнопку извлечения диска на время копирования, тогда юзер не сможет помешать этому процессу.
Код | #include <winioctl.h>
void fun() { // G: - привод CD/DVD HANDLE hDrive = CreateFile(_T("\\\\.\\G:"), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0); if ( hDrive != INVALID_HANDLE_VALUE ) { PREVENT_MEDIA_REMOVAL pmr = { TRUE }; DWORD dwBytesReturned; BOOL bOK = DeviceIoControl(hDrive, IOCTL_STORAGE_MEDIA_REMOVAL, &pmr, sizeof(pmr), NULL, 0, &dwBytesReturned, NULL); // bOK == TRUE кнопка извлечения диска заблокирована
// TODO: copy from drive
// не забываем разблокировать кнопку pmr.PreventMediaRemoval = FALSE; bOK = DeviceIoControl(hDrive, IOCTL_STORAGE_MEDIA_REMOVAL, &pmr, sizeof(pmr), NULL, 0, &dwBytesReturned, NULL);
CloseHandle(hDrive); } }
|
|