IDE_HW_CONTROL回调函数 (irb.h)

IdeHwControl 微型端口驱动程序例程通知微型端口驱动程序有关即插即用 (PnP) 和电源事件。

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

语法

IDE_HW_CONTROL IdeHwControl;

BOOLEAN IdeHwControl(
  [in]      PVOID ChannelExtension,
  [in]      IDE_CONTROL_ACTION ControlAction,
  [in, out] PVOID Parameters
)
{...}

参数

[in] ChannelExtension

指向通道扩展的指针。

[in] ControlAction

包含 类型为 IDE_CONTROL_ACTION 的枚举器值,该值指示要执行的控件操作。

[in, out] Parameters

指向缓冲区的指针,该缓冲区包含与控件操作关联的参数。 此参数可以具有下表中的值之一。

控制操作 参数 说明
IdeStart 参数指向 IDE_CHANNEL_CONFIGURATION 类型的结构。 指示端口驱动程序正在启动通道。
IdeVendorDefined 参数指向 IDE_VENDOR_DEFINED_POWER_INFO 类型的结构。 指示即将发生供应商定义的电源事件。

返回值

如果操作成功,IdeHwControl 将返回 TRUE。 否则,它将返回 FALSE

注解

端口驱动程序确保在调用此例程之前通道上没有未完成的 I/O。 当系统进入不同的电源状态时,微型端口驱动程序可以有自己的电源策略方法。 为此,微型端口驱动程序需要执行以下操作:

  • 将电源策略设置方案添加到微型端口驱动程序的 INF 文件中。 需要 GUID 来显示微型端口驱动程序定义的电源策略。 有关电源设置指令的详细信息,请参阅 INF AddPowerSetting 指令。 有关 GUID 的详细信息,请参阅 磁盘设置
  • 使用控制操作调用微型端口驱动程序例程 IdeHwControl时,IdeStart
    检查 ChannelConfiguration 结构中的 SupportedAdvances.AdvancedChannelConfigurationSupported 字段。
    检查 ChannelConfiguration 结构中的 AdvancedChannelConfiguration->Present.VendorDefinedPower 字段。
    如果前面列出的两个字段的值均为 TRUE,则此版本的 ATA 端口驱动程序支持供应商定义的电源管理。
    如果 ATA 端口驱动程序支持供应商定义的电源管理,微型端口驱动程序可以通过设置 AdvancedChannelConfiguration->VendorDefinedPower.ValidGuids 和 AdvancedChannelConfiguration->VendorDefinedPower.Guid[] 字段来注册特殊电源管理处理, (后者应是微型端口驱动程序 INF 文件中电源策略的 GUID) 。
  • 注册供应商定义的电源管理后,当系统电源方案发生更改时,微型端口驱动程序将能够接收对其 IdeHwControl 例程的调用,并执行控制操作 IdeVendorDefined
  • 当微型端口驱动程序使用控制操作 IdeVendorDefined 处理 IdeHwControl 例程时,它应执行以下操作:
    将结构IDE_VENDOR_DEFINED_POWER_INFO参数字段中的 SettingGuid 字段与微型端口驱动程序注册的 GUID 进行比较,以确保调用是针对此通道的。 如果 GUID 不匹配,微型端口驱动程序应完成调用,并且不采取任何操作。
    从结构IDE_VENDOR_DEFINED_POWER_INFO的参数字段中获取 字段,并执行特定于微型端口驱动程序的相应电源管理操作。

要求

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

另请参阅

AtaPortGetUncachedExtension