Función IoCsqRemoveNextIrp (wdm.h)
La rutina IoCsqRemoveNextIrp quita el siguiente IRP coincidente en la cola.
Sintaxis
PIRP IoCsqRemoveNextIrp(
[in, out] PIO_CSQ Csq,
[in, optional] PVOID PeekContext
);
Parámetros
[in, out] Csq
Puntero a la tabla de distribución del controlador para las colas irP seguras para cancelar. IoCsqInitialize debe inicializar la tabla de distribución.
[in, optional] PeekContext
Puntero a un valor de contexto definido por el controlador. IoCsqRemoveNextIrp pasa este parámetro a la rutina CsqPeekNextIrp del controlador. Para obtener más información, vea la sección Comentarios que se muestra más adelante.
Valor devuelto
Esta rutina devuelve un puntero al siguiente IRP coincidente de la cola, o NULL si no hay más IRP disponibles. La rutina solo devuelve IRP que aún no se han cancelado.
Comentarios
IoCsqRemoveNextIrp usa las rutinas de distribución de la cola para quitar el IRP. La rutina IoCsqRemoveNextIrp :
- Llama a la rutina CsqAcquireLock de la cola para bloquear la cola.
- Llama a la rutina CsqPeekNextIrp de la cola para buscar el siguiente IRP coincidente en la cola. IoCsqRemoveNextIrp pasa el valor del parámetro PeekContext como parámetro PeekContext de CsqPeekNextIrp. CsqPeekNextIrp devuelve un puntero al siguiente IRP coincidente o NULL si no hay ningún IRP coincidente.
- Si el valor devuelto de CsqPeekNextIrp no es NULL, IoCsqRemoveNextIrp llama a la rutina CsqRemoveIrp de la cola para quitar el IRP.
- Llama a la rutina CsqReleaseLock de la cola para desbloquear la cola.
Tenga en cuenta que las rutinas IoCsqXxx usan el miembro DriverContext[3] del IRP para contener información de contexto de IRP. Los controladores que usan estas rutinas para poner en cola los IRP deben dejar ese miembro sin usar.
Los autores de llamadas de IoCsqRemoveNextIrp deben ejecutarse en un IRQL <= DISPATCH_LEVEL. Las rutinas de devolución de llamada del controlador deben funcionar correctamente en ese IRQL.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible en Windows XP y versiones posteriores de Windows. Los controladores que también deben funcionar en Windows 2000 y Windows 98/Me pueden vincular a Csq.lib para usar la rutina. |
Plataforma de destino | Universal |
Encabezado | wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (consulte la sección Comentarios) |