Bagikan melalui


IDiaDataSourceEx::ValidatePdbEx

Memverifikasi bahwa file database program (.pdb) cocok dengan informasi tanda tangan yang disediakan.

Sintaks

HRESULT ValidatePdb ( 
   LPCOLESTR    pdbPath,
   const GUID*  pcsig70,
   DWORD        sig,
   DWORD        age,
   BOOL*        pfStripped
);

Parameter

pdbPath

[masuk] Jalur ke file .pdb.

pcsig70

[di] Tanda tangan pengidentifikasi unik global (GUID) untuk memverifikasi terhadap tanda tangan file .pdb. Hanya file .pdb di Visual C++ dan yang lebih baru memiliki tanda tangan GUID.

sig

[di] Tanda tangan 32-bit untuk memverifikasi terhadap tanda tangan file .pdb.

age

[di] Nilai usia untuk diverifikasi. Usia tidak selalu sesuai dengan nilai waktu yang diketahui, itu digunakan untuk menentukan apakah file .pdb tidak sinkron dengan file .exe yang sesuai.

pfStripped

[out] Jika PDB cocok dengan informasi lain, parameter ini diatur untuk menunjukkan apakah PDB telah dilucuti dari simbol privat. Ini adalah nilai yang sama seperti yang akan dikembalikan oleh IDiaSymbol::get_isStripped. Jika PDB tidak cocok dengan nilai lain, atau metode ini gagal, parameter ini tidak ditentukan.

Tampilkan Nilai

Jika berhasil, mengembalikan S_OK; jika tidak, mengembalikan kode galat. Tabel berikut memperlihatkan kemungkinan nilai pengembalian untuk metode ini.

Nilai Deskripsi
E_PDB_NOT_FOUND Gagal membuka file, atau file memiliki format yang tidak valid.
E_PDB_FORMAT Mencoba mengakses file dengan format tidak terpakai.
E_PDB_INVALID_SIG Tanda tangan tidak cocok.
E_PDB_INVALID_AGE Usia tidak cocok.
E_INVALIDARG Parameter tidak valid.
E_UNEXPECTED Sumber data telah disiapkan.

Keterangan

File .pdb berisi nilai tanda tangan dan usia. Nilai-nilai ini direplikasi dalam file .exe atau .dll yang cocok dengan file .pdb. Metode ini memverifikasi bahwa tanda tangan dan usia file .pdb bernama cocok dengan nilai yang disediakan tanpa memuat PDB atau menyiapkannya untuk digunakan.

Untuk memuat file .pdb tanpa validasi, gunakan metode .IDiaDataSourceEx::loadDataFromPdbEx

Untuk memuat dan memvalidasi file .pdb terhadap kriteria tertentu, gunakan metode .IDiaDataSourceEx::loadAndValidateDataFromPdbEx

Contoh

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;
BOOL fStripped              = FALSE;

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

Lihat juga