IDE_CHANNEL_ENABLED回调函数 (irb.h)

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

注意

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

语法

IDE_CHANNEL_ENABLED IdeChannelEnabled;

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

参数

ControllerExtension

[in]指向控制器扩展的指针。

Channel

[in]要启用的通道。

返回值

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

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

注解

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

  1. 端口驱动程序使用控制操作 IdeStart 调用微型端口驱动程序的 AtaAdapterControl 例程。

  2. 当微型端口驱动程序使用控制操作 IdeStart 处理 AtaAdapterControl 例程时,它会初始化 IDE_CONTROLLER_CONFIGURATIONNumberOfChannels 成员以指示已启用的通道数。

  3. 在 AtaAdapterControl 例程返回后,端口驱动程序为 AtaAdapterControl 返回的 ControllerConfiguration 结构中指定的每个 NumberOfChannels 调用 AtaControllerChannelEnabled 一次。

此例程不应具有对控制器操作至关重要的步骤。 在某些情况下,例如在故障转储操作期间,根本不会调用此函数。 此外,仅在 PCIIDEx 响应 QueryDeviceRelations IRP 时,才在重启通道时调用此函数。

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

要求

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

另请参阅

IDE_CONTROLLER_CONFIGURATION