WINAPI Не могу понять некоторые моменты

Добрый день или ночь всем пользователям. Хотел бы задать несколько вопросов:

1)Мне нужно открыть диск как файл

2)Считать МБР

3)Организовать цикл по просмотру PT

Что я выяснил на данном этапе. Первое, что я делаю это Createfile, второе считываю 512 байт в буффер ибо МБР находится в первых 512 байтах(Правильно что я выбрал BYTE а не LPVOID для буфера?). Элементы PT находятся после 446 байтов в мбр, чето-такое. Там, где цикл с fout выдает 0 cc М и так все 512 итераций.

И что мне делать дальше?

Я вот хочу для промежуточного результата выяснить что я там считал и что там в буфере хранится, чтобы поэтапно все понять.

Правильно ли я все сделал до этого?

Прошу, блин, я уже неделю читаю статьи, а понимание все не приходит.

int main() {


    HANDLE hDevice;
    //LPVOID buff[512];
    int i, j;
    byte buff[512];
    //TCHAR szDrive[] = _T(" A");
    //LPSTR buffer = (CHAR*)calloc(SIZE_BUFFER + 1, sizeof(CHAR));
    DWORD dwBytesRead = 0;
    hDevice = CreateFile(L"\\.\PHYSICALDRIVE1", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    
    
    BOOL result = ReadFile(hDevice, buff, sizeof(buff), &dwBytesRead, NULL);
    


    //DWORD dwRead;
    //if (!::ReadFile(hDevice, buf, sizeof(buf), &dwRead, NULL) || dwRead != sizeof(buf)) throw win_error();
    //CloseHandle(hDevice);

    //for (j = 0; j < sizeof(buff); j++) {
    //  cout << buff[j] << endl;
    //}
    /*ofstream out("1.txt");
    for (int i = 0; i < 512; i++)
    {
        char f[3];  _itoa(buff[i], f, 16);
        out << i << "\t" << f << "\t" << buff[i] << '\n';
        cout << buff[i];
    }
    out.close();
    system("1.txt");*/
    //cin.get();





    CloseHandle(hDevice);
    
    
    
    return 0;
}
    

Ответы (0 шт):