RxLogEventDirect function (rxprocs.h)

RxLogEventDirect is called to log an error to the I/O error log.

It is recommended that the RXLogEvent macro or the RxLogFailure macro be used instead of calling this routine directly.

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
);

Parameters

[in] DeviceObject

A pointer to the RDBSS device object.

[in] OriginatorId

A string indicating the caller generating the error.

[in] EventId

The value indicating the I/O error log code value which is different than an NTSTATUS value returned by a routine. The legal I/O error log code values are defined in the ntiolog.h header file included with the Microsoft Windows SDK and Visual Studio.

[in] Status

The value indicating the status code of a routine indicating a failure.

[in] Line

The line number in the source code file where this failure occurred.

Return value

None

Remarks

RxLogEventDirect internally calls the RxLogEventWithAnnotation routine to create and write the log entry.

The I/O error log entry size is limited to a length of 255 characters. So if the combined length of the OriginatorId plus the size of the fixed part of the I/O error log exceeds 255, then no I/O error log entry will be created.

The RxLogEventWithAnnotation routine needs to allocate memory in order to create the I/O error log entry . Consequently, RxLogEventDirect can silently fail if the memory allocation fails.

Requirements

Requirement Value
Target Platform Desktop
Header rxprocs.h (include Rxprocs.h, Rxstruc.h)
IRQL <= APC_LEVEL

See also

RxLogEventWithAnnotation

RxLogEventWithBufferDirect

_RxLog