функция обратного вызова IDE_HW_CONTROL (irb.h)
Программа IdeHwControl драйвер минипорта уведомляет минипорт-драйвер о подключаемых модулях Plug and Play (PnP) и событиях питания.
Синтаксис
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.
Замечания
Драйвер порта гарантирует отсутствие выдающегося ввода-вывода в канале перед вызовом этой процедуры. Минипорт-драйвер может иметь собственные методы политики питания, когда система входит в другое состояние питания. Чтобы добиться этого, минипорт-драйвер должен выполнить следующие действия:
- Добавьте схему параметров политики питания в INF-файл минипорта драйвера. Для представления политики питания, определяемой драйвером мини-порта, требуется GUID. Дополнительные сведения о директиве параметров питания см. в директиве INF AddPowerSetting. Дополнительные сведения о идентификаторах GUID можно найти на параметрах диска.
- При вызове подпрограммы драйвера miniport IdeHwControl с действием управления IdeStart:
- Проверьте поле SupportedAdvances.AdvancedChannelConfigurationSupported в структуре ChannelConfiguration.
- Проверьте поле AdvancedChannelConfiguration—>Present.VendorDefinedPower в структуре ChannelConfiguration.
- Если значения двух полей, перечисленных ранее, оба TRUE, эта версия драйвера портов ATA поддерживает управление питанием, определяемым поставщиком.
- Если управление питанием, определяемое поставщиком, поддерживается драйвером порта ATA, минипорт-драйвер может зарегистрировать для специальной обработки питания, задав поля AdvancedChannelConfiguration->VendorDefinedPower.ValidGuids и AdvancedChannelConfiguration->поля VendorDefinedPower.Guid[] (последний должен быть GUID политики питания в INF-файле мини-порта драйвера).
- После регистрации управления питанием, определяемого поставщиком, минипорт-драйвер сможет получать вызовы к его IdeHwControl подпрограмме с действием управления IdeVendorDefined при изменении системной схемы питания.
- Хотя минипорт-драйвер обрабатывает подпрограмму IdeHwControl с действием управления IdeVendorDefined, это должно сделать следующее:
- Сравните поле SettingGuid из поля параметров структуры IDE_VENDOR_DEFINED_POWER_INFO с идентификатором GUID, зарегистрированным драйвером мини-порта, чтобы убедиться, что вызов для этого канала. Если идентификаторы GUID не соответствуют, минипорт-драйвер должен завершить вызов и не предпринять никаких действий.
- Получите поле значения из поля параметров структуры IDE_VENDOR_DEFINED_POWER_INFO и выполните соответствующее действие управления питанием для конкретного драйвера мини-порта.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | irb.h (include Irb.h) |