Windows Win32Memóriakernel32.dll
CreateFileMappingW
Cria (ou abre) um objeto de mapeamento de arquivo, base para memória compartilhada e mapeamento de arquivos.
Descrição
Com hFile == INVALID_HANDLE_VALUE, cria memória compartilhada anônima (nomeada, para outros processos abrirem por nome) — equivalente ao `shm_open`/`memfd_create` do Linux; com um arquivo real, é a base para mapear seu conteúdo com MapViewOfFile.
Header:
memoryapi.hDLL: kernel32.dllNative API: NtCreateSectionAssinatura
HANDLE CreateFileMappingW(
HANDLE hFile,
LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
DWORD flProtect,
DWORD dwMaximumSizeHigh,
DWORD dwMaximumSizeLow,
LPCWSTR lpName
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| hFile | HANDLE | Handle do arquivo a mapear, ou INVALID_HANDLE_VALUE para memória compartilhada apoiada no arquivo de paginação. |
| lpFileMappingAttributes | LPSECURITY_ATTRIBUTES | Atributos de segurança, ou NULL. |
| flProtect | DWORD | PAGE_READWRITE, PAGE_READONLY, etc. |
| dwMaximumSizeHigh | DWORD | Parte alta do tamanho máximo do mapeamento. |
| dwMaximumSizeLow | DWORD | Parte baixa do tamanho máximo do mapeamento. |
| lpName | LPCWSTR | Nome opcional, para que outros processos possam abrir o mesmo mapeamento com OpenFileMappingW. |
Valor de retorno
Um handle para o objeto de mapeamento em sucesso; NULL em erro (consulte GetLastError).
Códigos de erro (GetLastError)
- ERROR_ALREADY_EXISTS(183)
- Não é possível criar um arquivo já existente.
- ERROR_NOT_ENOUGH_MEMORY(8)
- Memória insuficiente para processar o comando.
- ERROR_INVALID_HANDLE(6)
- O identificador (handle) informado é inválido.