PIMAGEHLP_STATUS_ROUTINE funzione di callback (imagehlp.h)
Funzione callback definita dall'applicazione usata con la funzione BindImageEx . La routine di stato viene chiamata durante il processo di associazione di immagini.
Il tipo PIMAGEHLP_STATUS_ROUTINE definisce un puntatore a questa funzione di callback. StatusRoutine è un segnaposto per il nome della funzione definita dall'applicazione.
Sintassi
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
)
{...}
Parametri
[in] Reason
Stato corrente dell'operazione di associazione. Questo parametro può avere uno dei valori seguenti.
[in] ImageName
Nome del file da associare. Questo valore può essere un nome di file, un percorso parziale o un percorso completo.
[in] DllName
Nome della DLL.
[in] Va
Indirizzo virtuale calcolato.
[in] Parameter
Eventuali informazioni aggiuntive sullo stato. Questo valore dipende dal valore del parametro Reason . Per altre informazioni, vedere il frammento di codice nella sezione Osservazioni seguenti.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è TRUE.
Se la funzione ha esito negativo, il valore restituito è FALSE. Per recuperare informazioni sull'errore estese, chiamare GetLastError.
Commenti
Tutte le funzioni ImageHlp, ad esempio questa, sono a thread singolo. Pertanto, le chiamate da più thread a questa funzione potrebbero causare un comportamento imprevisto o un danneggiamento della memoria. Per evitare questo problema, è necessario sincronizzare tutte le chiamate simultanee da più thread a questa funzione.
Il frammento di codice seguente descrive come usare il valore Va quando lo stato è 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;
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | imagehlp.h |