Condividi tramite


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)

Vedi anche

EvtIoQueueState

WdfIoQueueStart

WdfIoQueueStopSynchronously