Freigeben über


CChkSGFiles.ErrCheckDbPages-Funktion

Gilt für: Exchange Server 2003 | Exchange Server 2007 | Exchange Server 2010 | Exchange Server 2013

Überprüft einen Seitenbereich in einer angegebenen Datenbank.

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

Parameter

idb

Eingabeparameter. Ein Index in das Array von Datenbanken, das im Parameter rgwszDb[] für die ErrInit-Funktion angegeben ist. Die datenbank, die von diesem Parameter indiziert wird, wird überprüft.

pvPageBuffer

Eingabeparameter. Ein Zeiger auf einen Puffer, der mindestens eine Datenbankseite enthält, die überprüft werden soll. Die Größe des Puffers muss ein Vielfaches der Datenbankseitengröße sein, wie im pcbDbPageSize-Parameter von der ErrCheckDbHeaders-Funktion zurückgegeben. Die aufrufende Anwendung muss den Puffer mit dem Inhalt der Datenbankseite füllen, bevor ErrCheckDbPages aufgerufen wird.

cbPageBuffer

Eingabeparameter. Die Größe des pvPageBuffer-Parameters in Bytes. Dieser Wert muss ein Vielfaches der Datenbankseitengröße sein, wie im parameter pcbDbPageSize von der ErrCheckDbHeaders-Funktion zurückgegeben.

rgPageInfo[]

Eingabe-/Ausgabeparameter. Ein Array von PAGE_INFO Strukturen, die ErrCheckDbPages mit detaillierten Ergebnissen jeder überprüften Datenbankseite auffüllt. Das Array muss über ein Element für jede Datenbankseite verfügen, die im pvPageBuffer-Parameter übergeben wird, und das UlPgno-Feld in jeder PAGE_INFO Struktur muss auf die logische Seitenzahl festgelegt werden, die der Datenbankseite entspricht. Weitere Informationen finden Sie unter "Hinweise" weiter unten in diesem Thema.

cPageInfo

Eingabeparameter. Die Anzahl der Einträge im rgPageInfo[] -Array. Dieser Wert muss gleich der Anzahl der Datenbankseiten sein, die im pvPageBuffer-Parameter übergeben werden.

ulFlags

Optionaler Eingabeparameter. Dieser Wert ist für die zukünftige Verwendung reserviert. Der in diesem Parameter übergebene Wert sollte 0 (null) sein.

Rückgabewert

Ein Fehlercode aus der ERR-Enumeration .

Hinweise

Beachten Sie, dass Sie die Datenbank im Array von Datenbanken angegeben haben müssen, die an die Funktion ErrInit übergeben werden. Außerdem muss ErrCheckDbHeaders vor ErrCheckDbPages aufgerufen werden.

Die aufrufende Anwendung muss einen Speicherpuffer zuweisen, der groß genug ist, um die zu überprüfenden Datenbankseiten aufzunehmen. Die Anwendung ist dafür verantwortlich, den Puffer mit dem Inhalt einer oder mehrerer solcher Datenbankseiten zu füllen.

Die aufrufende Anwendung muss Vor dem Aufruf von ErrCheckDbPages ErrCheckDbHeaders aufrufen. Diese Funktion kann so oft wie nötig aufgerufen werden, um alle Seiten in allen Datenbankdateien abzudecken, die überprüft werden sollen.

Im Parameter rgPageInfo[] enthält jedes zurückgegebene Element Informationen zur Datenbankseite in einer PAGE_INFO-Struktur . Wenn die ErrCheckDbPages-Funktion einen Fehler zurückgibt, sollte die Anwendung jede PAGE_INFO Struktur überprüfen, um zu ermitteln, auf welcher Seite der Fehler gefunden wurde. Wenn Sie beispielsweise die Werte checksumActual und checksumExpected vergleichen, wird angezeigt, ob auf dieser Datenbankseite ein Prüfsummenfehler erkannt wurde.

Wenn ErrCheckDbPages Fehler im Datenbankinhalt erkennt, wird ein Windows-Fehlerereignisprotokolleintrag erstellt.

Das CChkSGFiles-Objekt bestimmt, ob alle mit der Funktion ErrInit registrierten Datenbanken tatsächlich überprüft wurden. CChkSGFiles verwendet insbesondere die ErrCheckDbPages-Funktion, um zu bestimmen, ob die gleiche Anzahl von Datenbankseiten, die von ErrCheckDbHeaders angegeben werden, tatsächlich überprüft wurde. Wenn die richtige Anzahl von Seiten in jeder Datenbank nicht erfolgreich überprüft wurde, gibt die ErrTerm-Funktion einen Fehler zurück.

Wenn Sie CHKSGFILES in einer Multithreadanwendung verwenden, können Sie die Funktion ErrCheckDbPages im Multithreadteil der Anwendung aufrufen. Beachten Sie, dass ErrCheckDbPages in der Regel mehrmals für jede datenbank aufgerufen wird, die überprüft wird.

Anforderungen

Exchange 2013 enthält nur eine 64-Bit-Version der CHKSGFILES-API.

Das Konto, unter dem die Anwendung ausgeführt wird, muss über Leseberechtigungen für die datenbank- und protokolldateien verfügen, die überprüft werden sollen.