IoCsqInitialize routine
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
- 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.
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
|
Version | 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. |
|---|---|
|
Header |
|
|
Library |
|
|
IRQL | Any level |
See also
- IO_CSQ
- IoCsqInitializeEx
- IoCsqInsertIrp
- IoCsqInsertIrpEx
- IoCsqRemoveIrp
- IoCsqRemoveNextIrp
- CsqAcquireLock
- CsqCompleteCanceledIrp
- CsqInsertIrp
- CsqInsertIrpEx
- CsqPeekNextIrp
- CsqReleaseLock
- CsqRemoveIrp
Send comments about this topic to Microsoft
Build date: 4/2/2012