GET_D3COLD_CAPABILITY Rückruffunktion (wdm.h)

Die GetBusDriverD3ColdSupport-Routine ermöglicht es dem Treiber für ein Gerät, abzufragen, ob der aufzählende Bustreiber den D3cold-Gerätestromzustand unterstützt.

Syntax

GET_D3COLD_CAPABILITY GetD3coldCapability;

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

Parameter

[in, optional] Context

Ein Zeiger auf schnittstellenspezifische Kontextinformationen. Der Aufrufer legt diesen Parameter auf den Wert des Context-Elements der D3COLD_SUPPORT_INTERFACE-Struktur für die Schnittstelle fest.

[out] D3ColdSupported

Ein Zeiger auf eine BOOLESCHE Variable, in die die Routine einen Wert schreibt, um anzugeben, ob der Bustreiber D3cold unterstützt. Wenn dieser Wert TRUE ist, unterstützt der Bustreiber D3cold. Bei FALSE unterstützt der Bustreiber D3cold nicht. Wenn der Aufruf fehlschlägt, gibt die Routine einen Fehler status Code zurück und schreibt nichts in diese Variable.

Rückgabewert

Die GetBusDriverD3ColdSupport-Routine gibt bei erfolgreicher Ausführung STATUS_SUCCESS zurück. Andernfalls wird ein entsprechender Fehler status Code zurückgegeben.

Hinweise

Der Treiber für das Gerät ruft die Version dieser Routine auf, die vom Windows ACPI-Treiber implementiert wird, Acpi.sys. Diese Routine überprüft den übergeordneten Bustreiber für das Gerät, um zu ermitteln, ob dieser Bustreiber den D3cold-Energiezustand unterstützt.

Ab Windows 8 stellt Microsoft beispielsweise einen Usb 3.0 eXtensible Host Controller Interface (xHCI)-Treiber für den Posteingang bereit, der D3cold unterstützt. Einige Hardwarehersteller von Drittanbietern stellen Windows-Treiber für ihre xHCI-Controller bereit, aber diese Treiber unterstützen D3cold möglicherweise nicht. Der Treiber für ein USB 3.0-Gerät kann die GetBusDriverD3ColdSupport-Routine aufrufen, um zu bestimmen, ob der übergeordnete xHCI-Controllertreiber D3cold unterstützt.

Ein Bustreiber unterstützt D3cold, wenn alle folgenden Punkte zutreffen:

  • Der Bustreiber implementiert die GUID_D3COLD_SUPPORT_INTERFACE-Treiberschnittstelle.
  • Der Bustreiber implementiert die GetBusDriverD3ColdSupport-Routine in dieser Schnittstelle.
  • Der Ausgabewert der GetBusDriverD3ColdSupport-Routine gibt an, dass der Bustreiber D3cold unterstützt.
Der Treiber für ein Gerät kann die GetIdleWakeInfo-Routine aufrufen, um zu bestimmen, ob die zugrunde liegenden Bustreiber und die ACPI-Systemfirmware D3cold für das Gerät unterstützen. Wenn dieser Aufruf fehlschlägt und einen Fehler status Code zurückgibt, kann der Gerätetreiber die GetBusDriverD3ColdSupport-Routine aufrufen, um zu ermitteln, ob der Fehler durch fehlende D3cold-Unterstützung durch den übergeordneten Bustreiber verursacht wird.

Ein Gerät in einem Bus kann nur dann zum D3cold-Unterzustand wechseln, wenn der Bustreiber diesen Übergang unterstützt. Wenn der Bustreiber D3cold nicht unterstützt, wechselt das Gerät nie in D3cold, auch wenn der Funktionstreiber für das Gerät die SetD3ColdSupport-Routine aufruft, um den Übergang zu D3cold zu ermöglichen. In diesem Fall haben SetD3ColdSupport-Aufrufe keine Auswirkung, sind aber harmlos.

Aus diesem Grund müssen die meisten Gerätetreiber nie die GetBusDriverD3ColdSupport-Routine aufrufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 8.
Zielplattform Desktop
Kopfzeile wdm.h (wdm.h einschließen)
IRQL PASSIVE_LEVEL

Weitere Informationen

D3COLD_SUPPORT_INTERFACE

GetIdleWakeInfo

SetD3ColdSupport