функция обратного вызова 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 см. в разделе Параметры диска.
  • При вызове подпрограммы драйвера мини-порта 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 (включая Irb.h)

См. также раздел

AtaPortGetUncachedExtension