260 if( TagContext ==
NULL ) {
406 for( nextEntry =
m_Queue.
Flink; nextEntry != &this->m_Queue; nextEntry = nextEntry->
Flink) {
469 if( (TagContext !=
NULL) && !FoundTag ) {
590 if( pRequestCount !=
NULL ) {
659 "Irp 0x%p (Context 0x%p) not on IRP queue 0x%p\n",
698 if (!cancelRoutine) {
756 nextEntry = listHead->
Flink;
761 while(nextEntry != listHead) {
780 nextEntry = nextEntry->
Flink;
814 if (!cancelRoutine) {
876 p->LockFromCancel(&
irql);
879 p->RemoveIrpFromListEntry(&
irp);
904 if(
p->m_CancelCallback !=
NULL ) {
905 p->m_CancelCallback(
p,
Irp, irpContext,
irql);
909 p->UnlockFromCancel(
irql);
918 "Irp 0x%p on Queue 0x%p Cancelled\n",
Irp,
p);
948 while( nextEntry != &
m_Queue ) {
958 nextEntry = nextEntry->
Flink;
MdIrp RemoveRequest(__in PMdIoCsqIrpContext Context)
VOID RemoveIrpFromListEntry(__inout FxIrp *Irp)
_Must_inspect_result_ NTSTATUS InsertHeadRequest(__inout MdIrp Irp, __in_opt PMdIoCsqIrpContext CsqContext, __out_opt ULONG *pRequestCount)
_Must_inspect_result_ NTSTATUS PeekRequest(__in_opt PMdIoCsqIrpContext TagContext, __in_opt MdFileObject FileObject, __out FxRequest **ppOutRequest)
_Must_inspect_result_ NTSTATUS InsertTailRequest(__inout MdIrp Irp, __in_opt PMdIoCsqIrpContext CsqContext, __out_opt ULONG *pRequestCount)
MdIrp RemoveIrpFromQueueByContext(__in PMdIoCsqIrpContext Context)
FxNonPagedObject * m_LockObject
MdIrp RemoveNextIrpFromQueue(__in_opt PVOID PeekContext, __out_opt PMdIoCsqIrpContext *pCsqContext)
_Must_inspect_result_ NTSTATUS InsertIrpInQueue(__inout MdIrp Irp, __in_opt PMdIoCsqIrpContext Context, __in BOOLEAN InsertInHead, __out_opt ULONG *pRequestCount)
MdIrp PeekNextIrpFromQueue(__in_opt MdIrp Irp, __in_opt PVOID PeekContext)
static MdCancelRoutineType _WdmCancelRoutineInternal
BOOLEAN IsIrpInQueue(__in PMdIoCsqIrpContext Context)
VOID Initialize(__in FxNonPagedObject *LockObject, __in PFN_IRP_QUEUE_CANCEL Callback)
MdIrp GetNextRequest(__out PMdIoCsqIrpContext *pCsqContext)
PFN_IRP_QUEUE_CANCEL m_CancelCallback
VOID CompleteRequest(__in_opt CCHAR PriorityBoost=IO_NO_INCREMENT)
MdCancelRoutine SetCancelRoutine(__in_opt MdCancelRoutine CancelRoutine)
MdFileObject GetFileObject(VOID)
VOID SetStatus(__in NTSTATUS Status)
PVOID GetContext(__in ULONG Index)
static MdIrp GetIrpFromListEntry(__in PLIST_ENTRY Ple)
VOID SetInformation(__in ULONG_PTR Information)
VOID SetContext(__in ULONG Index, __in PVOID Value)
__inline PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
static __inline FxRequest * RetrieveFromCsqContext(__in PMdIoCsqIrpContext pCsqContext)
_In_opt_ PIRP _In_opt_ PVOID PeekContext
#define __drv_useCancelIRQL
#define InsertTailList(ListHead, Entry)
#define InsertHeadList(ListHead, Entry)
#define IsListEmpty(ListHead)
#define InitializeListHead(ListHead)
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
FxVerifierDbgBreakPoint(pFxDriverGlobals)
VOID __in PMdIoCsqIrpContext Context
__in MdIrp __in PMdIoCsqIrpContext pCsqContext
EVT_IRP_QUEUE_CANCEL * PFN_IRP_QUEUE_CANCEL
#define FX_IRP_QUEUE_ENTRY_IDENTIFIER
#define FX_IRP_QUEUE_CSQ_CONTEXT_ENTRY
#define FX_VF_METHOD(classname, fnName)
IO_CSQ_IRP_CONTEXT * PMdIoCsqIrpContext
#define FxVerifierBugCheck(FxDriverGlobals, Error,...)
#define _Must_inspect_result_
PFILE_OBJECT MdFileObject
WUDF_DRIVER_CANCEL * MdCancelRoutine
#define UNREFERENCED_PARAMETER(P)
#define STATUS_NO_MORE_ENTRIES
#define TRACE_LEVEL_ERROR
struct _LIST_ENTRY * Flink
#define LockObject(Object)
@ WDF_REQUEST_FATAL_ERROR
@ WDF_REQUEST_FATAL_ERROR_REQUEST_NOT_IN_QUEUE
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
#define PAGED_CODE_LOCKED()