67#ifndef IO_TYPE_CSQ_IRP_CONTEXT
78#define IO_TYPE_CSQ_IRP_CONTEXT 1
114(
NTAPI IO_CSQ_INSERT_IRP)(
132(
NTAPI IO_CSQ_REMOVE_IRP)(
157(
NTAPI IO_CSQ_PEEK_NEXT_IRP)(
177(
NTAPI IO_CSQ_ACQUIRE_LOCK)(
193(
NTAPI IO_CSQ_RELEASE_LOCK)(
214(
NTAPI IO_CSQ_COMPLETE_CANCELED_IRP)(
235#ifndef IO_TYPE_CSQ_EX
238#define IO_TYPE_CSQ_EX 3
255(
NTAPI IO_CSQ_INSERT_IRP_EX)(
struct _IO_CSQ_IRP_CONTEXT * PIO_CSQ_IRP_CONTEXT
IO_CSQ_ACQUIRE_LOCK * PIO_CSQ_ACQUIRE_LOCK
IO_CSQ_RELEASE_LOCK * PIO_CSQ_RELEASE_LOCK
IO_CSQ_INSERT_IRP * PIO_CSQ_INSERT_IRP
_In_ PIRP _In_ PVOID InsertContext
IO_CSQ_PEEK_NEXT_IRP * PIO_CSQ_PEEK_NEXT_IRP
NTKERNELAPI NTSTATUS NTAPI 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)
Set up a CSQ struct to initialize the queue.
_In_opt_ PIRP _In_opt_ PVOID PeekContext
IO_CSQ_COMPLETE_CANCELED_IRP * PIO_CSQ_COMPLETE_CANCELED_IRP
NTKERNELAPI NTSTATUS NTAPI IoCsqInitializeEx(_Out_ PIO_CSQ Csq, _In_ PIO_CSQ_INSERT_IRP_EX CsqInsertIrpEx, _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)
Set up a CSQ struct to initialize the queue (extended version)
struct _IO_CSQ_IRP_CONTEXT IO_CSQ_IRP_CONTEXT
NTKERNELAPI NTSTATUS NTAPI IoCsqInsertIrpEx(_Inout_ PIO_CSQ Csq, _Inout_ PIRP Irp, _Out_opt_ PIO_CSQ_IRP_CONTEXT Context, _In_opt_ PVOID InsertContext)
Insert an IRP into the CSQ, with additional tracking context.
IO_CSQ_INSERT_IRP_EX * PIO_CSQ_INSERT_IRP_EX
NTKERNELAPI VOID NTAPI IoCsqInsertIrp(_Inout_ PIO_CSQ Csq, _Inout_ PIRP Irp, _Out_opt_ PIO_CSQ_IRP_CONTEXT Context)
Insert an IRP into the CSQ.
NTKERNELAPI PIRP NTAPI IoCsqRemoveNextIrp(_Inout_ PIO_CSQ Csq, _In_opt_ PVOID PeekContext)
IoCsqRemoveNextIrp - Removes the next IRP from the queue.
NTKERNELAPI PIRP NTAPI IoCsqRemoveIrp(_Inout_ PIO_CSQ Csq, _Inout_ PIO_CSQ_IRP_CONTEXT Context)
Remove anb IRP from the queue.
IO_CSQ_REMOVE_IRP * PIO_CSQ_REMOVE_IRP
NTSTATUS NTAPI CsqInsertIrpEx(PIO_CSQ Csq, PIRP Irp, PVOID InsertContext)
PIO_CSQ_RELEASE_LOCK CsqReleaseLock
PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock
PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp
PIO_CSQ_REMOVE_IRP CsqRemoveIrp
PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp
PIO_CSQ_INSERT_IRP CsqInsertIrp
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP _In_ PIO_CSQ_PEEK_NEXT_IRP _In_ PIO_CSQ_ACQUIRE_LOCK _In_ PIO_CSQ_RELEASE_LOCK _In_ PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp
_In_ PIO_CSQ_INSERT_IRP CsqInsertIrp
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP _In_ PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP _In_ PIO_CSQ_PEEK_NEXT_IRP _In_ PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP CsqRemoveIrp
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP _In_ PIO_CSQ_PEEK_NEXT_IRP _In_ PIO_CSQ_ACQUIRE_LOCK _In_ PIO_CSQ_RELEASE_LOCK CsqReleaseLock
IO_CSQ_ACQUIRE_LOCK * PIO_CSQ_ACQUIRE_LOCK
IO_CSQ_RELEASE_LOCK * PIO_CSQ_RELEASE_LOCK
IO_CSQ_INSERT_IRP * PIO_CSQ_INSERT_IRP
IO_CSQ_PEEK_NEXT_IRP * PIO_CSQ_PEEK_NEXT_IRP
IO_CSQ_COMPLETE_CANCELED_IRP * PIO_CSQ_COMPLETE_CANCELED_IRP
IO_CSQ_REMOVE_IRP * PIO_CSQ_REMOVE_IRP