Funzione WdfIoQueueStop (wdfio.h)
[Si applica a KMDF e UMDF]
Il metodo WdfIoQueueStop impedisce a una coda di I/O di recapitare richieste di I/O, ma la coda riceve e archivia nuove richieste.
Sintassi
void WdfIoQueueStop(
[in] WDFQUEUE Queue,
[in, optional] PFN_WDF_IO_QUEUE_STATE StopComplete,
[in, optional] WDFCONTEXT Context
);
Parametri
[in] Queue
Handle a un oggetto code del framework.
[in, optional] StopComplete
Puntatore a una funzione di callback EvtIoQueueState fornita dal driver. Questo parametro è facoltativo e può essere NULL.
[in, optional] Context
Puntatore non tipizzato alle informazioni di contesto fornite dal driver che il framework passa alla funzione di callback EvtIoQueueState . Questo parametro è facoltativo e può essere NULL.
Valore restituito
nessuno
Osservazioni
Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.
Se il driver fornisce una funzione di callback EvtIoQueueState , il framework lo chiama dopo che tutte le richieste recapitate al driver sono state completate o annullate. È possibile modificare irQL in corrispondenza del quale viene eseguito il callback specificando ExecutionLevel in WDF_OBJECT_ATTRIBUTES in fase di creazione della coda. Per altre informazioni, vedere la sezione Osservazioni diEVT_WDF_IO_QUEUE_STATE.
Il metodo WdfIoQueueStop consente alla coda di ricevere nuove richieste, anche se la coda non riceveva nuove richieste prima del driver denominato WdfIoQueueStop. Ad esempio, prima di chiamare WdfIoQueueStop, un driver potrebbe chiamare WdfIoQueueDrain, che causa l'interruzione dell'aggiunta di nuove richieste di I/O alla coda. La chiamata successiva del driver di WdfIoQueueStop causa la ripresa dell'aggiunta delle richieste alla coda.
Un driver non deve chiamare WdfIoQueueDrain dopo aver chiamato WdfIoQueueStop finché non viene riavviata la coda chiamando WdfIoQueueStart.
Per altre informazioni sul metodo WdfIoQueueStop , vedere Gestione delle code di I/O.
Esempio
Nell'esempio di codice seguente viene arrestata una coda di I/O specificata. Quando tutte le richieste recapitate al driver sono state completate o annullate, chiama la funzione EvtIoQueueStateStop di un driver.
WDFCONTEXT stopContext;
stopContext = &myContext;
WdfIoQueueStop(
queue,
EvtIoQueueStateStop,
stopContext
);
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 | <= DISPATCH_LEVEL |
Regole di conformità DDI | ChangeQueueState(kmdf), DriverCreate(kmdf), EvtSurpriseRemoveNoSuspendQueue(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), NoCancelFromEvtSurpriseRemove(kmdf) |