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.
26 * Definitions for NDIS WAN miniport drivers
31 #pragma GCC system_header
39 #define NDIS_USE_WAN_WRAPPER 0x00000001
41 #define NDIS_STATUS_TAPI_INDICATION ((NDIS_STATUS)0x40010080L)
43 /* NDIS_WAN_INFO.FramingBits constants */
44 #define RAS_FRAMING 0x00000001
45 #define RAS_COMPRESSION 0x00000002
47 #define ARAP_V1_FRAMING 0x00000004
48 #define ARAP_V2_FRAMING 0x00000008
49 #define ARAP_FRAMING (ARAP_V1_FRAMING | ARAP_V2_FRAMING)
51 #define PPP_MULTILINK_FRAMING 0x00000010
52 #define PPP_SHORT_SEQUENCE_HDR_FORMAT 0x00000020
53 #define PPP_MC_MULTILINK_FRAMING 0x00000040
55 #define PPP_FRAMING 0x00000100
56 #define PPP_COMPRESS_ADDRESS_CONTROL 0x00000200
57 #define PPP_COMPRESS_PROTOCOL_FIELD 0x00000400
58 #define PPP_ACCM_SUPPORTED 0x00000800
60 #define SLIP_FRAMING 0x00001000
61 #define SLIP_VJ_COMPRESSION 0x00002000
62 #define SLIP_VJ_AUTODETECT 0x00004000
64 #define MEDIA_NRZ_ENCODING 0x00010000
65 #define MEDIA_NRZI_ENCODING 0x00020000
66 #define MEDIA_NLPID 0x00040000
68 #define RFC_1356_FRAMING 0x00100000
69 #define RFC_1483_FRAMING 0x00200000
70 #define RFC_1490_FRAMING 0x00400000
71 #define LLC_ENCAPSULATION 0x00800000
73 #define SHIVA_FRAMING 0x01000000
74 #define NBF_PRESERVE_MAC_ADDRESS 0x01000000
76 #define PASS_THROUGH_MODE 0x10000000
77 #define RAW_PASS_THROUGH_MODE 0x20000000
79 #define TAPI_PROVIDER 0x80000000
81 typedef struct _NDIS_WAN_INFO {
82 /*OUT*/ ULONG MaxFrameSize;
83 /*OUT*/ ULONG MaxTransmit;
84 /*OUT*/ ULONG HeaderPadding;
85 /*OUT*/ ULONG TailPadding;
86 /*OUT*/ ULONG Endpoints;
87 /*OUT*/ UINT MemoryFlags;
88 /*OUT*/ NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress;
89 /*OUT*/ ULONG FramingBits;
90 /*OUT*/ ULONG DesiredACCM;
91 } NDIS_WAN_INFO, *PNDIS_WAN_INFO;
93 typedef struct _NDIS_WAN_GET_LINK_INFO {
94 /*IN*/ NDIS_HANDLE NdisLinkHandle;
95 /*OUT*/ ULONG MaxSendFrameSize;
96 /*OUT*/ ULONG MaxRecvFrameSize;
97 /*OUT*/ ULONG HeaderPadding;
98 /*OUT*/ ULONG TailPadding;
99 /*OUT*/ ULONG SendFramingBits;
100 /*OUT*/ ULONG RecvFramingBits;
101 /*OUT*/ ULONG SendCompressionBits;
102 /*OUT*/ ULONG RecvCompressionBits;
103 /*OUT*/ ULONG SendACCM;
104 /*OUT*/ ULONG RecvACCM;
105 } NDIS_WAN_GET_LINK_INFO, *PNDIS_WAN_GET_LINK_INFO;
107 typedef struct _NDIS_WAN_SET_LINK_INFO {
108 /*IN*/ NDIS_HANDLE NdisLinkHandle;
109 /*IN*/ ULONG MaxSendFrameSize;
110 /*IN*/ ULONG MaxRecvFrameSize;
111 /*IN*/ ULONG HeaderPadding;
112 /*IN*/ ULONG TailPadding;
113 /*IN*/ ULONG SendFramingBits;
114 /*IN*/ ULONG RecvFramingBits;
115 /*IN*/ ULONG SendCompressionBits;
116 /*IN*/ ULONG RecvCompressionBits;
117 /*IN*/ ULONG SendACCM;
118 /*IN*/ ULONG RecvACCM;
119 } NDIS_WAN_SET_LINK_INFO, *PNDIS_WAN_SET_LINK_INFO;
121 /* NDIS_WAN_COMPRESS_INFO.MSCompType constants */
122 #define NDISWAN_COMPRESSION 0x00000001
123 #define NDISWAN_ENCRYPTION 0x00000010
124 #define NDISWAN_40_ENCRYPTION 0x00000020
125 #define NDISWAN_128_ENCRYPTION 0x00000040
126 #define NDISWAN_56_ENCRYPTION 0x00000080
127 #define NDISWAN_HISTORY_LESS 0x01000000
129 /* NDIS_WAN_COMPRESS_INFO.CompType constants */
130 #define COMPTYPE_OUI 0
131 #define COMPTYPE_NT31RAS 254
132 #define COMPTYPE_NONE 255
134 typedef struct _NDIS_WAN_COMPRESS_INFO {
139 _ANONYMOUS_UNION union {
143 UCHAR CompValues[32];
146 UCHAR CompValues[32];
149 } NDIS_WAN_COMPRESS_INFO;
151 typedef NDIS_WAN_COMPRESS_INFO *PNDIS_WAN_COMPRESS_INFO;
153 typedef struct _NDIS_WAN_GET_COMP_INFO {
154 /*IN*/ NDIS_HANDLE NdisLinkHandle;
155 /*OUT*/ NDIS_WAN_COMPRESS_INFO SendCapabilities;
156 /*OUT*/ NDIS_WAN_COMPRESS_INFO RecvCapabilities;
157 } NDIS_WAN_GET_COMP_INFO, *PNDIS_WAN_GET_COMP_INFO;
159 typedef struct _NDIS_WAN_SET_COMP_INFO {
160 /*IN*/ NDIS_HANDLE NdisLinkHandle;
161 /*IN*/ NDIS_WAN_COMPRESS_INFO SendCapabilities;
162 /*IN*/ NDIS_WAN_COMPRESS_INFO RecvCapabilities;
163 } NDIS_WAN_SET_COMP_INFO, *PNDIS_WAN_SET_COMP_INFO;
165 typedef struct _NDIS_WAN_GET_STATS_INFO {
166 /*IN*/ NDIS_HANDLE NdisLinkHandle;
167 /*OUT*/ ULONG BytesSent;
168 /*OUT*/ ULONG BytesRcvd;
169 /*OUT*/ ULONG FramesSent;
170 /*OUT*/ ULONG FramesRcvd;
171 /*OUT*/ ULONG CRCErrors;
172 /*OUT*/ ULONG TimeoutErrors;
173 /*OUT*/ ULONG AlignmentErrors;
174 /*OUT*/ ULONG SerialOverrunErrors;
175 /*OUT*/ ULONG FramingErrors;
176 /*OUT*/ ULONG BufferOverrunErrors;
177 /*OUT*/ ULONG BytesTransmittedUncompressed;
178 /*OUT*/ ULONG BytesReceivedUncompressed;
179 /*OUT*/ ULONG BytesTransmittedCompressed;
180 /*OUT*/ ULONG BytesReceivedCompressed;
181 } NDIS_WAN_GET_STATS_INFO, *PNDIS_WAN_GET_STATS_INFO;
183 #define NdisMWanInitializeWrapper(NdisWrapperHandle, \
188 NdisMInitializeWrapper(NdisWrapperHandle, \
194 typedef struct _NDIS_WAN_CO_INFO {
195 /*OUT*/ ULONG MaxFrameSize;
196 /*OUT*/ ULONG MaxSendWindow;
197 /*OUT*/ ULONG FramingBits;
198 /*OUT*/ ULONG DesiredACCM;
199 } NDIS_WAN_CO_INFO, *PNDIS_WAN_CO_INFO;
201 typedef struct _NDIS_WAN_CO_GET_LINK_INFO {
202 /*OUT*/ ULONG MaxSendFrameSize;
203 /*OUT*/ ULONG MaxRecvFrameSize;
204 /*OUT*/ ULONG SendFramingBits;
205 /*OUT*/ ULONG RecvFramingBits;
206 /*OUT*/ ULONG SendCompressionBits;
207 /*OUT*/ ULONG RecvCompressionBits;
208 /*OUT*/ ULONG SendACCM;
209 /*OUT*/ ULONG RecvACCM;
210 } NDIS_WAN_CO_GET_LINK_INFO, *PNDIS_WAN_CO_GET_LINK_INFO;
212 typedef struct _NDIS_WAN_CO_SET_LINK_INFO {
213 /*IN*/ ULONG MaxSendFrameSize;
214 /*IN*/ ULONG MaxRecvFrameSize;
215 /*IN*/ ULONG SendFramingBits;
216 /*IN*/ ULONG RecvFramingBits;
217 /*IN*/ ULONG SendCompressionBits;
218 /*IN*/ ULONG RecvCompressionBits;
219 /*IN*/ ULONG SendACCM;
220 /*IN*/ ULONG RecvACCM;
221 } NDIS_WAN_CO_SET_LINK_INFO, *PNDIS_WAN_CO_SET_LINK_INFO;
223 typedef struct _NDIS_WAN_CO_GET_COMP_INFO {
224 /*OUT*/ NDIS_WAN_COMPRESS_INFO SendCapabilities;
225 /*OUT*/ NDIS_WAN_COMPRESS_INFO RecvCapabilities;
226 } NDIS_WAN_CO_GET_COMP_INFO, *PNDIS_WAN_CO_GET_COMP_INFO;
228 typedef struct _NDIS_WAN_CO_SET_COMP_INFO {
229 /*IN*/ NDIS_WAN_COMPRESS_INFO SendCapabilities;
230 /*IN*/ NDIS_WAN_COMPRESS_INFO RecvCapabilities;
231 } NDIS_WAN_CO_SET_COMP_INFO, *PNDIS_WAN_CO_SET_COMP_INFO;
233 typedef struct _NDIS_WAN_CO_GET_STATS_INFO {
234 /*OUT*/ ULONG BytesSent;
235 /*OUT*/ ULONG BytesRcvd;
236 /*OUT*/ ULONG FramesSent;
237 /*OUT*/ ULONG FramesRcvd;
238 /*OUT*/ ULONG CRCErrors;
239 /*OUT*/ ULONG TimeoutErrors;
240 /*OUT*/ ULONG AlignmentErrors;
241 /*OUT*/ ULONG SerialOverrunErrors;
242 /*OUT*/ ULONG FramingErrors;
243 /*OUT*/ ULONG BufferOverrunErrors;
244 /*OUT*/ ULONG BytesTransmittedUncompressed;
245 /*OUT*/ ULONG BytesReceivedUncompressed;
246 /*OUT*/ ULONG BytesTransmittedCompressed;
247 /*OUT*/ ULONG BytesReceivedCompressed;
248 } NDIS_WAN_CO_GET_STATS_INFO, *PNDIS_WAN_CO_GET_STATS_INFO;
254 #endif /* __NDISWAN_H */