Может этот пример кода тебя выручит?!
Блокировка, например, “E” диска
| Код | TCHAR DiscLetter = (TCHAR)'E';//диск, который надо блокировать
HANDLE hDevice = WowFsLock(DiscLetter, TRUE);
if(hDevice){
TCHAR msg[50] = TEXT(""); StringCbPrintf(msg, 50 * sizeof(TCHAR), TEXT("Диск \xab%c\xbb блокирован"), DiscLetter); ::MessageBox (0, msg, TEXT(""), MB_OK); //CloseHandle (hDevice); }
|
Моя ф. WowFsLock
| Код | #include "strsafe.h" #include "Winioctl.h"
HANDLE WowFsLock (TCHAR DiscLetter, BOOL bLockVolume) { TCHAR device[7] = TEXT("");
StringCbPrintf(device, 7 * sizeof(TCHAR), TEXT("\\\\.\\%c:"), DiscLetter);
HANDLE hDevice = ::CreateFile (device, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if(hDevice != INVALID_HANDLE_VALUE) { DWORD dwIoControlCode = (bLockVolume ? FSCTL_LOCK_VOLUME : FSCTL_UNLOCK_VOLUME); DWORD dwResult = 0;
if(!DeviceIoControl (hDevice, dwIoControlCode , NULL, 0, NULL, 0, &dwResult, NULL)){
CloseHandle (hDevice); hDevice = NULL; }
return hDevice; }
return NULL; }
|
|