Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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 |