2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS NDIS library
4 * FILE: ndis/miniport.h
5 * PURPOSE: Definitions for Ethernet filter
11 #define DECLARE_UNKNOWN_STRUCT(BaseName) \
12 typedef struct _##BaseName BaseName, *P##BaseName;
14 #define DECLARE_UNKNOWN_PROTOTYPE(Name) \
15 typedef VOID (*(Name))(VOID);
17 #define ETH_LENGTH_OF_ADDRESS 6
19 DECLARE_UNKNOWN_STRUCT(ETH_BINDING_INFO
)
21 DECLARE_UNKNOWN_PROTOTYPE(ETH_ADDRESS_CHANGE
)
22 DECLARE_UNKNOWN_PROTOTYPE(ETH_FILTER_CHANGE
)
23 DECLARE_UNKNOWN_PROTOTYPE(ETH_DEFERRED_CLOSE
)
25 typedef struct ETHI_FILTER
{
27 CHAR (*MCastAddressBuf
)[ETH_LENGTH_OF_ADDRESS
];
28 struct _NDIS_MINIPORT_BLOCK
*Miniport
;
29 UINT CombinedPacketFilter
;
30 PETH_BINDING_INFO OpenList
;
31 ETH_ADDRESS_CHANGE AddressChangeAction
;
32 ETH_FILTER_CHANGE FilterChangeAction
;
33 ETH_DEFERRED_CLOSE CloseAction
;
34 UINT MaxMulticastAddresses
;
36 UCHAR AdapterAddress
[ETH_LENGTH_OF_ADDRESS
];
37 UINT OldCombinedPacketFilter
;
38 CHAR (*OldMCastAddressBuf
)[ETH_LENGTH_OF_ADDRESS
];
40 PETH_BINDING_INFO DirectedList
;
41 PETH_BINDING_INFO BMList
;
42 PETH_BINDING_INFO MCastSet
;
43 #if defined(NDIS_WRAPPER)
47 } ETHI_FILTER
, *PETHI_FILTER
;
53 IN UINT MaximumMulticastAddresses
,
54 IN PUCHAR AdapterAddress
,
55 OUT PETH_FILTER
* Filter
);
59 EthFilterDprIndicateReceive(
60 IN PETH_FILTER Filter
,
61 IN NDIS_HANDLE MacReceiveContext
,
63 IN PVOID HeaderBuffer
,
64 IN UINT HeaderBufferSize
,
65 IN PVOID LookaheadBuffer
,
66 IN UINT LookaheadBufferSize
,
71 EthFilterDprIndicateReceiveComplete(
72 IN PETH_FILTER Filter
);
74 #endif /* __EFILTER_H */