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 值设置所有状态值。

含义
RAID_ASYNC_NOTIFY_FLAG_MEDIA_STATUS
通知 Storport 发生了媒体更改。
RAID_ASYNC_NOTIFY_FLAG_DEVICE_STATUS
通知 Storport 存储设备的功能状态已更改。
RAID_ASYNC_NOTIFY_FLAG_DEVICE_OPERATION
通知 Storport 存储设备的操作角色已更改。

返回值

指示通知结果的状态值。 可以是以下值之一:

返回代码 说明
STOR_STATUS_SUCCESS
计划状态更改通知进行处理。
STOR_STATUS_INVALID_PARAMETER
地址类型无效。

-或-

HwDeviceExtensionNULL

-或-

标志 包含未定义的值。

STOR_STATUS_INVALID_DEVICE_REQUEST
地址找不到存储设备单元。

-或-

存储设备不支持异步通知。

STOR_STATUS_BUSY
先前的通知正在进行中,无法计划此通知。

注解

微型端口可以检测其 HwStorInterrupt 例程中的状态事件,并调用 StorPortAsyncNotificationDetected ,以便稍后在较低的 IRQL 处排队和处理状态更改通知。

由 Storport 处理时,状态事件通知将转发到存储类驱动程序,以启动任何必要的系统响应操作。

如果 Flags 参数为 0,则 Storport 将在其通知中向存储类驱动程序指示所有状态值。

要求

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