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

Подпрограмма драйвера мини-порта AtaControllerChannelEnabled указывает, включен ли указанный канал.

Примечание

Модели драйвера портов ATA и драйвера минипорта ATA могут быть изменены или недоступны в будущем. Вместо этого рекомендуется использовать модели драйверов Storport и драйверов для мини-портов Storport .

Синтаксис

IDE_CHANNEL_ENABLED IdeChannelEnabled;

ATA_CHANNEL_STATE IdeChannelEnabled(
  PVOID ControllerExtension,
  ULONG Channel
)
{...}

Параметры

ControllerExtension

[in] Указатель на расширение контроллера.

Channel

[in] Канал для включения.

Возвращаемое значение

AtaControllerChannelEnabled возвращает значение перечислителя типа ATA_CHANNEL_STATE, которое может иметь любое из следующих значений:

Код возврата Значение
ChannelStateEnabled Указывает, что указанный канал включен.
ChannelStateDisabled Указывает, что указанный канал отключен.
ChannelStateUnKnown Указывает, что не удалось определить состояние канала.

Комментарии

В следующей последовательности показано, как драйвер мини-порта и драйвер порта взаимодействуют, чтобы определить, какие каналы контроллера включены:

  1. Драйвер порта вызывает подпрограмму AtaAdapterControl драйвера мини-порта с действием управления IdeStart.

  2. Хотя драйвер мини-порта обрабатывает подпрограмму AtaAdapterControl с действием управления IdeStart, он инициализирует элемент NumberOfChannelsIDE_CONTROLLER_CONFIGURATION , чтобы указать количество включенных каналов.

  3. После возврата подпрограммы AtaAdapterControl драйвер порта вызывает AtaControllerChannelEnabled один раз для каждого объекта NumberOfChannels, указанного в структуре ControllerConfiguration, возвращаемых AtaAdapterControl.

В этой подпрограмме не должны быть шаги, которые имеют решающее значение для работы контроллера. Существуют ситуации, например во время операции аварийного завершения, в которых эта функция не будет вызываться вообще. Кроме того, эта функция не вызывается при перезапуске канала, только если PCIIDEx отвечает на запрос QueryDeviceRelations IRP.

AtaControllerChannelEnabled — это необязательная подпрограмма. Если драйвер мини-порта не реализует эту подпрограмму, драйвер порта загрузит обработчик по умолчанию. Если драйвер порта загружает обработчик по умолчанию, предполагается, что все каналы, указанные numberOfChannels в структуре ControllerConfiguration, возвращаемой AtaAdapterControl при обработке действия IdeStart, будут включены. Эта подпрограмма позволяет PCIIDEx загружать драйвер порта ATA только для включенных каналов. Это позволяет поддерживать разреженные каналы (например, канал 0, канал 1, канал 3, канал 4 и канал 6, но не канал 2 и канал 5).

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть irb.h (включая Irb.h)

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

IDE_CONTROLLER_CONFIGURATION