Compartir a través de


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

La rutina de devolución de llamada GET_D3COLD_CAPABILITY se usa para dos funciones diferentes en el D3COLD_SUPPORT_INTERFACE:

  • GetD3ColdCapability : informa si este dispositivo es capaz de entrar en el estado de alimentación del dispositivo D3cold.
  • GetBusDriverD3ColdSupport : informa de si el controlador de bus subyacente y el firmware del sistema ACPI admiten D3cold para este dispositivo.

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 context miembro de la estructura D3COLD_SUPPORT_INTERFACE para la interfaz.

[out] D3ColdSupported

Puntero a una variable BOOLEAN en la que la rutina escribe un valor para indicar el estado de compatibilidad con D3cold. El significado de este valor depende de la función a la que se llama:

  • GetD3ColdCapability: si es TRUE, el dispositivo es capaz de escribir D3cold. Si es FALSE, el dispositivo no es capaz de escribir D3cold.
  • GetBusDriverD3ColdSupport: si es TRUE, el controlador de bus admite D3cold. Si es FALSE, el controlador de bus 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 GET_D3COLD_CAPABILITY devuelve STATUS_SUCCESS si se realiza correctamente. De lo contrario, devuelve un código de estado de error adecuado.

Observaciones

Este tipo de función de devolución de llamada se usa para dos rutinas diferentes en el D3COLD_SUPPORT_INTERFACE:

  • GetD3ColdCapability : informa si este dispositivo es capaz de entrar en el estado de alimentación del dispositivo D3cold.
  • GetBusDriverD3ColdSupport : informa de si el controlador de bus subyacente y el firmware del sistema ACPI admiten D3cold para este dispositivo.

Uso de GetBusDriverD3ColdSupport

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

Por ejemplo, a partir de Windows 8, Microsoft proporciona un controlador de interfaz de controlador de host usb 3.0 eXtensible (xHCI) de bandeja de entrada 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 del controlador xHCI primario admite D3cold.

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

  • El controlador de bus 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 bus 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 de 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 al 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 Importancia
Cliente mínimo compatible Windows 8
Plataforma de destino Escritorio
encabezado wdm.h (incluya Wdm.h)
irQL PASSIVE_LEVEL

Consulte también

D3COLD_SUPPORT_INTERFACE

GetIdleWakeInfo

SetD3ColdSupport