Avatar billede MadsHaupt Juniormester
06. juli 2015 - 14:11 Der er 3 kommentarer

Hjælp med direkte diskadgang (raw disk access) i C++

Jeg har forsøgt at få direkte diskadgang til et USB-stik ved hjælp af CreateFile-funktionen, men jeg får fejlkoden 2 (Fil ikke fundet), og jeg har en ide om at det er fordi Windows bruger drevet, men jeg har ingen ide om hvordan jeg i så fald frakobler drevet ved hjælp af C++.

Hvordan kan jeg få det til at virke?

Her er min kode:
// ConsoleApplication1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <Windows.h>


int _tmain(int argc, _TCHAR* argv[])
{
    HANDLE handle = CreateFile((LPCWSTR)"\\\\.\\PhysicalDrive1", GENERIC_READ | GENERIC_WRITE, NULL, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    DWORD lasterror1 = GetLastError(); // Fejlkode 2 (Fil ikke fundet)
    SetFilePointer(handle, 0, 0, FILE_BEGIN);
    DWORD lasterror2 = GetLastError(); // Fejlkode 6 (Ugyldig handle)
    void* buffer = new BYTE[10];
    LPDWORD readedbytes = NULL;
    if (!ReadFile(handle, buffer, 8, readedbytes, NULL))
    {
        DWORD lasterror3 = GetLastError(); // Fejlkode 6 (Ugyldig handle)
        return 0;
    }
    return 0;
}
Avatar billede tryltryl Juniormester
06. juli 2015 - 18:05 #1
Avatar billede MadsHaupt Juniormester
06. juli 2015 - 21:29 #2
Det virker!

Men jeg forstår ikke helt den tekniske forskel mellem følgene:
"tekst"
L"tekst"
R"tekst"
LR"tekst"


Nogen der kender forskellen?
Avatar billede lars31415 Nybegynder
07. juli 2015 - 11:47 #3
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester