HW_INTERRUPT回调函数 (storport.h)

Storport 驱动程序在 HBA 生成中断请求后调用 HwStorInterrupt 例程。

语法

HW_INTERRUPT HwInterrupt;

BOOLEAN HwInterrupt(
  PVOID DeviceExtension
)
{...}

参数

DeviceExtension

指向微型端口驱动程序的每个 HBA 存储区域的指针。

返回值

如果微型端口驱动程序发现其 HBA 未生成中断,HwStorInterrupt 应尽快返回 FALSEHwStorInterrupt 例程应在 50 微秒内返回。

言论

HwStorInterrupt 的名称只是占位符。 此例程的实际原型在 Storport.h 中定义,如下所示:

typedef
BOOLEAN
HW_INTERRUPT (
  IN PVOID  DeviceExtension
  );

HwStorInterrupt 例程应在 50 微秒内返回,理想情况下尽可能短的时间。 因此,所有活动都不必在高 IRQL 上发生,应延迟到在微型端口驱动程序中定义的 HwStorDpcRoutine ,并使用 StorPortIssueDpc 发出。 DPC 的延迟非常低,它将在从高 IRQL 返回后立即调用。

端口驱动程序在 DIRQL 调用 HwStorInterrupt 例程。

例子

若要定义 HwStorInterrupt 回调函数,必须先提供一个函数声明来标识要定义的回调函数的类型。 Windows 为驱动程序提供一组回调函数类型。 使用回调函数类型声明函数有助于 驱动程序代码分析静态驱动程序验证程序(SDV)和其他验证工具查找错误,这是为 Windows作系统编写驱动程序的要求。

例如,若要定义名为 MyHwInterrupt 回调例程的 HwStorInterrupt,请使用 HW_INTERRUPT 类型,如以下代码示例所示:

HW_INTERRUPT MyHwInterrupt;

然后,按如下所示实现回调例程:

_Use_decl_annotations_
BOOLEAN
MyHwInterrupt (
  _In_ PVOID  DeviceExtension
  );
  {
      ...
  }

HW_INTERRUPT 函数类型在 Storport.h 头文件中定义。 若要在运行代码分析工具时更准确地识别错误,请务必将 Use_decl_annotations 注释添加到函数定义。 Use_decl_annotations 批注可确保使用应用于头文件中 HW_INTERRUPT 函数类型的批注。 有关函数声明要求的详细信息,请参阅 使用 Storport 驱动程序的函数角色类型声明函数。 有关 Use_decl_annotations的信息,请参阅 批注函数行为

要求

要求 价值
目标平台 普遍
标头 storport.h (包括 Storport.h)
IRQL DIRQL

另请参阅

HwStorDpcRoutine

StorPortIssueDpc