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