30 #ifndef _FXIRPQUEUE_H_ 31 #define _FXIRPQUEUE_H_ 33 #if (FX_CORE_MODE == FX_CORE_KERNEL_MODE) 47 #define FX_IRP_QUEUE_CSQ_CONTEXT_ENTRY 3 52 #define FX_IRP_QUEUE_ENTRY_IDENTIFIER 1 54 #if ((FX_CORE_MODE)==(FX_CORE_KERNEL_MODE)) 56 #elif ((FX_CORE_MODE)==(FX_CORE_USER_MODE)) 72 EVT_IRP_QUEUE_CANCEL (
220 VerifyRemoveIrpFromQueueByContext,
297 #endif // _FXIRPQUEUE_H __in MdIrp __in PMdIoCsqIrpContext __in KIRQL CallerIrql
FxNonPagedObject * m_LockObject
friend VOID GetTriageInfo(VOID)
__in MdIrp __in PMdIoCsqIrpContext pCsqContext
_Must_inspect_result_ NTSTATUS InsertHeadRequest(__inout MdIrp Irp, __in_opt PMdIoCsqIrpContext CsqContext, __out_opt ULONG *pRequestCount)
BOOLEAN IsIrpInQueue(__in PMdIoCsqIrpContext Context)
MdIrp GetNextRequest(__out PMdIoCsqIrpContext *pCsqContext)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
PFN_IRP_QUEUE_CANCEL m_CancelCallback
PFILE_OBJECT MdFileObject
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
EVT_IRP_QUEUE_CANCEL * PFN_IRP_QUEUE_CANCEL
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
VOID RemoveIrpFromListEntry(__inout FxIrp *Irp)
MdIrp RemoveNextIrpFromQueue(__in_opt PVOID PeekContext, __out_opt PMdIoCsqIrpContext *pCsqContext)
__drv_functionClass(EVT_IRP_QUEUE_CANCEL) __drv_requiresIRQL(DISPATCH_LEVEL) typedef VOID EVT_IRP_QUEUE_CANCEL(__in FxIrpQueue *Queue
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
MdIrp RemoveRequest(__in PMdIoCsqIrpContext Context)
__inline void LockFromCancel(__out PKIRQL PreviousIrql)
_Must_inspect_result_ NTSTATUS InsertTailRequest(__inout MdIrp Irp, __in_opt PMdIoCsqIrpContext CsqContext, __out_opt ULONG *pRequestCount)
#define __drv_requiresIRQL(irql)
#define _Must_inspect_result_
WUDF_DRIVER_CANCEL MdCancelRoutineType
static MdCancelRoutineType _WdmCancelRoutineInternal
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
MdIrp PeekNextIrpFromQueue(__in_opt MdIrp Irp, __in_opt PVOID PeekContext)
FX_DECLARE_VF_FUNCTION_P1(VOID, VerifyRemoveIrpFromQueueByContext, __in PMdIoCsqIrpContext)
#define InitializeListHead(ListHead)
MdIrp RemoveIrpFromQueueByContext(__in PMdIoCsqIrpContext Context)
__inline void UnlockFromCancel(__in KIRQL PreviousIrql)
_In_opt_ PIRP _In_opt_ PVOID PeekContext
VOID Initialize(__in FxNonPagedObject *LockObject, __in PFN_IRP_QUEUE_CANCEL Callback)
_Must_inspect_result_ NTSTATUS InsertIrpInQueue(__inout MdIrp Irp, __in_opt PMdIoCsqIrpContext Context, __in BOOLEAN InsertInHead, __out_opt ULONG *pRequestCount)
_Must_inspect_result_ NTSTATUS PeekRequest(__in_opt PMdIoCsqIrpContext TagContext, __in_opt MdFileObject FileObject, __out FxRequest **ppOutRequest)
#define LockObject(Object)