Condividi tramite


Funzione WdfPdoInitRemovePowerDependencyOnParent (wdfpdo.h)

Il metodo WdfPdoInitRemovePowerDependencyOnParent rimuove la dipendenza di alimentazione descritta nella sezione Osservazioni .

Sintassi

void WdfPdoInitRemovePowerDependencyOnParent(
  PWDFDEVICE_INIT DeviceInit
);

Parametri

DeviceInit

Puntatore a una struttura WDFDEVICE_INIT .

Valore restituito

nessuno

Osservazioni

In generale, il framework richiede che un driver del bus padre entri nello stato di alimentazione del dispositivo D0 prima che un dispositivo figlio entri in D0 e analogamente che un dispositivo figlio esce da D0 prima che l'elemento padre lasci D0.

Tuttavia, questo comportamento potrebbe non essere desiderato, in particolare se il dispositivo figlio è un dispositivo virtuale che non rappresenta alcun hardware reale. In caso di accensione inattiva di S0, lo stato di alimentazione del dispositivo figlio potrebbe non essere rilevante per l'elemento padre. In realtà, il dispositivo figlio potrebbe non avere alcun motivo per eseguire il rilevamento S0 inattiva. In questo caso, sarebbe preferibile che il dispositivo padre passi tra D0 e Dx in base all'attività di I/O, anziché dipendere dallo stato di alimentazione del dispositivo figlio.

La rimozione della dipendenza dell'alimentazione ha gli effetti seguenti sul conducente dell'autobus:

  • I callback PDO PnP/Power potrebbero essere eseguiti mentre il dispositivo padre si trova in Dx.
  • I callback PDO enable/disable-wake-at-bus possono essere eseguiti mentre il dispositivo padre si trova in Dx.
  • Una richiesta inoltrata da una coda gestita dall'alimentazione nel PDO (presupponendo che il PDO sia il proprietario dei criteri di alimentazione) a una coda non gestita dall'alimentazione nell'fdO potrebbe essere inviata mentre l'autista dell'autobus si trova in Dx.
  • Lo stack figlio esegue transizioni di stato di alimentazione indipendentemente dallo stack padre. Sono inclusi scenari come la ripresa rapida in cui lo stack figlio potrebbe ricevere il proprio S-IRP e persino completare l'elaborazione del D-IRP prima che lo stack padre finisca l'elaborazione del proprio D-IRP.

Per rimuovere la dipendenza dall'alimentazione, il driver del bus può chiamare WdfPdoInitRemovePowerDependencyOnParent quando crea il PDO per il dispositivo figlio.

Questa funzione non esegue alcuna azione se il driver del bus padre non è il proprietario dei criteri di alimentazione dello stack di dispositivi padre.

Requisiti

Requisito Valore
Client minimo supportato Windows 10, versione 2004
Versione KMDF minima 1.29
Intestazione wdfpdo.h (include Wdf.h)
Libreria Wdf01000.sys (KMDF)
IRQL PASSIVE_LEVEL