StorPortEtwEvent2 函数 (storport.h)

StorPortEtwEvent2 使用两个常规用途 ETW 参数将 Windows (ETW) 事件跟踪记录到存储跟踪通道。

语法

ULONG StorPortEtwEvent2(
  [in]           PVOID                                                        HwDeviceExtension,
  [in, optional] PSTOR_ADDRESS                                                Address,
  [in]           ULONG                                                        EventId,
  [in]           PWSTR                                                        EventDescription,
  [in]           ULONGLONG                                                    EventKeywords,
  [in]           STORPORT_ETW_LEVEL                                           EventLevel,
  [in]           STORPORT_ETW_EVENT_OPCODE                                    EventOpcode,
  [in, optional] PSCSI_REQUEST_BLOCK                                          Srb,
  [in, optional] _In_reads_or_z_opt_(STORPORT_ETW_MAX_PARAM_NAME_LENGTH)PWSTR Parameter1Name,
  [in]           ULONGLONG                                                    Parameter1Value,
  [in, optional] _In_reads_or_z_opt_(STORPORT_ETW_MAX_PARAM_NAME_LENGTH)PWSTR Parameter2Name,
  [in]           ULONGLONG                                                    Parameter2Value
);

参数

[in] HwDeviceExtension

指向微型端口的设备扩展的指针。

[in, optional] Address

存储单元设备地址。 对于适配器设备,此参数为 NULL。

[in] EventId

ETW 事件的微型端口定义的标识符。

[in] EventDescription

事件的说明文本。 此文本字符串必须为 <= STORPORT_ETW_MAX_DESCRIPTION_LENGTH。

[in] EventKeywords

事件分类的关键字标志。 如果不需要关键字 (keyword) ,则设置为 0。 关键字是以下各项的按位 OR 组合。

含义
STORPORT_ETW_EVENT_KEYWORD_IO 事件与设备 IO 操作相关。
STORPORT_ETW_EVENT_KEYWORD_PERFORMANCE 事件与性能相关。
STORPORT_ETW_EVENT_KEYWORD_POWER 该事件与设备电源相关。
STORPORT_ETW_EVENT_KEYWORD_ENUMERATION 事件与设备枚举相关。

[in] EventLevel

事件级别。 此值可以指示事件的重要性或严重性。 这是以下值之一。

含义
StorportEtwLevelLogAlways 无条件地记录事件。 无论设置何种筛选器,都会记录事件。
StorportEtwLevelCritical 关键级别事件。
StorportEtwLevelError 错误级别事件。
StorportEtwLevelWarning 警告级别事件。
StorportEtwLevelInformational 信息性事件。
StorportEtwLevelVerbose 提供的详细事件信息。

[in] EventOpcode

事件的操作性质。 这是以下值之一。

含义
StorportEtwEventOpcodeInfo 常规信息性事件。
StorportEtwEventOpcodeStart 设备或单元正在启动。
StorportEtwEventOpcodeStop 设备或设备正在停止。 该事件对应于上一个不成对的开始事件。
StorportEtwEventOpcodeDC_Start 数据收集开始事件。 这些是 rundown 事件类型。
StorportEtwEventOpcodeDC_Stop 数据收集停止事件。 这些是 rundown 事件类型。
StorportEtwEventOpcodeExtension 扩展事件。
StorportEtwEventOpcodeReply 回复事件。
StorportEtwEventOpcodeResume 设备或单元在暂停后正在恢复。
StorportEtwEventOpcodeSuspend 设备或单元挂起,等待完成其他操作。
StorportEtwEventOpcodeReceive 从另一个组件接收活动的传输。

[in, optional] Srb

指向与记录的事件关联的 SRB 的指针。 如果此参数包含有效的 SRB,则会记录此 SRB 指针和关联的 SRB 指针。

[in, optional] Parameter1Name

Parameter1Value 的含义说明。 此参数名称字符串必须为 <= STORPORT_ETW_MAX_PARAM_NAME_LENGTH。

[in] Parameter1Value

参数 1 的值。

[in, optional] Parameter2Name

Parameter2Value 的含义说明。 此参数名称字符串必须为 <= STORPORT_ETW_MAX_PARAM_NAME_LENGTH。

[in] Parameter2Value

参数 2 的值。

返回值

StorPortEtwEvent2 返回以下状态代码之一:

返回代码 说明
STOR_STATUS_SUCCESS 已成功记录事件。
STOR_STATUS_NOT_IMPLEMENTED 未为存储事件启用跟踪。
STOR_STATUS_INVALID_PARAMETER 其中一个参数无效。 例如,HwDeviceExtensionEventDescription 为 NULL,EventDescription 大于最大名称长度,或者 ETW 参数名称大于最大名称长度。

注解

微型端口可以调用 StorPortEtwEvent2 来记录两个常规用途 ETW 参数。 ETW 参数表示为两个名称/值对。 如果参数未 (参数X名称 = NULL) 命名,则例程会将相应的参数值设置为 0。

从 StorPort 微型端口驱动程序生成的事件将记录到“Microsoft-Windows-Storage-Storport/诊断”ETW 通道。

要求

要求
最低受支持的客户端 Windows 8.1
目标平台 通用
标头 storport.h (包括 Storport.h)
IRQL <= DISPATCH_LEVEL

另请参阅

StorPortEtwEvent4

StorPortEtwEvent8

StorPortEtwLogByteStream

StorPortEtwLogError