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) |