ERROR_ACCESS_DENIED
Код:
#include <iostream>
#include <windows.h>
#include <winioctl.h>
using namespace std;
HANDLE Device;
inline bool inform(DISK_GEOMETRY *dsk){
DWORD jink;
BOOL haop;
Device = CreateFile("\\.\PhysicalDrive1",0,FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if (Device == INVALID_HANDLE_VALUE) return FALSE;
haop = DeviceIoControl(Device, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, NULL, dsk, sizeof(*dsk), &jink, NULL);
return haop;
}
int main(){
DWORD Nused;
DISK_GEOMETRY dsk;
BYTE stol[90]={11,12,13,14,15,16,255};
if(inform(&dsk)){
SetFilePointer(Device, 1, NULL, FILE_BEGIN);
cout<<WriteFile(Device,stol,3, &Nused, (LPOVERLAPPED)NULL);
cout<<GetLastError();
};
return 0;
};
#include <windows.h>
#include <winioctl.h>
using namespace std;
HANDLE Device;
inline bool inform(DISK_GEOMETRY *dsk){
DWORD jink;
BOOL haop;
Device = CreateFile("\\.\PhysicalDrive1",0,FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if (Device == INVALID_HANDLE_VALUE) return FALSE;
haop = DeviceIoControl(Device, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, NULL, dsk, sizeof(*dsk), &jink, NULL);
return haop;
}
int main(){
DWORD Nused;
DISK_GEOMETRY dsk;
BYTE stol[90]={11,12,13,14,15,16,255};
if(inform(&dsk)){
SetFilePointer(Device, 1, NULL, FILE_BEGIN);
cout<<WriteFile(Device,stol,3, &Nused, (LPOVERLAPPED)NULL);
cout<<GetLastError();
};
return 0;
};
Открытие физического тома скорее всего потребует прав администратора. Так что все верно.
возможно фаил на диске помечен как архивный или только для чтения или закрыт доступ к папке для текущего пользователя
Цитата: apanaev_dmitriy
возможно фаил на диске помечен как архивный или только для чтения или закрыт доступ к папке для текущего пользователя
Скорее всего это USB диск