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::loadDataForExe