Поделиться через


функция обратного вызова IDE_HW_CONTROL (irb.h)

Программа IdeHwControl драйвер минипорта уведомляет минипорт-драйвер о подключаемых модулях Plug and Play (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.

Замечания

Драйвер порта гарантирует отсутствие выдающегося ввода-вывода в канале перед вызовом этой процедуры. Минипорт-драйвер может иметь собственные методы политики питания, когда система входит в другое состояние питания. Чтобы добиться этого, минипорт-драйвер должен выполнить следующие действия:

  • Добавьте схему параметров политики питания в 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)

См. также

AtaPortGetUncachedExtension