Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
Comprueba que el archivo de base de datos de programa (.pdb) coincide con la información de firma proporcionada.
Sintaxis
HRESULT ValidatePdb (
LPCOLESTR pdbPath,
const GUID* pcsig70,
DWORD sig,
DWORD age,
BOOL* pfStripped
);
Parámetros
pdbPath
[in] La ruta de acceso al archivo .pdb.
pcsig70
[in] Firma de identificador único global (GUID) que se va a comprobar con la firma del archivo .pdb. Solo los archivos .pdb de Visual C++, y de las versiones posteriores, tienen firmas GUID.
sig
[in] La firma de 32 bits que se va a comprobar con la firma del archivo .pdb.
age
[in] Valor de antigüedad que se va a comprobar. La antigüedad no corresponde necesariamente a ningún valor de hora conocido, se usa para determinar si un archivo .pdb no está sincronizado con un archivo .exe correspondiente.
pfStripped
[out] Si la PDB coincide con la otra información, este parámetro se establece para indicar si la PDB se ha quitado de símbolos privados. Este es el mismo valor que lo devolvería IDiaSymbol::get_isStripped. Si la PDB no coincide con los demás valores o se produce un error en este método, este parámetro no se especifica.
Valor devuelto
Si la operación se realiza correctamente, devuelve S_OK; de lo contrario, devuelve un código de error. En la siguiente tabla se muestran los posibles valores devueltos para este método.
| Valor | Descripción |
|---|---|
E_PDB_NOT_FOUND |
No se pudo abrir el archivo o el archivo tiene un formato no válido. |
E_PDB_FORMAT |
Se intentó acceder a un archivo con un formato obsoleto. |
E_PDB_INVALID_SIG |
La firma no coincide. |
E_PDB_INVALID_AGE |
La edad no coincide. |
E_INVALIDARG |
El parámetro no es válido. |
E_UNEXPECTED |
El origen de datos ya se ha preparado. |
Comentarios
Un archivo .pdb contiene los valores de firma y de antigüedad. Estos valores se replican en los archivos .exe o .dll que coinciden con el archivo .pdb. Este método comprueba que la firma y la antigüedad del archivo .pdb con nombre coinciden con los valores proporcionados sin cargar la PDB ni prepararla para su uso.
Para cargar un archivo .pdb sin validación, use el IDiaDataSourceEx::loadDataFromPdbEx método .
Para cargar y validar el archivo .pdb con criterios específicos, use el IDiaDataSourceEx::loadAndValidateDataFromPdbEx método .
Ejemplo
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
}