Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La rutina del controlador de miniporte ideHwControl notifica al controlador de minipuerto sobre plug and play (PnP) y los eventos de energía.
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 hay un evento de energía definido por el proveedor que viene. |
Valor devuelto
IdeHwControl devuelve TRUE si la operación se realizó correctamente. De lo contrario, devuelve FALSE.
Observaciones
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 miniporte puede tener sus propios métodos de directiva de energía 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 miniporte. Para obtener más información sobre la directiva de configuración de energía, consulte directiva ADDPowerSetting inf. Puede encontrar más información sobre los GUID en Configuración de disco.
- Cuando se llama a la rutina del controlador de miniportar 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 miniporte 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 miniport).
- Una vez registrada la administración de energía definida por el proveedor, el controlador de miniporte podrá recibir llamadas a su IdeHwControl rutina con la acción de control IdeVendorDefined cuando cambia el esquema de energía del sistema.
- Aunque el controlador de miniporte procesa la rutina de 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 de del campo de parámetros de la 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 | Valor |
|---|---|
| de la plataforma de destino de | Escritorio |
| encabezado de | irb.h (incluya Irb.h) |