Compartilhar via


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 terá êxito. 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 dos 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.

Valor de retorno

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.

Observações

O identificador que o 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á liberar o identificador retornado OpenFileMapping com uma chamada para CloseHandle.

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

Tecnologia Suportado
Protocolo SMB (Bloco de Mensagens do Servidor) 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 de Cluster (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim
 

Exemplos

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

Requisitos

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

Consulte também

CreateFileMapping

Funções de mapeamento de arquivos

Funções de gerenciamento de memória

compartilhamento de arquivos e de memória