Aracılığıyla paylaş


IDiaDataSource::loadAndValidateDataFromPdb

Program veritabanı (.pdb) dosyasının sağlanan imza bilgileriyle eşleşip eşleşmediğini açar ve doğrular ve .pdb dosyasını hata ayıklama veri kaynağı olarak hazırlar.

Sözdizimi

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

Parametreler

pdbPath

[in] .pdb dosyasının yolu.

pcsig70

[in] .pdb dosya imzasını doğrulamak için genel benzersiz tanımlayıcı (GUID) imzası. Yalnızca Visual C++ ve sonraki sürümlerdeki .pdb dosyalarının GUID imzaları vardır.

sig

[in] .pdb dosya imzasını doğrulamak için 32 bit imza.

age

[in] Doğrulanması gereken yaş değeri. Yaş bilinen bir saat değerine karşılık gelmez; .pdb dosyasının ilgili .exe dosyasıyla eşitlenmemiş olup olmadığını belirlemek için kullanılır.

Dönüş Değeri

Başarılı olursa döndürür S_OK; aksi takdirde bir hata kodu döndürür. Aşağıdaki tabloda bu yöntem için olası dönüş değerleri gösterilmektedir.

Value Açıklama
E_PDB_NOT_FOUND Dosya açılamadı veya dosya geçersiz bir biçime sahip.
E_PDB_FORMAT Eski bir biçime sahip bir dosyaya erişmeye çalışıldı.
E_PDB_INVALID_SIG İmza eşleşmiyor.
E_PDB_INVALID_AGE Yaş eşleşmiyor.
E_INVALIDARG Geçersiz parametre.
E_UNEXPECTED Veri kaynağı zaten hazırlanmıştır.

Açıklamalar

.pdb dosyası hem imza hem de yaş değerlerini içerir. Bu değerler .pdb dosyasıyla eşleşen .exe veya .dll dosyasında çoğaltılır. Bu yöntem, veri kaynağını hazırlamadan önce adlandırılmış .pdb dosyasının imzasının ve yaşının sağlanan değerlerle eşleşip eşleşmediğini doğrular.

Bir .pdb dosyasını yüklemek ve önceden hazırlama ile doğrulamak için yöntemini kullanın IDiaDataSourceEx::loadAndValidateDataFromPdbEx .

Doğrulama olmadan bir .pdb dosyası yüklemek için yöntemini kullanın IDiaDataSource::loadDataFromPdb .

Veri yükleme işlemine erişim elde etmek için (geri çağırma mekanizması aracılığıyla) yöntemini kullanın IDiaDataSource::loadDataForExe .

Bir .pdb dosyasını doğrudan bellekten yüklemek için yöntemini kullanın IDiaDataSource::loadDataFromIStream .

.pdb dosyasını yüklemeden doğrulamak için yöntemini kullanın IDiaDataSourceEx::ValidatePdb .

Örnek

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
}

Ayrıca bkz.