StorPortAsyncNotificationDetected 函数 (storport.h)
存储微型端口驱动程序调用 StorPortAsyncNotificationDetected 以通知 Storport 驱动程序存储设备状态更改事件。
通知作为工作项排队,以便在 DISPATCH_LEVEL 或更低 IRQL 处延迟处理。
语法
ULONG StorPortAsyncNotificationDetected(
[in] PVOID HwDeviceExtension,
PSTOR_ADDRESS Address,
ULONGLONG Flags
);
参数
[in] HwDeviceExtension
指向硬件设备扩展的指针。 这是端口驱动程序代表微型端口驱动程序分配和初始化的每个 HBA 存储区域。 微型端口驱动程序通常在此扩展中存储特定于 HBA 的信息,例如 HBA 的状态和 HBA 的映射访问范围。 在微型端口驱动程序调用 StorPortInitialize 后,微型端口驱动程序立即可以使用此区域。 端口驱动程序在删除设备时释放此内存。
Address
具有状态更改事件的存储设备的地址。
Flags
要向 Storport 指示的状态通知。
Flags 参数包含状态通知的按位 OR 组合。 可以使用单个 RAID_ASYNC_NOTIFY_SUPPORTED_FLAGS 值设置所有状态值。
值 | 含义 |
---|---|
|
通知 Storport 发生了媒体更改。 |
|
通知 Storport 存储设备的功能状态已更改。 |
|
通知 Storport 存储设备的操作角色已更改。 |
返回值
指示通知结果的状态值。 可以是以下值之一:
返回代码 | 说明 |
---|---|
|
计划状态更改通知进行处理。 |
|
地址类型无效。
-或- HwDeviceExtension 为 NULL。 -或- 标志 包含未定义的值。 |
|
在 地址找不到存储设备单元。
-或- 存储设备不支持异步通知。 |
|
先前的通知正在进行中,无法计划此通知。 |
注解
微型端口可以检测其 HwStorInterrupt 例程中的状态事件,并调用 StorPortAsyncNotificationDetected ,以便稍后在较低的 IRQL 处排队和处理状态更改通知。
由 Storport 处理时,状态事件通知将转发到存储类驱动程序,以启动任何必要的系统响应操作。
如果 Flags 参数为 0,则 Storport 将在其通知中向存储类驱动程序指示所有状态值。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 |
目标平台 | 通用 |
标头 | storport.h (包括 Storport.h) |
IRQL | 任意 |