调用 MapViewOfFile 时出错

Error calling MapViewOfFile

本文关键字:出错 MapViewOfFile 调用      更新时间:2023-10-16

我正在尝试使用需要DWORD的函数。

这些是规格:

dw文件偏移量高 [in]

视图开始的位置的文件偏移量的高阶 DWORD。 dwFileOffsetLow [in]

视图要开始的文件偏移量的低阶 DWORD。这 高偏移和低偏移的组合必须在 文件映射。它们还必须与内存分配匹配 系统的粒度。也就是说,偏移量必须是 分配粒度。获取内存分配 系统的粒度,使用 GetSystemInfo 函数,该函数填充 在SYSTEM_INFO结构的成员中。

该函数因错误参数不正确而失败。

unsigned long lByteStart=200959959;
unsigned long lByteLen=66964224;
MapViewOfFile( *phMapping, FILE_MAP_READ, 0, lByteStart, lByteLen );

我不在乎高、低或低,因为我不理解它,只是希望它能奏效。

现在它不起作用,有人可以告诉我我做错了什么以及我需要做什么才能正确完成吗?

问题不在于高/低部分,你做对了。问题是"偏移量必须是分配粒度的倍数"。我不认为你的是。

分配粒度的典型值是 4096,尽管您应该检查系统上的内容,如报价所示。