Función IoCsqRemoveNextIrp (wdm.h)
La rutina IoCsqRemoveNextIrp quita el siguiente IRP coincidente en la cola.
PIRP IoCsqRemoveNextIrp(
[in, out] PIO_CSQ Csq,
[in, optional] PVOID PeekContext
);
[in, out] Csq
Puntero a la tabla de distribución del controlador para las colas irP seguras para cancelar. La tabla de distribución debe inicializarse IoCsqInitialize.
[in, optional] PeekContext
Puntero a un valor de contexto definido por el controlador. IoCsqRemoveNextIrp pasa este parámetro a la rutina de CsqPeekNextIrp del controlador. Para obtener más información, vea la siguiente sección Comentarios.
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.
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 CsqPeekNextIr p 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 irP coincidente.
- Si el valor devuelto de CsqPeekNextIrp no esNULL, IoCsqRemoveNextIrp llama a la rutina CsqRemoveIrp de la cola para quitar el IRP.
- Llama a la rutina de CsqRelease Lock de la cola para desbloquear la cola.
Tenga en cuenta que ioCsqrutinas xxx usan el DriverContext[3] miembro 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 una <IRQL = DISPATCH_LEVEL. Las rutinas de devolución de llamada del controlador deben funcionar correctamente en ese IRQL.
Requisito | Valor |
---|---|
cliente mínimo admitido | 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. |
de la plataforma de destino de | Universal |
encabezado de | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | <= DISPATCH_LEVEL (consulte la sección Comentarios) |