IDE_HW_INTERRUPT回调函数 (irb.h)

IdeHwInterrupt 微型端口驱动程序例程处理来自微型端口驱动程序的控制器连接到的主机总线适配器 (HBA) 中断。

注意 ATA 端口驱动程序和 ATA 微型端口驱动程序模型将来可能会更改或不可用。 建议改用 Storport 驱动程序Storport 微型端口 驱动程序模型。
 

语法

IDE_HW_INTERRUPT IdeHwInterrupt;

BOOLEAN IdeHwInterrupt(
  [in] PVOID ChannelExtension
)
{...}

参数

[in] ChannelExtension

指向通道扩展的指针。

返回值

如果中断由控制器的通道之一生成,则 AtaHwInterrrupt 返回 TRUE。 如果通道未生成中断,例程应尽快返回 FALSE

注解

IdeHwInterrupt 例程完成中断驱动的 I/O 操作。

如果指示的通道未生成中断,微型端口驱动程序应对 IdeHwInterrupt 例程进行第二次 (递归) 调用,以处理用于控制器其他通道的中断。

如果微型端口驱动程序需要大量时间来处理中断,则必须执行以下步骤:

  1. 消除 HBA 上的中断。
  2. ChannelExtension 参数指示的通道上禁用中断。
  3. 使用 AtaPortRequestWorkerRoutine 请求辅助角色例程。
  4. 在辅助角色例程中完成其他处理。
  5. 在通道上启用中断。
不得从 IdeHwInterrupt 例程调用以下 ATA 端口例程: 但是,微型端口驱动程序可以请求工作线程例程并在辅助角色例程中发出调用。

工作器例程必须在 HBA 上清除中断,然后才能返回 TRUE

要求

要求
目标平台 桌面
标头 irb.h (包括 Irb.h)

另请参阅

AtaPortCompleteAllActiveRequests

AtaPortDeviceBusy

AtaPortRequestWorkerRoutine