Protokollierungsroutinen und Makros
RDBSS bietet eine Reihe von Routinen für die Protokollierung. Diese Protokollierungsmöglichkeiten sind immer vorhanden. Wenn das RDBSSLOG-Makro definiert ist, wird eine Generation der Protokollierungsaufrufe für überprüfte Builds aktiviert. Wenn NO_RDBSSLOG festgelegt ist, werden die Protokollierungsaufrufe deaktiviert.
Die Protokollierungsroutinen erstellen Protokolldatensätze, die in einem Zirkelpuffer gespeichert sind. Jeder Datensatz wird auf beiden Seiten durch einen Datensatzdeskriptor begrenzt. Dieser Datensatzdeskriptor ist vier Bytes lang.
Die folgende Tabelle enthält Protokollierungsroutinen.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
Diese Routine wird aufgerufen, um einen Fehler im E/A-Fehlerprotokoll zu protokollieren. Es wird empfohlen, das RxLogFailure - oder RxLogEvent-Makro zu verwenden, anstatt diese Routine direkt aufzurufen. |
|
Diese Routine ordnet einen E/A-Fehlerprotokolldatensatz zu, füllt den Protokolldatensatz aus und schreibt diesen Datensatz in das E/A-Fehlerprotokoll. |
|
Diese Routine ordnet einen E/A-Fehlerprotokolldatensatz zu, füllt den Protokolldatensatz aus und schreibt diesen Datensatz in das E/A-Fehlerprotokoll. Diese Routine codiert die Zeilennummer und status in den Rohdatenpuffer, der im E/A-Fehlerprotokolldatensatz gespeichert ist. Es wird empfohlen, das RxLogFailureWithBuffer-Makro zu verwenden, anstatt diese Routine direkt aufzurufen. |
|
Diese Routine verwendet eine Formatzeichenfolge und variable Anzahl von Parametern und formatiert eine Ausgabezeichenfolge für die Aufzeichnung als E/A-Fehlerprotokolleintrag, wenn die Protokollierung aktiviert ist. Es wird empfohlen, das RxLog-Makro zu verwenden, anstatt diese Routine direkt aufzurufen. Diese Routine ist nur für überprüfte Builds von RDBSS unter Windows Server 2003, Windows XP und Windows 2000 verfügbar. |
Die folgenden Makros sind in den Headerdateien rxlog.h und rxprocs.h definiert, die die in der vorherigen Tabelle aufgeführten Routinen aufrufen. Diese Makros werden normalerweise verwendet, anstatt diese Routinen direkt aufzurufen.
Makro | Beschreibung |
---|---|
RxLog(Args) |
Bei überprüften Builds ruft dieses Makro die _RxLog Routine auf. Bei Einzelhandelsbuilds macht dieses Makro nichts. Beachten Sie, dass die Argumente für RxLog mit einem zusätzlichen Paar von Klammern versehen werden müssen, um die Übersetzung in einen NULL-Aufruf zu ermöglichen, wenn die Protokollierung deaktiviert werden soll. |
RxLogEvent (_DeviceObject, _OriginatorId, _EventId, _Status) |
Dieses Makro ruft die RxLogEventDirect-Routine auf. |
RxLogFailure (_DeviceObject, _OriginatorId, _EventId, _Status) |
Dieses Makro ruft die RxLogEventDirect-Routine auf. |
RxLogFailureWithBuffer (_DeviceObject, _OriginatorId, _EventId, _Status, _Buffer, _Length) |
Dieses Makro ruft die RxLogEventWithBufferDirect-Routine auf. |
RxLogRetail(Args) |
Bei überprüften Builds ruft dieses Makro die _RxLog Routine auf. Bei Einzelhandelsbuilds macht dieses Makro nichts. Beachten Sie, dass die Argumente für RxLogRetail mit einem zusätzlichen Paar von Klammern eingeschlossen werden müssen, um die Übersetzung in einen NULL-Aufruf zu aktivieren, wenn die Protokollierung deaktiviert werden soll. |