RxLogEventWithBufferDirect 函数 (rxprocs.h)

RxLogEventWithBufferDirect 分配 I/O 错误日志结构,在中填充信息,并将条目写入 I/O 错误日志。

语法

void RxLogEventWithBufferDirect(
       IN PVOID           DeviceOrDriverObject,
  [in] IN PUNICODE_STRING OriginatorId,
  [in] IN ULONG           EventId,
  [in] IN NTSTATUS        Status,
  [in] IN PVOID           DataBuffer,
  [in] IN USHORT          DataBufferLength,
  [in] IN ULONG           LineNumber
);

参数

DeviceOrDriverObject

指向 RDBSS 设备对象的指针。

[in] OriginatorId

指示生成错误的调用方的字符串。

[in] EventId

指示 I/O 错误日志代码的值,该值不同于例程返回的 NTSTATUS 值。 合法的 I/O 错误日志代码值在 Microsoft Windows SDK 和 Visual Studio 随附的 ntiolog.h 头文件中定义。

[in] Status

值,该值指示指示失败的例程的状态代码。

[in] DataBuffer

指向要添加到 I/O 错误日志结构的数据缓冲区的指针。

[in] DataBufferLength

要添加到 I/O 错误日志结构的数据缓冲区的长度。

[in] LineNumber

源代码文件中发生此故障的行号。

返回值

备注

RxLogEventDirect 在内部调用 RxLogEventWithAnnotation 例程来创建并写入日志条目,并将 StatusLineNumber 参数作为 Annotations 参数传递给 RxLogEventWithAnnotation

I/O 错误日志条目大小限制为 255 个字符。 因此,如果 EventIdDataBufferAnnotations 参数的组合长度加上 I/O 错误日志条目的固定部分的大小超过 255,则不会创建任何 I/O 错误日志条目。

RxLogEventWithAnnotation 例程需要分配内存,以便创建 I/O 错误日志条目 。 因此,如果内存分配失败, RxLogEventWithBufferDirect 可能会以无提示方式失败。

要求

要求
目标平台 桌面
标头 rxprocs.h (包括 Rxprocs.h、Rxstruc.h)
IRQL <= APC_LEVEL

另请参阅

RxLogEventDirect

RxLogEventWithAnnotation

_RxLog