Que respuesta mas basica e inutil.
El como si te dijera. facil. bajate el visual estudio y con el uso de las api correspondiente lo lograras
Tampoco se necesita ser un genio RDGMax asi qué esperabas leer? Si esperabas que alguien publicará un programa completo para leer, escribir y manipular el MBR, todos los sectores junto con el código fuente, me temo que estas en el lugar equivocado. Igual dejo un código que hace lo que dije anteriormente.
PS: Lo siento por el código en C, seguro que no es dificil entenderlo para la gente que programa en VB.
#define SECTOR_SIZE 512 // 512 regular tamaño en bytes por sector,
// para asegurarse usar DeviceIoControl antes de leer con
// ReadFile/DeviceIoControl
BOOLEAN ReadMBR(
_In_ ULONG HardDiskIndex
)
{
BOOLEAN bStatus;
TCHAR Path[MAX_PATH + 1];
HANDLE FileHandle;
BYTE MBRRaw[SECTOR_SIZE];
DWORD Read;
bStatus = FALSE;
wsprintf(Path, _T("\\\\.\\PhysicalDrive%u"), HardDiskIndex);
FileHandle = CreateFile(
Path,
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (FileHandle != INVALID_HANDLE_VALUE)
{
if (ReadFile(
FileHandle,
MBRRaw,
SECTOR_SIZE,
&Read,
NULL
))
{
for (ULONG x = 0; x < SECTOR_SIZE; x++)
{
if (!(x % 10))
{
printf("\n");
}
printf("%02X ", MBRRaw[x]);
}
bStatus = TRUE;
}
CloseHandle(FileHandle);
}
return bStatus;
}
INT __cdecl main()
{
ReadMBR(0);
return 0;
}
Y sí, como dijo @Dessa, es posible también leer el MBR con DeviceIoControl asi como con ReadFile.
¿Cual es la diferencia? Realmente no veo mucha diferencia, ambos terminan enviando un IRP al driver del File System.