IoCsqInitialize function (wdm.h)
The IoCsqInitialize routine initializes the driver's cancel-safe IRP queue dispatch table.
Syntax
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
);
Parameters
[out] Csq
Pointer to the IO_CSQ structure to be initialized by IoCsqInitialize.
[in] CsqInsertIrp
Pointer to the driver-defined CsqInsertIrp function for the driver's cancel-safe IRP queue.
[in] CsqRemoveIrp
Pointer to the driver-defined CsqRemoveIrp function for the driver's cancel-safe IRP queue.
[in] CsqPeekNextIrp
Pointer to the driver-defined CsqPeekNextIrp function for the driver's cancel-safe IRP queue.
[in] CsqAcquireLock
Pointer to the driver-defined CsqAcquireLock function for the driver's cancel-safe IRP queue.
[in] CsqReleaseLock
Pointer to the driver-defined CsqReleaseLock function for the driver's cancel-safe IRP queue.
[in] CsqCompleteCanceledIrp
Pointer to the driver-defined CsqCompleteCanceledIrp function for the driver's cancel-safe IRP queue.
Return value
This routine returns STATUS_SUCCESS on success, or the appropriate NTSTATUS error code on failure.
Remarks
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 IoCsqXxx 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.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Available in Windows XP and later versions of the Windows operating system. Drivers that must also work for Windows 2000 and Windows 98/Me can instead link to Csq.lib to use the routine. |
Target Platform | Universal |
Header | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Any level |