我在将部分卷映射到内存时遇到问题。卷已成功打开,我可以从中读取,但CreateFileMapping()
失败。 GetLastError()
返回87,其中following表示:“参数不正确。”我已经创建了卷的图像并且处理正确。这是我打开文件和创建映射的方式:
/* 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(但代码也适用于较新版本),管理员帐户。
答案 0 :(得分:3)
CreateFileMapping仅支持映射文件。它返回“参数不正确”,因为句柄不适用于文件。