Compartir a través de


Función WdfIoQueuePurgeSynchronously (wdfio.h)

[Se aplica a KMDF y UMDF]

El método WdfIoQueuePurgeSynchronously hace que el marco deje de poner en cola las solicitudes de E/S en una cola de E/S y cancelar las solicitudes no procesadas y las solicitudes cancelables propiedad del controlador.

Sintaxis

void WdfIoQueuePurgeSynchronously(
  [in] WDFQUEUE Queue
);

Parámetros

[in] Queue

Identificador de un objeto de cola de marco.

Valor devuelto

Ninguno

Observaciones

Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.

Después de que un controlador llame a WdfIoQueuePurgeSynchronously, el marco deja de agregar solicitudes de E/S a la cola especificada. El marco cancela todas las solicitudes que no se han entregado al controlador. Si el marco recibe solicitudes adicionales para la cola, los completa con un valor de estado de finalización de STATUS_INVALID_DEVICE_STATE.

WdfIoQueuePurgeSynchronously devuelve después de que se completen o cancelen todas las solicitudes no procesadas y propiedad del controlador.

Una vez que un controlador ha purgado una cola de E/S, puede reiniciar la cola llamando a WdfIoQueueStart.

No llame a WdfIoQueuePurgeSynchronously desde las siguientes funciones de devolución de llamada de evento de objeto de cola, independientemente de la cola con la que está asociada la función de devolución de llamada de evento:

EvtIoDefaultEvtIoDeviceControlEvtIoInternalDeviceControlEvtIoReadEvtIoWrite Para obtener más información sobre el método WdfIoQueuePurgeSynchronously, vea Managing I/O Queues.

Ejemplos

En el ejemplo de código siguiente se purga una cola de E/S especificada.

WdfIoQueuePurgeSynchronously(ReadQueue);

Requisitos

Requisito Valor
de la plataforma de destino de Universal
versión mínima de KMDF 1.0
versión mínima de UMDF 2.0
encabezado wdfio.h (incluya Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
irQL PASSIVE_LEVEL
reglas de cumplimiento de DDI ChangeQueueState(kmdf), DriverCreate(kmdf), EvtSurpriseRemoveNoSuspendQueue(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), NoCancelFromEvtSurpriseRemove(kmdf), NoIoQueuePurgeSynchronously(kmdf)

Consulte también

WdfIoQueuePurge