Memoria che associa dischi e volumi fisici
-
06-07-2019 - |
Domanda
In Windows è possibile aprire dispositivi e volumi tramite CreateFile ()
. L'ho usato con successo prima di ReadFile ()
dai dispositivi, ma ora voglio passare alla mappatura della memoria. Nel seguente codice, ricevo INVALID_HANDLE_VALUE
per il valore di b
e c
è impostato su 87
, < code> ERROR_INVALID_PARAMETER .
HANDLE a = ::CreateFileA("\\\\.\\h:", GENERIC_READ, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY | FILE_FLAG_NO_BUFFERING, NULL);
HANDLE b = ::CreateFileMappingA(a, NULL, PAGE_READONLY, 0, 0, NULL);
DWORD c = ::GetLastError();
Come posso farlo funzionare?
Soluzione
Non puoi. CreateFileMapping può solo creare una mappatura su un file. Dai un'occhiata alla differenza nella documentazione tra il parametro hFile per ReadFile e per CreateFileMapping . Per ReadFile elenca tutti i diversi tipi di handle che accetta (che include i dispositivi), per CreateFileMapping elenca solo i file.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow