Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Sprawdza, czy plik bazy danych programu (.pdb) jest zgodny z podanymi informacjami o podpisie.
Składnia
HRESULT ValidatePdb (
LPCOLESTR pdbPath,
const GUID* pcsig70,
DWORD sig,
DWORD age,
BOOL* pfStripped
);
Parametry
pdbPath
[in] Ścieżka do pliku .pdb.
pcsig70
[in] Sygnatura globalnie unikatowego identyfikatora (GUID) do weryfikacji względem podpisu pliku .pdb. Tylko pliki .pdb w programie Visual C++ i nowszych mają podpisy GUID.
sig
[in] Podpis 32-bitowy do zweryfikowania pod sygnaturą pliku .pdb.
age
[in] Wartość wieku do zweryfikowania. Wiek nie musi odpowiadać każdej znanej wartości czasu, służy do określenia, czy plik pdb nie jest zsynchronizowany z odpowiednim plikiem .exe.
pfStripped
[out] Jeśli pdB pasuje do innych informacji, ten parametr jest ustawiony, aby wskazać, czy pdB został pozbawiony prywatnych symboli. Jest to ta sama wartość, co zostanie zwrócona przez IDiaSymbol::get_isStripped. Jeśli plik PDB nie jest zgodny z innymi wartościami lub ta metoda nie powiedzie się, ten parametr jest nieokreślony.
Wartość zwracana
Jeśli operacja powiedzie się, zwraca wartość S_OK; w przeciwnym razie zwraca kod błędu. W poniższej tabeli przedstawiono możliwe wartości zwracane dla tej metody.
| Wartość | Opis |
|---|---|
E_PDB_NOT_FOUND |
Nie można otworzyć pliku lub plik ma nieprawidłowy format. |
E_PDB_FORMAT |
Podjęto próbę uzyskania dostępu do pliku w przestarzałym formacie. |
E_PDB_INVALID_SIG |
Podpis nie jest zgodny. |
E_PDB_INVALID_AGE |
Wiek nie jest zgodny. |
E_INVALIDARG |
Nieprawidłowy parametr. |
E_UNEXPECTED |
Źródło danych zostało już przygotowane. |
Uwagi
Plik .pdb zawiera zarówno wartości sygnatury, jak i wieku. Te wartości są replikowane w pliku .exe lub .dll, który jest zgodny z plikiem .pdb. Ta metoda sprawdza, czy podpis i wiek nazwanego pliku .pdb są zgodne z podanymi wartościami bez konieczności ładowania pliku PDB lub przygotowywania go do użycia.
Aby załadować plik .pdb bez walidacji, użyj IDiaDataSourceEx::loadDataFromPdbEx metody .
Aby załadować i zweryfikować plik .pdb pod kątem określonych kryteriów, użyj IDiaDataSourceEx::loadAndValidateDataFromPdbEx metody .
Przykład
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
}