2011-11-29 47 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僅支持映射文件。它返回「參數不正確」,因爲句柄不適用於文件。