ReactOS  0.4.15-dev-3453-gff89651
CIPV6Filter Class Reference
Inheritance diagram for CIPV6Filter:
Collaboration diagram for CIPV6Filter:

Public Member Functions

STDMETHODIMP QueryInterface (REFIID InterfaceId, PVOID *Interface)
 
 STDMETHODIMP_ (ULONG) AddRef()
 
 STDMETHODIMP_ (ULONG) Release()
 
HRESULT STDMETHODCALLTYPE GetMulticastListSize (ULONG *pulcbAddresses)
 
HRESULT STDMETHODCALLTYPE PutMulticastList (ULONG ulcbAddresses, BYTE *pAddressList)
 
HRESULT STDMETHODCALLTYPE GetMulticastList (ULONG *pulcbAddresses, BYTE *pAddressList)
 
HRESULT STDMETHODCALLTYPE PutMulticastMode (ULONG ulModeMask)
 
HRESULT STDMETHODCALLTYPE GetMulticastMode (ULONG *pulModeMask)
 
 CIPV6Filter (IBDA_NetworkProvider *pNetworkProvider)
 
virtual ~CIPV6Filter ()
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 

Protected Attributes

IBDA_NetworkProviderm_pNetworkProvider
 
ULONG m_ulcbAddresses
 
BYTEm_pAddressList
 
ULONG m_ulModeMask
 

Additional Inherited Members

- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 

Detailed Description

Definition at line 11 of file ipv6.cpp.

Constructor & Destructor Documentation

◆ CIPV6Filter()

CIPV6Filter::CIPV6Filter ( IBDA_NetworkProvider pNetworkProvider)

Definition at line 35 of file ipv6.cpp.

36  : m_pNetworkProvider(pNetworkProvider),
37  m_ulcbAddresses(0),
38  m_pAddressList(0),
39  m_ulModeMask(0)
40 {
41 }
ULONG m_ulcbAddresses
Definition: ipv6.cpp:30
IBDA_NetworkProvider * m_pNetworkProvider
Definition: ipv6.cpp:29
BYTE * m_pAddressList
Definition: ipv6.cpp:31
ULONG m_ulModeMask
Definition: ipv6.cpp:32

◆ ~CIPV6Filter()

CIPV6Filter::~CIPV6Filter ( )
virtual

Definition at line 43 of file ipv6.cpp.

44 {
45  if (m_pAddressList)
47 }
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:442
BYTE * m_pAddressList
Definition: ipv6.cpp:31

Member Function Documentation

◆ GetMulticastList()

HRESULT STDMETHODCALLTYPE CIPV6Filter::GetMulticastList ( ULONG pulcbAddresses,
BYTE pAddressList 
)

Implements IBDA_IPV6Filter.

Definition at line 93 of file ipv6.cpp.

96 {
97  if (!pulcbAddresses || !pAddressList)
98  return E_POINTER;
99 
100  if (*pulcbAddresses < m_ulcbAddresses)
101  return E_OUTOFMEMORY;
102 
103  CopyMemory(pAddressList, m_pAddressList, m_ulcbAddresses);
104  *pulcbAddresses = m_ulcbAddresses;
105  return NOERROR;
106 }
#define NOERROR
Definition: winerror.h:2354
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
ULONG m_ulcbAddresses
Definition: ipv6.cpp:30
#define CopyMemory
Definition: winbase.h:1662
BYTE * m_pAddressList
Definition: ipv6.cpp:31
#define E_POINTER
Definition: winerror.h:2365

◆ GetMulticastListSize()

HRESULT STDMETHODCALLTYPE CIPV6Filter::GetMulticastListSize ( ULONG pulcbAddresses)

Implements IBDA_IPV6Filter.

Definition at line 81 of file ipv6.cpp.

83 {
84  if (!pulcbAddresses)
85  return E_POINTER;
86 
87  *pulcbAddresses = 0;
88  return NOERROR;
89 }
#define NOERROR
Definition: winerror.h:2354
#define E_POINTER
Definition: winerror.h:2365

