Naveen Neel / shedskin
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ndiswan.h Source File

ndiswan.h

00001 /*
00002  * ndiswan.h
00003  *
00004  * Definitions for NDIS WAN miniport drivers
00005  *
00006  * This file is part of the w32api package.
00007  *
00008  * Contributors:
00009  *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
00010  *
00011  * THIS SOFTWARE IS NOT COPYRIGHTED
00012  *
00013  * This source code is offered for use in the public domain. You may
00014  * use, modify or distribute it freely.
00015  *
00016  * This code is distributed in the hope that it will be useful but
00017  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
00018  * DISCLAIMED. This includes but is not limited to warranties of
00019  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00020  *
00021  */
00022 
00023 #ifndef __NDISWAN_H
00024 #define __NDISWAN_H
00025 
00026 #if __GNUC__ >=3
00027 #pragma GCC system_header
00028 #endif
00029 
00030 #ifdef __cplusplus
00031 extern "C" {
00032 #endif
00033 
00034 #include "ndis.h"
00035 
00036 #define NDIS_USE_WAN_WRAPPER                    0x00000001
00037 
00038 #define NDIS_STATUS_TAPI_INDICATION             ((NDIS_STATUS)0x40010080L)
00039 
00040 /* NDIS_WAN_INFO.FramingBits constants */
00041 #define RAS_FRAMING                     0x00000001
00042 #define RAS_COMPRESSION                 0x00000002
00043 
00044 #define ARAP_V1_FRAMING                 0x00000004
00045 #define ARAP_V2_FRAMING                 0x00000008
00046 #define ARAP_FRAMING                    (ARAP_V1_FRAMING | ARAP_V2_FRAMING)
00047 
00048 #define PPP_MULTILINK_FRAMING           0x00000010
00049 #define PPP_SHORT_SEQUENCE_HDR_FORMAT   0x00000020
00050 #define PPP_MC_MULTILINK_FRAMING        0x00000040
00051 
00052 #define PPP_FRAMING                     0x00000100
00053 #define PPP_COMPRESS_ADDRESS_CONTROL    0x00000200
00054 #define PPP_COMPRESS_PROTOCOL_FIELD     0x00000400
00055 #define PPP_ACCM_SUPPORTED              0x00000800
00056 
00057 #define SLIP_FRAMING                    0x00001000
00058 #define SLIP_VJ_COMPRESSION             0x00002000
00059 #define SLIP_VJ_AUTODETECT              0x00004000
00060 
00061 #define MEDIA_NRZ_ENCODING              0x00010000
00062 #define MEDIA_NRZI_ENCODING             0x00020000
00063 #define MEDIA_NLPID                     0x00040000
00064 
00065 #define RFC_1356_FRAMING                0x00100000
00066 #define RFC_1483_FRAMING                0x00200000
00067 #define RFC_1490_FRAMING                0x00400000
00068 #define LLC_ENCAPSULATION               0x00800000
00069 
00070 #define SHIVA_FRAMING                   0x01000000
00071 #define NBF_PRESERVE_MAC_ADDRESS        0x01000000
00072 
00073 #define PASS_THROUGH_MODE               0x10000000
00074 #define RAW_PASS_THROUGH_MODE           0x20000000
00075 
00076 #define TAPI_PROVIDER                   0x80000000
00077 
00078 typedef struct _NDIS_WAN_INFO {
00079   /*OUT*/ ULONG  MaxFrameSize; 
00080   /*OUT*/ ULONG  MaxTransmit; 
00081   /*OUT*/ ULONG  HeaderPadding; 
00082   /*OUT*/ ULONG  TailPadding; 
00083   /*OUT*/ ULONG  Endpoints; 
00084   /*OUT*/ UINT  MemoryFlags; 
00085   /*OUT*/ NDIS_PHYSICAL_ADDRESS  HighestAcceptableAddress; 
00086   /*OUT*/ ULONG  FramingBits; 
00087   /*OUT*/ ULONG  DesiredACCM; 
00088 } NDIS_WAN_INFO, *PNDIS_WAN_INFO;
00089 
00090 typedef struct _NDIS_WAN_GET_LINK_INFO { 
00091   /*IN*/ NDIS_HANDLE  NdisLinkHandle; 
00092   /*OUT*/ ULONG  MaxSendFrameSize; 
00093   /*OUT*/ ULONG  MaxRecvFrameSize; 
00094   /*OUT*/ ULONG  HeaderPadding; 
00095   /*OUT*/ ULONG  TailPadding; 
00096   /*OUT*/ ULONG  SendFramingBits; 
00097   /*OUT*/ ULONG  RecvFramingBits; 
00098   /*OUT*/ ULONG  SendCompressionBits; 
00099   /*OUT*/ ULONG  RecvCompressionBits; 
00100   /*OUT*/ ULONG  SendACCM; 
00101   /*OUT*/ ULONG  RecvACCM; 
00102 } NDIS_WAN_GET_LINK_INFO, *PNDIS_WAN_GET_LINK_INFO;
00103 
00104 typedef struct _NDIS_WAN_SET_LINK_INFO { 
00105   /*IN*/ NDIS_HANDLE  NdisLinkHandle; 
00106   /*IN*/ ULONG  MaxSendFrameSize; 
00107   /*IN*/ ULONG  MaxRecvFrameSize; 
00108   /*IN*/ ULONG  HeaderPadding; 
00109   /*IN*/ ULONG  TailPadding; 
00110   /*IN*/ ULONG  SendFramingBits; 
00111   /*IN*/ ULONG  RecvFramingBits; 
00112   /*IN*/ ULONG  SendCompressionBits; 
00113   /*IN*/ ULONG  RecvCompressionBits; 
00114   /*IN*/ ULONG  SendACCM; 
00115   /*IN*/ ULONG  RecvACCM; 
00116 } NDIS_WAN_SET_LINK_INFO, *PNDIS_WAN_SET_LINK_INFO; 
00117 
00118 /* NDIS_WAN_COMPRESS_INFO.MSCompType constants */
00119 #define NDISWAN_COMPRESSION                 0x00000001
00120 #define NDISWAN_ENCRYPTION                  0x00000010
00121 #define NDISWAN_40_ENCRYPTION               0x00000020
00122 #define NDISWAN_128_ENCRYPTION              0x00000040
00123 #define NDISWAN_56_ENCRYPTION               0x00000080
00124 #define NDISWAN_HISTORY_LESS                0x01000000
00125 
00126 /* NDIS_WAN_COMPRESS_INFO.CompType constants */
00127 #define COMPTYPE_OUI                                            0
00128 #define COMPTYPE_NT31RAS                                    254
00129 #define COMPTYPE_NONE                                           255
00130 
00131 typedef struct _NDIS_WAN_COMPRESS_INFO {
00132     UCHAR  SessionKey[8];
00133     ULONG  MSCompType;
00134     UCHAR  CompType;
00135     USHORT  CompLength;
00136     _ANONYMOUS_UNION union {
00137         struct {
00138             UCHAR  CompOUI[3];
00139             UCHAR  CompSubType;
00140             UCHAR  CompValues[32];
00141         } Proprietary;
00142         struct {
00143             UCHAR  CompValues[32];
00144         } Public;
00145     } DUMMYUNIONNAME;
00146 } NDIS_WAN_COMPRESS_INFO;
00147 
00148 typedef NDIS_WAN_COMPRESS_INFO *PNDIS_WAN_COMPRESS_INFO;
00149 
00150 typedef struct _NDIS_WAN_GET_COMP_INFO { 
00151   /*IN*/ NDIS_HANDLE  NdisLinkHandle; 
00152   /*OUT*/ NDIS_WAN_COMPRESS_INFO  SendCapabilities; 
00153   /*OUT*/ NDIS_WAN_COMPRESS_INFO  RecvCapabilities; 
00154 } NDIS_WAN_GET_COMP_INFO, *PNDIS_WAN_GET_COMP_INFO;
00155 
00156 typedef struct _NDIS_WAN_SET_COMP_INFO {
00157   /*IN*/ NDIS_HANDLE  NdisLinkHandle;
00158   /*IN*/ NDIS_WAN_COMPRESS_INFO  SendCapabilities;
00159   /*IN*/ NDIS_WAN_COMPRESS_INFO  RecvCapabilities;
00160 } NDIS_WAN_SET_COMP_INFO, *PNDIS_WAN_SET_COMP_INFO;
00161 
00162 typedef struct _NDIS_WAN_GET_STATS_INFO {
00163   /*IN*/ NDIS_HANDLE  NdisLinkHandle;
00164   /*OUT*/ ULONG  BytesSent;
00165   /*OUT*/ ULONG  BytesRcvd;
00166   /*OUT*/ ULONG  FramesSent;
00167   /*OUT*/ ULONG  FramesRcvd;
00168   /*OUT*/ ULONG  CRCErrors;
00169   /*OUT*/ ULONG  TimeoutErrors;
00170   /*OUT*/ ULONG  AlignmentErrors;
00171   /*OUT*/ ULONG  SerialOverrunErrors;
00172   /*OUT*/ ULONG  FramingErrors;
00173   /*OUT*/ ULONG  BufferOverrunErrors;
00174   /*OUT*/ ULONG  BytesTransmittedUncompressed;
00175   /*OUT*/ ULONG  BytesReceivedUncompressed;
00176   /*OUT*/ ULONG  BytesTransmittedCompressed;
00177   /*OUT*/ ULONG  BytesReceivedCompressed;
00178 } NDIS_WAN_GET_STATS_INFO, *PNDIS_WAN_GET_STATS_INFO;
00179 
00180 #define NdisMWanInitializeWrapper(NdisWrapperHandle,    \
00181                                   SystemSpecific1,      \
00182                                   SystemSpecific2,      \
00183                                   SystemSpecific3)      \
00184 {                                                     \
00185     NdisMInitializeWrapper(NdisWrapperHandle,           \
00186                          SystemSpecific1,               \
00187                          SystemSpecific2,               \
00188                          SystemSpecific3);              \
00189 }
00190 
00191 typedef struct _NDIS_WAN_CO_INFO {
00192   /*OUT*/ ULONG  MaxFrameSize;
00193   /*OUT*/ ULONG  MaxSendWindow;
00194   /*OUT*/ ULONG  FramingBits;
00195   /*OUT*/ ULONG  DesiredACCM;
00196 } NDIS_WAN_CO_INFO, *PNDIS_WAN_CO_INFO;
00197 
00198 typedef struct _NDIS_WAN_CO_GET_LINK_INFO {
00199   /*OUT*/ ULONG  MaxSendFrameSize;
00200   /*OUT*/ ULONG  MaxRecvFrameSize;
00201   /*OUT*/ ULONG  SendFramingBits;
00202   /*OUT*/ ULONG  RecvFramingBits;
00203   /*OUT*/ ULONG  SendCompressionBits;
00204   /*OUT*/ ULONG  RecvCompressionBits;
00205   /*OUT*/ ULONG  SendACCM;
00206   /*OUT*/ ULONG  RecvACCM;
00207 } NDIS_WAN_CO_GET_LINK_INFO, *PNDIS_WAN_CO_GET_LINK_INFO;
00208 
00209 typedef struct _NDIS_WAN_CO_SET_LINK_INFO {
00210   /*IN*/ ULONG  MaxSendFrameSize;
00211   /*IN*/ ULONG  MaxRecvFrameSize;
00212   /*IN*/ ULONG  SendFramingBits;
00213   /*IN*/ ULONG  RecvFramingBits;
00214   /*IN*/ ULONG  SendCompressionBits;
00215   /*IN*/ ULONG  RecvCompressionBits;
00216   /*IN*/ ULONG  SendACCM;
00217   /*IN*/ ULONG  RecvACCM;
00218 } NDIS_WAN_CO_SET_LINK_INFO, *PNDIS_WAN_CO_SET_LINK_INFO;
00219 
00220 typedef struct _NDIS_WAN_CO_GET_COMP_INFO { 
00221   /*OUT*/ NDIS_WAN_COMPRESS_INFO  SendCapabilities; 
00222   /*OUT*/ NDIS_WAN_COMPRESS_INFO  RecvCapabilities; 
00223 } NDIS_WAN_CO_GET_COMP_INFO, *PNDIS_WAN_CO_GET_COMP_INFO; 
00224 
00225 typedef struct _NDIS_WAN_CO_SET_COMP_INFO {
00226   /*IN*/ NDIS_WAN_COMPRESS_INFO  SendCapabilities;
00227   /*IN*/ NDIS_WAN_COMPRESS_INFO  RecvCapabilities;
00228 } NDIS_WAN_CO_SET_COMP_INFO, *PNDIS_WAN_CO_SET_COMP_INFO;
00229 
00230 typedef struct _NDIS_WAN_CO_GET_STATS_INFO {
00231   /*OUT*/ ULONG  BytesSent;
00232   /*OUT*/ ULONG  BytesRcvd;
00233   /*OUT*/ ULONG  FramesSent;
00234   /*OUT*/ ULONG  FramesRcvd;
00235   /*OUT*/ ULONG  CRCErrors;
00236   /*OUT*/ ULONG  TimeoutErrors;
00237   /*OUT*/ ULONG  AlignmentErrors;
00238   /*OUT*/ ULONG  SerialOverrunErrors;
00239   /*OUT*/ ULONG  FramingErrors;
00240   /*OUT*/ ULONG  BufferOverrunErrors;
00241   /*OUT*/ ULONG  BytesTransmittedUncompressed;
00242   /*OUT*/ ULONG  BytesReceivedUncompressed;
00243   /*OUT*/ ULONG  BytesTransmittedCompressed;
00244   /*OUT*/ ULONG  BytesReceivedCompressed;
00245 } NDIS_WAN_CO_GET_STATS_INFO, *PNDIS_WAN_CO_GET_STATS_INFO;
00246 
00247 #ifdef __cplusplus
00248 }
00249 #endif
00250 
00251 #endif /* __NDISWAN_H */