Compartir a través de


IDE_CHANNEL_ENABLED función de devolución de llamada (irb.h)

La rutina del controlador de miniporte AtaControllerChannelEnabled indica si el canal especificado está habilitado.

Nota

Los modelos de controlador de puerto ATA y controlador de minipuerto de ATA pueden modificarse o no estar disponibles en el futuro. En su lugar, se recomienda usar los modelos del controlador Storport y del controlador storport miniport .

Sintaxis

IDE_CHANNEL_ENABLED IdeChannelEnabled;

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

Parámetros

ControllerExtension

[in] Puntero a la extensión del controlador.

Channel

[in] Canal que se va a habilitar.

Valor devuelto

AtaControllerChannelEnabled devuelve un valor de enumerador de tipo ATA_CHANNEL_STATE, que puede tener cualquiera de los siguientes valores:

Código de retorno Significado
ChannelStateEnabled Indica que el canal especificado está habilitado.
ChannelStateDisabled Indica que el canal especificado está deshabilitado.
ChannelStateUnKnown Indica que no se pudo determinar el estado del canal.

Comentarios

En la secuencia siguiente se describe cómo interactúa el controlador de minipuerto y el controlador de puerto para determinar qué canales de controlador están habilitados:

  1. El controlador de puerto llama a la rutina AtaAdapterControl del controlador de miniporte con la acción de control IdeStart.

  2. Mientras el controlador de minipuerte procesa la rutina AtaAdapterControl con la acción de control IdeStart, inicializa el miembro NumberOfChannels de IDE_CONTROLLER_CONFIGURATION para indicar el número de canales habilitados.

  3. Una vez que se devuelve la rutina AtaAdapterControl , el controlador de puerto llama a AtaControllerChannelEnabled una vez por cada NumberOfChannels especificado en la estructura ControllerConfiguration devuelta por AtaAdapterControl.

Esta rutina no debe tener pasos críticos para el funcionamiento del controlador. Hay situaciones, como durante una operación crashdump, donde no se llamará a esta función en absoluto. Además, no se llama a esta función cuando se reinicia un canal, solo cuando PCIIDEx responde a un IRP QueryDeviceRelations.

AtaControllerChannelEnabled es una rutina opcional. Si el controlador de minipuerto no implementa esta rutina, el controlador de puerto cargará un controlador predeterminado. Si el controlador de puerto carga un controlador predeterminado, se supone que se habilitan todos los canales especificados por NumberOfChannels en la estructura ControllerConfiguration que devuelve AtaAdapterControl al controlar una acción IdeStart. Esta rutina permite a PCIIDEx cargar el controlador de puerto de ATA solo para los canales habilitados. Esto permite admitir canales dispersos (por ejemplo, canal 0, canal 1, canal 3, canal 4 y canal 6, pero no canal 2 y canal 5).

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado irb.h (incluir Irb.h)

Consulte también

IDE_CONTROLLER_CONFIGURATION