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 例程来创建并写入日志条目,并将 Status 和 LineNumber 参数作为 Annotations 参数传递给 RxLogEventWithAnnotation。
I/O 错误日志条目大小限制为 255 个字符。 因此,如果 EventId、 DataBuffer 和 Annotations 参数的组合长度加上 I/O 错误日志条目的固定部分的大小超过 255,则不会创建任何 I/O 错误日志条目。
RxLogEventWithAnnotation 例程需要分配内存,以便创建 I/O 错误日志条目 。 因此,如果内存分配失败, RxLogEventWithBufferDirect 可能会以无提示方式失败。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | rxprocs.h (包括 Rxprocs.h、Rxstruc.h) |
IRQL | <= APC_LEVEL |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