Condividi tramite


GET_D3COLD_CAPABILITY funzione di callback (wdm.h)

La routine GetBusDriverD3ColdSupport consente al driver di un dispositivo di eseguire una query se il driver del bus di enumerazione supporta lo stato di alimentazione del dispositivo D3cold.

Sintassi

GET_D3COLD_CAPABILITY GetD3coldCapability;

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

Parametri

[in, optional] Context

Puntatore a informazioni di contesto specifiche dell'interfaccia. Il chiamante imposta questo parametro sul valore del membro Context della struttura D3COLD_SUPPORT_INTERFACE per l'interfaccia.

[out] D3ColdSupported

Puntatore a una variabile BOOLEAN a cui la routine scrive un valore per indicare se il driver del bus supporta il D3cold. Se questo valore è TRUE, il driver del bus supporta D3cold. Se FALSE, il driver del bus non supporta D3cold. Se la chiamata ha esito negativo, la routine restituisce un codice di stato di errore e non scrive nulla in questa variabile.

Valore restituito

La routine GetBusDriverD3ColdSupport restituisce STATUS_SUCCESS se ha esito positivo. In caso contrario, restituisce un codice di stato di errore appropriato.

Commenti

Il driver per il dispositivo chiama la versione di questa routine implementata dal driver ACPI di Windows, Acpi.sys. Questa routine controlla il driver del bus padre per il dispositivo per determinare se questo driver del bus supporta lo stato di alimentazione D3cold.

Ad esempio, a partire da Windows 8, Microsoft fornisce un driver USB 3.0 eXtensible Host Interface (xHCI) che supporta D3cold. Alcuni fornitori hardware di terze parti forniscono driver Windows per i controller xHCI, ma questi driver potrebbero non supportare D3cold. Il driver per un dispositivo USB 3.0 può chiamare la routine GetBusDriverD3ColdSupport per determinare se il driver controller xHCI padre supporta D3cold.

Un driver del bus supporta D3cold se tutte le operazioni seguenti sono vere:

  • Il driver del bus implementa l'interfaccia del driver di GUID_D3COLD_SUPPORT_INTERFACE.
  • Il driver del bus implementa la routine GetBusDriverD3ColdSupport in questa interfaccia.
  • Il valore di output della routine GetBusDriverD3ColdSupport indica che il driver del bus supporta D3cold.
Il driver per un dispositivo può chiamare la routine GetIdleWakeInfo per determinare se i driver del bus sottostante e il firmware del sistema ACPI supportano D3cold per il dispositivo. Se questa chiamata ha esito negativo e restituisce un codice di stato di errore, il driver del dispositivo può chiamare la routine GetBusDriverD3ColdSupport per determinare se l'errore è causato dalla mancanza di supporto D3cold dal driver del bus padre.

Un dispositivo in un bus può eseguire una transizione alla sottostate D3cold solo se il driver del bus supporta questa transizione. Se il driver del bus non supporta D3cold, il dispositivo non entra mai in D3cold, anche se il driver di funzione per il dispositivo chiama la routine SetD3ColdSupport per abilitare la transizione a D3cold. In questo caso, le chiamate SetD3ColdSupport non hanno alcun effetto, ma sono innocue.

Per questo motivo, la maggior parte dei driver di dispositivo non deve mai chiamare la routine GetBusDriverD3ColdSupport .

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 8.
Piattaforma di destinazione Desktop
Intestazione wdm.h (include Wdm.h)
IRQL PASSIVE_LEVEL

Vedi anche

D3COLD_SUPPORT_INTERFACE

GetIdleWakeInfo

SetD3ColdSupport