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
Funções de mapeamento de arquivo
Funções de gerenciamento da memória