// wdm.h
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
);
View the official Windows Driver Kit DDI referenceNo description available.
The IoCsqInitializeEx routine initializes the dispatch table for a cancel-safe IRP queue.
Csq [out]Pointer to the IO_CSQ structure to be initialized by IoCsqInitializeEx.
CsqInsertIrp [in]Pointer to the driver-defined CsqInsertIrpEx 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.
IoCsqInitializeEx returns STATUS_SUCCESS on success, or the appropriate error code on failure.
The IoCsqInitialize and IoCsqInitializeEx routines initialize an IO_CSQ structure that describes a driver's cancel-safe IRP queue. You can use IoCsqInitializeEx to specify an IRP queue with extended capabilities instead of one specified by IoCsqInitialize:
Otherwise, the effect of IoCsqInitializeEx is identical to that of IoCsqInitialize. 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.
IoCsqInitializeEx