RxLogEventDirect routine

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_ PRDBSS_DEVICE_OBJECT DeviceObject,
  _In_ PUNICODE_STRING      OriginatorId,
  _In_ ULONG                EventId,
  _In_ NTSTATUS             Status,
  _In_ ULONG                Line
);

Parameters

DeviceObject [in]

A pointer to the RDBSS device object.

OriginatorId [in]

A string indicating the caller generating the error.

EventId [in]

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.

Status [in]

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

Line [in]

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

Target platform

Desktop

Header

Rxprocs.h (include Rxprocs.h or Rxstruc.h)

IRQL

<= APC_LEVEL

See also

RxLogEventWithAnnotation
RxLogEventWithBufferDirect
_RxLog

 

 

Send comments about this topic to Microsoft

Show: