卷的CreateFileMapping()失败

卷的CreateFileMapping()失败,c,windows,winapi,mapping,C,Windows,Winapi,Mapping,我在将部分卷映射到内存时遇到问题。卷已成功打开,我可以从中读取,但CreateFileMapping()失败GetLastError()返回87,这意味着:“参数不正确。”我已经创建了卷的映像,并且处理正确。以下是我打开文件和创建映射的方式: /* open function */ fd->handle = CreateFile(name, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE

我在将部分卷映射到内存时遇到问题。卷已成功打开,我可以从中读取,但
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(但代码也应适用于较新版本),管理员帐户。

CreateFileMapping仅支持映射文件。它返回“参数不正确”,因为句柄不是用于文件的