IoCsqInitializeEx - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// 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 reference

NtDoc

No description available.

Windows Driver Kit DDI reference (nf-wdm-iocsqinitializeex)

IoCsqInitializeEx function

Description

The IoCsqInitializeEx routine initializes the dispatch table for a cancel-safe IRP queue.

Parameters

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.

Return value

IoCsqInitializeEx returns STATUS_SUCCESS on success, or the appropriate error code on failure.

Remarks

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.

See also

CsqAcquireLock

CsqCompleteCanceledIrp

CsqInsertIrp

CsqInsertIrpEx

CsqPeekNextIrp

CsqReleaseLock

CsqRemoveIrp

IO_CSQ

IO_CSQ_IRP_CONTEXT

IoCsqInitializeEx

IoCsqInsertIrp

IoCsqInsertIrpEx

IoCsqRemoveIrp

IoCsqRemoveNextIrp