StorPortStateChangeDetected 函数 (storport.h)
通知 Storport 端口驱动程序逻辑单元号的状态更改 (LUN) 、主机总线适配器 (HBA) 端口或目标设备。
语法
ULONG StorPortStateChangeDetected(
[in] PVOID HwDeviceExtension,
[in] ULONG ChangedEntity,
[in] PSTOR_ADDRESS Address,
[in] ULONG Attributes,
[in, optional] PHW_STATE_CHANGE HwStateChange,
[in, optional] PVOID HwStateChangeContext
);
参数
[in] HwDeviceExtension
指向硬件设备扩展的指针。 这是端口驱动程序代表微型端口驱动程序分配和初始化的每个 HBA 存储区域。 微型端口驱动程序通常在此扩展中存储特定于 HBA 的信息,例如 HBA 的状态和 HBA 的映射访问范围。 此区域在微型端口驱动程序调用 StorPortInitialize 后立即可供微型端口驱动程序使用。 端口驱动程序在移除设备时释放此内存。
[in] ChangedEntity
指示其状态已更改的实体的标志。 这是这些值的按位 OR 组合:
值 | 含义 |
---|---|
|
LUN 状态已更改。 |
|
目标状态已更改。 |
|
总线或端口状态已更改。 |
[in] Address
状态发生更改的实体的地址。 在 调用 HwStateChange 的回调之前,地址值无法更改。 如果在内存中分配了 Address ,则内存应由回调例程释放。
[in] Attributes
与实体关联的属性。 这些是以下各项的按位 OR 组合:
值 | 含义 |
---|---|
|
LUN 保留给虚拟机使用。 |
[in, optional] HwStateChange
指向微型端口提供的回调例程的指针。 如果存在,当驱动程序处理完此状态更改通知时,Storport 驱动程序将调用此例程。
[in, optional] HwStateChangeContext
在调用 HwStateChange 中设置的例程时包含的微型端口提供的上下文值。
返回值
指示通知结果的状态值。 这可以是以下值之一:
返回代码 | 说明 |
---|---|
|
计划处理状态更改通知。 |
|
地址类型或实体类型无效。 |
|
先前的通知正在处理中,无法计划此通知。 |
注解
成功调用 StorPortStateChangeDetected 会导致重新枚举已更改的实体。
任何时候只能有一个状态更改请求处于活动状态。 如果微型端口需要进行另一个 StorPortStateChangeDetected 调用,它应提供 HwStateChange 回调,并在 HwStateChange 回调发生后再次调用 StorPortStateChangeDetected。 如果微型端口想要同时指示多个状态更改,该微型端口可以调用 StorPortStateChangeDetected 一次,更改后的实体在 ChangedEntity 中设置,其中包括所有当前状态更改。
如果在 ChangedEntity 中指定了多个标志,则具有较大值的标志将优先于较小的标志。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows 8 及更高版本的 Windows 中可用。 |
目标平台 | 通用 |
标头 | storport.h (包括 Storport.h) |
IRQL | 任意 |