Отображение памяти физических дисков и томов
-
06-07-2019 - |
Вопрос
В Windows можно открывать устройства и тома с помощью CreateFile ()
. Ранее я успешно использовал это для ReadFile ()
с устройств, но теперь я хочу переключиться на отображение памяти. В следующем коде я получаю INVALID_HANDLE_VALUE
для значения b
, а для c
установлено значение 87
, < код> 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();
Как я могу заставить это работать?
Решение
Ты не можешь. CreateFileMapping может только создать сопоставление с файлом. Посмотрите на разницу в документации между параметром hFile для ReadFile и для CreateFileMapping а>. Для ReadFile он перечисляет все различные типы дескрипторов, которые он принимает (включая устройства), для CreateFileMapping он только перечисляет файлы.
Не связан с StackOverflow