4 * Definitions for NDIS WAN miniport drivers
6 * This file is part of the w32api package.
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
11 * THIS SOFTWARE IS NOT COPYRIGHTED
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
29 #define NDIS_USE_WAN_WRAPPER 0x00000001
31 #define NDIS_STATUS_TAPI_INDICATION ((NDIS_STATUS)0x40010080L)
33 /* NDIS_WAN_INFO.FramingBits constants */
34 #define RAS_FRAMING 0x00000001
35 #define RAS_COMPRESSION 0x00000002
37 #define ARAP_V1_FRAMING 0x00000004
38 #define ARAP_V2_FRAMING 0x00000008
39 #define ARAP_FRAMING (ARAP_V1_FRAMING | ARAP_V2_FRAMING)
41 #define PPP_MULTILINK_FRAMING 0x00000010
42 #define PPP_SHORT_SEQUENCE_HDR_FORMAT 0x00000020
43 #define PPP_MC_MULTILINK_FRAMING 0x00000040
45 #define PPP_FRAMING 0x00000100
46 #define PPP_COMPRESS_ADDRESS_CONTROL 0x00000200
47 #define PPP_COMPRESS_PROTOCOL_FIELD 0x00000400
48 #define PPP_ACCM_SUPPORTED 0x00000800
50 #define SLIP_FRAMING 0x00001000
51 #define SLIP_VJ_COMPRESSION 0x00002000
52 #define SLIP_VJ_AUTODETECT 0x00004000
54 #define MEDIA_NRZ_ENCODING 0x00010000
55 #define MEDIA_NRZI_ENCODING 0x00020000
56 #define MEDIA_NLPID 0x00040000
58 #define RFC_1356_FRAMING 0x00100000
59 #define RFC_1483_FRAMING 0x00200000
60 #define RFC_1490_FRAMING 0x00400000
61 #define LLC_ENCAPSULATION 0x00800000
63 #define SHIVA_FRAMING 0x01000000
64 #define NBF_PRESERVE_MAC_ADDRESS 0x01000000
66 #define PASS_THROUGH_MODE 0x10000000
67 #define RAW_PASS_THROUGH_MODE 0x20000000
69 #define TAPI_PROVIDER 0x80000000
71 #define BRIDGING_FLAG_LANFCS 0x00000001
72 #define BRIDGING_FLAG_LANID 0x00000002
73 #define BRIDGING_FLAG_PADDING 0x00000004
75 #define BRIDGING_TINYGRAM 0x00000001
76 #define BRIDGING_LANID 0x00000002
77 #define BRIDGING_NO_SPANNING_TREE 0x00000004
78 #define BRIDGING_8021D_SPANNING_TREE 0x00000008
79 #define BRIDGING_8021G_SPANNING_TREE 0x00000010
80 #define BRIDGING_SOURCE_ROUTING 0x00000020
81 #define BRIDGING_DEC_LANBRIDGE 0x00000040
83 #define BRIDGING_TYPE_RESERVED 0x00000001
84 #define BRIDGING_TYPE_8023_CANON 0x00000002
85 #define BRIDGING_TYPE_8024_NO_CANON 0x00000004
86 #define BRIDGING_TYPE_8025_NO_CANON 0x00000008
87 #define BRIDGING_TYPE_FDDI_NO_CANON 0x00000010
88 #define BRIDGING_TYPE_8024_CANON 0x00000400
89 #define BRIDGING_TYPE_8025_CANON 0x00000800
90 #define BRIDGING_TYPE_FDDI_CANON 0x00001000
92 /* NDIS_WAN_COMPRESS_INFO.MSCompType constants */
93 #define NDISWAN_COMPRESSION 0x00000001
94 #define NDISWAN_ENCRYPTION 0x00000010
95 #define NDISWAN_40_ENCRYPTION 0x00000020
96 #define NDISWAN_128_ENCRYPTION 0x00000040
97 #define NDISWAN_56_ENCRYPTION 0x00000080
98 #define NDISWAN_HISTORY_LESS 0x01000000
100 /* NDIS_WAN_COMPRESS_INFO.CompType constants */
101 #define COMPTYPE_OUI 0
102 #define COMPTYPE_NT31RAS 254
103 #define COMPTYPE_NONE 255
105 #define WAN_ERROR_CRC ((ULONG)0x00000001)
106 #define WAN_ERROR_FRAMING ((ULONG)0x00000002)
107 #define WAN_ERROR_HARDWAREOVERRUN ((ULONG)0x00000004)
108 #define WAN_ERROR_BUFFEROVERRUN ((ULONG)0x00000008)
109 #define WAN_ERROR_TIMEOUT ((ULONG)0x00000010)
110 #define WAN_ERROR_ALIGNMENT ((ULONG)0x00000020)
112 #define NdisMWanInitializeWrapper(NdisWrapperHandle, \
117 NdisMInitializeWrapper(NdisWrapperHandle, \
123 typedef struct _NDIS_WAN_INFO
{
124 OUT ULONG MaxFrameSize
;
125 OUT ULONG MaxTransmit
;
126 OUT ULONG HeaderPadding
;
127 OUT ULONG TailPadding
;
129 OUT UINT MemoryFlags
;
130 OUT NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress
;
131 OUT ULONG FramingBits
;
132 OUT ULONG DesiredACCM
;
133 } NDIS_WAN_INFO
, *PNDIS_WAN_INFO
;
135 typedef struct _NDIS_WAN_GET_LINK_INFO
{
136 IN NDIS_HANDLE NdisLinkHandle
;
137 IN ULONG MaxSendFrameSize
;
138 OUT ULONG MaxRecvFrameSize
;
139 OUT ULONG HeaderPadding
;
140 OUT ULONG TailPadding
;
141 OUT ULONG SendFramingBits
;
142 OUT ULONG RecvFramingBits
;
143 OUT ULONG SendCompressionBits
;
144 OUT ULONG RecvCompressionBits
;
147 } NDIS_WAN_GET_LINK_INFO
, *PNDIS_WAN_GET_LINK_INFO
;
149 typedef struct _NDIS_WAN_SET_LINK_INFO
{
150 IN NDIS_HANDLE NdisLinkHandle
;
151 IN ULONG MaxSendFrameSize
;
152 IN ULONG MaxRecvFrameSize
;
153 IN ULONG HeaderPadding
;
154 IN ULONG TailPadding
;
155 IN ULONG SendFramingBits
;
156 IN ULONG RecvFramingBits
;
157 IN ULONG SendCompressionBits
;
158 IN ULONG RecvCompressionBits
;
161 } NDIS_WAN_SET_LINK_INFO
, *PNDIS_WAN_SET_LINK_INFO
;
163 typedef struct _NDIS_WAN_GET_BRIDGE_INFO
{
164 IN NDIS_HANDLE NdisLinkHandle
;
165 OUT USHORT LanSegmentNumber
;
166 OUT UCHAR BridgeNumber
;
167 OUT UCHAR BridgingOptions
;
168 OUT ULONG BridgingCapabilities
;
169 OUT UCHAR BridgingType
;
170 OUT UCHAR MacBytes
[6];
171 } NDIS_WAN_GET_BRIDGE_INFO
, *PNDIS_WAN_GET_BRIDGE_INFO
;
173 typedef struct _NDIS_WAN_SET_BRIDGE_INFO
{
174 IN NDIS_HANDLE NdisLinkHandle
;
175 IN USHORT LanSegmentNumber
;
176 IN UCHAR BridgeNumber
;
177 IN UCHAR BridgingOptions
;
178 IN ULONG BridgingCapabilities
;
179 IN UCHAR BridgingType
;
180 IN UCHAR MacBytes
[6];
181 } NDIS_WAN_SET_BRIDGE_INFO
, *PNDIS_WAN_SET_BRIDGE_INFO
;
183 typedef struct _NDIS_WAN_COMPRESS_INFO
{
188 _ANONYMOUS_UNION
union {
192 UCHAR CompValues
[32];
195 UCHAR CompValues
[32];
198 } NDIS_WAN_COMPRESS_INFO
, *PNDIS_WAN_COMPRESS_INFO
;
200 typedef struct _NDIS_WAN_GET_COMP_INFO
{
201 IN NDIS_HANDLE NdisLinkHandle
;
202 OUT NDIS_WAN_COMPRESS_INFO SendCapabilities
;
203 OUT NDIS_WAN_COMPRESS_INFO RecvCapabilities
;
204 } NDIS_WAN_GET_COMP_INFO
, *PNDIS_WAN_GET_COMP_INFO
;
206 typedef struct _NDIS_WAN_SET_COMP_INFO
{
207 IN NDIS_HANDLE NdisLinkHandle
;
208 IN NDIS_WAN_COMPRESS_INFO SendCapabilities
;
209 IN NDIS_WAN_COMPRESS_INFO RecvCapabilities
;
210 } NDIS_WAN_SET_COMP_INFO
, *PNDIS_WAN_SET_COMP_INFO
;
212 typedef struct _NDIS_WAN_GET_STATS_INFO
{
213 IN NDIS_HANDLE NdisLinkHandle
;
216 OUT ULONG FramesSent
;
217 OUT ULONG FramesRcvd
;
219 OUT ULONG TimeoutErrors
;
220 OUT ULONG AlignmentErrors
;
221 OUT ULONG SerialOverrunErrors
;
222 OUT ULONG FramingErrors
;
223 OUT ULONG BufferOverrunErrors
;
224 OUT ULONG BytesTransmittedUncompressed
;
225 OUT ULONG BytesReceivedUncompressed
;
226 OUT ULONG BytesTransmittedCompressed
;
227 OUT ULONG BytesReceivedCompressed
;
228 OUT ULONG TunnelPacketsRecieved
;
229 OUT ULONG TunnelRecievePacketsPending
;
230 OUT ULONG TunnelPacketsIndicatedUp
;
231 OUT ULONG TunnelRecievePacketsRejected
;
232 OUT ULONG TunnelPacketsSent
;
233 OUT ULONG TunnelPacketsSentComplete
;
234 OUT ULONG TunnelTransmitPacketsPending
;
235 OUT ULONG TunnelPacketsTransmitError
;
236 OUT ULONG TunnelPacketsSentError
;
237 OUT ULONG TunnelTransmitPacketsRejected
;
238 OUT ULONG TunnelAcksSent
;
239 OUT ULONG TunnelAcksSentComplete
;
240 OUT ULONG TunnelGeneric1
;
241 OUT ULONG TunnelGeneric2
;
242 OUT ULONG TunnelGeneric3
;
243 } NDIS_WAN_GET_STATS_INFO
, *PNDIS_WAN_GET_STATS_INFO
;
245 typedef struct _NDIS_MAC_LINE_UP
{
247 IN NDIS_WAN_QUALITY Quality
;
248 IN USHORT SendWindow
;
249 IN NDIS_HANDLE ConnectionWrapperID
;
250 IN NDIS_HANDLE NdisLinkHandle
;
251 OUT NDIS_HANDLE NdisLinkContext
;
252 } NDIS_MAC_LINE_UP
, *PNDIS_MAC_LINE_UP
;
254 typedef struct _NDIS_MAC_LINE_DOWN
{
255 IN NDIS_HANDLE NdisLinkContext
;
256 } NDIS_MAC_LINE_DOWN
, *PNDIS_MAC_LINE_DOWN
;
258 typedef struct _NDIS_MAC_FRAGMENT
{
259 IN NDIS_HANDLE NdisLinkContext
;
261 } NDIS_MAC_FRAGMENT
, *PNDIS_MAC_FRAGMENT
;
263 typedef struct _NDIS_WAN_CO_INFO
{
264 OUT ULONG MaxFrameSize
;
265 OUT ULONG MaxSendWindow
;
266 OUT ULONG FramingBits
;
267 OUT ULONG DesiredACCM
;
268 } NDIS_WAN_CO_INFO
, *PNDIS_WAN_CO_INFO
;
270 typedef struct _NDIS_WAN_CO_GET_LINK_INFO
{
271 OUT ULONG MaxSendFrameSize
;
272 OUT ULONG MaxRecvFrameSize
;
273 OUT ULONG SendFramingBits
;
274 OUT ULONG RecvFramingBits
;
275 OUT ULONG SendCompressionBits
;
276 OUT ULONG RecvCompressionBits
;
279 } NDIS_WAN_CO_GET_LINK_INFO
, *PNDIS_WAN_CO_GET_LINK_INFO
;
281 typedef struct _NDIS_WAN_CO_SET_LINK_INFO
{
282 IN ULONG MaxSendFrameSize
;
283 IN ULONG MaxRecvFrameSize
;
284 IN ULONG SendFramingBits
;
285 IN ULONG RecvFramingBits
;
286 IN ULONG SendCompressionBits
;
287 IN ULONG RecvCompressionBits
;
290 } NDIS_WAN_CO_SET_LINK_INFO
, *PNDIS_WAN_CO_SET_LINK_INFO
;
292 typedef struct _NDIS_WAN_CO_GET_COMP_INFO
{
293 OUT NDIS_WAN_COMPRESS_INFO SendCapabilities
;
294 OUT NDIS_WAN_COMPRESS_INFO RecvCapabilities
;
295 } NDIS_WAN_CO_GET_COMP_INFO
, *PNDIS_WAN_CO_GET_COMP_INFO
;
297 typedef struct _NDIS_WAN_CO_SET_COMP_INFO
{
298 IN NDIS_WAN_COMPRESS_INFO SendCapabilities
;
299 IN NDIS_WAN_COMPRESS_INFO RecvCapabilities
;
300 } NDIS_WAN_CO_SET_COMP_INFO
, *PNDIS_WAN_CO_SET_COMP_INFO
;
302 typedef struct _NDIS_WAN_CO_GET_STATS_INFO
{
305 OUT ULONG FramesSent
;
306 OUT ULONG FramesRcvd
;
308 OUT ULONG TimeoutErrors
;
309 OUT ULONG AlignmentErrors
;
310 OUT ULONG SerialOverrunErrors
;
311 OUT ULONG FramingErrors
;
312 OUT ULONG BufferOverrunErrors
;
313 OUT ULONG BytesTransmittedUncompressed
;
314 OUT ULONG BytesReceivedUncompressed
;
315 OUT ULONG BytesTransmittedCompressed
;
316 OUT ULONG BytesReceivedCompressed
;
317 OUT ULONG TunnelPacketsRecieved
;
318 OUT ULONG TunnelRecievePacketsPending
;
319 OUT ULONG TunnelPacketsIndicatedUp
;
320 OUT ULONG TunnelRecievePacketsRejected
;
321 OUT ULONG TunnelPacketsSent
;
322 OUT ULONG TunnelPacketsSentComplete
;
323 OUT ULONG TunnelTransmitPacketsPending
;
324 OUT ULONG TunnelPacketsTransmitError
;
325 OUT ULONG TunnelPacketsSentError
;
326 OUT ULONG TunnelTransmitPacketsRejected
;
327 OUT ULONG TunnelAcksSent
;
328 OUT ULONG TunnelAcksSentComplete
;
329 OUT ULONG TunnelGeneric1
;
330 OUT ULONG TunnelGeneric2
;
331 OUT ULONG TunnelGeneric3
;
332 } NDIS_WAN_CO_GET_STATS_INFO
, *PNDIS_WAN_CO_GET_STATS_INFO
;
334 typedef struct _NDIS_WAN_CO_FRAGMENT
{
336 } NDIS_WAN_CO_FRAGMENT
, *PNDIS_WAN_CO_FRAGMENT
;
338 typedef struct _WAN_CO_LINKPARAMS
{
342 } WAN_CO_LINKPARAMS
, *PWAN_CO_LINKPARAMS
;
344 typedef struct _WAN_CO_MTULINKPARAMS
{
350 } WAN_CO_MTULINKPARAMS
, *PWAN_CO_MTULINKPARAMS
;