CreateFileMapping () не работает для тома - PullRequest
1 голос
/ 29 ноября 2011

У меня проблема с отображением части объема в память. Том успешно открыт, я могу читать с него, но CreateFileMapping() не удается. GetLastError() возвращает 87, которое имеет после , означающего: «Параметр неверен». Я создал образ тома, и он обрабатывается правильно. Вот как я открываю файл и создаю отображение:

/* open function */
fd->handle = CreateFile(name, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
/* mapping function */
LARGE_INTEGER li;
li.QuadPart = offset;
handle = CreateFileMapping(fd->handle, NULL, PAGE_READONLY, li.u.HighPart, li.u.LowPart, NULL);

Я работаю над Windows XP SP3 (но код также должен работать на более новых версиях), учетная запись администратора.

1 Ответ

3 голосов
/ 29 ноября 2011

CreateFileMapping поддерживает только файлы сопоставления.Он возвращает «Неверный параметр», потому что дескриптор не для файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...