ReactOS 0.4.16-dev-311-g9382aa2
|
#include <fxirpqueue.hpp>
Public Member Functions | |
FxIrpQueue (VOID) | |
~FxIrpQueue (VOID) | |
VOID | Initialize (__in FxNonPagedObject *LockObject, __in PFN_IRP_QUEUE_CANCEL Callback) |
_Must_inspect_result_ NTSTATUS | InsertTailRequest (__inout MdIrp Irp, __in_opt PMdIoCsqIrpContext CsqContext, __out_opt ULONG *pRequestCount) |
_Must_inspect_result_ NTSTATUS | InsertHeadRequest (__inout MdIrp Irp, __in_opt PMdIoCsqIrpContext CsqContext, __out_opt ULONG *pRequestCount) |
MdIrp | GetNextRequest (__out PMdIoCsqIrpContext *pCsqContext) |
_Must_inspect_result_ NTSTATUS | GetNextRequest (__in_opt PMdIoCsqIrpContext TagContext, __in_opt MdFileObject FileObject, __out FxRequest **ppOutRequest) |
_Must_inspect_result_ NTSTATUS | PeekRequest (__in_opt PMdIoCsqIrpContext TagContext, __in_opt MdFileObject FileObject, __out FxRequest **ppOutRequest) |
MdIrp | RemoveRequest (__in PMdIoCsqIrpContext Context) |
BOOLEAN | IsQueueEmpty () |
LONG | GetRequestCount () |
BOOLEAN | IsIrpInQueue (__in PMdIoCsqIrpContext Context) |
Private Member Functions | |
_Must_inspect_result_ NTSTATUS | InsertIrpInQueue (__inout MdIrp Irp, __in_opt PMdIoCsqIrpContext Context, __in BOOLEAN InsertInHead, __out_opt ULONG *pRequestCount) |
FX_DECLARE_VF_FUNCTION_P1 (VOID, VerifyRemoveIrpFromQueueByContext, __in PMdIoCsqIrpContext) | |
MdIrp | RemoveIrpFromQueueByContext (__in PMdIoCsqIrpContext Context) |
MdIrp | RemoveNextIrpFromQueue (__in_opt PVOID PeekContext, __out_opt PMdIoCsqIrpContext *pCsqContext) |
MdIrp | PeekNextIrpFromQueue (__in_opt MdIrp Irp, __in_opt PVOID PeekContext) |
VOID | RemoveIrpFromListEntry (__inout FxIrp *Irp) |
__inline void | LockFromCancel (__out PKIRQL PreviousIrql) |
__inline void | UnlockFromCancel (__in KIRQL PreviousIrql) |
Private Attributes | |
LIST_ENTRY | m_Queue |
FxNonPagedObject * | m_LockObject |
PFN_IRP_QUEUE_CANCEL | m_CancelCallback |
LONG | m_RequestCount |
Static Private Attributes | |
static MdCancelRoutineType | _WdmCancelRoutineInternal |
Friends | |
VOID | GetTriageInfo (VOID) |
Definition at line 82 of file fxirpqueue.hpp.
FxIrpQueue::FxIrpQueue | ( | VOID | ) |
Definition at line 42 of file fxirpqueue.cpp.
FxIrpQueue::~FxIrpQueue | ( | VOID | ) |
Definition at line 55 of file fxirpqueue.cpp.
|
private |
_Must_inspect_result_ NTSTATUS FxIrpQueue::GetNextRequest | ( | __in_opt PMdIoCsqIrpContext | TagContext, |
__in_opt MdFileObject | FileObject, | ||
__out FxRequest ** | ppOutRequest | ||
) |
Definition at line 240 of file fxirpqueue.cpp.
MdIrp FxIrpQueue::GetNextRequest | ( | __out PMdIoCsqIrpContext * | pCsqContext | ) |
Definition at line 219 of file fxirpqueue.cpp.
Referenced by FxIoTarget::DrainPendedRequestsLocked().
|
inline |
Definition at line 193 of file fxirpqueue.hpp.
Referenced by FxIoQueue::CheckTransitionFromEmpty(), FxIoQueue::Dispose(), FxIoQueue::GetRequest(), FxIoQueue::GetRequestCount(), FxIoQueue::PeekRequest(), FxIoQueue::QueueDrainSynchronously(), FxIoQueue::QueuePurgeSynchronously(), FxIoQueue::QueueStart(), and FxIoQueue::StartPowerTransitionOn().
VOID FxIrpQueue::Initialize | ( | __in FxNonPagedObject * | LockObject, |
__in PFN_IRP_QUEUE_CANCEL | Callback | ||
) |
Definition at line 61 of file fxirpqueue.cpp.
Referenced by FxIoTarget::Construct(), and FxIoQueue::FxIoQueue().
_Must_inspect_result_ NTSTATUS FxIrpQueue::InsertHeadRequest | ( | __inout MdIrp | Irp, |
__in_opt PMdIoCsqIrpContext | CsqContext, | ||
__out_opt ULONG * | pRequestCount | ||
) |
Definition at line 168 of file fxirpqueue.cpp.
|
private |
Definition at line 505 of file fxirpqueue.cpp.
Referenced by InsertHeadRequest(), and InsertTailRequest().
_Must_inspect_result_ NTSTATUS FxIrpQueue::InsertTailRequest | ( | __inout MdIrp | Irp, |
__in_opt PMdIoCsqIrpContext | CsqContext, | ||
__out_opt ULONG * | pRequestCount | ||
) |
Definition at line 115 of file fxirpqueue.cpp.
Referenced by FxIoTarget::PendRequestLocked().
BOOLEAN FxIrpQueue::IsIrpInQueue | ( | __in PMdIoCsqIrpContext | Context | ) |
Definition at line 931 of file fxirpqueue.cpp.
|
inline |
Definition at line 173 of file fxirpqueue.hpp.
Definition at line 280 of file fxirpqueue.hpp.
Definition at line 724 of file fxirpqueue.cpp.
Referenced by RemoveNextIrpFromQueue().
_Must_inspect_result_ NTSTATUS FxIrpQueue::PeekRequest | ( | __in_opt PMdIoCsqIrpContext | TagContext, |
__in_opt MdFileObject | FileObject, | ||
__out FxRequest ** | ppOutRequest | ||
) |
Definition at line 306 of file fxirpqueue.cpp.
Definition at line 257 of file fxirpqueue.hpp.
Referenced by InsertIrpInQueue(), RemoveIrpFromQueueByContext(), and RemoveNextIrpFromQueue().
|
private |
Definition at line 671 of file fxirpqueue.cpp.
Referenced by GetNextRequest(), and RemoveRequest().
|
private |
Definition at line 787 of file fxirpqueue.cpp.
Referenced by GetNextRequest().
MdIrp FxIrpQueue::RemoveRequest | ( | __in PMdIoCsqIrpContext | Context | ) |
Definition at line 478 of file fxirpqueue.cpp.
Definition at line 289 of file fxirpqueue.hpp.
Definition at line 75 of file fxlibrarycommon.cpp.
|
staticprivate |
Definition at line 273 of file fxirpqueue.hpp.
Referenced by InsertIrpInQueue().
|
private |
Definition at line 102 of file fxirpqueue.hpp.
Referenced by FxIrpQueue(), and Initialize().
|
private |
Definition at line 97 of file fxirpqueue.hpp.
Referenced by FxIrpQueue(), Initialize(), LockFromCancel(), RemoveIrpFromQueueByContext(), and UnlockFromCancel().
|
private |
Definition at line 91 of file fxirpqueue.hpp.
Referenced by FxIrpQueue(), InsertIrpInQueue(), IsIrpInQueue(), IsQueueEmpty(), PeekNextIrpFromQueue(), PeekRequest(), and ~FxIrpQueue().
|
private |
Definition at line 107 of file fxirpqueue.hpp.
Referenced by FxIrpQueue(), GetRequestCount(), InsertIrpInQueue(), IsQueueEmpty(), and RemoveIrpFromListEntry().