Función IoCsqInitializeEx (wdm.h)
La rutina IoCsqInitializeEx inicializa la tabla de distribución para una cola IRP segura para cancelar.
Sintaxis
NTSTATUS IoCsqInitializeEx(
[out] PIO_CSQ Csq,
[in] PIO_CSQ_INSERT_IRP_EX CsqInsertIrp,
[in] PIO_CSQ_REMOVE_IRP CsqRemoveIrp,
[in] PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp,
[in] PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock,
[in] PIO_CSQ_RELEASE_LOCK CsqReleaseLock,
[in] PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp
);
Parámetros
[out] Csq
Puntero a la estructura IO_CSQ que IoCsqInitializeEx va a inicializar.
[in] CsqInsertIrp
Puntero a la función CsqInsertIrpEx definida por el controlador para la cola IRP con seguridad de cancelación del controlador.
[in] CsqRemoveIrp
Puntero a la función CsqRemoveIrp definida por el controlador para la cola IRP con seguridad de cancelación del controlador.
[in] CsqPeekNextIrp
Puntero a la función CsqPeekNextIrp definida por el controlador para la cola IRP con seguridad de cancelación del controlador.
[in] CsqAcquireLock
Puntero a la función CsqAcquireLock definida por el controlador para la cola IRP segura para cancelación del controlador.
[in] CsqReleaseLock
Puntero a la función CsqReleaseLock definida por el controlador para la cola IRP segura para cancelar el controlador.
[in] CsqCompleteCanceledIrp
Puntero a la función CsqCompleteCanceledIrp definida por el controlador para la cola IRP con seguridad de cancelación del controlador.
Valor devuelto
IoCsqInitializeEx devuelve STATUS_SUCCESS si se ejecuta correctamente o el código de error adecuado en caso de error.
Comentarios
Las rutinas IoCsqInitialize e IoCsqInitializeEx inicializan una estructura de IO_CSQ que describe la cola IRP segura para cancelación de un controlador. Puede usar IoCsqInitializeEx para especificar una cola IRP con funcionalidades extendidas en lugar de una especificada por IoCsqInitialize:
- El controlador implementa una rutina CsqInsertIrpEx en lugar de una rutina CsqInsertIrp . CsqInsertIrpEx toma un parámetro adicional, InsertContext. Cuando el controlador llama a IoCsqInsertIrpEx para insertar el IRP, especifica el valor que se pasa como InsertContext.
- IoCsqInsertIrpEx devuelve el valor devuelto de CsqInsertIrpEx. Los controladores pueden usar el valor devuelto para indicar si una operación de inserción se realizó correctamente o no.
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.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible en Windows Server 2003 y versiones posteriores del sistema operativo Windows. La rutina también está disponible en la biblioteca Csq.lib que se incluye con el Kit de controladores de Windows (WDK) y el Kit de desarrollo de controladores (DDK) para Windows Server 2003. Los controladores que también deben funcionar en Windows XP, 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 | Cualquier nivel |