Compartilhar via


Função CChkSGFiles.ErrCheckDbPages

Aplica-se a: Exchange Server 2003 | Exchange Server 2007 | Exchange Server | 2010 Exchange Server 2013

Valida um intervalo de páginas em um banco de dados especificado.

Vitual ERRErrCheckDbPages  
(
    Const ULONGiDb,
    Const VOID  * const pvPageBuffer,
    Const ULONGcbPageBuffer,
    PAGE_INFOrgPageInfo[],
    Const ULONGcPageInfo,
    Const ULONGulFlags = NO_FLAGS
);

Parâmetros

Bid

Parâmetro de entrada. Um índice na matriz de bancos de dados especificado no parâmetro rgwszDb[] para a função ErrInit . O banco de dados indexado por esse parâmetro será verificado.

pvPageBuffer

Parâmetro de entrada. Um ponteiro para um buffer que contém uma ou mais páginas de banco de dados a serem verificadas. O tamanho do buffer deve ser um múltiplo do tamanho da página do banco de dados, conforme retornado no parâmetro pcbDbPageSize pela função ErrCheckDbHeaders . O aplicativo de chamada deve preencher o buffer com o conteúdo da página de banco de dados antes de chamar ErrCheckDbPages.

cbPageBuffer

Parâmetro de entrada. O tamanho do parâmetro pvPageBuffer , em bytes. Esse valor deve ser um múltiplo do tamanho da página do banco de dados, conforme retornado no parâmetro pcbDbPageSize pela função ErrCheckDbHeaders .

rgPageInfo[]

Parâmetro de entrada/saída. Uma matriz de estruturas de PAGE_INFO que o ErrCheckDbPages preenche com resultados detalhados de cada página de banco de dados marcada. A matriz deve ter um elemento para cada página de banco de dados passada no parâmetro pvPageBuffer e o campo ulPgno em cada PAGE_INFO estrutura deve ser definido como o número de página lógica que corresponde à página do banco de dados. Para obter mais informações, consulte "Observações" mais adiante neste tópico.

cPageInfo

Parâmetro de entrada. O número de entradas na matriz rgPageInfo[] . Esse valor deve ser igual ao número de páginas de banco de dados passadas no parâmetro pvPageBuffer .

ulFlags

Parâmetro de entrada opcional. Esse valor é reservado para uso futuro. O valor passado nesse parâmetro deve ser 0 (zero).

Valor de retorno

Um código de erro da enumeração ERR .

Comentários

Observe que você precisa ter especificado o banco de dados na matriz de bancos de dados passados para a função ErrInit . Além disso, ErrCheckDbHeaders deve ser chamado antes de ErrCheckDbPages.

O aplicativo de chamada deve alocar um buffer de memória grande o suficiente para manter as páginas do banco de dados a serem verificadas. O aplicativo é responsável por preencher o buffer com o conteúdo de uma ou mais dessas páginas de banco de dados.

O aplicativo de chamada deve chamar ErrCheckDbHeaders antes de chamar ErrCheckDbPages. Essa função pode ser chamada quantas vezes for necessário para cobrir todas as páginas em todos os arquivos de banco de dados que devem ser verificados.

No parâmetro rgPageInfo[] , cada elemento retornado contém informações sobre a página do banco de dados em uma estrutura de PAGE_INFO . Se a função ErrCheckDbPages retornar um erro, o aplicativo deverá verificar cada estrutura PAGE_INFO para determinar em qual página o erro foi encontrado. Por exemplo, comparar os valores checksumActual e checksumExpected indicará se um erro de soma de verificação foi detectado nessa página de banco de dados.

Se o ErrCheckDbPages detectar erros no conteúdo do banco de dados, ele criará uma entrada de log de eventos do Erro do Windows.

O objeto CChkSGFiles determina se todos os bancos de dados registrados com a função ErrInit foram realmente verificados. Especificamente, O CChkSGFiles usa a função ErrCheckDbPages para determinar se o mesmo número de páginas de banco de dados indicadas pelo ErrCheckDbHeaders foi realmente verificado. Se o número correto de páginas em cada banco de dados não tiver sido verificado com êxito, a função ErrTerm retornará um erro.

Se você estiver usando CHKSGFILES em um aplicativo multithreaded, poderá chamar a função ErrCheckDbPages na parte multithread do aplicativo. Observe que errCheckDbPages normalmente é chamado várias vezes para cada banco de dados que é verificado.

Requisitos

O Exchange 2013 inclui apenas uma versão de 64 bits da API CHKSGFILES.

A conta em que o aplicativo está em execução deve ter permissões de leitura para o banco de dados e arquivos de log que devem ser verificados.