Freigeben über


IDiaDataSource::loadAndValidateDataFromPdb

Öffnet und überprüft, dass die Programmdatenbankdatei (.pdb) die jeweiligen Signaturinformationen übereinstimmt, und bereitet die PDB-Datei als die Datenquelle vor.

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

Parameter

  • pdbPath
    [in] Der Pfad zur PDB-Datei.

  • pcsig70
    [in] Die für die PDB-Datei-Unterzeichnung zu überprüfen, GUID-Unterzeichnung.Nur Visual C++ in PDB-Dateien verfügen und später GUID-Unterzeichnungen.

  • sig
    [in] Die für die PDB-Datei-Unterzeichnung zu überprüfen, 32-Bit-Unterzeichnung.

  • age
    [in] Der zu überprüfende Wert des Alters.Das Alter nicht notwendigerweise entspricht einem bekannten Uhrzeitwert, der verwendet wird, um zu bestimmen, ob eine PDB-Datei mit einer entsprechenden EXE-Datei nicht synchronisiert ist.

Rückgabewert

Bei Erfolg gibt S_OKzurück. andernfalls gibt einen Fehlercode zurück.In der folgenden Tabelle werden die möglichen Rückgabewerte für diese Methode auf.

Wert

Beschreibung

E_PDB_NOT_FOUND

Fehlgeschlagene, die Datei oder die Datei geöffnet hat ein ungültiges Format.

E_PDB_FORMAT

Versucht, eine Datei mit einem veralteten Format zuzugreifen.

E_PDB_INVALID_SIG

Signatur stimmen nicht überein.

E_PDB_INVALID_AGE

Alter stimmen nicht überein.

E_INVALIDARG

Ungültiger Parameter.

E_UNEXPECTED

Die Datenquelle ist bereits vorbereitet wurde.

Hinweise

Eine PDB-Datei Alters und Signatur enthält.Diese Werte werden im EXE- oder DLL-Datei repliziert, das die PDB-Datei übereinstimmt.Bevor sie die Datenquelle vorbereitet, überprüft diese Methode, ob der benannten .pdb-die Signatur und das Alter Datei die bereitgestellten Werte übereinstimmt.

Um eine PDB-Datei ohne Validierung zu laden, verwenden Sie die IDiaDataSource::loadDataFromPdb-Methode.

Um zum ladevorgang Daten zugreifen zu können (durch einen Rückrufmechanismus), verwenden Sie die IDiaDataSource::loadDataForExe-Methode.

Um eine PDB-Datei direkt aus dem Arbeitsspeicher zu laden, verwenden Sie die IDiaDataSource::loadDataFromIStream-Methode.

Beispiel

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
}

Siehe auch

Referenz

IDiaDataSource

IDiaDataSource::loadDataForExe

IDiaDataSource::loadDataFromPdb

IDiaDataSource::loadDataFromIStream