Condividi tramite


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.

Valore Significato
BindOutOfMemory
0
Memoria insufficiente. Il valore Parametro è il numero di byte nel tentativo di allocazione.
BindRvaToVaFailed
1
L'indirizzo virtuale relativo non è valido per l'immagine. Il valore Parametro non viene usato.
BindNoRoomInImage
2
Nessuna stanza nell'immagine per la nuova tabella di importazione del formato. Il valore Parametro non viene usato.
BindImportModuleFailed
3
Importazione del modulo non riuscita. Il valore Parametro non viene usato.
BindImportProcedureFailed
4
Importazione della procedura non riuscita. Il valore Parameter è il nome della funzione.
BindImportModule
5
L'importazione del modulo viene avviata. Il valore Parametro non viene usato.
BindImportProcedure
6
L'importazione della procedura viene avviata. Il valore Parameter è il nome della funzione.
BindForwarder
7
Il valore Parameter è il nome della funzione inoltrata.
BindForwarderNOT
8
Il valore Parameter è il nome della funzione non inoltrata.
BindImageModified
9
Immagine modificata. Il valore Parametro non viene usato.
BindExpandFileHeaders
10
Intestazioni di file espanse. Il valore del parametro è il numero di byte
BindImageComplete
11
L'associazione è completa. Per altre informazioni sul valore del parametro , vedere la sezione Osservazioni seguenti.
BindMismatchedSymbols
12
Checksum non corrispondeva. Il valore Parameter è il nome del file di simboli.
BindSymbolsNotUpdated
13
Il file di simboli non è stato aggiornato. Il valore Parameter è il nome del file di simboli non aggiornato.

[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

Vedi anche

BindImageEx

Funzioni ImageHlp