Stati coda di I/O
Il framework definisce gli stati seguenti per le code di I/O:
Inattivo
La coda di I/O non contiene richieste di I/O e il driver non elabora le richieste ricevute dalla coda di I/O.
Pronto
La coda di I/O può ricevere richieste di I/O dal framework e può recapitare richieste di I/O al driver.
Fermato
La coda di I/O può ricevere richieste di I/O dal framework, ma non può recapitare richieste di I/O al driver e il driver non elabora le richieste ricevute dalla coda di I/O.
Drenato
La coda di I/O è vuota, non può ricevere nuove richieste di I/O dal framework e tutte le richieste di I/O presenti nella coda di I/O sono state recapitate al driver.
Eliminati
La coda di I/O è vuota, non può ricevere nuove richieste di I/O dal framework e tutte le richieste di I/O presenti nella coda di I/O sono state annullate.
Il framework può impostare una nuova coda di I/O sullo stato pronto dopo che il driver chiama WdfIoQueueCreate. Tuttavia, le code di I/O gestite dall'alimentazione entrano nello stato pronto solo se il dispositivo è nello stato funzionante (D0).
Il driver può modificare lo stato di una coda di I/O in base a:
Chiamata a WdfIoQueueStop o WdfIoQueueStopSynchronously per posizionare la coda nello stato arrestato.
Chiamando WdfIoQueueDrain o WdfIoQueueDrainSynchronously per posizionare la coda nello stato svuotato.
Chiamando WdfIoQueuePurge o WdfIoQueuePurgeSynchronously per posizionare la coda nello stato eliminato.
Chiamata di WdfIoQueueStart per restituire la coda allo stato pronto.
Per ottenere lo stato corrente di una coda di I/O, il driver può chiamare WdfIoQueueGetState.