Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenafilter.h
Go to the documentation of this file.
00001 /* 00002 * afilter.h 00003 * 00004 * Address filtering for NDIS MACs 00005 * 00006 * This file is part of the w32api package. 00007 * 00008 * Contributors: 00009 * Created by Filip Navara <xnavara@volny.cz> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #ifndef _ARC_FILTER_DEFS_ 00024 #define _ARC_FILTER_DEFS_ 00025 00026 #ifdef __cplusplus 00027 extern "C" { 00028 #endif 00029 00030 #define ARC_RECEIVE_BUFFERS 64 00031 #define ARCNET_ADDRESS_LEN 1 00032 #define ARC_PROTOCOL_HEADER_SIZE (sizeof(ARC_PROTOCOL_HEADER)) 00033 #define ARC_MAX_FRAME_SIZE 504 00034 #define ARC_MAX_ADDRESS_IDS 256 00035 #define ARC_MAX_FRAME_HEADER_SIZE 6 00036 #define ARC_MAX_PACKET_SIZE 576 00037 #define ARC_FILTER_MAX_OPENS (sizeof(ULONG) * 8) 00038 00039 #define ARC_IS_BROADCAST(Address) (BOOLEAN)(!(Address)) 00040 00041 #define ARC_QUERY_FILTER_CLASSES(Filter) ((Filter)->CombinedPacketFilter) 00042 #define ARC_QUERY_PACKET_FILTER(Filter, NdisFilterHandle) \ 00043 (((PARC_BINDING_INFO)(NdisFilterHandle))->PacketFilters) 00044 00045 typedef ULONG MASK, *PMASK; 00046 00047 typedef struct _ARC_BUFFER_LIST 00048 { 00049 PVOID Buffer; 00050 UINT Size; 00051 UINT BytesLeft; 00052 struct _ARC_BUFFER_LIST *Next; 00053 } ARC_BUFFER_LIST, *PARC_BUFFER_LIST; 00054 00055 typedef struct _ARC_PROTOCOL_HEADER 00056 { 00057 UCHAR SourceId[ARCNET_ADDRESS_LEN]; 00058 UCHAR DestId[ARCNET_ADDRESS_LEN]; 00059 UCHAR ProtId; 00060 } ARC_PROTOCOL_HEADER, *PARC_PROTOCOL_HEADER; 00061 00062 typedef struct _ARC_PACKET_HEADER 00063 { 00064 ARC_PROTOCOL_HEADER ProtHeader; 00065 USHORT FrameSequence; 00066 UCHAR SplitFlag; 00067 UCHAR LastSplitFlag; 00068 UCHAR FramesReceived; 00069 } ARC_PACKET_HEADER, *PARC_PACKET_HEADER; 00070 00071 typedef struct _ARC_PACKET 00072 { 00073 ARC_PACKET_HEADER Header; 00074 struct _ARC_PACKET *Next; 00075 ULONG TotalLength; 00076 BOOLEAN LastFrame; 00077 PARC_BUFFER_LIST FirstBuffer; 00078 PARC_BUFFER_LIST LastBuffer; 00079 NDIS_PACKET TmpNdisPacket; 00080 } ARC_PACKET, *PARC_PACKET; 00081 00082 typedef struct _ARC_BINDING_INFO 00083 { 00084 PNDIS_OPEN_BLOCK NdisBindingHandle; 00085 PVOID Reserved; 00086 UINT PacketFilters; 00087 ULONG References; 00088 struct _ARC_BINDING_INFO *NextOpen; 00089 BOOLEAN ReceivedAPacket; 00090 UINT OldPacketFilters; 00091 } ARC_BINDING_INFO,*PARC_BINDING_INFO; 00092 00093 typedef struct _ARC_FILTER 00094 { 00095 struct _NDIS_MINIPORT_BLOCK *Miniport; 00096 UINT CombinedPacketFilter; 00097 PARC_BINDING_INFO OpenList; 00098 NDIS_HANDLE ReceiveBufferPool; 00099 PARC_BUFFER_LIST FreeBufferList; 00100 PARC_PACKET FreePackets; 00101 PARC_PACKET OutstandingPackets; 00102 UCHAR AdapterAddress; 00103 UINT OldCombinedPacketFilter; 00104 } ARC_FILTER,*PARC_FILTER; 00105 00106 BOOLEAN 00107 NTAPI 00108 ArcCreateFilter( 00109 IN struct _NDIS_MINIPORT_BLOCK *Miniport, 00110 IN UCHAR AdapterAddress, 00111 OUT PARC_FILTER *Filter); 00112 00113 VOID 00114 NTAPI 00115 ArcDeleteFilter( 00116 IN PARC_FILTER Filter); 00117 00118 BOOLEAN 00119 NTAPI 00120 ArcNoteFilterOpenAdapter( 00121 IN PARC_FILTER Filter, 00122 IN NDIS_HANDLE NdisBindingHandle, 00123 OUT PNDIS_HANDLE NdisFilterHandle); 00124 00125 NDIS_STATUS 00126 NTAPI 00127 ArcDeleteFilterOpenAdapter( 00128 IN PARC_FILTER Filter, 00129 IN NDIS_HANDLE NdisFilterHandle, 00130 IN PNDIS_REQUEST NdisRequest); 00131 00132 NDIS_STATUS 00133 NTAPI 00134 ArcFilterAdjust( 00135 IN PARC_FILTER Filter, 00136 IN NDIS_HANDLE NdisFilterHandle, 00137 IN PNDIS_REQUEST NdisRequest, 00138 IN UINT FilterClasses, 00139 IN BOOLEAN Set); 00140 00141 VOID 00142 NTAPI 00143 ArcFilterDprIndicateReceiveComplete( 00144 IN PARC_FILTER Filter); 00145 00146 VOID 00147 NTAPI 00148 ArcFilterDprIndicateReceive( 00149 IN PARC_FILTER Filter, 00150 IN PUCHAR pRawHeader, 00151 IN PUCHAR pData, 00152 IN UINT Length); 00153 00154 NDIS_STATUS 00155 NTAPI 00156 ArcFilterTransferData( 00157 IN PARC_FILTER Filter, 00158 IN NDIS_HANDLE MacReceiveContext, 00159 IN UINT ByteOffset, 00160 IN UINT BytesToTransfer, 00161 OUT PNDIS_PACKET Packet, 00162 OUT PUINT BytesTransfered); 00163 00164 VOID 00165 NTAPI 00166 ArcFreeNdisPacket( 00167 IN PARC_PACKET Packet); 00168 00169 VOID 00170 NTAPI 00171 ArcFilterDoIndication( 00172 IN PARC_FILTER Filter, 00173 IN PARC_PACKET Packet); 00174 00175 VOID 00176 NTAPI 00177 ArcDestroyPacket( 00178 IN PARC_FILTER Filter, 00179 IN PARC_PACKET Packet); 00180 00181 #ifdef __cplusplus 00182 } 00183 #endif 00184 00185 #endif /* _ARC_FILTER_DEFS_ */ Generated on Sun May 27 2012 04:29:55 for ReactOS by
1.7.6.1
|