Отображение памяти физических дисков и томов - PullRequest
1 голос
/ 27 октября 2009

В 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();

Как мне заставить это работать?

1 Ответ

6 голосов
/ 27 октября 2009

Вы не можете. CreateFileMapping может только создать сопоставление с файлом. Посмотрите на разницу в документации между параметром hFile для ReadFile и для CreateFileMapping . Для ReadFile он перечисляет все различные типы дескрипторов, которые он принимает (включая устройства), для CreateFileMapping он только перечисляет файлы.

...