IDiaDataSource::loadAndValidateDataFromPdb

Apertura e verifica che il file di database di programma (PDB) corrisponda a informazioni sulla firma fornite e scrive il file pdb come origine dati di debug.

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

Parametri

  • pdbPath
    [in] Il percorso del file pdb.

  • pcsig70
    [in] La firma di GUID per verificare con la firma del file con estensione pdb.Solo file con estensione pdb in Visual C++ e successivamente avere firme di GUID.

  • sig
    [in] La firma a 32 bit che verifica della firma del file con estensione pdb.

  • age
    [in] Valore dell'età da verificare.L'età necessariamente non corrisponde ad alcun valore, viene utilizzata per determinare se un file con estensione pdb viene sincronizzata con un file EXE corrispondente.

Valore restituito

Se l'operazione riesce, restituisce S_OK; in caso contrario, restituisce un codice di errore.Nella tabella seguente vengono illustrati i valori restituiti possibili di questo metodo.

Valore

Descrizione

E_PDB_NOT_FOUND

Non riuscire aprire il file, il file o ha un formato non valido.

E_PDB_FORMAT

Ha tentato di accedere a un file con un formato obsoleto.

E_PDB_INVALID_SIG

La firma non corrisponde.

E_PDB_INVALID_AGE

L'età non corrisponde.

E_INVALIDARG

parametro non valido.

E_UNEXPECTED

L'origine dati è già stata preparare.

Note

Un file PDB contiene sia la firma che i valori dell'età.Questi valori esse vengono replicate nel file con estensione exe o dll corrispondente al file con estensione pdb.Prima della preparazione dell'origine dati, questo metodo verifica che la firma denominata e l'intervallo di file pdb corrispondano ai valori forniti.

Per caricare un file con estensione pdb senza convalida, utilizzare IDiaDataSource::loadDataFromPdb metodo.

Per accedere al processo di caricamento dati (tramite un meccanismo di callback, utilizzare IDiaDataSource::loadDataForExe metodo.

Per caricare un file con estensione pdb direttamente dalla memoria, utilizzare IDiaDataSource::loadDataFromIStream metodo.

Esempio

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
}

Vedere anche

Riferimenti

IDiaDataSource

IDiaDataSource::loadDataForExe

IDiaDataSource::loadDataFromPdb

IDiaDataSource::loadDataFromIStream