◆ GetMulticastMode()

HRESULT STDMETHODCALLTYPE CIPV6Filter::GetMulticastMode ( ULONG pulModeMask)

Implements IBDA_IPV6Filter.

Definition at line 140 of file ipv6.cpp.

142 {
143  *pulModeMask = m_ulModeMask;
144  return NOERROR;
145 }
#define NOERROR
Definition: winerror.h:2354
ULONG m_ulModeMask
Definition: ipv6.cpp:32

◆ PutMulticastList()

HRESULT STDMETHODCALLTYPE CIPV6Filter::PutMulticastList ( ULONG  ulcbAddresses,
BYTE pAddressList 
)

Implements IBDA_IPV6Filter.

Definition at line 110 of file ipv6.cpp.

113 {
114  if (!ulcbAddresses || !pAddressList)
115  return E_POINTER;
116 
117  if (m_pAddressList)
119 
120  m_pAddressList = (BYTE*)CoTaskMemAlloc(ulcbAddresses);
121  if (!m_pAddressList)
122  return E_OUTOFMEMORY;
123 
124  CopyMemory(m_pAddressList, pAddressList, ulcbAddresses);
125  m_ulcbAddresses = ulcbAddresses;
126  return NOERROR;
127 }
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:442
#define NOERROR
Definition: winerror.h:2354
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
ULONG m_ulcbAddresses
Definition: ipv6.cpp:30
#define CopyMemory
Definition: winbase.h:1662
BYTE * m_pAddressList
Definition: ipv6.cpp:31
unsigned char BYTE
Definition: xxhash.c:193
#define E_POINTER
Definition: winerror.h:2365
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:426

◆ PutMulticastMode()

HRESULT STDMETHODCALLTYPE CIPV6Filter::PutMulticastMode ( ULONG  ulModeMask)

Implements IBDA_IPV6Filter.

Definition at line 131 of file ipv6.cpp.

133 {
134  m_ulModeMask = ulModeMask;
135  return NOERROR;
136 }
#define NOERROR
Definition: winerror.h:2354
ULONG m_ulModeMask
Definition: ipv6.cpp:32

◆ QueryInterface()

HRESULT STDMETHODCALLTYPE CIPV6Filter::QueryInterface ( REFIID  InterfaceId,
PVOID Interface 
)

Definition at line 51 of file ipv6.cpp.

54 {
56  return m_pNetworkProvider->QueryInterface(InterfaceId, Interface);
57 }
#define assert(x)
Definition: debug.h:53
IBDA_NetworkProvider * m_pNetworkProvider
Definition: ipv6.cpp:29
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
Definition: pci.h:361
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)

◆ STDMETHODIMP_() [1/2]

CIPV6Filter::STDMETHODIMP_ ( ULONG  )

◆ STDMETHODIMP_() [2/2]

CIPV6Filter::STDMETHODIMP_ ( ULONG  )

Member Data Documentation

◆ m_pAddressList

BYTE* CIPV6Filter::m_pAddressList
protected

Definition at line 31 of file ipv6.cpp.

Referenced by GetMulticastList(), PutMulticastList(), and ~CIPV6Filter().

◆ m_pNetworkProvider

IBDA_NetworkProvider* CIPV6Filter::m_pNetworkProvider
protected

Definition at line 29 of file ipv6.cpp.

Referenced by QueryInterface().

◆ m_ulcbAddresses

ULONG CIPV6Filter::m_ulcbAddresses
protected

Definition at line 30 of file ipv6.cpp.

Referenced by GetMulticastList(), and PutMulticastList().

◆ m_ulModeMask

ULONG CIPV6Filter::m_ulModeMask
protected

Definition at line 32 of file ipv6.cpp.

Referenced by GetMulticastMode(), and PutMulticastMode().


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