Voltar à lista
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: NtCreateSection

Assinatura

HANDLE CreateFileMappingW(
    HANDLE hFile,
    LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
    DWORD flProtect,
    DWORD dwMaximumSizeHigh,
    DWORD dwMaximumSizeLow,
    LPCWSTR lpName
);

Parâmetros

ParâmetroTipoDescrição
hFileHANDLEHandle do arquivo a mapear, ou INVALID_HANDLE_VALUE para memória compartilhada apoiada no arquivo de paginação.
lpFileMappingAttributesLPSECURITY_ATTRIBUTESAtributos de segurança, ou NULL.
flProtectDWORDPAGE_READWRITE, PAGE_READONLY, etc.
dwMaximumSizeHighDWORDParte alta do tamanho máximo do mapeamento.
dwMaximumSizeLowDWORDParte baixa do tamanho máximo do mapeamento.
lpNameLPCWSTRNome 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.

Relacionadas