[DDK]
[reactos.git] / include / ddk / ndiswan.h
index df411e2..924c49f 100644 (file)
  *
  */
 
-#ifndef __NDISWAN_H
-#define __NDISWAN_H
-
-#include "ndis.h"
+#pragma once
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#define NDIS_USE_WAN_WRAPPER                           0x00000001
+#define NDIS_USE_WAN_WRAPPER            0x00000001
 
-#define NDIS_STATUS_TAPI_INDICATION                    ((NDIS_STATUS)0x40010080L)
+#define NDIS_STATUS_TAPI_INDICATION     ((NDIS_STATUS)0x40010080L)
 
 /* NDIS_WAN_INFO.FramingBits constants */
 #define RAS_FRAMING                     0x00000001
@@ -71,177 +68,287 @@ extern "C" {
 
 #define TAPI_PROVIDER                   0x80000000
 
+#define BRIDGING_FLAG_LANFCS            0x00000001
+#define BRIDGING_FLAG_LANID             0x00000002
+#define BRIDGING_FLAG_PADDING           0x00000004
+
+#define BRIDGING_TINYGRAM               0x00000001
+#define BRIDGING_LANID                  0x00000002
+#define BRIDGING_NO_SPANNING_TREE       0x00000004
+#define BRIDGING_8021D_SPANNING_TREE    0x00000008
+#define BRIDGING_8021G_SPANNING_TREE    0x00000010
+#define BRIDGING_SOURCE_ROUTING         0x00000020
+#define BRIDGING_DEC_LANBRIDGE          0x00000040
+
+#define BRIDGING_TYPE_RESERVED          0x00000001
+#define BRIDGING_TYPE_8023_CANON        0x00000002
+#define BRIDGING_TYPE_8024_NO_CANON     0x00000004
+#define BRIDGING_TYPE_8025_NO_CANON     0x00000008
+#define BRIDGING_TYPE_FDDI_NO_CANON     0x00000010
+#define BRIDGING_TYPE_8024_CANON        0x00000400
+#define BRIDGING_TYPE_8025_CANON        0x00000800
+#define BRIDGING_TYPE_FDDI_CANON        0x00001000
+
+/* NDIS_WAN_COMPRESS_INFO.MSCompType constants */
+#define NDISWAN_COMPRESSION             0x00000001
+#define NDISWAN_ENCRYPTION              0x00000010
+#define NDISWAN_40_ENCRYPTION           0x00000020
+#define NDISWAN_128_ENCRYPTION          0x00000040
+#define NDISWAN_56_ENCRYPTION           0x00000080
+#define NDISWAN_HISTORY_LESS            0x01000000
+
+/* NDIS_WAN_COMPRESS_INFO.CompType constants */
+#define COMPTYPE_OUI                    0
+#define COMPTYPE_NT31RAS                254
+#define COMPTYPE_NONE                   255
+
+#define WAN_ERROR_CRC                   ((ULONG)0x00000001)
+#define WAN_ERROR_FRAMING               ((ULONG)0x00000002)
+#define WAN_ERROR_HARDWAREOVERRUN       ((ULONG)0x00000004)
+#define WAN_ERROR_BUFFEROVERRUN         ((ULONG)0x00000008)
+#define WAN_ERROR_TIMEOUT               ((ULONG)0x00000010)
+#define WAN_ERROR_ALIGNMENT             ((ULONG)0x00000020)
+
+#define NdisMWanInitializeWrapper(NdisWrapperHandle, \
+                                  SystemSpecific1,   \
+                                  SystemSpecific2,   \
+                                  SystemSpecific3)   \
+{                                                     \
+  NdisMInitializeWrapper(NdisWrapperHandle,           \
+                         SystemSpecific1,             \
+                         SystemSpecific2,             \
+                         SystemSpecific3);            \
+}
+
 typedef struct _NDIS_WAN_INFO {
-  OUT ULONG  MaxFrameSize;
-  OUT ULONG  MaxTransmit;
-  OUT ULONG  HeaderPadding;
-  OUT ULONG  TailPadding;
-  OUT ULONG  Endpoints;
-  OUT UINT  MemoryFlags;
-  OUT NDIS_PHYSICAL_ADDRESS  HighestAcceptableAddress;
-  OUT ULONG  FramingBits;
-  OUT ULONG  DesiredACCM;
+  OUT ULONG MaxFrameSize;
+  OUT ULONG MaxTransmit;
+  OUT ULONG HeaderPadding;
+  OUT ULONG TailPadding;
+  OUT ULONG Endpoints;
+  OUT UINT MemoryFlags;
+  OUT NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress;
+  OUT ULONG FramingBits;
+  OUT ULONG DesiredACCM;
 } NDIS_WAN_INFO, *PNDIS_WAN_INFO;
 
 typedef struct _NDIS_WAN_GET_LINK_INFO {
-  IN NDIS_HANDLE  NdisLinkHandle;
-  OUT ULONG  MaxSendFrameSize;
-  OUT ULONG  MaxRecvFrameSize;
-  OUT ULONG  HeaderPadding;
-  OUT ULONG  TailPadding;
-  OUT ULONG  SendFramingBits;
-  OUT ULONG  RecvFramingBits;
-  OUT ULONG  SendCompressionBits;
-  OUT ULONG  RecvCompressionBits;
-  OUT ULONG  SendACCM;
-  OUT ULONG  RecvACCM;
+  IN NDIS_HANDLE NdisLinkHandle;
+  IN ULONG MaxSendFrameSize;
+  OUT ULONG MaxRecvFrameSize;
+  OUT ULONG HeaderPadding;
+  OUT ULONG TailPadding;
+  OUT ULONG SendFramingBits;
+  OUT ULONG RecvFramingBits;
+  OUT ULONG SendCompressionBits;
+  OUT ULONG RecvCompressionBits;
+  OUT ULONG SendACCM;
+  OUT ULONG RecvACCM;
 } NDIS_WAN_GET_LINK_INFO, *PNDIS_WAN_GET_LINK_INFO;
 
 typedef struct _NDIS_WAN_SET_LINK_INFO {
-  IN NDIS_HANDLE  NdisLinkHandle;
-  IN ULONG  MaxSendFrameSize;
-  IN ULONG  MaxRecvFrameSize;
-  IN ULONG  HeaderPadding;
-  IN ULONG  TailPadding;
-  IN ULONG  SendFramingBits;
-  IN ULONG  RecvFramingBits;
-  IN ULONG  SendCompressionBits;
-  IN ULONG  RecvCompressionBits;
-  IN ULONG  SendACCM;
-  IN ULONG  RecvACCM;
+  IN NDIS_HANDLE NdisLinkHandle;
+  IN ULONG MaxSendFrameSize;
+  IN ULONG MaxRecvFrameSize;
+  IN ULONG HeaderPadding;
+  IN ULONG TailPadding;
+  IN ULONG SendFramingBits;
+  IN ULONG RecvFramingBits;
+  IN ULONG SendCompressionBits;
+  IN ULONG RecvCompressionBits;
+  IN ULONG SendACCM;
+  IN ULONG RecvACCM;
 } NDIS_WAN_SET_LINK_INFO, *PNDIS_WAN_SET_LINK_INFO;
 
