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
指示状态已更改的实体的标志。 这是这些值的按位 或 组合:
价值 | 意义 |
---|---|
|
LUN 状态已更改。 |
|
目标状态已更改。 |
|
总线或端口状态已更改。 |
[in] Address
状态更改的实体的地址。 地址 值在调用 HwStateChange 回调之前无法更改。 如果在内存中分配了 地址,则回调例程应释放内存。
[in] Attributes
与实体关联的属性。 以下是以下 或 组合:
价值 | 意义 |
---|---|
|
LUN 是为虚拟机使用保留的。 |
[in, optional] HwStateChange
指向微型端口提供的回调例程的指针。 如果存在,则 Storport 驱动程序将在驱动程序完成处理此状态更改通知时调用此例程。
[in, optional] HwStateChangeContext
调用 HwStateChange 中的例程集时,将包含一个微型端口提供的上下文值。
返回值
指示通知结果的状态值。 这可以是以下值之一:
返回代码 | 描述 |
---|---|
|
状态更改通知计划用于处理。 |
|
地址类型或实体类型无效。 |
|
前面的通知正在进行中,无法计划此通知。 |
言论
成功调用 StorPortStateChangeDetected 会导致重新枚举更改的实体。
随时只能有一个状态更改请求处于活动状态。 如果微型端口需要进行另一个 StorPortStateChangeDetected 调用,则它应提供 HwStateChange 回调,并在回调 HwStateChangeDetected 后再次调用 StorPortStateChangeDetected。 如果微型端口希望同时指示多个状态更改,则微型端口可以调用 StorPortStateChangeDetected 一次,并在包含所有当前状态更改 ChangedEntity 中设置的已更改实体。
如果在 ChangedEntity中指定了多个标志,则具有更高值的标志将优先于较小的标志。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows 8 及更高版本的 Windows 中可用。 |
目标平台 | 普遍 |
标头 | storport.h (包括 Storport.h) |
IRQL | 任何 |