Função OpenFileMappingA (winbase.h)

Abre um objeto de mapeamento de arquivo nomeado.

Sintaxe

HANDLE OpenFileMappingA(
  [in] DWORD  dwDesiredAccess,
  [in] BOOL   bInheritHandle,
  [in] LPCSTR lpName
);

Parâmetros

[in] dwDesiredAccess

O acesso ao objeto de mapeamento de arquivo. Esse acesso é verificado em relação a qualquer descritor de segurança no objeto de mapeamento de arquivo de destino. Para obter uma lista de valores, consulte Segurança de Mapeamento de Arquivos e Direitos de Acesso.

[in] bInheritHandle

Se esse parâmetro for TRUE, um processo criado pela função CreateProcess poderá herdar o identificador; caso contrário, o identificador não pode ser herdado.

[in] lpName

O nome do objeto de mapeamento de arquivo a ser aberto. Se houver um identificador aberto para um objeto de mapeamento de arquivo por esse nome e o descritor de segurança no objeto de mapeamento não entrar em conflito com o parâmetro dwDesiredAccess , a operação aberta será bem-sucedida. O nome pode ter um prefixo "Global\" ou "Local\" para abrir explicitamente um objeto no namespace global ou de sessão. O restante do nome pode conter qualquer caractere, exceto o caractere de barra invertida (\). Para obter mais informações, consulte Namespaces de objeto kernel. A alternância rápida de usuário é implementada usando sessões de Serviços de Terminal. O primeiro usuário a fazer logon usa a sessão 0, o próximo usuário a fazer logon usa a sessão 1 e assim por diante. Os nomes de objeto kernel devem seguir as diretrizes descritas para os Serviços de Terminal para que os aplicativos possam dar suporte a vários usuários.

Retornar valor

Se a função for bem-sucedida, o valor retornado será um identificador aberto para o objeto de mapeamento de arquivo especificado.

Se a função falhar, o valor retornado será NULL. Para obter informações de erro estendidas, chame GetLastError.

Comentários

O identificador que OpenFileMapping retorna pode ser usado com qualquer função que exija um identificador para um objeto de mapeamento de arquivo.

Ao modificar um arquivo por meio de uma exibição mapeada, o carimbo de data/hora da última modificação pode não ser atualizado automaticamente. Se necessário, o chamador deve usar SetFileTime para definir o carimbo de data/hora.

Quando não for mais necessário, o chamador deverá chamar liberar o identificador retornado por OpenFileMapping com uma chamada para CloseHandle.

Em Windows Server 2012, essa função é compatível com as tecnologias a seguir.

Tecnologia Com suporte
Protocolo SMB (SMB) 3.0 Sim
TFO (Failover transparente) do SMB 3.0 Sim
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) Sim
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim
 

Exemplos

Para obter um exemplo, consulte Criando memória compartilhada nomeada.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winbase.h (inclua Windows.h, Memoryapi.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

CreateFileMapping

Funções de mapeamento de arquivo

Funções de gerenciamento da memória

Compartilhando arquivos e memória