given a device name in the form \\.\X: which is an usb hard-drive,i want to dismount it
Code:
HANDLE hUsbDevice = CreateFile(szDevice,0,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);
if(!hUsbDevice || hUsbDevice == INVALID_HANDLE_VALUE)
return FALSE;
DWORD dwBytesReturned;
BOOL bRet = DeviceIoControl(hUsbDevice,FSCTL_DISMOUNT_VOLUME,NULL,0,NULL,0,&dwBytesReturned,NULL);
// this will fail, bRet==FALSE
getlasterror() returns "invalid operation",and if i try
DeviceIoControl() whit IOCTL_STORAGE_MEDIA_REMOVAL it returns "denied access"...
Code:
HANDLE hUsbDevice = CreateFile(szDevice,0,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);
if(!hUsbDevice || hUsbDevice == INVALID_HANDLE_VALUE)
return FALSE;
DWORD dwBytesReturned;
PREVENT_MEDIA_REMOVAL mediaremoval;
// set media removal to TRUE or FALSE,the call will fail in both cases with the same error
BOOL bRet = DeviceIoControl(hUsbDevice,IOCTL,&mediaremoval,sizeof(mediaremoval),NULL,0,&dwBytesReturned,NULL);
// this will fail, bRet==FALSE