-/* NDIS_WAN_COMPRESS_INFO.MSCompType constants */
-#define NDISWAN_COMPRESSION                            0x00000001
-#define NDISWAN_ENCRYPTION                     0x00000010
-#define NDISWAN_40_ENCRYPTION                  0x00000020
-#define NDISWAN_128_ENCRYPTION                 0x00000040
-#define NDISWAN_56_ENCRYPTION                  0x00000080
-#define NDISWAN_HISTORY_LESS                   0x01000000
-
-/* NDIS_WAN_COMPRESS_INFO.CompType constants */
-#define COMPTYPE_OUI                                                                                   0
-#define COMPTYPE_NT31RAS                                                                       254
-#define COMPTYPE_NONE                                                                                  255
+typedef struct _NDIS_WAN_GET_BRIDGE_INFO {
+  IN NDIS_HANDLE NdisLinkHandle;
+  OUT USHORT LanSegmentNumber;
+  OUT UCHAR BridgeNumber;
+  OUT UCHAR BridgingOptions;
+  OUT ULONG BridgingCapabilities;
+  OUT UCHAR BridgingType;
+  OUT UCHAR MacBytes[6];
+} NDIS_WAN_GET_BRIDGE_INFO, *PNDIS_WAN_GET_BRIDGE_INFO;
+
+typedef struct _NDIS_WAN_SET_BRIDGE_INFO {
+  IN NDIS_HANDLE NdisLinkHandle;
+  IN USHORT LanSegmentNumber;
+  IN UCHAR BridgeNumber;
+  IN UCHAR BridgingOptions;
+  IN ULONG BridgingCapabilities;
+  IN UCHAR BridgingType;
+  IN UCHAR MacBytes[6];
+} NDIS_WAN_SET_BRIDGE_INFO, *PNDIS_WAN_SET_BRIDGE_INFO;
 
 typedef struct _NDIS_WAN_COMPRESS_INFO {
-       UCHAR  SessionKey[8];
-       ULONG  MSCompType;
-       UCHAR  CompType;
-       USHORT  CompLength;
-       _ANONYMOUS_UNION union {
-               struct {
-                       UCHAR  CompOUI[3];
-                       UCHAR  CompSubType;
-                       UCHAR  CompValues[32];
-               } Proprietary;
-               struct {
-                       UCHAR  CompValues[32];
-               } Public;
-       } DUMMYUNIONNAME;
-} NDIS_WAN_COMPRESS_INFO;
-
-typedef NDIS_WAN_COMPRESS_INFO *PNDIS_WAN_COMPRESS_INFO;
+  UCHAR SessionKey[8];
+  ULONG MSCompType;
+  UCHAR CompType;
+  USHORT CompLength;
+  _ANONYMOUS_UNION union {
+    struct {
+      UCHAR CompOUI[3];
+      UCHAR CompSubType;
+      UCHAR CompValues[32];
+    } Proprietary;
+    struct {
+      UCHAR CompValues[32];
+    } Public;
+  } DUMMYUNIONNAME;
+} NDIS_WAN_COMPRESS_INFO, *PNDIS_WAN_COMPRESS_INFO;
 
 typedef struct _NDIS_WAN_GET_COMP_INFO {
-  IN NDIS_HANDLE  NdisLinkHandle;
-  OUT NDIS_WAN_COMPRESS_INFO  SendCapabilities;
-  OUT NDIS_WAN_COMPRESS_INFO  RecvCapabilities;
+  IN NDIS_HANDLE NdisLinkHandle;
+  OUT NDIS_WAN_COMPRESS_INFO SendCapabilities;
+  OUT NDIS_WAN_COMPRESS_INFO RecvCapabilities;
 } NDIS_WAN_GET_COMP_INFO, *PNDIS_WAN_GET_COMP_INFO;
 
 typedef struct _NDIS_WAN_SET_COMP_INFO {
-  IN NDIS_HANDLE  NdisLinkHandle;
-  IN NDIS_WAN_COMPRESS_INFO  SendCapabilities;
-  IN NDIS_WAN_COMPRESS_INFO  RecvCapabilities;
+  IN NDIS_HANDLE NdisLinkHandle;
+  IN NDIS_WAN_COMPRESS_INFO SendCapabilities;
+  IN NDIS_WAN_COMPRESS_INFO RecvCapabilities;
 } NDIS_WAN_SET_COMP_INFO, *PNDIS_WAN_SET_COMP_INFO;
 
 typedef struct _NDIS_WAN_GET_STATS_INFO {
-  IN NDIS_HANDLE  NdisLinkHandle;
-  OUT ULONG  BytesSent;
-  OUT ULONG  BytesRcvd;
-  OUT ULONG  FramesSent;
-  OUT ULONG  FramesRcvd;
-  OUT ULONG  CRCErrors;
-  OUT ULONG  TimeoutErrors;
-  OUT ULONG  AlignmentErrors;
-  OUT ULONG  SerialOverrunErrors;
-  OUT ULONG  FramingErrors;
-  OUT ULONG  BufferOverrunErrors;
-  OUT ULONG  BytesTransmittedUncompressed;
-  OUT ULONG  BytesReceivedUncompressed;
-  OUT ULONG  BytesTransmittedCompressed;
-  OUT ULONG  BytesReceivedCompressed;
+  IN NDIS_HANDLE NdisLinkHandle;
+  OUT ULONG BytesSent;
+  OUT ULONG BytesRcvd;
+  OUT ULONG FramesSent;
+  OUT ULONG FramesRcvd;
+  OUT ULONG CRCErrors;
+  OUT ULONG TimeoutErrors;
+  OUT ULONG AlignmentErrors;
+  OUT ULONG SerialOverrunErrors;
+  OUT ULONG FramingErrors;
+  OUT ULONG BufferOverrunErrors;
+  OUT ULONG BytesTransmittedUncompressed;
+  OUT ULONG BytesReceivedUncompressed;
+  OUT ULONG BytesTransmittedCompressed;
+  OUT ULONG BytesReceivedCompressed;
+  OUT ULONG TunnelPacketsRecieved;
+  OUT ULONG TunnelRecievePacketsPending;
+  OUT ULONG TunnelPacketsIndicatedUp;
+  OUT ULONG TunnelRecievePacketsRejected;
+  OUT ULONG TunnelPacketsSent;
+  OUT ULONG TunnelPacketsSentComplete;
+  OUT ULONG TunnelTransmitPacketsPending;
+  OUT ULONG TunnelPacketsTransmitError;
+  OUT ULONG TunnelPacketsSentError;
+  OUT ULONG TunnelTransmitPacketsRejected;
+  OUT ULONG TunnelAcksSent;
+  OUT ULONG TunnelAcksSentComplete;
+  OUT ULONG TunnelGeneric1;
+  OUT ULONG TunnelGeneric2;
+  OUT ULONG TunnelGeneric3;
 } NDIS_WAN_GET_STATS_INFO, *PNDIS_WAN_GET_STATS_INFO;
 
