Compartilhar via


Função GetProcessImageFileNameA (psapi.h)

Recupera o nome do arquivo executável para o processo especificado.

Sintaxe

DWORD GetProcessImageFileNameA(
  [in]  HANDLE hProcess,
  [out] LPSTR  lpImageFileName,
  [in]  DWORD  nSize
);

Parâmetros

[in] hProcess

Um identificador para o processo. O identificador deve ter o direito de acesso PROCESS_QUERY_INFORMATION ou PROCESS_QUERY_LIMITED_INFORMATION . Para obter mais informações, consulte Direitos de acesso e segurança do processo.

Windows Server 2003 e Windows XP: O identificador deve ter o direito de acesso PROCESS_QUERY_INFORMATION .

[out] lpImageFileName

Um ponteiro para um buffer que recebe o caminho completo para o arquivo executável.

[in] nSize

O tamanho do buffer lpImageFileName , em caracteres.

Retornar valor

Se a função for bem-sucedida, o valor retornado especificará 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.

Comentários

O arquivo Psapi.dll está instalado no diretório %windir%\System32. Se houver outra cópia dessa DLL em seu computador, isso poderá levar ao seguinte erro ao executar aplicativos em seu sistema: "O ponto de entrada do procedimento GetProcessImageFileName não pôde estar localizado na biblioteca de vínculo dinâmico PSAPI.DLL". Para solucionar esse problema, localize as versões que não estão no diretório %windir%\System32 e exclua ou renomeie-as e reinicie-as.

A função GetProcessImageFileName retorna o caminho no formato do dispositivo, em vez de letras de unidade. Por exemplo, o nome do arquivo C:\Windows\System32\Ctype.nls teria a seguinte aparência no formato do dispositivo:

\Device\Harddisk0\Partition1\Windows\System32\Ctype.nls

Para recuperar o nome do módulo do processo atual, use a função GetModuleFileName com um identificador de módulo NULL. Isso é mais eficiente do que chamar a função GetProcessImageFileName com um identificador para o processo atual.

Para recuperar o nome do módulo executável main para um processo remoto no formato de caminho win32, use a função QueryFullProcessImageName.

A partir do Windows 7 e do 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 maior, essa função será definida como K32GetProcessImageFileName em Psapi.h e exportada em Kernel32.lib e Kernel32.dll. Se PSAPI_VERSION for 1, essa função será definida como GetProcessImageFileName em Psapi.h e exportada em Psapi.lib e Psapi.dll como um wrapper que chama K32GetProcessImageFileName.

Os 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 GetProcessImageFileName. Para garantir a resolução correta de símbolos, adicione Psapi.lib à macro TARGETLIBS e compile o programa com -DPSAPI_VERSION=1. Para usar a vinculação dinâmica em tempo de execução, carregue Psapi.dll.

Observação

O cabeçalho psapi.h define GetProcessImageFileName como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

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 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
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

Confira também

Funções PSAPI

Informações do processo

QueryFullProcessImageName