Whenever I open a physical drive, I can't use lockfile to lock a byte range on the drive. I always get error code 1.
#include <Windows.h>
#include <stdio.h>
int main()
{
HANDLE drive = CreateFileA("\\\\.\\PhysicalDrive0",
FILE_ALL_ACCESS,
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (drive == INVALID_HANDLE_VALUE)
return 0;
if (!LockFile(drive,
0,
0,
512,
0))
{
printf("error: %ld\n", GetLastError());
}
return 0;
}
I want to lock the master boot record of the drive, the first 512 bytes.