GET_D3COLD_CAPABILITY función de devolución de llamada (wdm.h)

La rutina GetBusDriverD3ColdSupport permite al controlador de un dispositivo consultar si el controlador de bus de enumeración admite el estado de alimentación del dispositivo D3cold.

Sintaxis

GET_D3COLD_CAPABILITY GetD3coldCapability;

NTSTATUS GetD3coldCapability(
  [in, optional] PVOID Context,
  [out]          PBOOLEAN D3ColdSupported
)
{...}

Parámetros

[in, optional] Context

Puntero a información de contexto específica de la interfaz. El autor de la llamada establece este parámetro en el valor del miembro Context de la estructura D3COLD_SUPPORT_INTERFACE para la interfaz.

[out] D3ColdSupported

Puntero a una variable BOOLEAN a la que la rutina escribe un valor para indicar si el controlador de bus admite D3cold. Si este valor es TRUE, el controlador de bus admite D3cold. Si es FALSE, el controlador de autobús no admite D3cold. Si se produce un error en la llamada, la rutina devuelve un código de estado de error y no escribe nada en esta variable.

Valor devuelto

La rutina GetBusDriverD3ColdSupport devuelve STATUS_SUCCESS si se realiza correctamente. De lo contrario, devuelve un código de estado de error adecuado.

Comentarios

El controlador del dispositivo llama a la versión de esta rutina implementada por el controlador ACPI de Windows, Acpi.sys. Esta rutina comprueba el controlador de autobús primario del dispositivo para determinar si este controlador de bus admite el estado de alimentación D3cold.

Por ejemplo, a partir de Windows 8, Microsoft proporciona una bandeja de entrada USB 3.0 eXtensible Controladora de host (xHCI) controlador que admite D3cold. Algunos proveedores de hardware de terceros proporcionan controladores de Windows para sus controladores xHCI, pero es posible que estos controladores no admitan D3cold. El controlador de un dispositivo USB 3.0 puede llamar a la rutina GetBusDriverD3ColdSupport para determinar si el controlador de controlador xHCI primario admite D3cold.

Un controlador de bus admite D3cold si se cumplen todas las siguientes condiciones:

  • El controlador de autobús implementa la interfaz de controlador GUID_D3COLD_SUPPORT_INTERFACE.
  • El controlador de bus implementa la rutina GetBusDriverD3ColdSupport en esta interfaz.
  • El valor de salida de la rutina GetBusDriverD3ColdSupport indica que el controlador de bus admite D3cold.
El controlador de un dispositivo puede llamar a la rutina GetIdleWakeInfo para determinar si los controladores de autobús subyacentes y el firmware del sistema ACPI admiten D3cold para el dispositivo. Si se produce un error en esta llamada y devuelve un código de estado de error, el controlador del dispositivo puede llamar a la rutina GetBusDriverD3ColdSupport para determinar si el error se debe a la falta de compatibilidad con D3cold por parte del controlador primario del bus.

Un dispositivo de un bus puede realizar una transición a la subestado D3cold solo si el controlador de bus admite esta transición. Si el controlador de bus no admite D3cold, el dispositivo nunca entra en D3cold, aunque el controlador de función del dispositivo llame a la rutina SetD3ColdSupport para habilitar la transición a D3cold. En este caso, las llamadas a SetD3ColdSupport no tienen ningún efecto, pero son inofensivas.

Por este motivo, la mayoría de los controladores de dispositivos nunca necesitan llamar a la rutina GetBusDriverD3ColdSupport .

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 8.
Plataforma de destino Escritorio
Encabezado wdm.h (incluya Wdm.h)
IRQL PASSIVE_LEVEL

Consulte también

D3COLD_SUPPORT_INTERFACE

GetIdleWakeInfo

SetD3ColdSupport