OSDN Git Service

5eb7d22840e8d41a551463cdf3bc05f3119302f5
[mingw/mingw-org-wsl.git] / w32api / 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 #ifndef __NDISWAN_H
24 #define __NDISWAN_H
25
26 #if __GNUC__ >=3
27 #pragma GCC system_header
28 #endif
29
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33
34 #include "ndis.h"
35
36 #define NDIS_USE_WAN_WRAPPER                            0x00000001
37
38 #define NDIS_STATUS_TAPI_INDICATION                     ((NDIS_STATUS)0x40010080L)
39
40 /* NDIS_WAN_INFO.FramingBits constants */
41 #define RAS_FRAMING                     0x00000001
42 #define RAS_COMPRESSION                 0x00000002
43
44 #define ARAP_V1_FRAMING                 0x00000004
45 #define ARAP_V2_FRAMING                 0x00000008
46 #define ARAP_FRAMING                    (ARAP_V1_FRAMING | ARAP_V2_FRAMING)
47
48 #define PPP_MULTILINK_FRAMING           0x00000010
49 #define PPP_SHORT_SEQUENCE_HDR_FORMAT   0x00000020
50 #define PPP_MC_MULTILINK_FRAMING        0x00000040
51
52 #define PPP_FRAMING                     0x00000100
53 #define PPP_COMPRESS_ADDRESS_CONTROL    0x00000200
54 #define PPP_COMPRESS_PROTOCOL_FIELD     0x00000400
55 #define PPP_ACCM_SUPPORTED              0x00000800
56
57 #define SLIP_FRAMING                    0x00001000
58 #define SLIP_VJ_COMPRESSION             0x00002000
59 #define SLIP_VJ_AUTODETECT              0x00004000
60
61 #define MEDIA_NRZ_ENCODING              0x00010000
62 #define MEDIA_NRZI_ENCODING             0x00020000
63 #define MEDIA_NLPID                     0x00040000
64
65 #define RFC_1356_FRAMING                0x00100000
66 #define RFC_1483_FRAMING                0x00200000
67 #define RFC_1490_FRAMING                0x00400000
68 #define LLC_ENCAPSULATION               0x00800000
69
70 #define SHIVA_FRAMING                   0x01000000
71 #define NBF_PRESERVE_MAC_ADDRESS        0x01000000
72
73 #define PASS_THROUGH_MODE               0x10000000
74 #define RAW_PASS_THROUGH_MODE           0x20000000
75
76 #define TAPI_PROVIDER                   0x80000000
77
78 typedef struct _NDIS_WAN_INFO {
79   /*OUT*/ ULONG  MaxFrameSize;
80   /*OUT*/ ULONG  MaxTransmit;
81   /*OUT*/ ULONG  HeaderPadding;
82   /*OUT*/ ULONG  TailPadding;
83   /*OUT*/ ULONG  Endpoints;
84   /*OUT*/ UINT  MemoryFlags;
85   /*OUT*/ NDIS_PHYSICAL_ADDRESS  HighestAcceptableAddress;
86   /*OUT*/ ULONG  FramingBits;
87   /*OUT*/ ULONG  DesiredACCM;
88 } NDIS_WAN_INFO, *PNDIS_WAN_INFO;
89
90 typedef struct _NDIS_WAN_GET_LINK_INFO {
91   /*IN*/ NDIS_HANDLE  NdisLinkHandle;
92   /*OUT*/ ULONG  MaxSendFrameSize;
93   /*OUT*/ ULONG  MaxRecvFrameSize;
94   /*OUT*/ ULONG  HeaderPadding;
95   /*OUT*/ ULONG  TailPadding;
96   /*OUT*/ ULONG  SendFramingBits;
97   /*OUT*/ ULONG  RecvFramingBits;
98   /*OUT*/ ULONG  SendCompressionBits;
99   /*OUT*/ ULONG  RecvCompressionBits;
100   /*OUT*/ ULONG  SendACCM;
101   /*OUT*/ ULONG  RecvACCM;
102 } NDIS_WAN_GET_LINK_INFO, *PNDIS_WAN_GET_LINK_INFO;
103
104 typedef struct _NDIS_WAN_SET_LINK_INFO {
105   /*IN*/ NDIS_HANDLE  NdisLinkHandle;
106   /*IN*/ ULONG  MaxSendFrameSize;
107   /*IN*/ ULONG  MaxRecvFrameSize;
108   /*IN*/ ULONG  HeaderPadding;
109   /*IN*/ ULONG  TailPadding;
110   /*IN*/ ULONG  SendFramingBits;
111   /*IN*/ ULONG  RecvFramingBits;
112   /*IN*/ ULONG  SendCompressionBits;
113   /*IN*/ ULONG  RecvCompressionBits;
114   /*IN*/ ULONG  SendACCM;
115   /*IN*/ ULONG  RecvACCM;
116 } NDIS_WAN_SET_LINK_INFO, *PNDIS_WAN_SET_LINK_INFO;
117
118 /* NDIS_WAN_COMPRESS_INFO.MSCompType constants */
119 #define NDISWAN_COMPRESSION                     0x00000001
120 #define NDISWAN_ENCRYPTION                      0x00000010
121 #define NDISWAN_40_ENCRYPTION                   0x00000020
122 #define NDISWAN_128_ENCRYPTION                  0x00000040
123 #define NDISWAN_56_ENCRYPTION                   0x00000080
124 #define NDISWAN_HISTORY_LESS                    0x01000000
125
126 /* NDIS_WAN_COMPRESS_INFO.CompType constants */
127 #define COMPTYPE_OUI                                                                                    0
128 #define COMPTYPE_NT31RAS                                                                        254
129 #define COMPTYPE_NONE                                                                                   255
130
131 typedef struct _NDIS_WAN_COMPRESS_INFO {
132         UCHAR  SessionKey[8];
133         ULONG  MSCompType;
134         UCHAR  CompType;
135         USHORT  CompLength;
136         _ANONYMOUS_UNION union {
137                 struct {
138                         UCHAR  CompOUI[3];
139                         UCHAR  CompSubType;
140                         UCHAR  CompValues[32];
141                 } Proprietary;
142                 struct {
143                         UCHAR  CompValues[32];
144                 } Public;
145         } DUMMYUNIONNAME;
146 } NDIS_WAN_COMPRESS_INFO;
147
148 typedef NDIS_WAN_COMPRESS_INFO *PNDIS_WAN_COMPRESS_INFO;
149
150 typedef struct _NDIS_WAN_GET_COMP_INFO {
151   /*IN*/ NDIS_HANDLE  NdisLinkHandle;
152   /*OUT*/ NDIS_WAN_COMPRESS_INFO  SendCapabilities;
153   /*OUT*/ NDIS_WAN_COMPRESS_INFO  RecvCapabilities;
154 } NDIS_WAN_GET_COMP_INFO, *PNDIS_WAN_GET_COMP_INFO;
155
156 typedef struct _NDIS_WAN_SET_COMP_INFO {
157   /*IN*/ NDIS_HANDLE  NdisLinkHandle;
158   /*IN*/ NDIS_WAN_COMPRESS_INFO  SendCapabilities;
159   /*IN*/ NDIS_WAN_COMPRESS_INFO  RecvCapabilities;
160 } NDIS_WAN_SET_COMP_INFO, *PNDIS_WAN_SET_COMP_INFO;
161
162 typedef struct _NDIS_WAN_GET_STATS_INFO {
163   /*IN*/ NDIS_HANDLE  NdisLinkHandle;
164   /*OUT*/ ULONG  BytesSent;
165   /*OUT*/ ULONG  BytesRcvd;
166   /*OUT*/ ULONG  FramesSent;
167   /*OUT*/ ULONG  FramesRcvd;
168   /*OUT*/ ULONG  CRCErrors;
169   /*OUT*/ ULONG  TimeoutErrors;
170   /*OUT*/ ULONG  AlignmentErrors;
171   /*OUT*/ ULONG  SerialOverrunErrors;
172   /*OUT*/ ULONG  FramingErrors;
173   /*OUT*/ ULONG  BufferOverrunErrors;
174   /*OUT*/ ULONG  BytesTransmittedUncompressed;
175   /*OUT*/ ULONG  BytesReceivedUncompressed;
176   /*OUT*/ ULONG  BytesTransmittedCompressed;
177   /*OUT*/ ULONG  BytesReceivedCompressed;
178 } NDIS_WAN_GET_STATS_INFO, *PNDIS_WAN_GET_STATS_INFO;
179
180 #define NdisMWanInitializeWrapper(NdisWrapperHandle,    \
181                                   SystemSpecific1,              \
182                                   SystemSpecific2,              \
183                                   SystemSpecific3)              \
184 {                                                     \
185         NdisMInitializeWrapper(NdisWrapperHandle,               \
186                          SystemSpecific1,                       \
187                          SystemSpecific2,                       \
188                          SystemSpecific3);                      \
189 }
190
191 typedef struct _NDIS_WAN_CO_INFO {
192   /*OUT*/ ULONG  MaxFrameSize;
193   /*OUT*/ ULONG  MaxSendWindow;
194   /*OUT*/ ULONG  FramingBits;
195   /*OUT*/ ULONG  DesiredACCM;
196 } NDIS_WAN_CO_INFO, *PNDIS_WAN_CO_INFO;
197
198 typedef struct _NDIS_WAN_CO_GET_LINK_INFO {
199   /*OUT*/ ULONG  MaxSendFrameSize;
200   /*OUT*/ ULONG  MaxRecvFrameSize;
201   /*OUT*/ ULONG  SendFramingBits;
202   /*OUT*/ ULONG  RecvFramingBits;
203   /*OUT*/ ULONG  SendCompressionBits;
204   /*OUT*/ ULONG  RecvCompressionBits;
205   /*OUT*/ ULONG  SendACCM;
206   /*OUT*/ ULONG  RecvACCM;
207 } NDIS_WAN_CO_GET_LINK_INFO, *PNDIS_WAN_CO_GET_LINK_INFO;
208
209 typedef struct _NDIS_WAN_CO_SET_LINK_INFO {
210   /*IN*/ ULONG  MaxSendFrameSize;
211   /*IN*/ ULONG  MaxRecvFrameSize;
212   /*IN*/ ULONG  SendFramingBits;
213   /*IN*/ ULONG  RecvFramingBits;
214   /*IN*/ ULONG  SendCompressionBits;
215   /*IN*/ ULONG  RecvCompressionBits;
216   /*IN*/ ULONG  SendACCM;
217   /*IN*/ ULONG  RecvACCM;
218 } NDIS_WAN_CO_SET_LINK_INFO, *PNDIS_WAN_CO_SET_LINK_INFO;
219
220 typedef struct _NDIS_WAN_CO_GET_COMP_INFO {
221   /*OUT*/ NDIS_WAN_COMPRESS_INFO  SendCapabilities;
222   /*OUT*/ NDIS_WAN_COMPRESS_INFO  RecvCapabilities;
223 } NDIS_WAN_CO_GET_COMP_INFO, *PNDIS_WAN_CO_GET_COMP_INFO;
224
225 typedef struct _NDIS_WAN_CO_SET_COMP_INFO {
226   /*IN*/ NDIS_WAN_COMPRESS_INFO  SendCapabilities;
227   /*IN*/ NDIS_WAN_COMPRESS_INFO  RecvCapabilities;
228 } NDIS_WAN_CO_SET_COMP_INFO, *PNDIS_WAN_CO_SET_COMP_INFO;
229
230 typedef struct _NDIS_WAN_CO_GET_STATS_INFO {
231   /*OUT*/ ULONG  BytesSent;
232   /*OUT*/ ULONG  BytesRcvd;
233   /*OUT*/ ULONG  FramesSent;
234   /*OUT*/ ULONG  FramesRcvd;
235   /*OUT*/ ULONG  CRCErrors;
236   /*OUT*/ ULONG  TimeoutErrors;
237   /*OUT*/ ULONG  AlignmentErrors;
238   /*OUT*/ ULONG  SerialOverrunErrors;
239   /*OUT*/ ULONG  FramingErrors;
240   /*OUT*/ ULONG  BufferOverrunErrors;
241   /*OUT*/ ULONG  BytesTransmittedUncompressed;
242   /*OUT*/ ULONG  BytesReceivedUncompressed;
243   /*OUT*/ ULONG  BytesTransmittedCompressed;
244   /*OUT*/ ULONG  BytesReceivedCompressed;
245 } NDIS_WAN_CO_GET_STATS_INFO, *PNDIS_WAN_CO_GET_STATS_INFO;
246
247 #ifdef __cplusplus
248 }
249 #endif
250
251 #endif /* __NDISWAN_H */