OSDN Git Service

Manual resolution for LICENSE for files already containing a file
[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
25 /*
26  * Definitions for NDIS WAN miniport drivers
27  */
28
29 #ifndef __NDISWAN_H
30 #define __NDISWAN_H
31 #pragma GCC system_header
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36
37 #include "ndis.h"
38
39 #define NDIS_USE_WAN_WRAPPER                            0x00000001
40
41 #define NDIS_STATUS_TAPI_INDICATION                     ((NDIS_STATUS)0x40010080L)
42
43 /* NDIS_WAN_INFO.FramingBits constants */
44 #define RAS_FRAMING                     0x00000001
45 #define RAS_COMPRESSION                 0x00000002
46
47 #define ARAP_V1_FRAMING                 0x00000004
48 #define ARAP_V2_FRAMING                 0x00000008
49 #define ARAP_FRAMING                    (ARAP_V1_FRAMING | ARAP_V2_FRAMING)
50
51 #define PPP_MULTILINK_FRAMING           0x00000010
52 #define PPP_SHORT_SEQUENCE_HDR_FORMAT   0x00000020
53 #define PPP_MC_MULTILINK_FRAMING        0x00000040
54
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
59
60 #define SLIP_FRAMING                    0x00001000
61 #define SLIP_VJ_COMPRESSION             0x00002000
62 #define SLIP_VJ_AUTODETECT              0x00004000
63
64 #define MEDIA_NRZ_ENCODING              0x00010000
65 #define MEDIA_NRZI_ENCODING             0x00020000
66 #define MEDIA_NLPID                     0x00040000
67
68 #define RFC_1356_FRAMING                0x00100000
69 #define RFC_1483_FRAMING                0x00200000
70 #define RFC_1490_FRAMING                0x00400000
71 #define LLC_ENCAPSULATION               0x00800000
72
73 #define SHIVA_FRAMING                   0x01000000
74 #define NBF_PRESERVE_MAC_ADDRESS        0x01000000
75
76 #define PASS_THROUGH_MODE               0x10000000
77 #define RAW_PASS_THROUGH_MODE           0x20000000
78
79 #define TAPI_PROVIDER                   0x80000000
80
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;
92
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;
106
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; 
120
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
128
129 /* NDIS_WAN_COMPRESS_INFO.CompType constants */
130 #define COMPTYPE_OUI                                                                                    0
131 #define COMPTYPE_NT31RAS                                                                        254
132 #define COMPTYPE_NONE                                                                                   255
133
134 typedef struct _NDIS_WAN_COMPRESS_INFO {
135         UCHAR  SessionKey[8];
136         ULONG  MSCompType;
137         UCHAR  CompType;
138         USHORT  CompLength;
139         _ANONYMOUS_UNION union {
140                 struct {
141                         UCHAR  CompOUI[3];
142                         UCHAR  CompSubType;
143                         UCHAR  CompValues[32];
144                 } Proprietary;
145                 struct {
146                         UCHAR  CompValues[32];
147                 } Public;
148         } DUMMYUNIONNAME;
149 } NDIS_WAN_COMPRESS_INFO;
150
151 typedef NDIS_WAN_COMPRESS_INFO *PNDIS_WAN_COMPRESS_INFO;
152
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;
158
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;
164
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;
182
183 #define NdisMWanInitializeWrapper(NdisWrapperHandle,    \
184                                   SystemSpecific1,              \
185                                   SystemSpecific2,              \
186                                   SystemSpecific3)              \
187 {                                                     \
188         NdisMInitializeWrapper(NdisWrapperHandle,               \
189                          SystemSpecific1,                       \
190                          SystemSpecific2,                       \
191                          SystemSpecific3);                      \
192 }
193
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;
200
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;
211
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;
222
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; 
227
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;
232
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;
249
250 #ifdef __cplusplus
251 }
252 #endif
253
254 #endif /* __NDISWAN_H */