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
Funções de mapeamento de arquivos
Funções de gerenciamento de memória
compartilhamento de arquivos e de memória