Compartir a través de


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

La rutina del controlador de miniporte IdeHwControl notifica al controlador de minipuerto sobre Plug and Play (PnP) y eventos de energía.

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 el controlador Storport y los modelos de controlador de miniport storport .
 

Sintaxis

IDE_HW_CONTROL IdeHwControl;

BOOLEAN IdeHwControl(
  [in]      PVOID ChannelExtension,
  [in]      IDE_CONTROL_ACTION ControlAction,
  [in, out] PVOID Parameters
)
{...}

Parámetros

[in] ChannelExtension

Puntero a la extensión del canal.

[in] ControlAction

Contiene un valor de enumerador de tipo IDE_CONTROL_ACTION que indica la acción de control que se va a realizar.

[in, out] Parameters

Puntero a un búfer que contiene los parámetros asociados a la acción de control. Este parámetro puede tener uno de los valores de la tabla siguiente.

Acción de control Parámetros Descripción
IdeStart El parámetro apunta a una estructura de tipo IDE_CHANNEL_CONFIGURATION. Indica que el controlador de puerto está iniciando el canal.
IdeVendorDefined El parámetro apunta a una estructura de tipo IDE_VENDOR_DEFINED_POWER_INFO. Indica que se produce un evento de energía definido por el proveedor.

Valor devuelto

IdeHwControl devuelve TRUE si la operación se realizó correctamente. De lo contrario, devuelve FALSE.

Comentarios

El controlador de puerto se asegura de que no haya ninguna E/S pendiente en el canal antes de invocar esta rutina. El controlador de minipuerto puede tener sus propios métodos de directiva de alimentación cuando el sistema entra en un estado de alimentación diferente. Para lograr esto, el controlador de minipuerto debe hacer lo siguiente:

  • Agregue un esquema de configuración de directiva de energía al archivo INF del controlador de miniporte. Se necesita un GUID para presentar una directiva de energía definida por el controlador de minipuerto. Para obtener más información sobre la directiva de configuración de energía, vea Inf AddPowerSetting Directive. Puede encontrar más información sobre los GUID en Configuración de disco.
  • Cuando se llama a la rutina del controlador de miniporte IdeHwControl con la acción de control IdeStart:
    Compruebe el campo SupportedAdvances.AdvancedChannelConfigurationSupported en la estructura ChannelConfiguration.
    Compruebe el campo AdvancedChannelConfiguration->Present.VendorDefinedPower en la estructura ChannelConfiguration.
    Si los valores de los dos campos enumerados anteriormente son TRUE, esta versión del controlador de puerto de ATA admite la administración de energía definida por el proveedor.
    Si el controlador de puerto ATA admite la administración de energía definida por el proveedor, el controlador de minipuerto puede registrarse para controlar la administración de energía especial estableciendo los campos AdvancedChannelConfiguration->VendorDefinedPower.ValidGuids y AdvancedChannelConfiguration->VendorDefinedPower.Guid[] (este último debe ser el GUID de la directiva de energía en el archivo INF del controlador de minipuerto).
  • Una vez registrada la administración de energía definida por el proveedor, el controlador de minipuerto podrá recibir llamadas a su rutina IdeHwControl con la acción de control IdeVendorDefined cuando cambie el esquema de energía del sistema.
  • Aunque el controlador de minipuerto procesa la rutina IdeHwControl con la acción de control IdeVendorDefined, debe hacer lo siguiente:
    Compare el campo SettingGuid del campo de parámetro de estructura IDE_VENDOR_DEFINED_POWER_INFO con el GUID que registró el controlador de miniporte para asegurarse de que la llamada es para este canal. Si los GUID no coinciden, el controlador de miniporte debe completar la llamada y no realizar ninguna acción.
    Obtenga el campo Valor del campo de parámetro de estructura IDE_VENDOR_DEFINED_POWER_INFO y realice la acción de administración de energía específica del controlador de miniporte adecuada.

Requisitos

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

Consulte también

AtaPortGetUncachedExtension