Funzione WdfIoQueuePurgeSynchronously (wdfio.h)
[Si applica a KMDF e UMDF]
Il metodo WdfIoQueuePurgeSynchronously causa l'arresto dell'accodamento delle richieste di I/O a una coda di I/O e l'annullamento di richieste annullabili non elaborate e di proprietà del driver.
Sintassi
void WdfIoQueuePurgeSynchronously(
[in] WDFQUEUE Queue
);
Parametri
[in] Queue
Handle a un oggetto code del framework.
Valore restituito
nessuno
Osservazioni
Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.
Dopo che un driver chiama WdfIoQueuePurgeSynchronously, il framework smette di aggiungere richieste di I/O alla coda specificata. Il framework annulla tutte le richieste che non ha recapitato al driver. Se il framework riceve richieste aggiuntive per la coda, le completa con un valore di stato di completamento di STATUS_INVALID_DEVICE_STATE.
WdfIoQueuePurgeSynchronously restituisce dopo che tutte le richieste non elaborate e di proprietà del driver vengono completate o annullate.
Dopo aver eliminato una coda di I/O, un driver può riavviare la coda chiamando WdfIoQueueStart.
Non chiamare WdfIoQueuePurgeSynchronously dalle funzioni di callback dell'evento dell'oggetto coda seguenti, indipendentemente dalla coda con cui è associata la funzione di callback dell'evento:
EvtIoDefaultEvtIoDeviceControl EvtIoInternalDeviceControl EvtIoRead EvtIoWrite Per altre informazioni sul metodo WdfIoQueuePurgeSynchronously, vedere Gestione delle code di I/O.
Esempio
Nell'esempio di codice seguente viene eliminata una coda di I/O specificata.
WdfIoQueuePurgeSynchronously(ReadQueue);
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfio.h (includere Wdf.h) |
Libreria | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Regole di conformità DDI | ChangeQueueState(kmdf), DriverCreate(kmdf), EvtSurpriseRemoveNoSuspendQueue(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), NoCancelFromEvtSurpriseRemove(kmdf), NoIoQueuePurgeSynchronously(kmdf) |