29#define DECLSPEC_IMPORT
230 Irp->Tail.Overlay.DriverContext[3] =
Csq;
294 Irp->Tail.Overlay.DriverContext[3] = 0;
370 Irp->Tail.Overlay.DriverContext[3] = 0;
431 Irp->Tail.Overlay.DriverContext[3] = 0;
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.
PIRP NTAPI IoCsqRemoveIrp(_Inout_ PIO_CSQ Csq, _Inout_ PIO_CSQ_IRP_CONTEXT Context)
Remove anb IRP from the queue.
PIRP NTAPI IoCsqRemoveNextIrp(_Inout_ PIO_CSQ Csq, _In_opt_ PVOID PeekContext)
IoCsqRemoveNextIrp - Removes the next IRP from the queue.
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)
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.
VOID NTAPI IoCsqInsertIrp(_Inout_ PIO_CSQ Csq, _Inout_ PIRP Irp, _Out_opt_ PIO_CSQ_IRP_CONTEXT Context)
Insert an IRP into the CSQ.
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
_In_opt_ PIRP _In_opt_ PVOID PeekContext
IO_CSQ_COMPLETE_CANCELED_IRP * PIO_CSQ_COMPLETE_CANCELED_IRP
IO_CSQ_INSERT_IRP_EX * PIO_CSQ_INSERT_IRP_EX
#define IO_TYPE_CSQ_IRP_CONTEXT
IO_CSQ_REMOVE_IRP * PIO_CSQ_REMOVE_IRP
NTSTATUS NTAPI CsqInsertIrpEx(PIO_CSQ Csq, PIRP Irp, PVOID InsertContext)
#define _IRQL_uses_cancel_
#define InterlockedExchangePointer(Target, Value)
IoSetCancelRoutine(Irp, CancelRoutine)
#define _Function_class_(n)
VOID NTAPI IoReleaseCancelSpinLock(IN KIRQL Irql)
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_ PDEVICE_OBJECT DeviceObject
_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