Condividi tramite


EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND funzione di callback (wdfdevice.h)

[Si applica a KMDF e UMDF]

La funzione di callback dell'evento EvtDeviceSelfManagedIoSuspend di un driver sospende le operazioni di I/O autogestito di un dispositivo.

Sintassi

EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND EvtWdfDeviceSelfManagedIoSuspend;

NTSTATUS EvtWdfDeviceSelfManagedIoSuspend(
  [in] WDFDEVICE Device
)
{...}

Parametri

[in] Device

Handle per un oggetto dispositivo framework.

Valore restituito

Se l'operazione ha esito positivo, la funzione di callback EvtDeviceSelfManagedIoSuspend deve restituire STATUS_SUCCESS o un altro valore di stato per il quale NT_SUCCESS(status) è uguale a TRUE. In caso contrario, deve restituire un valore di stato per il quale NT_SUCCESS(status) è uguale a FALSE. Se NT_SUCCESS(stato) è FALSE, il framework arresta il dispositivo e ne rimuove gli oggetti dispositivo.

Se NT_SUCCESS(status) è uguale a FALSE, il framework chiama le funzioni di callback EvtDeviceSelfManagedIoFlush e EvtDeviceSelfManagedIoCleanup del driver.

Per altre informazioni sui valori restituiti di questa funzione di callback, vedere Segnalazione di errori del dispositivo.

Commenti

Per registrare una funzione di callback EvtDeviceSelfManagedIoSuspend , un driver deve chiamare WdfDeviceInitSetPnpPowerEventCallbacks.

Se il driver ha registrato una funzione di callback EvtDeviceSelfManagedIoSuspend , il framework lo chiama per uno dei motivi seguenti:

  • Il dispositivo sta per entrare in uno stato a basso consumo.
  • Il dispositivo viene rimosso o rimosso a sorpresa.
  • Il manager Plug and Play sta per ridistribuire le risorse hardware del sistema tra i dispositivi collegati al sistema.
Poiché non si conosce quale di questi eventi fa sì che il framework chiami il driver, è necessario presupporre che il dispositivo possa tornare allo stato funzionante (D0).

Se il dispositivo sta per entrare in uno stato a basso consumo, il framework chiama la funzione di callback EvtDeviceSelfManagedIoSuspend del driver prima di chiamare la funzione di callback EvtDeviceD0Exit del driver.

Se la funzione di callback restituisce un valore di stato per il quale NT_SUCCESS(stato) è FALSE e se il framework sta tentando di abbassare la potenza del dispositivo, il framework arresta il dispositivo e ne rimuove gli oggetti dispositivo.

La funzione di callback EvtDeviceSelfManagedIoSuspend deve eseguire qualsiasi operazione necessaria per arrestare le operazioni di I/O autogestito del dispositivo.

Per altre informazioni sui casi in cui il framework chiama questa funzione di callback, vedere Scenari di risparmio energia e PnP.

Per altre informazioni sui driver che forniscono questa funzione di callback, vedere Uso di Self-Managed I/O.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.0
Versione UMDF minima 2,0
Intestazione wdfdevice.h (include Wdf.h)
IRQL PASSIVE_LEVEL

Vedi anche

EvtDeviceSelfManagedIoCleanup

EvtDeviceSelfManagedIoFlush

EvtDeviceSelfManagedIoInit

EvtDeviceSelfManagedIoRestart