RxLogEventDirect-Funktion (rxprocs.h)
RxLogEventDirect wird aufgerufen, um einen Fehler im E/A-Fehlerprotokoll zu protokollieren.
Es wird empfohlen, das RXLogEvent-Makro oder das RxLogFailure-Makro zu verwenden, anstatt diese Routine direkt aufzurufen.
Syntax
void RxLogEventDirect(
[in] IN PRDBSS_DEVICE_OBJECT DeviceObject,
[in] IN PUNICODE_STRING OriginatorId,
[in] IN ULONG EventId,
[in] IN NTSTATUS Status,
[in] IN ULONG Line
);
Parameter
[in] DeviceObject
Ein Zeiger auf das RDBSS-Geräteobjekt.
[in] OriginatorId
Eine Zeichenfolge, die den Aufrufer angibt, der den Fehler generiert.
[in] EventId
Der Wert, der den E/A-Fehlerprotokollcodewert angibt, der sich von einem NTSTATUS-Wert unterscheidet, der von einer Routine zurückgegeben wird. Die werte für das E/A-Fehlerprotokoll werden in der Headerdatei ntiolog.h definiert, die im Microsoft Windows SDK und Visual Studio enthalten ist.
[in] Status
Der Wert, der den status Code einer Routine angibt, die einen Fehler angibt.
[in] Line
Die Zeilennummer in der Quellcodedatei, in der dieser Fehler aufgetreten ist.
Rückgabewert
Keine
Bemerkungen
RxLogEventDirect ruft intern die RxLogEventWithAnnotation-Routine auf, um den Protokolleintrag zu erstellen und zu schreiben.
Die E/A-Fehlerprotokolleintragsgröße ist auf eine Länge von 255 Zeichen beschränkt. Wenn also die kombinierte Länge der OriginatorId und die Größe des festen Teils des E/A-Fehlerprotokolls 255 überschreitet, wird kein E/A-Fehlerprotokolleintrag erstellt.
Die RxLogEventWithAnnotation-Routine muss Arbeitsspeicher zuweisen, um den E/A-Fehlerprotokolleintrag zu erstellen. Daher kann RxLogEventDirect automatisch fehlschlagen, wenn die Speicherzuordnung fehlschlägt.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | rxprocs.h (include Rxprocs.h, Rxstruc.h) |
IRQL | <= APC_LEVEL |