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 構造体を調べて、エラーが見つかったページを判断する必要があります。 たとえば、checksumActual と checksumExpected の値を比較することで、そのデータベース ページでチェックサム エラーが検出されたかどうかがわかります。
ErrCheckDbPages は、データベース コンテンツにエラーを検出すると、Windows エラーのイベント ログのエントリを作成します。
CChkSGFiles オブジェクトは、ErrInit 関数に登録されているすべてのデータベースが実際にチェックされたかどうかを判別します。 具体的には、CChkSGFiles は ErrCheckDbPages 関数を使用することで、ErrCheckDbHeaders によって示されたデータベース ページ数が実際に検証されたページ数と同じかどうかを判断します。 各データベースで適切なページ数が正常にチェックされていなかった場合、ErrTerm 関数はエラーを返します。
マルチスレッド アプリケーションで CHKSGFILES を使用している場合、ErrCheckDbPages 関数は、そのアプリケーションのシングルスレッドの部分で呼び出すことができます。 通常、ErrCheckDbPages は確認対象のデータベースごとに複数回呼び出されます。
要件
Exchange 2013 には、CHKSGFILES API の 64 ビット バージョンのみが含まれています。
アプリケーションを実行しているアカウントには、確認するデータベースとログ ファイルに対する読み取りアクセス許可が必要です。