StorPortEtwEvent4 函数 (storport.h)
StorPortEtwEvent4 将 Windows (ETW 事件跟踪) 事件记录到存储跟踪通道,其中包含四个常规用途 ETW 参数。
语法
ULONG StorPortEtwEvent4(
[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, optional] _In_reads_or_z_opt_(STORPORT_ETW_MAX_PARAM_NAME_LENGTH)PWSTR Parameter3Name,
[in] ULONGLONG Parameter3Value,
[in, optional] _In_reads_or_z_opt_(STORPORT_ETW_MAX_PARAM_NAME_LENGTH)PWSTR Parameter4Name,
[in] ULONGLONG Parameter4Value
);
参数
[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 | 数据收集启动事件。 这些是破败事件类型。 |
StorportEtwEventOpcodeDC_Stop | 数据收集停止事件。 这些是破败事件类型。 |
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 的值。
[in, optional] Parameter3Name
Parameter3Value 的含义说明。 此参数名称字符串必须为 <= STORPORT_ETW_MAX_PARAM_NAME_LENGTH。
[in] Parameter3Value
参数 3 的值。
[in, optional] Parameter4Name
Parameter4Value 含义的说明。 此参数名称字符串必须为 <= STORPORT_ETW_MAX_PARAM_NAME_LENGTH。
[in] Parameter4Value
参数 4 的值。
返回值
StorPortEtwEvent4 返回以下状态代码之一:
返回代码 | 说明 |
---|---|
STOR_STATUS_SUCCESS | 已成功记录事件。 |
STOR_STATUS_NOT_IMPLEMENTED | 未对存储事件启用跟踪。 |
STOR_STATUS_INVALID_PARAMETER | 参数无效。 例如,HwDeviceExtension 或 EventDescription 为 NULL,EventDescription 大于最大名称长度,或者 ETW 参数名称大于最大名称长度。 |
注解
微型端口可以调用 StorPortEtwEvent4 来记录四个常规用途 ETW 参数。 ETW 参数表示为四个名称/值对。 如果参数未 (参数X名称 = NULL) 命名,则例程会将相应的参数值设置为 0。
从 StorPort 微型端口驱动程序生成的事件将记录到“Microsoft-Windows-Storage-Storport/诊断”ETW 通道。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8.1 |
目标平台 | 通用 |
标头 | storport.h (包括 Storport.h) |
IRQL | <= DISPATCH_LEVEL |