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 值。 ntiolog.h 头文件中定义了Microsoft Windows SDK 和 Visual Studio 中包含的合法 I/O 错误代码值。

[in] Status

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

[in] DataBuffer

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

[in] DataBufferLength

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

[in] LineNumber

发生此失败的源代码文件中的行号。

返回值

没有

言论

RxLogEventDirect 内部调用 RxLogEventWithAnnotation 例程来创建和写入传递 状态LineNumber 参数作为 注释 参数 的日志条目。

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

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

要求

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

另请参阅

RxLogEventDirect

RxLogEventWithAnnotation

_RxLog