WinAPI内存不足

WinAPI内存不足,winapi,Winapi,我想得到一些帮助,因为这几天我一直在关注这个问题 我在谷歌上搜索,试图了解什么是dwMaximumSizeHigh和dwMaximumSizeLow 我读了一些关于这个参数的文档,但我不太明白它是什么 我写了一个代码 #include <windows.h> #include <stdio.h> void MappingOpen(PCWSTR lpFileName) { HANDLE hFile = CreateFileW(lpFileName, FILE_GEN

我想得到一些帮助,因为这几天我一直在关注这个问题

我在谷歌上搜索,试图了解什么是dwMaximumSizeHigh和dwMaximumSizeLow

我读了一些关于这个参数的文档,但我不太明白它是什么

我写了一个代码

#include <windows.h>
#include <stdio.h>


void MappingOpen(PCWSTR lpFileName)
{
  HANDLE hFile = CreateFileW(lpFileName, FILE_GENERIC_READ, FILE_SHARE_VALID_FLAGS, 0, OPEN_EXISTING, 0, 0);

  if (hFile != INVALID_HANDLE_VALUE)
  {
    FILE_STANDARD_INFO fsi;
    if (GetFileInformationByHandleEx(hFile, FileStandardInfo, &fsi, sizeof(fsi)))
    {
        HANDLE hSection = CreateFileMappingW(hFile, 0, PAGE_READONLY, 0, 1, 0);
        if (hSection == NULL)
        {
            DWORD error_code = GetLastError();
            printf("The error code is %lu",error_code);
        }
        else
        {
            printf("The create file mapping work ");
            CloseHandle(hSection);
        }
    }
    CloseHandle(hFile);
}else
 {
    printf("Cannot be open");
 }
}
即使我将0添加到dwMaximumSizeHigh和0 dwMaximumSizeHigh,我也会得到另一个错误\u文件\u无效


非常感谢您

dwMaximumSizeHigh和dwMaxsimumSizeLow是相同价值的一部分

它是32位部分的64位值。。高低部分

|32位高| 32位低|

也许这有助于理解

这里解释如下: 来自的第4和第5个参数

:尝试映射长度为0的文件失败,错误代码为error\u file\u INVALID。应用程序应测试长度为0的文件,并拒绝这些文件。