IDE_CHANNEL_ENABLED回调函数 (irb.h)

AtaControllerChannelEnabled 微型端口驱动程序例程指示是否启用了指定的通道。

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

语法

IDE_CHANNEL_ENABLED IdeChannelEnabled;

ATA_CHANNEL_STATE IdeChannelEnabled(
  [in] PVOID ControllerExtension,
       ULONG Channel
)
{...}

参数

[in] ControllerExtension

指向控制器扩展的指针。

Channel

返回值

AtaControllerChannelEnabled 返回类型 为 ATA_CHANNEL_STATE 的枚举器值,该值可以具有以下任何值:

返回代码 说明
ChannelStateEnabled
指示指定通道已启用。
ChannelStateDisabled
指示已禁用指定的通道。
ChannelStateUnKnown
指示无法确定通道的状态。

注解

以下序列介绍了微型端口驱动程序和端口驱动程序如何交互以确定启用哪些控制器通道:

  1. 端口驱动程序使用控制操作 IdeStart 调用微型端口驱动程序的 AtaAdapterControl 例程。
  2. 虽然微型端口驱动程序使用控制操作 IdeStart 处理 AtaAdapterControl 例程,但它初始化 IDE_CONTROLLER_CONFIGURATION的 NumberOfChannels 成员,以指示已启用的通道数。
  3. 在 AtaAdapterControl 例程返回后,端口驱动程序针对由 AtaAdapterControl 返回的 ControllerConfiguration 结构中指定的 NumberOfChannels 调用 AtaControllerChannelEnabled 一次。
此例程不应具有对控制器操作至关重要的步骤。 在某些情况下,例如在故障转储操作期间,此函数根本不会调用。 此外,仅在 PCIIDEx 响应 QueryDeviceRelations IRP 时,才在重新启动通道时调用此函数。

AtaControllerChannelEnabled 是可选的例程。 如果微型端口驱动程序未实现此例程,端口驱动程序将加载默认处理程序。 如果端口驱动程序加载默认处理程序,则假定在处理 IdeStart 操作时 由 AtaAdapterControl 返回的 ControllerConfiguration 结构中 NumberOfChannels 指定的所有通道。 此例程允许 PCIIDEx 仅加载已启用通道的 ATA 端口驱动程序。 这样做允许稀疏通道支持 (例如通道 0、通道 1、通道 3、通道 4 和通道 6,但通道 2 和通道 5) 。

要求

   
目标平台 桌面
Header irb.h (包括 Irb.h)

另请参阅

IDE_CONTROLLER_CONFIGURATION