OSDN Git Service

Insert removed author attribution.
[mingw/mingw-org-wsl.git] / include / ddk / ndiswan.h
1 /**
2  * @file ndiswan.h
3  * @copy 2012 MinGW.org project
4  *
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:
11  * 
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
14  * Software.
15  * 
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.
23  */
24 /* Created by Casper S. Hornstrup <chorns@users.sourceforge.net> */
25 #ifndef __NDISWAN_H
26 #define __NDISWAN_H
27 #pragma GCC system_header
28 #include <_mingw.h>
29
30 /*
31  * Definitions for NDIS WAN miniport drivers
32  */
33
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37
38 #include "ndis.h"
39
40 #define NDIS_USE_WAN_WRAPPER                            0x00000001
41
42 #define NDIS_STATUS_TAPI_INDICATION                     ((NDIS_STATUS)0x40010080L)
43
44 /* NDIS_WAN_INFO.FramingBits constants */
45 #define RAS_FRAMING                     0x00000001
46 #define RAS_COMPRESSION                 0x00000002
47
48 #define ARAP_V1_FRAMING                 0x00000004
49 #define ARAP_V2_FRAMING                 0x00000008
50 #define ARAP_FRAMING                    (ARAP_V1_FRAMING | ARAP_V2_FRAMING)
51
52 #define PPP_MULTILINK_FRAMING           0x00000010
53 #define PPP_SHORT_SEQUENCE_HDR_FORMAT   0x00000020
54 #define PPP_MC_MULTILINK_FRAMING        0x00000040
55
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
60
61 #define SLIP_FRAMING                    0x00001000
62 #define SLIP_VJ_COMPRESSION             0x00002000
63 #define SLIP_VJ_AUTODETECT              0x00004000
64
65 #define MEDIA_NRZ_ENCODING              0x00010000
66 #define MEDIA_NRZI_ENCODING             0x00020000
67 #define MEDIA_NLPID                     0x00040000
68
69 #define RFC_1356_FRAMING                0x00100000
70 #define RFC_1483_FRAMING                0x00200000
71 #define RFC_1490_FRAMING                0x00400000
72 #define LLC_ENCAPSULATION               0x00800000
73
74 #define SHIVA_FRAMING                   0x01000000
75 #define NBF_PRESERVE_MAC_ADDRESS        0x01000000
76
77 #define PASS_THROUGH_MODE               0x10000000
78 #define RAW_PASS_THROUGH_MODE           0x20000000
79
80 #define TAPI_PROVIDER                   0x80000000
81
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;
93
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;
107
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; 
121
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
129
130 /* NDIS_WAN_COMPRESS_INFO.CompType constants */
131 #define COMPTYPE_OUI                                                                                    0
132 #define COMPTYPE_NT31RAS                                                                        254
133 #define COMPTYPE_NONE                                                                                   255
134
135 typedef struct _NDIS_WAN_COMPRESS_INFO {
136         UCHAR  SessionKey[8];
137         ULONG  MSCompType;
138         UCHAR  CompType;
139         USHORT  CompLength;
140         _ANONYMOUS_UNION union {
141                 struct {
142                         UCHAR  CompOUI[3];
143                         UCHAR  CompSubType;
144                         UCHAR  CompValues[32];
145                 } Proprietary;
146                 struct {
147                         UCHAR  CompValues[32];
148                 } Public;
149         } DUMMYUNIONNAME;
150 } NDIS_WAN_COMPRESS_INFO;
151
152 typedef NDIS_WAN_COMPRESS_INFO *PNDIS_WAN_COMPRESS_INFO;
153
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;
159
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;
165
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;
183
184 #define NdisMWanInitializeWrapper(NdisWrapperHandle,    \
185                                   SystemSpecific1,              \
186                                   SystemSpecific2,              \
187                                   SystemSpecific3)              \
188 {                                                     \
189         NdisMInitializeWrapper(NdisWrapperHandle,               \
190                          SystemSpecific1,                       \
191                          SystemSpecific2,                       \
192                          SystemSpecific3);                      \
193 }
194
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;
201
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;
212
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;
223
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; 
228
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;
233
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;
250
251 #ifdef __cplusplus
252 }
253 #endif
254
255 #endif /* __NDISWAN_H */