IDiaDataSource::loadAndValidateDataFromPdbIDiaDataSource::loadAndValidateDataFromPdb

S’ouvre et vérifie que le fichier de base de données (.pdb) de programme correspond à fourni les informations de signature et prépare le fichier .pdb comme source de données de débogage.Opens and verifies that the program database (.pdb) file matches the signature information provided, and prepares the .pdb file as a debug data source.

SyntaxeSyntax

HRESULT loadAndValidateDataFromPdb (   
   LPCOLESTR pdbPath,  
   GUID*     pcsig70,  
   DWORD     sig,  
   DWORD     age  
);  

ParamètresParameters

pdbPath
[in] Le chemin d’accès au fichier .pdb.[in] The path to the .pdb file.

pcsig70
[in] Signature GUID à vérifier par rapport à la signature du fichier .pdb.[in] The GUID signature to verify against the .pdb file signature. Fichiers .pdb uniquement Visual C++Visual C++ et versions ultérieures ont des signatures GUID.Only .pdb files in Visual C++Visual C++ and later have GUID signatures.

sig
[in] La signature de 32 bits à vérifier par rapport à la signature du fichier .pdb.[in] The 32-bit signature to verify against the .pdb file signature.

age
[in] Valeur d’âge à vérifier.[in] Age value to verify. La durée de vie ne correspond pas nécessairement une valeur de temps connu, il est utilisé pour déterminer si un fichier .pdb est synchronisé avec un fichier .exe.The age does not necessarily correspond to any known time value, it is used to determine if a .pdb file is out of sync with a corresponding .exe file.

Valeur de retourReturn Value

En cas de réussite, retourne S_OK; sinon, retourne un code d’erreur.If successful, returns S_OK; otherwise, returns an error code. Le tableau suivant montre les valeurs de retournés possibles pour cette méthode.The following table shows the possible return values for this method.

ValueValue DescriptionDescription
E_PDB_NOT_FOUNDE_PDB_NOT_FOUND Impossible d’ouvrir le fichier ou le fichier a un format non valide.Failed to open the file, or the file has an invalid format.
E_PDB_FORMATE_PDB_FORMAT Vous avez tenté d’accéder à un fichier avec un format obsolète.Attempted to access a file with an obsolete format.
E_PDB_INVALID_SIGE_PDB_INVALID_SIG Signature ne correspond pas.Signature does not match.
E_PDB_INVALID_AGEE_PDB_INVALID_AGE Âge ne correspond pas.Age does not match.
E_INVALIDARGE_INVALIDARG Paramètre non valide.Invalid parameter.
E_UNEXPECTEDE_UNEXPECTED La source de données a déjà été préparée.The data source has already been prepared.

NotesRemarks

Un fichier .pdb contient des valeurs de signature et âge.A .pdb file contains both signature and age values. Ces valeurs sont répliqués dans le fichier .exe ou .dll correspondant au fichier .pdb.These values are replicated in the .exe or .dll file that matches the .pdb file. Avant de préparer la source de données, cette méthode vérifie la signature et l’âge du fichier .pdb nommé correspondent aux valeurs fournies.Before preparing the data source, this method verifies that the named .pdb file's signature and age match the values provided.

Pour charger un fichier .pdb sans validation, utilisez la IDiaDataSource::loadDataFromPdb (méthode).To load a .pdb file without validation, use the IDiaDataSource::loadDataFromPdb method.

Pour obtenir l’accès pour le processus de chargement de données (via un mécanisme de rappel), utilisez la IDiaDataSource::loadDataForExe (méthode).To gain access to the data load process (through a callback mechanism), use the IDiaDataSource::loadDataForExe method.

Pour charger un fichier .pdb directement à partir de la mémoire, utilisez le IDiaDataSource::loadDataFromIStream (méthode).To load a .pdb file directly from memory, use the IDiaDataSource::loadDataFromIStream method.

ExempleExample

IDiaDataSource* pSource;  // Previously created data source.  
DEFINE_GUID(expectedGUIDSignature,0x1234,0x5678,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08);  
DWORD expectedFileSignature = 0x12345678;  
DWORD expectedAge           = 128;  

HRESULT hr;  
hr = pSource->loadAndValidateDataFromPdb( L"yprog.pdb",  
                                          &expectedGUIDSignature,  
                                          expectedFileSignature,  
                                          expectedAge);  
if (FAILED(hr))  
{  
    // Report an error  
}  

Voir aussiSee Also

IDiaDataSource IDiaDataSource
IDiaDataSource::loadDataForExe IDiaDataSource::loadDataForExe
IDiaDataSource::loadDataFromPdb IDiaDataSource::loadDataFromPdb
IDiaDataSource::loadDataFromIStreamIDiaDataSource::loadDataFromIStream