2011-11-29 25 views
1

我有问题将卷的一部分映射到内存。卷成功打开,我可以从中读取,但CreateFileMapping()失败。 GetLastError()返回87,它有following含义:“该参数不正确。”我已经创建了卷的图像,并且处理正确。这是我如何打开文件,并创建映射:CreateFileMapping()失败的卷

/* 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(但代码也应在新版本工作),管理员帐户。

回答

3

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