// wdm.h
NTSTATUS IoCsqInitialize(
[out] PIO_CSQ Csq,
[in] PIO_CSQ_INSERT_IRP 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
);
View the official Windows Driver Kit DDI referenceNo description available.
The IoCsqInitialize routine initializes the driver's cancel-safe IRP queue dispatch table.
Csq [out]Pointer to the IO_CSQ structure to be initialized by IoCsqInitialize.
CsqInsertIrp [in]Pointer to the driver-defined CsqInsertIrp function for the driver's cancel-safe IRP queue.
CsqRemoveIrp [in]Pointer to the driver-defined CsqRemoveIrp function for the driver's cancel-safe IRP queue.
CsqPeekNextIrp [in]Pointer to the driver-defined CsqPeekNextIrp function for the driver's cancel-safe IRP queue.
CsqAcquireLock [in]Pointer to the driver-defined CsqAcquireLock function for the driver's cancel-safe IRP queue.
CsqReleaseLock [in]Pointer to the driver-defined CsqReleaseLock function for the driver's cancel-safe IRP queue.
CsqCompleteCanceledIrp [in]Pointer to the driver-defined CsqCompleteCanceledIrp function for the driver's cancel-safe IRP queue.
This routine returns STATUS_SUCCESS on success, or the appropriate NTSTATUS error code on failure.
The IoCsqInitialize routine initializes an IO_CSQ structure that describes a driver's cancel-safe IRP queue. Drivers can also use IoCsqInitializeEx to create an IRP queue with extended capabilities. For more information, see Cancel-Safe IRP Queues.
Note that IoCsq*Xxx* routines use the DriverContext[3] member of the IRP to hold IRP context information. Drivers that use these routines to queue IRPs must leave that member unused.