PIMAGEHLP_STATUS_ROUTINE função de retorno de chamada (imagehlp.h)
Uma função de retorno de chamada definida pelo aplicativo usada com a função BindImageEx . A rotina de status é chamada durante o processo de associação de imagem.
O tipo PIMAGEHLP_STATUS_ROUTINE define um ponteiro para essa função de retorno de chamada. StatusRoutine é um espaço reservado para o nome da função definida pelo aplicativo.
Sintaxe
PIMAGEHLP_STATUS_ROUTINE PimagehlpStatusRoutine;
BOOL PimagehlpStatusRoutine(
[in] IMAGEHLP_STATUS_REASON Reason,
[in] PCSTR ImageName,
[in] PCSTR DllName,
[in] ULONG_PTR Va,
[in] ULONG_PTR Parameter
)
{...}
Parâmetros
[in] Reason
O status atual da operação de associação. Esse parâmetro pode usar um dos valores a seguir.
[in] ImageName
O nome do arquivo a ser associado. Esse valor pode ser um nome de arquivo, um caminho parcial ou um caminho completo.
[in] DllName
O nome da DLL.
[in] Va
O endereço virtual computado.
[in] Parameter
Qualquer informação de status adicional. Esse valor depende do valor do parâmetro Reason . Para obter mais informações, consulte o fragmento de código na seção Comentários a seguir.
Retornar valor
Se a função for bem-sucedida, o valor retornado será TRUE.
Se a função falhar, o valor retornado será FALSE. Para recuperar informações de erro estendidas, chame GetLastError.
Comentários
Todas as funções ImageHlp, como esta, são threaded único. Portanto, chamadas de mais de um thread para essa função provavelmente resultarão em comportamento inesperado ou corrupção de memória. Para evitar isso, você deve sincronizar todas as chamadas simultâneas de mais de um thread para essa função.
O fragmento de código a seguir descreve como usar o valor Va quando o status é BindImageComplete.
case BindImageComplete:
if (fVerbose) {
fprintf(stderr, "BIND: Details of binding %s\n", ImageName );
NewImports = (PIMAGE_BOUND_IMPORT_DESCRIPTOR)Va;
NewImport = NewImports;
while (NewImport->OffsetModuleName) {
fprintf( stderr, " Import from %s [%x]",
(LPSTR)NewImports + NewImport->OffsetModuleName,
NewImport->TimeDateStamp
);
if (NewImport->NumberOfModuleForwarderRefs != 0) {
fprintf( stderr, " with %u forwarders", NewImport->
NumberOfModuleForwarderRefs );
}
fprintf( stderr, "\n" );
NewForwarder = (PIMAGE_BOUND_FORWARDER_REF)(NewImport+1);
for (i=0; i<NewImport->NumberOfModuleForwarderRefs; i++)
{
fprintf( stderr, " Forward to %s [%x]\n",
(LPSTR)NewImports + NewForwarder->OffsetModuleName,
NewForwarder->TimeDateStamp);
NewForwarder += 1;
}
NewImport = (PIMAGE_BOUND_IMPORT_DESCRIPTOR)NewForwarder;
}
}
break;
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 | imagehlp.h |