Partager via


Calcul des valeurs nécessaires

Deux informations très importantes doivent être calculées par la routine d'assistance de chargement différé. Il existe à cet effet deux fonctions inline dans le fichier delayhlp.cpp permettant de calculer ces informations.

  • La première calcule l'index de l'importation active dans les trois tables IAT (import address table), BIAT (bound import address table) et UIAT (unbound import address table).

  • La seconde comptabilise le nombre d'importations dans une table IAT valide.

// utility function for calculating the index of the current import
// for all the tables (INT, BIAT, UIAT, and IAT).
__inline unsigned
IndexFromPImgThunkData(PCImgThunkData pitdCur, PCImgThunkData pitdBase) {
    return pitdCur - pitdBase;
    }

// utility function for calculating the count of imports given the base
// of the IAT. NB: this only works on a valid IAT!
__inline unsigned
CountOfImports(PCImgThunkData pitdBase) {
    unsigned        cRet = 0;
    PCImgThunkData  pitd = pitdBase;
    while (pitd->u1.Function) {
        pitd++;
        cRet++;
        }
    return cRet;
    }

Voir aussi

Référence

Présentation de la fonction d'assistance