[WIN32K, USER32]
[reactos.git] / reactos / include / ddk / ndiswan.h
1 /*
2 * ndiswan.h
3 *
4 * Definitions for NDIS WAN miniport drivers
5 *
6 * This file is part of the w32api package.
7 *
8 * Contributors:
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
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.
20 *
21 */
22
23 #pragma once
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28
29 #define NDIS_USE_WAN_WRAPPER 0x00000001
30
31 #define NDIS_STATUS_TAPI_INDICATION ((NDIS_STATUS)0x40010080L)
32
33 /* NDIS_WAN_INFO.FramingBits constants */
34 #define RAS_FRAMING 0x00000001
35 #define RAS_COMPRESSION 0x00000002
36
37 #define ARAP_V1_FRAMING 0x00000004
38 #define ARAP_V2_FRAMING 0x00000008
39 #define ARAP_FRAMING (ARAP_V1_FRAMING | ARAP_V2_FRAMING)
40
41 #define PPP_MULTILINK_FRAMING 0x00000010
42 #define PPP_SHORT_SEQUENCE_HDR_FORMAT 0x00000020
43 #define PPP_MC_MULTILINK_FRAMING 0x00000040
44
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
49
50 #define SLIP_FRAMING 0x00001000
51 #define SLIP_VJ_COMPRESSION 0x00002000
52 #define SLIP_VJ_AUTODETECT 0x00004000
53
54 #define MEDIA_NRZ_ENCODING 0x00010000
55 #define MEDIA_NRZI_ENCODING 0x00020000
56 #define MEDIA_NLPID 0x00040000
57
58 #define RFC_1356_FRAMING 0x00100000
59 #define RFC_1483_FRAMING 0x00200000
60 #define RFC_1490_FRAMING 0x00400000
61 #define LLC_ENCAPSULATION 0x00800000
62
63 #define SHIVA_FRAMING 0x01000000
64 #define NBF_PRESERVE_MAC_ADDRESS 0x01000000
65
66 #define PASS_THROUGH_MODE 0x10000000
67 #define RAW_PASS_THROUGH_MODE 0x20000000
68
69 #define TAPI_PROVIDER 0x80000000
70
71 #define BRIDGING_FLAG_LANFCS 0x00000001
72 #define BRIDGING_FLAG_LANID 0x00000002
73 #define BRIDGING_FLAG_PADDING 0x00000004
74
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
82
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
91
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
99
100 /* NDIS_WAN_COMPRESS_INFO.CompType constants */
101 #define COMPTYPE_OUI 0
102 #define COMPTYPE_NT31RAS 254
103 #define COMPTYPE_NONE 255
104
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)
111
112 #define NdisMWanInitializeWrapper(NdisWrapperHandle, \
113 SystemSpecific1, \
114 SystemSpecific2, \
115 SystemSpecific3) \
116 { \
117 NdisMInitializeWrapper(NdisWrapperHandle, \
118 SystemSpecific1, \
119 SystemSpecific2, \
120 SystemSpecific3); \
121 }
122
123 typedef struct _NDIS_WAN_INFO {
124 OUT ULONG MaxFrameSize;
125 OUT ULONG MaxTransmit;
126 OUT ULONG HeaderPadding;
127 OUT ULONG TailPadding;
128 OUT ULONG Endpoints;
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;
134
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;
145 OUT ULONG SendACCM;
146 OUT ULONG RecvACCM;
147 } NDIS_WAN_GET_LINK_INFO, *PNDIS_WAN_GET_LINK_INFO;
148
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;
159 IN ULONG SendACCM;
160 IN ULONG RecvACCM;
161 } NDIS_WAN_SET_LINK_INFO, *PNDIS_WAN_SET_LINK_INFO;
162
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;
172
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;
182
183 typedef struct _NDIS_WAN_COMPRESS_INFO {
184 UCHAR SessionKey[8];
185 ULONG MSCompType;
186 UCHAR CompType;
187 USHORT CompLength;
188 _ANONYMOUS_UNION union {
189 struct {
190 UCHAR CompOUI[3];
191 UCHAR CompSubType;
192 UCHAR CompValues[32];
193 } Proprietary;
194 struct {
195 UCHAR CompValues[32];
196 } Public;
197 } DUMMYUNIONNAME;
198 } NDIS_WAN_COMPRESS_INFO, *PNDIS_WAN_COMPRESS_INFO;
199
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;
205
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;
211
212 typedef struct _NDIS_WAN_GET_STATS_INFO {
213 IN NDIS_HANDLE NdisLinkHandle;
214 OUT ULONG BytesSent;
215 OUT ULONG BytesRcvd;
216 OUT ULONG FramesSent;
217 OUT ULONG FramesRcvd;
218 OUT ULONG CRCErrors;
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;
244
245 typedef struct _NDIS_MAC_LINE_UP {
246 IN ULONG LinkSpeed;
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;
253
254 typedef struct _NDIS_MAC_LINE_DOWN {
255 IN NDIS_HANDLE NdisLinkContext;
256 } NDIS_MAC_LINE_DOWN, *PNDIS_MAC_LINE_DOWN;
257
258 typedef struct _NDIS_MAC_FRAGMENT {
259 IN NDIS_HANDLE NdisLinkContext;
260 IN ULONG Errors;
261 } NDIS_MAC_FRAGMENT, *PNDIS_MAC_FRAGMENT;
262
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;
269
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;
277 OUT ULONG SendACCM;
278 OUT ULONG RecvACCM;
279 } NDIS_WAN_CO_GET_LINK_INFO, *PNDIS_WAN_CO_GET_LINK_INFO;
280
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;
288 IN ULONG SendACCM;
289 IN ULONG RecvACCM;
290 } NDIS_WAN_CO_SET_LINK_INFO, *PNDIS_WAN_CO_SET_LINK_INFO;
291
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;
296
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;
301
302 typedef struct _NDIS_WAN_CO_GET_STATS_INFO {
303 OUT ULONG BytesSent;
304 OUT ULONG BytesRcvd;
305 OUT ULONG FramesSent;
306 OUT ULONG FramesRcvd;
307 OUT ULONG CRCErrors;
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;
333
334 typedef struct _NDIS_WAN_CO_FRAGMENT {
335 IN ULONG Errors;
336 } NDIS_WAN_CO_FRAGMENT, *PNDIS_WAN_CO_FRAGMENT;
337
338 typedef struct _WAN_CO_LINKPARAMS {
339 ULONG TransmitSpeed;
340 ULONG ReceiveSpeed;
341 ULONG SendWindow;
342 } WAN_CO_LINKPARAMS, *PWAN_CO_LINKPARAMS;
343
344 typedef struct _WAN_CO_MTULINKPARAMS {
345 ULONG Version;
346 ULONG TransmitSpeed;
347 ULONG ReceiveSpeed;
348 ULONG SendWindow;
349 ULONG MTU;
350 } WAN_CO_MTULINKPARAMS, *PWAN_CO_MTULINKPARAMS;
351
352 #ifdef __cplusplus
353 }
354 #endif