RxLogEventWithAnnotation function (rxprocs.h)

RxLogEventWithAnnotation allocates an I/O error log structure, fills it in with information, and writes the entry to the I/O error log.

Syntax

void RxLogEventWithAnnotation(
  [in] IN PRDBSS_DEVICE_OBJECT DeviceObject,
       IN ULONG                EventId,
       IN NTSTATUS             Status,
       IN PVOID                DataBuffer,
       IN USHORT               DataBufferLength,
       IN PUNICODE_STRING      Annotation,
  [in] IN ULONG                AnnotationCount
);

Parameters

[in] DeviceObject

A pointer to the RDBSS device object.

EventId

The value indicating the I/O error log code 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

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

DataBuffer

A pointer to a raw data buffer to be added to the I/O error log structure.

DataBufferLength

The length of the raw data buffer to be added to the I/O error log structure.

Annotation

A pointer to any annotation strings to add to the I/O error log structure.

[in] AnnotationCount

The count of the number of annotation strings to add to the I/O error log structure.

Return value

None

Remarks

A network mini-redirector would call RxLogEventWithAnnotation to log an I/O error.

The I/O error log entry size is limited to a length of 255 characters. So if the combined length of the Id, RawDataBuffer, and Annotations parameters plus the size of the fixed part of the I/O error log entry exceeds 255, then RxLogEventWithAnnotation will silently fail and 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, RxLogEventWithAnnotation 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

RxLogEventDirect

RxLogEventWithBufferDirect

_RxLog