Partager via


PIMAGEHLP_STATUS_ROUTINE fonction de rappel (imagehlp.h)

Fonction de rappel définie par l’application utilisée avec la fonction BindImageEx . La routine status est appelée pendant le processus de liaison d’image.

Le type PIMAGEHLP_STATUS_ROUTINE définit un pointeur vers cette fonction de rappel. StatusRoutine est un espace réservé pour le nom de fonction défini par l’application.

Syntaxe

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
)
{...}

Paramètres

[in] Reason

Status actuelle de l’opération de liaison. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
BindOutOfMemory
0
Mémoire insuffisante. La valeur parameter est le nombre d’octets dans la tentative d’allocation.
BindRvaToVaFailed
1
L’adresse virtuelle relative n’est pas valide pour l’image. La valeur Parameter n’est pas utilisée.
BindNoRoomInImage
2
Aucune place dans l’image pour la table d’importation de nouveau format. La valeur Parameter n’est pas utilisée.
BindImportModuleFailed
3
Échec de l’importation du module. La valeur Parameter n’est pas utilisée.
BindImportProcedureFailed
4
Échec de l’importation de procédure. La valeur Parameter est le nom de la fonction.
BindImportModule
5
L’importation de module démarre. La valeur Parameter n’est pas utilisée.
BindImportProcedure
6
L’importation de procédure démarre. La valeur Parameter est le nom de la fonction.
BindForwarder
7
La valeur Parameter est le nom de la fonction transférée.
BindForwarderNOT
8
La valeur Parameter est le nom de la fonction qui n’a pas été transférée.
BindImageModified
9
Image modifiée. La valeur Parameter n’est pas utilisée.
BindExpandFileHeaders
10
En-têtes de fichier développés. La valeur parameter est le nombre d’octets
BindImageComplete
11
La liaison est terminée. Pour plus d’informations sur la valeur parameter , consultez la section Remarques suivante.
BindMismatchedSymbols
12
La somme de contrôle n’a pas correspondé. La valeur Parameter est le nom du fichier de symboles.
BindSymbolsNotUpdated
13
Le fichier de symboles n’a pas été mis à jour. La valeur Parameter est le nom du fichier de symboles non mis à jour.

[in] ImageName

Nom du fichier à lier. Cette valeur peut être un nom de fichier, un chemin d’accès partiel ou un chemin d’accès complet.

[in] DllName

Nom de la DLL.

[in] Va

Adresse virtuelle calculée.

[in] Parameter

Toutes les informations status supplémentaires. Cette valeur dépend de la valeur du paramètre Reason . Pour plus d’informations, consultez le fragment de code dans la section Remarques suivante.

Valeur retournée

Si la fonction réussit, la valeur de retour est TRUE.

Si la fonction échoue, la valeur de retour est FALSE. Pour récupérer des informations d’erreur étendues, appelez GetLastError.

Remarques

Toutes les fonctions ImageHlp, telles que celle-ci, sont à thread unique. Par conséquent, les appels de plusieurs threads à cette fonction entraîneront probablement un comportement inattendu ou une altération de la mémoire. Pour éviter cela, vous devez synchroniser tous les appels simultanés de plusieurs threads vers cette fonction.

Le fragment de code suivant décrit comment utiliser la valeur Va lorsque le status est 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;

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête imagehlp.h

Voir aussi

BindImageEx

Fonctions ImageHlp