次の方法で共有


CChkSGFiles.ErrCheckDbPages 関数

適用対象: Exchange Server 2003 |Exchange Server 2007 |Exchange Server 2010 |Exchange Server 2013

指定したデータベースのページの範囲を検証します。

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

パラメーター

Idb

入力パラメーター。 ErrInit 関数への rgwszDb[] パラメーターで指定したデータベースの配列のインデックス。 このパラメーターでインデックス指定されたデータベースが確認の対象になります。

pvPageBuffer

入力パラメーター。 確認対象のデータベース ページを 1 ページ以上格納しているバッファーへのポインター。 バッファーのサイズは、ErrCheckDbHeaders 関数の pcbDbPageSize パラメーターで返されるデータベース ページのサイズの倍数になっている必要があります。 呼び出し元のアプリケーションでは、ErrCheckDbPages を呼び出す前に、データベース ページのコンテンツでバッファーを満たしておく必要があります。

cbPageBuffer

入力パラメーター。 pvPageBuffer パラメーターのサイズ (バイト単位)。 この値は、ErrCheckDbHeaders 関数の pcbDbPageSize パラメーターで返されるデータベース ページのサイズの倍数になっている必要があります。

rgPageInfo[]

入力/出力パラメーター。 ErrCheckDbPages がチェックされた各データベース ページの詳細な結果で埋める、PAGE_INFO構造体の配列。 配列には、pvPageBuffer パラメーターで渡されるデータベース ページごとに 1 つの要素が必要です。また、各PAGE_INFO構造体の ulPgno フィールドは、データベース ページに対応する論理ページ番号に設定する必要があります。 詳細については、このトピックの後半の「備考」を参照してください。

cPageInfo

入力パラメーター。 rgPageInfo[] 配列のエントリ数。 この値は、pvPageBuffer パラメーターで渡したデータベース ページの数と等しくなっている必要があります。

ulFlags

オプションの入力パラメーター。 この値は、将来使用するために予約されています。 このパラメーターで渡された値は 0 (ゼロ) になります。

戻り値

ERR 列挙型のエラー コード。

注釈

指定するデータベースは、ErrInit 関数に渡したデータベースの配列内のものにする必要があります。 また、ErrCheckDbPages の前に ErrCheckDbHeaders を呼び出す必要もあります。

呼び出し元のアプリケーションでは、確認対象のデータベース ページを保持できる大きさのメモリ バッファーを割り当てる必要があります。 アプリケーションでは、このバッファーに、1 つ以上の該当するデータベース ページのコンテンツを設定する必要があります。

呼び出し元のアプリケーションは 、ErrCheckDbPages を 呼び出す前に ErrCheckDbHeaders を呼び出す必要があります。 この関数は、すべてのデータベース ファイルに含まれる確認対象のすべてのページをカバーするために必要になる回数だけ呼び出しできます。

rgPageInfo[] パラメーターで返される各要素には、データベース ページに関する情報を含んでいる PAGE_INFO 構造体が格納されています。 ErrCheckDbPages 関数がエラーを返した場合、アプリケーションでは、各 PAGE_INFO 構造体を調べて、エラーが見つかったページを判断する必要があります。 たとえば、checksumActualchecksumExpected の値を比較することで、そのデータベース ページでチェックサム エラーが検出されたかどうかがわかります。

ErrCheckDbPages は、データベース コンテンツにエラーを検出すると、Windows エラーのイベント ログのエントリを作成します。

CChkSGFiles オブジェクトは、ErrInit 関数に登録されているすべてのデータベースが実際にチェックされたかどうかを判別します。 具体的には、CChkSGFilesErrCheckDbPages 関数を使用することで、ErrCheckDbHeaders によって示されたデータベース ページ数が実際に検証されたページ数と同じかどうかを判断します。 各データベースで適切なページ数が正常にチェックされていなかった場合、ErrTerm 関数はエラーを返します。

マルチスレッド アプリケーションで CHKSGFILES を使用している場合、ErrCheckDbPages 関数は、そのアプリケーションのシングルスレッドの部分で呼び出すことができます。 通常、ErrCheckDbPages は確認対象のデータベースごとに複数回呼び出されます。

要件

Exchange 2013 には、CHKSGFILES API の 64 ビット バージョンのみが含まれています。

アプリケーションを実行しているアカウントには、確認するデータベースとログ ファイルに対する読み取りアクセス許可が必要です。