home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 April / PCWorld_2008-04_cd.bin / temacd / devc++ / devcpp-4.9.9.2_setup.exe / ndiswan.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  8KB  |  252 lines

  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 */
  252.