英文:
Not enough memory WinAPI
问题
I would like some help because i am lock on this problem during few days.
我想要一些帮助,因为我在这个问题上卡了几天。
I looking for on google and try to understand what is dwMaximumSizeHigh and dwMaximumSizeLow.
我在谷歌上搜索并尝试理解dwMaximumSizeHigh和dwMaximumSizeLow是什么。
I read some documentation about this parameters but i don't really understand what is it.
我阅读了一些关于这些参数的文档,但我并不真正理解它是什么。
I wrote a code
我写了一段代码
#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");
}
}
即使我将dwMaximumSizeHigh和dwMaximumSizeLow都添加为0,我仍然得到另一个错误(ERROR_FILE_INVALID)。
即使我将dwMaximumSizeHigh和dwMaximumSizeLow都添加为0,我仍然得到另一个错误(ERROR_FILE_INVALID)。
Thanks you very much
非常感谢您。
英文:
I would like some help because i am lock on this problem during few days.
I looking for on google and try to understand what is dwMaximumSizeHigh and dwMaximumSizeLow.
I read some documentation about this parameters but i don't really understand what is it.
I wrote a code
#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");
}
}
Even if i add 0 to dwMaximumSizeHigh and 0 dwMaximumSizeHigh i got another error (ERROR_FILE_INVALID).
Thanks you very much
答案1
得分: -1
dwMaximumSizeHigh 和 dwMaximumSizeLow 是相同值的一部分...
它是一个64位值,由32位部分组成... 高位和低位...
| 32位(高位) | 32位(低位) |
也许这有助于理解。
这里有解释:
https://learn.microsoft.com/en-gb/windows/win32/api/memoryapi/nf-memoryapi-createfilemappingw?redirectedfrom=MSDN(第4和第5个参数)
英文:
dwMaximumSizeHigh and dwMaxsimumSizeLow are parts of the same Value ...
its a 64-Bit value in 32-Bit parts.. the High and Low-parts..
| 32bit (high) | 32bit (low) |
Maybe that helps to understand.
it is explained here:
https://learn.microsoft.com/en-gb/windows/win32/api/memoryapi/nf-memoryapi-createfilemappingw?redirectedfrom=MSDN (4th and 5th Parameter)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论