ReactOS  0.4.14-dev-49-gfb4591c
CIrpQueue Class Reference
Inheritance diagram for CIrpQueue:
Collaboration diagram for CIrpQueue:

Public Member Functions

STDMETHODIMP QueryInterface (REFIID InterfaceId, PVOID *Interface)
 
 STDMETHODIMP_ (ULONG) AddRef()
 
 STDMETHODIMP_ (ULONG) Release()
 
 CIrpQueue (IUnknown *OuterUnknown)
 
virtual ~CIrpQueue ()
 

Public Attributes

 IMP_IIrpQueue
 

Protected Attributes

PKSPIN_CONNECT m_ConnectDetails
 
PKSPIN_DESCRIPTOR m_Descriptor
 
KSPIN_LOCK m_IrpListLock
 
LIST_ENTRY m_IrpList
 
LIST_ENTRY m_FreeIrpList
 
BOOLEAN m_OutOfMapping
 
ULONG m_MaxFrameSize
 
ULONG m_Alignment
 
ULONG m_TagSupportEnabled
 
volatile ULONG m_NumDataAvailable
 
volatile ULONG m_CurrentOffset
 
volatile PIRP m_Irp
 
volatile LONG m_Ref
 

Detailed Description

Definition at line 17 of file irpstream.cpp.

Constructor & Destructor Documentation

◆ CIrpQueue()

CIrpQueue::CIrpQueue ( IUnknown OuterUnknown)
inline

Definition at line 39 of file irpstream.cpp.

39 {}

◆ ~CIrpQueue()

virtual CIrpQueue::~CIrpQueue ( )
inlinevirtual

Definition at line 40 of file irpstream.cpp.

40 {}

Member Function Documentation

◆ QueryInterface()

NTSTATUS NTAPI CIrpQueue::QueryInterface ( REFIID  InterfaceId,
PVOID Interface 
)

Definition at line 83 of file irpstream.cpp.

86 {
87  if (IsEqualGUIDAligned(refiid, IID_IUnknown))
88  {
89  *Output = PVOID(PUNKNOWN(this));
90  PUNKNOWN(*Output)->AddRef();
91  return STATUS_SUCCESS;
92  }
93 
94  return STATUS_UNSUCCESSFUL;
95 }
IUnknown * PUNKNOWN
Definition: com_apitest.h:45
#define IsEqualGUIDAligned(guid1, guid2)
Definition: wdm.template.h:233
void * PVOID
Definition: retypes.h:9
const GUID IID_IUnknown
ULONG AddRef()
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132
Definition: arc.h:85
return STATUS_SUCCESS
Definition: btrfs.c:2966

◆ STDMETHODIMP_() [1/2]

CIrpQueue::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 22 of file irpstream.cpp.

23  {
25  return m_Ref;
26  }
volatile LONG m_Ref
Definition: irpstream.cpp:58
#define InterlockedIncrement
Definition: armddk.h:53

◆ STDMETHODIMP_() [2/2]

CIrpQueue::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 27 of file irpstream.cpp.

28  {
30 
31  if (!m_Ref)
32  {
33  delete this;
34  return 0;
35  }
36  return m_Ref;
37  }
volatile LONG m_Ref
Definition: irpstream.cpp:58
#define InterlockedDecrement
Definition: armddk.h:52

Member Data Documentation

◆ IMP_IIrpQueue

CIrpQueue::IMP_IIrpQueue

Definition at line 38 of file irpstream.cpp.

◆ m_Alignment

ULONG CIrpQueue::m_Alignment
protected

Definition at line 53 of file irpstream.cpp.

◆ m_ConnectDetails

PKSPIN_CONNECT CIrpQueue::m_ConnectDetails
protected

Definition at line 44 of file irpstream.cpp.

◆ m_CurrentOffset

volatile ULONG CIrpQueue::m_CurrentOffset
protected

Definition at line 56 of file irpstream.cpp.

◆ m_Descriptor

PKSPIN_DESCRIPTOR CIrpQueue::m_Descriptor
protected

Definition at line 45 of file irpstream.cpp.

◆ m_FreeIrpList

LIST_ENTRY CIrpQueue::m_FreeIrpList
protected

Definition at line 49 of file irpstream.cpp.

◆ m_Irp

volatile PIRP CIrpQueue::m_Irp
protected

Definition at line 57 of file irpstream.cpp.

◆ m_IrpList

LIST_ENTRY CIrpQueue::m_IrpList
protected

Definition at line 48 of file irpstream.cpp.

◆ m_IrpListLock

KSPIN_LOCK CIrpQueue::m_IrpListLock
protected

Definition at line 47 of file irpstream.cpp.

◆ m_MaxFrameSize

ULONG CIrpQueue::m_MaxFrameSize
protected

Definition at line 52 of file irpstream.cpp.

◆ m_NumDataAvailable

volatile ULONG CIrpQueue::m_NumDataAvailable
protected

Definition at line 55 of file irpstream.cpp.

◆ m_OutOfMapping

BOOLEAN CIrpQueue::m_OutOfMapping
protected

Definition at line 51 of file irpstream.cpp.

◆ m_Ref

volatile LONG CIrpQueue::m_Ref
protected

Definition at line 58 of file irpstream.cpp.

Referenced by STDMETHODIMP_().

◆ m_TagSupportEnabled

ULONG CIrpQueue::m_TagSupportEnabled
protected

Definition at line 54 of file irpstream.cpp.


The documentation for this class was generated from the following file: