OSDN Git Service

66fb0de6edb2e2a17a4b3620ca51501800e70fc0
[pf3gnuchains/pf3gnuchains3x.git] / winsup / 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 */