3 * @copy 2012 MinGW.org project
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
24 /* Created by Casper S. Hornstrup <chorns@users.sourceforge.net> */
27 #pragma GCC system_header
31 * Definitions for NDIS WAN miniport drivers
40 #define NDIS_USE_WAN_WRAPPER 0x00000001
42 #define NDIS_STATUS_TAPI_INDICATION ((NDIS_STATUS)0x40010080L)
44 /* NDIS_WAN_INFO.FramingBits constants */
45 #define RAS_FRAMING 0x00000001
46 #define RAS_COMPRESSION 0x00000002
48 #define ARAP_V1_FRAMING 0x00000004
49 #define ARAP_V2_FRAMING 0x00000008
50 #define ARAP_FRAMING (ARAP_V1_FRAMING | ARAP_V2_FRAMING)
52 #define PPP_MULTILINK_FRAMING 0x00000010
53 #define PPP_SHORT_SEQUENCE_HDR_FORMAT 0x00000020
54 #define PPP_MC_MULTILINK_FRAMING 0x00000040
56 #define PPP_FRAMING 0x00000100
57 #define PPP_COMPRESS_ADDRESS_CONTROL 0x00000200
58 #define PPP_COMPRESS_PROTOCOL_FIELD 0x00000400
59 #define PPP_ACCM_SUPPORTED 0x00000800
61 #define SLIP_FRAMING 0x00001000
62 #define SLIP_VJ_COMPRESSION 0x00002000
63 #define SLIP_VJ_AUTODETECT 0x00004000
65 #define MEDIA_NRZ_ENCODING 0x00010000
66 #define MEDIA_NRZI_ENCODING 0x00020000
67 #define MEDIA_NLPID 0x00040000
69 #define RFC_1356_FRAMING 0x00100000
70 #define RFC_1483_FRAMING 0x00200000
71 #define RFC_1490_FRAMING 0x00400000
72 #define LLC_ENCAPSULATION 0x00800000
74 #define SHIVA_FRAMING 0x01000000
75 #define NBF_PRESERVE_MAC_ADDRESS 0x01000000
77 #define PASS_THROUGH_MODE 0x10000000
78 #define RAW_PASS_THROUGH_MODE 0x20000000
80 #define TAPI_PROVIDER 0x80000000
82 typedef struct _NDIS_WAN_INFO {
83 /*OUT*/ ULONG MaxFrameSize;
84 /*OUT*/ ULONG MaxTransmit;
85 /*OUT*/ ULONG HeaderPadding;
86 /*OUT*/ ULONG TailPadding;
87 /*OUT*/ ULONG Endpoints;
88 /*OUT*/ UINT MemoryFlags;
89 /*OUT*/ NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress;
90 /*OUT*/ ULONG FramingBits;
91 /*OUT*/ ULONG DesiredACCM;
92 } NDIS_WAN_INFO, *PNDIS_WAN_INFO;
94 typedef struct _NDIS_WAN_GET_LINK_INFO {
95 /*IN*/ NDIS_HANDLE NdisLinkHandle;
96 /*OUT*/ ULONG MaxSendFrameSize;
97 /*OUT*/ ULONG MaxRecvFrameSize;
98 /*OUT*/ ULONG HeaderPadding;
99 /*OUT*/ ULONG TailPadding;
100 /*OUT*/ ULONG SendFramingBits;
101 /*OUT*/ ULONG RecvFramingBits;
102 /*OUT*/ ULONG SendCompressionBits;
103 /*OUT*/ ULONG RecvCompressionBits;
104 /*OUT*/ ULONG SendACCM;
105 /*OUT*/ ULONG RecvACCM;
106 } NDIS_WAN_GET_LINK_INFO, *PNDIS_WAN_GET_LINK_INFO;
108 typedef struct _NDIS_WAN_SET_LINK_INFO {
109 /*IN*/ NDIS_HANDLE NdisLinkHandle;
110 /*IN*/ ULONG MaxSendFrameSize;
111 /*IN*/ ULONG MaxRecvFrameSize;
112 /*IN*/ ULONG HeaderPadding;
113 /*IN*/ ULONG TailPadding;
114 /*IN*/ ULONG SendFramingBits;
115 /*IN*/ ULONG RecvFramingBits;
116 /*IN*/ ULONG SendCompressionBits;
117 /*IN*/ ULONG RecvCompressionBits;
118 /*IN*/ ULONG SendACCM;
119 /*IN*/ ULONG RecvACCM;
120 } NDIS_WAN_SET_LINK_INFO, *PNDIS_WAN_SET_LINK_INFO;
122 /* NDIS_WAN_COMPRESS_INFO.MSCompType constants */
123 #define NDISWAN_COMPRESSION 0x00000001
124 #define NDISWAN_ENCRYPTION 0x00000010
125 #define NDISWAN_40_ENCRYPTION 0x00000020
126 #define NDISWAN_128_ENCRYPTION 0x00000040
127 #define NDISWAN_56_ENCRYPTION 0x00000080
128 #define NDISWAN_HISTORY_LESS 0x01000000
130 /* NDIS_WAN_COMPRESS_INFO.CompType constants */
131 #define COMPTYPE_OUI 0
132 #define COMPTYPE_NT31RAS 254
133 #define COMPTYPE_NONE 255
135 typedef struct _NDIS_WAN_COMPRESS_INFO {
140 _ANONYMOUS_UNION union {
144 UCHAR CompValues[32];
147 UCHAR CompValues[32];
150 } NDIS_WAN_COMPRESS_INFO;
152 typedef NDIS_WAN_COMPRESS_INFO *PNDIS_WAN_COMPRESS_INFO;
154 typedef struct _NDIS_WAN_GET_COMP_INFO {
155 /*IN*/ NDIS_HANDLE NdisLinkHandle;
156 /*OUT*/ NDIS_WAN_COMPRESS_INFO SendCapabilities;
157 /*OUT*/ NDIS_WAN_COMPRESS_INFO RecvCapabilities;
158 } NDIS_WAN_GET_COMP_INFO, *PNDIS_WAN_GET_COMP_INFO;
160 typedef struct _NDIS_WAN_SET_COMP_INFO {
161 /*IN*/ NDIS_HANDLE NdisLinkHandle;
162 /*IN*/ NDIS_WAN_COMPRESS_INFO SendCapabilities;
163 /*IN*/ NDIS_WAN_COMPRESS_INFO RecvCapabilities;
164 } NDIS_WAN_SET_COMP_INFO, *PNDIS_WAN_SET_COMP_INFO;
166 typedef struct _NDIS_WAN_GET_STATS_INFO {
167 /*IN*/ NDIS_HANDLE NdisLinkHandle;
168 /*OUT*/ ULONG BytesSent;
169 /*OUT*/ ULONG BytesRcvd;
170 /*OUT*/ ULONG FramesSent;
171 /*OUT*/ ULONG FramesRcvd;
172 /*OUT*/ ULONG CRCErrors;
173 /*OUT*/ ULONG TimeoutErrors;
174 /*OUT*/ ULONG AlignmentErrors;
175 /*OUT*/ ULONG SerialOverrunErrors;
176 /*OUT*/ ULONG FramingErrors;
177 /*OUT*/ ULONG BufferOverrunErrors;
178 /*OUT*/ ULONG BytesTransmittedUncompressed;
179 /*OUT*/ ULONG BytesReceivedUncompressed;
180 /*OUT*/ ULONG BytesTransmittedCompressed;
181 /*OUT*/ ULONG BytesReceivedCompressed;
182 } NDIS_WAN_GET_STATS_INFO, *PNDIS_WAN_GET_STATS_INFO;
184 #define NdisMWanInitializeWrapper(NdisWrapperHandle, \
189 NdisMInitializeWrapper(NdisWrapperHandle, \
195 typedef struct _NDIS_WAN_CO_INFO {
196 /*OUT*/ ULONG MaxFrameSize;
197 /*OUT*/ ULONG MaxSendWindow;
198 /*OUT*/ ULONG FramingBits;
199 /*OUT*/ ULONG DesiredACCM;
200 } NDIS_WAN_CO_INFO, *PNDIS_WAN_CO_INFO;
202 typedef struct _NDIS_WAN_CO_GET_LINK_INFO {
203 /*OUT*/ ULONG MaxSendFrameSize;
204 /*OUT*/ ULONG MaxRecvFrameSize;
205 /*OUT*/ ULONG SendFramingBits;
206 /*OUT*/ ULONG RecvFramingBits;
207 /*OUT*/ ULONG SendCompressionBits;
208 /*OUT*/ ULONG RecvCompressionBits;
209 /*OUT*/ ULONG SendACCM;
210 /*OUT*/ ULONG RecvACCM;
211 } NDIS_WAN_CO_GET_LINK_INFO, *PNDIS_WAN_CO_GET_LINK_INFO;
213 typedef struct _NDIS_WAN_CO_SET_LINK_INFO {
214 /*IN*/ ULONG MaxSendFrameSize;
215 /*IN*/ ULONG MaxRecvFrameSize;
216 /*IN*/ ULONG SendFramingBits;
217 /*IN*/ ULONG RecvFramingBits;
218 /*IN*/ ULONG SendCompressionBits;
219 /*IN*/ ULONG RecvCompressionBits;
220 /*IN*/ ULONG SendACCM;
221 /*IN*/ ULONG RecvACCM;
222 } NDIS_WAN_CO_SET_LINK_INFO, *PNDIS_WAN_CO_SET_LINK_INFO;
224 typedef struct _NDIS_WAN_CO_GET_COMP_INFO {
225 /*OUT*/ NDIS_WAN_COMPRESS_INFO SendCapabilities;
226 /*OUT*/ NDIS_WAN_COMPRESS_INFO RecvCapabilities;
227 } NDIS_WAN_CO_GET_COMP_INFO, *PNDIS_WAN_CO_GET_COMP_INFO;
229 typedef struct _NDIS_WAN_CO_SET_COMP_INFO {
230 /*IN*/ NDIS_WAN_COMPRESS_INFO SendCapabilities;
231 /*IN*/ NDIS_WAN_COMPRESS_INFO RecvCapabilities;
232 } NDIS_WAN_CO_SET_COMP_INFO, *PNDIS_WAN_CO_SET_COMP_INFO;
234 typedef struct _NDIS_WAN_CO_GET_STATS_INFO {
235 /*OUT*/ ULONG BytesSent;
236 /*OUT*/ ULONG BytesRcvd;
237 /*OUT*/ ULONG FramesSent;
238 /*OUT*/ ULONG FramesRcvd;
239 /*OUT*/ ULONG CRCErrors;
240 /*OUT*/ ULONG TimeoutErrors;
241 /*OUT*/ ULONG AlignmentErrors;
242 /*OUT*/ ULONG SerialOverrunErrors;
243 /*OUT*/ ULONG FramingErrors;
244 /*OUT*/ ULONG BufferOverrunErrors;
245 /*OUT*/ ULONG BytesTransmittedUncompressed;
246 /*OUT*/ ULONG BytesReceivedUncompressed;
247 /*OUT*/ ULONG BytesTransmittedCompressed;
248 /*OUT*/ ULONG BytesReceivedCompressed;
249 } NDIS_WAN_CO_GET_STATS_INFO, *PNDIS_WAN_CO_GET_STATS_INFO;
255 #endif /* __NDISWAN_H */