-#define NdisMWanInitializeWrapper(NdisWrapperHandle,   \
-                                  SystemSpecific1,             \
-                                  SystemSpecific2,             \
-                                  SystemSpecific3)             \
-{                                                     \
-       NdisMInitializeWrapper(NdisWrapperHandle,               \
-                         SystemSpecific1,                      \
-                         SystemSpecific2,                      \
-                         SystemSpecific3);                     \
-}
+typedef struct _NDIS_MAC_LINE_UP {
+  IN ULONG LinkSpeed;
+  IN NDIS_WAN_QUALITY Quality;
+  IN USHORT SendWindow;
+  IN NDIS_HANDLE ConnectionWrapperID;
+  IN NDIS_HANDLE NdisLinkHandle;
+  OUT NDIS_HANDLE NdisLinkContext;
+} NDIS_MAC_LINE_UP, *PNDIS_MAC_LINE_UP;
+
+typedef struct _NDIS_MAC_LINE_DOWN {
+  IN NDIS_HANDLE NdisLinkContext;
+} NDIS_MAC_LINE_DOWN, *PNDIS_MAC_LINE_DOWN;
+
+typedef struct _NDIS_MAC_FRAGMENT {
+  IN NDIS_HANDLE NdisLinkContext;
+  IN ULONG Errors;
+} NDIS_MAC_FRAGMENT, *PNDIS_MAC_FRAGMENT;
 
 typedef struct _NDIS_WAN_CO_INFO {
-  OUT ULONG  MaxFrameSize;
-  OUT ULONG  MaxSendWindow;
-  OUT ULONG  FramingBits;
-  OUT ULONG  DesiredACCM;
+  OUT ULONG MaxFrameSize;
+  OUT ULONG MaxSendWindow;
+  OUT ULONG FramingBits;
+  OUT ULONG DesiredACCM;
 } NDIS_WAN_CO_INFO, *PNDIS_WAN_CO_INFO;
 
 typedef struct _NDIS_WAN_CO_GET_LINK_INFO {
-  OUT ULONG  MaxSendFrameSize;
-  OUT ULONG  MaxRecvFrameSize;
-  OUT ULONG  SendFramingBits;
-  OUT ULONG  RecvFramingBits;
-  OUT ULONG  SendCompressionBits;
-  OUT ULONG  RecvCompressionBits;
-  OUT ULONG  SendACCM;
-  OUT ULONG  RecvACCM;
+  OUT ULONG MaxSendFrameSize;
+  OUT ULONG MaxRecvFrameSize;
+  OUT ULONG SendFramingBits;
+  OUT ULONG RecvFramingBits;
+  OUT ULONG SendCompressionBits;
+  OUT ULONG RecvCompressionBits;
+  OUT ULONG SendACCM;
+  OUT ULONG RecvACCM;
 } NDIS_WAN_CO_GET_LINK_INFO, *PNDIS_WAN_CO_GET_LINK_INFO;
 
 typedef struct _NDIS_WAN_CO_SET_LINK_INFO {
-  IN ULONG  MaxSendFrameSize;
-  IN ULONG  MaxRecvFrameSize;
-  IN ULONG  SendFramingBits;
-  IN ULONG  RecvFramingBits;
-  IN ULONG  SendCompressionBits;
-  IN ULONG  RecvCompressionBits;
-  IN ULONG  SendACCM;
-  IN ULONG  RecvACCM;
+  IN ULONG MaxSendFrameSize;
+  IN ULONG MaxRecvFrameSize;
+  IN ULONG SendFramingBits;
+  IN ULONG RecvFramingBits;
+  IN ULONG SendCompressionBits;
+  IN ULONG RecvCompressionBits;
+  IN ULONG SendACCM;
+  IN ULONG RecvACCM;
 } NDIS_WAN_CO_SET_LINK_INFO, *PNDIS_WAN_CO_SET_LINK_INFO;
 
 typedef struct _NDIS_WAN_CO_GET_COMP_INFO {
-  OUT NDIS_WAN_COMPRESS_INFO  SendCapabilities;
-  OUT NDIS_WAN_COMPRESS_INFO  RecvCapabilities;
+  OUT NDIS_WAN_COMPRESS_INFO SendCapabilities;
+  OUT NDIS_WAN_COMPRESS_INFO RecvCapabilities;
 } NDIS_WAN_CO_GET_COMP_INFO, *PNDIS_WAN_CO_GET_COMP_INFO;
 
 typedef struct _NDIS_WAN_CO_SET_COMP_INFO {
-  IN NDIS_WAN_COMPRESS_INFO  SendCapabilities;
-  IN NDIS_WAN_COMPRESS_INFO  RecvCapabilities;
+  IN NDIS_WAN_COMPRESS_INFO SendCapabilities;
+  IN NDIS_WAN_COMPRESS_INFO RecvCapabilities;
 } NDIS_WAN_CO_SET_COMP_INFO, *PNDIS_WAN_CO_SET_COMP_INFO;
 
 typedef struct _NDIS_WAN_CO_GET_STATS_INFO {
-  OUT ULONG  BytesSent;
-  OUT ULONG  BytesRcvd;
-  OUT ULONG  FramesSent;
-  OUT ULONG  FramesRcvd;
-  OUT ULONG  CRCErrors;
-  OUT ULONG  TimeoutErrors;
-  OUT ULONG  AlignmentErrors;
-  OUT ULONG  SerialOverrunErrors;
-  OUT ULONG  FramingErrors;
-  OUT ULONG  BufferOverrunErrors;
-  OUT ULONG  BytesTransmittedUncompressed;
-  OUT ULONG  BytesReceivedUncompressed;
-  OUT ULONG  BytesTransmittedCompressed;
-  OUT ULONG  BytesReceivedCompressed;
+  OUT ULONG BytesSent;
+  OUT ULONG BytesRcvd;
+  OUT ULONG FramesSent;
+  OUT ULONG FramesRcvd;
+  OUT ULONG CRCErrors;
+  OUT ULONG TimeoutErrors;
+  OUT ULONG AlignmentErrors;
+  OUT ULONG SerialOverrunErrors;
+  OUT ULONG FramingErrors;
+  OUT ULONG BufferOverrunErrors;
+  OUT ULONG BytesTransmittedUncompressed;
+  OUT ULONG BytesReceivedUncompressed;
+  OUT ULONG BytesTransmittedCompressed;
+  OUT ULONG BytesReceivedCompressed;
+  OUT ULONG TunnelPacketsRecieved;
+  OUT ULONG TunnelRecievePacketsPending;
+  OUT ULONG TunnelPacketsIndicatedUp;
+  OUT ULONG TunnelRecievePacketsRejected;
+  OUT ULONG TunnelPacketsSent;
+  OUT ULONG TunnelPacketsSentComplete;
+  OUT ULONG TunnelTransmitPacketsPending;
+  OUT ULONG TunnelPacketsTransmitError;
+  OUT ULONG TunnelPacketsSentError;
+  OUT ULONG TunnelTransmitPacketsRejected;
+  OUT ULONG TunnelAcksSent;
+  OUT ULONG TunnelAcksSentComplete;
+  OUT ULONG TunnelGeneric1;
+  OUT ULONG TunnelGeneric2;
+  OUT ULONG TunnelGeneric3;
 } NDIS_WAN_CO_GET_STATS_INFO, *PNDIS_WAN_CO_GET_STATS_INFO;
 
+typedef struct _NDIS_WAN_CO_FRAGMENT {
+  IN ULONG Errors;
+} NDIS_WAN_CO_FRAGMENT, *PNDIS_WAN_CO_FRAGMENT;
+
+typedef struct _WAN_CO_LINKPARAMS {
+  ULONG TransmitSpeed;
+  ULONG ReceiveSpeed;
+  ULONG SendWindow;
+} WAN_CO_LINKPARAMS, *PWAN_CO_LINKPARAMS;
+
+typedef struct _WAN_CO_MTULINKPARAMS {
+  ULONG Version;
+  ULONG TransmitSpeed;
+  ULONG ReceiveSpeed;
+  ULONG SendWindow;
+  ULONG MTU;
+} WAN_CO_MTULINKPARAMS, *PWAN_CO_MTULINKPARAMS;
+
 #ifdef __cplusplus
 }
 #endif
-
-#endif /* __NDISWAN_H */