Função GetModuleFileNameExA (psapi.h)
Recupera o caminho totalmente qualificado para o arquivo que contém o módulo especificado.
Sintaxe
DWORD GetModuleFileNameExA(
[in] HANDLE hProcess,
[in, optional] HMODULE hModule,
[out] LPSTR lpFilename,
[in] DWORD nSize
);
Parâmetros
[in] hProcess
Um identificador para o processo que contém o módulo.
O identificador deve ter os direitos de acesso PROCESS_QUERY_INFORMATION e PROCESS_VM_READ. Para obter mais informações, consulte Process Security and Access Rights.
Windows 10 e posterior, Windows Server 2016 e posterior: se o parâmetro hModule for NULL, o identificador exigirá apenas PROCESS_QUERY_LIMITED_INFORMATION direitos de acesso.
A função GetModuleFileNameEx não recupera o caminho para módulos carregados usando o sinalizador LOAD_LIBRARY_AS_DATAFILE. Para obter mais informações, consulte LoadLibraryEx.
[in, optional] hModule
Um identificador para o módulo. Se esse parâmetro for NULL, GetModuleFileNameEx retornará o caminho do arquivo executável do processo especificado em hProcess.
[out] lpFilename
Um ponteiro para um buffer que recebe o caminho totalmente qualificado para o módulo. Se o tamanho do nome do arquivo for maior que o valor do parâmetro nSize, a função terá êxito, mas o nome do arquivo será truncado e encerrado em nulo.
[in] nSize
O tamanho do buffer lpFilename, em caracteres.
Valor de retorno
Se a função for bem-sucedida, o valor retornado especifica o comprimento da cadeia de caracteres copiada para o buffer.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Observações
A função GetModuleFileNameEx foi projetada principalmente para uso por depuradores e aplicativos semelhantes que devem extrair informações do módulo de outro processo. Se a lista de módulos no processo de destino estiver corrompida ou ainda não estiver inicializada ou se a lista de módulos for alterada durante a chamada de função como resultado de DLLs sendo carregadas ou descarregadas, GetModuleFileNameEx poderá falhar ou retornar informações incorretas.
Para recuperar o nome de um módulo no processo atual, use a função GetModuleFileName. Isso é mais eficiente e mais confiável do que chamar GetModuleFileNameEx com um identificador para o processo atual.
Para recuperar o nome do módulo executável principal para um processo remoto, use a função GetProcessImageFileName ou QueryFullProcessImageName. Isso é mais eficiente e mais confiável do que chamar a função GetModuleFileNameEx com um identificador de módulo NULL.
Começando com o Windows 7 e o Windows Server 2008 R2, o Psapi.h estabelece números de versão para as funções PSAPI. O número de versão do PSAPI afeta o nome usado para chamar a função e a biblioteca que um programa deve carregar.
Se PSAPI_VERSION for 2 ou superior, essa função será definida como K32GetModuleFileNameEx no Psapi.h e exportada em Kernel32.lib e Kernel32.dll. Se PSAPI_VERSION for 1, essa função será definida como GetModuleFileNameEx no Psapi.h e exportada em Psapi.lib e Psapi.dll como um wrapper que chama K32GetModuleFileNameEx.
Programas que devem ser executados em versões anteriores do Windows, bem como no Windows 7 e versões posteriores, sempre devem chamar essa função como GetModuleFileNameEx. Para garantir a resolução correta de símbolos, adicione Psapi.lib à macro
Exemplos
Para obter um exemplo, consulte enumerando todos os módulos para umde processo.
Nota
O cabeçalho psapi.h define GetModuleFileNameEx como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows XP [aplicativos da área de trabalho | Aplicativos UWP] |
servidor com suporte mínimo | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
da Plataforma de Destino |
Windows |
cabeçalho | psapi.h |
biblioteca | Kernel32.lib no Windows 7 e Windows Server 2008 R2; Psapi.lib (se PSAPI_VERSION=1) no Windows 7 e Windows Server 2008 R2; Psapi.lib no Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP |
de DLL |
Kernel32.dll no Windows 7 e no Windows Server 2008 R2; Psapi.dll (se PSAPI_VERSION=1) no Windows 7 e no Windows Server 2008 R2; Psapi.dll no Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP |
Consulte também
EnumProcesses
GetModuleHandle
de informações do módulo
Funções PSAPI