diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/inc/wanpub.h | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to '')
-rw-r--r-- | private/inc/wanpub.h | 627 |
1 files changed, 627 insertions, 0 deletions
diff --git a/private/inc/wanpub.h b/private/inc/wanpub.h new file mode 100644 index 000000000..dcebe6758 --- /dev/null +++ b/private/inc/wanpub.h @@ -0,0 +1,627 @@ +/*++ + +Copyright (c) 1990-1995 Microsoft Corporation + +Module Name: + + Wanpub.h + +Abstract: + + This file contains all public data structures and defines used + by NdisWan. It defines the Ioctl interface to NdisWan as well + as the LineUp/LineDown interface between NdisWan and the transports. + +Author: + + Tony Bell (TonyBe) June 06, 1995 + +Environment: + + Kernel Mode + +Revision History: + + TonyBe 06/06/95 Created + +--*/ + +#ifndef _NDISWAN_PUB_ +#define _NDISWAN_PUB_ + +#ifndef NTSTATUS +typedef LONG NTSTATUS; +#endif + +#ifndef NDIS_HANDLE +typedef PVOID NDIS_HANDLE, *PNDIS_HANDLE; +#endif + +#ifndef NDIS_STRING +typedef UNICODE_STRING NDIS_STRING, *PNDIS_STRING; +#endif + +#ifndef NDIS_WAN_QUALITY + +#endif + +#include <ntddndis.h> + +// +// Different handle types that ndiswan expects +// +#define LINKHANDLE 0xABB0 +#define BUNDLEHANDLE 0xABB1 +#define CANCELEDHANDLE 0xABB2 + +// +// Different threshold event types +// +#define UPPER_THRESHOLD 0x00000000 +#define LOWER_THRESHOLD 0x00000001 + +// +// Unroute a bundle +// +#define PROTOCOL_UNROUTE 0xFFFF + +// +// Get Bundle's Idle time +// +#define BUNDLE_IDLE_TIME 0xFFFF + +#define MAX_PPP_HEADER 8 + +#define MAX_NAME_LENGTH 64 + +// +// NDISWAN_IO_PACKET flags +// +#define PACKET_IS_DIRECT 0x0001 +#define PACKET_IS_BROADCAST 0x0002 +#define PACKET_IS_MULTICAST 0x0004 + + +// +// Ioctl function codes should be kept contiguous. Dispatch +// table is in io.c. If a new function is added the dispatch +// table has to be updated! +// +#define FUNC_MAP_CONNECTION_ID 0 +#define FUNC_GET_BUNDLE_HANDLE 1 +#define FUNC_SET_FRIENDLY_NAME 2 +#define FUNC_ROUTE 3 +#define FUNC_ADD_LINK_TO_BUNDLE 4 +#define FUNC_ENUM_LINKS_IN_BUNDLE 5 +#define FUNC_SET_PROTOCOL_PRIORITY 6 +#define FUNC_SET_BANDWIDTH_ON_DEMAND 7 +#define FUNC_SET_THRESHOLD_EVENT 8 +#define FUNC_FLUSH_THRESHOLD_EVENTS 9 +#define FUNC_SEND_PACKET 10 +#define FUNC_RECEIVE_PACKET 11 +#define FUNC_FLUSH_RECEIVE_PACKETS 12 +#define FUNC_GET_STATS 13 +#define FUNC_SET_LINK_INFO 14 +#define FUNC_GET_LINK_INFO 15 +#define FUNC_SET_COMPRESSION_INFO 16 +#define FUNC_GET_COMPRESSION_INFO 17 +#define FUNC_SET_BRIDGE_INFO 18 +#define FUNC_GET_BRIDGE_INFO 19 +#define FUNC_SET_VJ_INFO 20 +#define FUNC_GET_VJ_INFO 21 +#define FUNC_SET_CIPX_INFO 22 +#define FUNC_GET_CIPX_INFO 23 +#define FUNC_SET_ENCRYPTION_INFO 24 +#define FUNC_GET_ENCRYPTION_INFO 25 +#define FUNC_SET_DEBUG_INFO 26 +#define FUNC_ENUM_ACTIVE_BUNDLES 27 +#define FUNC_GET_NDISWANCB 28 +#define FUNC_GET_ADAPTERCB 29 +#define FUNC_GET_WAN_ADAPTERCB 30 +#define FUNC_GET_BANDWIDTH_UTILIZATION 31 +#define FUNC_ENUM_PROTOCOL_UTILIZATION 32 +#define FUNC_ENUM_ADAPTERCB 33 +#define FUNC_ENUM_WAN_ADAPTERCB 34 +#define FUNC_GET_WAN_INFO 35 +#define FUNC_GET_IDLE_TIME 36 +#define FUNC_UNROUTE 37 + + +#ifdef NT // NT Specific stuff + +#define FILE_DEVICE_NDISWAN 0x030 + +#define NDISWAN_CTL_CODE(_Function) CTL_CODE(FILE_DEVICE_NDISWAN, _Function, METHOD_BUFFERED, FILE_ANY_ACCESS) + +#define IOCTL_NDISWAN_MAP_CONNECTION_ID NDISWAN_CTL_CODE(FUNC_MAP_CONNECTION_ID ) +#define IOCTL_NDISWAN_GET_BUNDLE_HANDLE NDISWAN_CTL_CODE(FUNC_GET_BUNDLE_HANDLE ) +#define IOCTL_NDISWAN_SET_FRIENDLY_NAME NDISWAN_CTL_CODE(FUNC_SET_FRIENDLY_NAME ) +#define IOCTL_NDISWAN_ROUTE NDISWAN_CTL_CODE(FUNC_ROUTE ) +#define IOCTL_NDISWAN_ADD_LINK_TO_BUNDLE NDISWAN_CTL_CODE(FUNC_ADD_LINK_TO_BUNDLE ) +#define IOCTL_NDISWAN_ENUM_LINKS_IN_BUNDLE NDISWAN_CTL_CODE(FUNC_ENUM_LINKS_IN_BUNDLE ) +#define IOCTL_NDISWAN_SET_PROTOCOL_PRIORITY NDISWAN_CTL_CODE(FUNC_SET_PROTOCOL_PRIORITY ) +#define IOCTL_NDISWAN_SET_BANDWIDTH_ON_DEMAND NDISWAN_CTL_CODE(FUNC_SET_BANDWIDTH_ON_DEMAND) +#define IOCTL_NDISWAN_SET_THRESHOLD_EVENT NDISWAN_CTL_CODE(FUNC_SET_THRESHOLD_EVENT ) +#define IOCTL_NDISWAN_FLUSH_THRESHOLD_EVENTS NDISWAN_CTL_CODE(FUNC_FLUSH_THRESHOLD_EVENTS) +#define IOCTL_NDISWAN_SEND_PACKET NDISWAN_CTL_CODE(FUNC_SEND_PACKET ) +#define IOCTL_NDISWAN_RECEIVE_PACKET NDISWAN_CTL_CODE(FUNC_RECEIVE_PACKET ) +#define IOCTL_NDISWAN_FLUSH_RECEIVE_PACKETS NDISWAN_CTL_CODE(FUNC_FLUSH_RECEIVE_PACKETS ) +#define IOCTL_NDISWAN_GET_STATS NDISWAN_CTL_CODE(FUNC_GET_STATS ) +#define IOCTL_NDISWAN_SET_LINK_INFO NDISWAN_CTL_CODE(FUNC_SET_LINK_INFO ) +#define IOCTL_NDISWAN_GET_LINK_INFO NDISWAN_CTL_CODE(FUNC_GET_LINK_INFO ) +#define IOCTL_NDISWAN_SET_COMPRESSION_INFO NDISWAN_CTL_CODE(FUNC_SET_COMPRESSION_INFO ) +#define IOCTL_NDISWAN_GET_COMPRESSION_INFO NDISWAN_CTL_CODE(FUNC_GET_COMPRESSION_INFO ) +#define IOCTL_NDISWAN_SET_BRIDGE_INFO NDISWAN_CTL_CODE(FUNC_SET_BRIDGE_INFO ) +#define IOCTL_NDISWAN_GET_BRIDGE_INFO NDISWAN_CTL_CODE(FUNC_GET_BRIDGE_INFO ) +#define IOCTL_NDISWAN_SET_VJ_INFO NDISWAN_CTL_CODE(FUNC_SET_VJ_INFO ) +#define IOCTL_NDISWAN_GET_VJ_INFO NDISWAN_CTL_CODE(FUNC_GET_VJ_INFO ) +#define IOCTL_NDISWAN_SET_CIPX_INFO NDISWAN_CTL_CODE(FUNC_SET_CIPX_INFO ) +#define IOCTL_NDISWAN_GET_CIPX_INFO NDISWAN_CTL_CODE(FUNC_GET_CIPX_INFO ) +#define IOCTL_NDISWAN_SET_ENCRYPTION_INFO NDISWAN_CTL_CODE(FUNC_SET_ENCRYPTION_INFO ) +#define IOCTL_NDISWAN_GET_ENCRYPTION_INFO NDISWAN_CTL_CODE(FUNC_GET_ENCRYPTION_INFO ) +#define IOCTL_NDISWAN_SET_DEBUG_INFO NDISWAN_CTL_CODE(FUNC_SET_DEBUG_INFO ) +#define IOCTL_NDISWAN_ENUM_ACTIVE_BUNDLES NDISWAN_CTL_CODE(FUNC_ENUM_ACTIVE_BUNDLES ) +#define IOCTL_NDISWAN_GET_NDISWANCB NDISWAN_CTL_CODE(FUNC_GET_NDISWANCB ) +#define IOCTL_NDISWAN_GET_ADAPTERCB NDISWAN_CTL_CODE(FUNC_GET_ADAPTERCB ) +#define IOCTL_NDISWAN_GET_WAN_ADAPTERCB NDISWAN_CTL_CODE(FUNC_GET_WAN_ADAPTERCB ) +#define IOCTL_NDISWAN_GET_BANDWIDTH_UTILIZATION NDISWAN_CTL_CODE(FUNC_GET_BANDWIDTH_UTILIZATION) +#define IOCTL_NDISWAN_ENUM_PROTOCOL_UTILIZATION NDISWAN_CTL_CODE(FUNC_ENUM_PROTOCOL_UTILIZATION) +#define IOCTL_NDISWAN_ENUM_ADAPTERCB NDISWAN_CTL_CODE(FUNC_ENUM_ADAPTERCB ) +#define IOCTL_NDISWAN_ENUM_WAN_ADAPTERCB NDISWAN_CTL_CODE(FUNC_ENUM_WAN_ADAPTERCB ) +#define IOCTL_NDISWAN_GET_WAN_INFO NDISWAN_CTL_CODE(FUNC_GET_WAN_INFO ) +#define IOCTL_NDISWAN_GET_IDLE_TIME NDISWAN_CTL_CODE(FUNC_GET_IDLE_TIME ) +#define IOCTL_NDISWAN_UNROUTE NDISWAN_CTL_CODE(FUNC_UNROUTE ) + +#endif // end NT + +// +// NdisWan error messages +// +#define NDISWAN_ERROR_BASE 600 +#define NDISWAN_ERROR_INVALID_HANDLE NDISWAN_ERROR_BASE + 1 +#define NDISWAN_ERROR_ALREADY_ROUTED NDISWAN_ERROR_BASE + 2 +#define NDISWAN_ERROR_NO_ROUTE NDISWAN_ERROR_BASE + 3 +#define NDISWAN_ERROR_INVALID_HANDLE_TYPE NDISWAN_ERROR_BASE + 4 +#define NDISWAN_ERROR_INVALID_ADDRESS NDISWAN_ERROR_BASE + 5 + +// +// Structure used to store wan statistics +// +typedef struct _WAN_STATS { + ULONG BytesTransmitted; + ULONG BytesReceived; + ULONG FramesTransmitted; + ULONG FramesReceived; + + ULONG CRCErrors; + ULONG TimeoutErrors; + ULONG AlignmentErrors; + ULONG SerialOverrunErrors; + ULONG FramingErrors; + ULONG BufferOverrunErrors; + + ULONG BytesTransmittedUncompressed; + ULONG BytesReceivedUncompressed; + ULONG BytesTransmittedCompressed; + ULONG BytesReceivedCompressed; +} WAN_STATS, *PWAN_STATS; + +// +// Structure used to get and set WAN Link Information +// Needs to be kept in sync with NDIS_WAN_SET_LINK_INFO +// and NDIS_WAN_GET_LINK_INFO in ndiswan.h +// +typedef struct _WAN_LINK_INFO { + IN ULONG MaxSendFrameSize; + IN ULONG MaxRecvFrameSize; + ULONG HeaderPadding; + ULONG TailPadding; + IN ULONG SendFramingBits; + IN ULONG RecvFramingBits; + IN ULONG SendCompressionBits; + IN ULONG RecvCompressionBits; + IN ULONG SendACCM; + IN ULONG RecvACCM; + IN ULONG MaxRSendFrameSize; + IN ULONG MaxRRecvFrameSize; +} WAN_LINK_INFO, *PWAN_LINK_INFO; + +// +// Structure used to get general information about +// a wan link +// +typedef struct _WAN_INFO { + OUT ULONG MaxFrameSize; + OUT ULONG MaxTransmit; + OUT ULONG FramingBits; + OUT ULONG DesiredACCM; + OUT ULONG MaxReconstructedFrameSize; + OUT ULONG LinkSpeed; +} WAN_INFO, *PWAN_INFO; + +// +// Structure used to set Protocol Utilization +// +typedef struct _PROTOCOL_UTILIZATION { + USHORT usProtocolType; + USHORT usUtilization; +} PROTOCOL_UTILIZATION, *PPROTOCOL_UTILIZATION; + +// +// Encryption key sizes +// +#ifndef MAX_SESSIONKEY_SIZE +#define MAX_SESSIONKEY_SIZE 8 +#endif + +#ifndef MAX_USERSESSIONKEY_SIZE +#define MAX_USERSESSIONKEY_SIZE 16 +#endif + +#ifndef MAX_CHALLENGE_SIZE +#define MAX_CHALLENGE_SIZE 8 +#endif +// +// Structure used to get and set compression information +// +typedef struct _COMPRESS_INFO { + UCHAR LMSessionKey[MAX_SESSIONKEY_SIZE]; + UCHAR UserSessionKey[MAX_USERSESSIONKEY_SIZE]; + UCHAR Challenge[MAX_CHALLENGE_SIZE]; + ULONG MSCompType; + + UCHAR CompType; + USHORT CompLength; + + union { + struct { + UCHAR CompOUI[3]; + UCHAR CompSubType; + UCHAR CompValues[32]; + } Proprietary; + + struct { + UCHAR CompValues[32]; + } Public; + }; +} COMPRESS_INFO, *PCOMPRESS_INFO; + +// +// Structure used to get and set VJ header compression information +// +typedef struct _VJ_INFO { + USHORT IPCompressionProtocol; + UCHAR MaxSlotID; + UCHAR CompSlotID; +} VJ_INFO, *PVJ_INFO; + +// +// Structure used to get and set IPX header compression information +// +typedef struct _CIPX_INFO { + USHORT IPXCompressionProtocol; +} CIPX_INFO, *PCIPX_INFO; + +// +// Structure used to get and set encryption information +// +typedef struct __ENCRYPT_INFO { + UCHAR EncryptType; + USHORT EncryptLength; + + union { + struct { + UCHAR EncryptOUI[3]; + UCHAR EncryptSubtype; + UCHAR EncryptValues[1]; + } Proprietary; + + struct { + UCHAR EncryptValues[1]; + } Public; + }; +} ENCRYPT_INFO, *PENCRYPT_INFO; + +// +// Structure used in IOCTL_NDISWAN_MAP_CONNECTION_ID +// +typedef struct _NDISWAN_MAP_CONNECTION_ID { + OUT NDIS_HANDLE hLinkHandle; + OUT NDIS_HANDLE hBundleHandle; + IN NDIS_HANDLE hConnectionID; + IN NDIS_HANDLE hLinkContext; + IN NDIS_HANDLE hBundleContext; + IN ULONG ulNameLength; + IN CHAR szName[1]; +} NDISWAN_MAP_CONNECTION_ID, *PNDISWAN_MAP_CONNECTION_ID; + +// +// Structure used in IOCTL_NDISWAN_GET_BUNDLE_HANDLE +// +typedef struct _NDISWAN_GET_BUNDLE_HANDLE { + OUT NDIS_HANDLE hBundleHandle; + IN NDIS_HANDLE hLinkHandle; +} NDISWAN_GET_BUNDLE_HANDLE, *PNDISWAN_GET_BUNDLE_HANDLE; + +// +// Structure used in IOCTL_NDISWAN_SET_FRIENDLY_NAME +// +typedef struct _NDISWAN_SET_FRIENDLY_NAME { + IN NDIS_HANDLE hHandle; + IN USHORT usHandleType; + IN ULONG ulNameLength; + IN CHAR szName[1]; +} NDISWAN_SET_FRIENDLY_NAME, *PNDISWAN_SET_FRIENDLY_NAME; + +// +// Structure used in IOCTL_NDISWAN_ROUTE +// +typedef struct _NDISWAN_ROUTE { + IN NDIS_HANDLE hBundleHandle; + IN USHORT usProtocolType; + IN USHORT usBindingNameLength; + IN WCHAR BindingName[MAX_NAME_LENGTH]; + OUT USHORT usDeviceNameLength; + OUT WCHAR DeviceName[MAX_NAME_LENGTH]; + IN ULONG ulBufferLength; + IN UCHAR Buffer[1]; +} NDISWAN_ROUTE, *PNDISWAN_ROUTE; + +// +// Structure used in IOCTL_NDISWAN_UNROUTE +// +typedef struct _NDISWAN_UNROUTE { + IN NDIS_HANDLE hBundleHandle; + IN USHORT usProtocolType; +} NDISWAN_UNROUTE, *PNDISWAN_UNROUTE; + + +// +// Structure used in IOCTL_NDISWAN_ADD_LINK_TO_BUNDLE +// +typedef struct _NDISWAN_ADD_LINK_TO_BUNDLE { + IN NDIS_HANDLE hBundleHandle; + IN NDIS_HANDLE hLinkHandle; +} NDISWAN_ADD_LINK_TO_BUNDLE, *PNDISWAN_ADD_LINK_TO_BUNDLE; + +// +// Structure used in IOCTL_NDISWAN_ENUM_LINKS_IN_BUNDLE +// +typedef struct _NDISWAN_ENUM_LINKS_IN_BUNDLE { + IN NDIS_HANDLE hBundleHandle; + OUT ULONG ulNumberOfLinks; + OUT NDIS_HANDLE hLinkHandleArray[1]; +} NDISWAN_ENUM_LINKS_IN_BUNDLE, *PNDISWAN_ENUM_LINKS_IN_BUNDLE; + +// +// Structure used in IOCTL_NDISWAN_SET_PROTOCOL_PRIORITY +// +typedef struct _NDISWAN_SET_PROTOCOL_PRIORITY { + IN NDIS_HANDLE hBundleHandle; + IN USHORT usProtocolType; + IN USHORT usPriority; +} NDISWAN_SET_PROTOCOL_PRIORITY, *PNDISWAN_SET_PROTOCOL_PRIORITY; + +// +// Structure used in IOCTL_NDISWAN_SET_BANDWIDTH_ON_DEMAND +// +typedef struct _NDISWAN_SET_BANDWIDTH_ON_DEMAND { + IN NDIS_HANDLE hBundleHandle; + IN USHORT usLowerThreshold; + IN USHORT usUpperThreshold; + IN ULONG ulLowerSamplePeriod; + IN ULONG ulUpperSamplePeriod; +} NDISWAN_SET_BANDWIDTH_ON_DEMAND, *PNDISWAN_SET_BANDWIDTH_ON_DEMAND; + +// +// Structure used in IOCTL_NDISWAN_SET_THRESHOLD_EVENT +// +typedef struct _NDISWAN_SET_THRESHOLD_EVENT { + OUT NDIS_HANDLE hBundleHandle; + OUT ULONG ulThreshold; +} NDISWAN_SET_THRESHOLD_EVENT, *PNDISWAN_SET_THRESHOLD_EVENT; + +// +// Structure used in IOCTL_NDISWAN_SEND_PACKET and IOCTL_NDISWAN_RECEIVE_PACKET +// +typedef struct _NDISWAN_IO_PACKET { + IN OUT NDIS_HANDLE hHandle; + IN OUT USHORT usHandleType; + IN OUT USHORT usHeaderSize; + IN OUT USHORT usPacketSize; + IN OUT USHORT usPacketFlags; + IN OUT UCHAR PacketData[1]; +} NDISWAN_IO_PACKET, *PNDISWAN_IO_PACKET; + +// +// Structure used in IOCTL_NDISWAN_GET_STATS +// +typedef struct _NDISWAN_GET_STATS { + IN NDIS_HANDLE hHandle; + IN USHORT usHandleType; + OUT struct _STATS { + OUT WAN_STATS BundleStats; + OUT WAN_STATS LinkStats; + } Stats; +} NDISWAN_GET_STATS, *PNDISWAN_GET_STATS; + +// +// Structure used in IOCTL_NDISWAN_GET_BANDWIDTH_UTILIZATION +// +typedef struct _NDISWAN_GET_BANDWIDTH_UTILIZATION { + IN NDIS_HANDLE hBundleHandle; + OUT USHORT usBandwidthUtilization; +} NDISWAN_GET_BANDWIDTH_UTILIZATION, *PNDISWAN_GET_BANDWIDTH_UTILIZATION; + +// +// Structure used in IOCTL_NDISWAN_ENUM_PROTOCOL_UTILIZATION +// +typedef struct _NDISWAN_ENUM_PROTOCOL_UTILIZATION { + IN NDIS_HANDLE hBundleHandle; + OUT PROTOCOL_UTILIZATION ProtocolArray[1]; +} NDISWAN_ENUM_PROTOCOL_UTILIZATION, *PNDISWAN_ENUM_PROTOCOL_UTILIZATION; + +// +// Structure used in IOCTL_NDISWAN_ENUM_ACTIVE_BUNDLES +// +typedef struct _NDISWAN_ENUM_ACTIVE_BUNDLES { + OUT ULONG ulNumberOfActiveBundles; +} NDISWAN_ENUM_ACTIVE_BUNDLES, *PNDISWAN_ENUM_ACTIVE_BUNDLES; + +// +// Structure used in IOCTL_NDISWAN_SET_LINK_INFO +// +typedef struct _NDISWAN_SET_LINK_INFO { + IN NDIS_HANDLE hLinkHandle; + IN WAN_LINK_INFO LinkInfo; +} NDISWAN_SET_LINK_INFO, *PNDISWAN_SET_LINK_INFO; + +// +// Structure used in IOCTL_NDISWAN_GET_LINK_INFO +// +typedef struct _NDISWAN_GET_LINK_INFO { + IN NDIS_HANDLE hLinkHandle; + OUT WAN_LINK_INFO LinkInfo; +} NDISWAN_GET_LINK_INFO, *PNDISWAN_GET_LINK_INFO; + +// +// Structure used in IOCTL_NDISWAN_GET_WAN_INFO +// +typedef struct _NDISWAN_GET_WAN_INFO { + IN NDIS_HANDLE hLinkHandle; + OUT WAN_INFO WanInfo; +} NDISWAN_GET_WAN_INFO, *PNDISWAN_GET_WAN_INFO; + +// +// Structure used in IOCTL_NDISWAN_SET_COMPRESSION_INFO +// +typedef struct _NDISWAN_SET_COMPRESSION_INFO { + IN NDIS_HANDLE hLinkHandle; + IN COMPRESS_INFO SendCapabilities; + IN COMPRESS_INFO RecvCapabilities; +} NDISWAN_SET_COMPRESSION_INFO, *PNDISWAN_SET_COMPRESSION_INFO; + +// +// Structure used in IOCTL_NDISWAN_GET_COMPRESSION_INFO +// +typedef struct _NDISWAN_GET_COMPRESSION_INFO { + IN NDIS_HANDLE hLinkHandle; + OUT COMPRESS_INFO SendCapabilities; + OUT COMPRESS_INFO RecvCapabilities; +} NDISWAN_GET_COMPRESSION_INFO, *PNDISWAN_GET_COMPRESSION_INFO; + +// +// Structure used in IOCTL_NDISWAN_SET_VJ_INFO +// +typedef struct _NDISWAN_SET_VJ_INFO { + IN NDIS_HANDLE hLinkHandle; + IN VJ_INFO SendCapabilities; + IN VJ_INFO RecvCapabilities; +} NDISWAN_SET_VJ_INFO, *PNDISWAN_SET_VJ_INFO; + +// +// Structure used in IOCTL_NDISWAN_GET_VJ_INFO +// +typedef struct _NDISWAN_GET_VJ_INFO { + IN NDIS_HANDLE hLinkHandle; + OUT VJ_INFO SendCapabilities; + OUT VJ_INFO RecvCapabilities; +} NDISWAN_GET_VJ_INFO, *PNDISWAN_GET_VJ_INFO; + +// +// Structure used in IOCTL_NDISWAN_SET_BRIDGE_INFO +// +typedef struct _NDISWAN_SET_BRIDGE_INFO { + IN NDIS_HANDLE hLinkHandle; + IN USHORT LanSegmentNumber; + IN UCHAR BridgeNumber; + IN UCHAR BridgingOptions; + IN ULONG BridgingCapabilities; + IN UCHAR BridgingType; + IN UCHAR MacBytes[6]; +} NDISWAN_SET_BRIDGE_INFO, *PNDISWAN_SET_BRIDGE_INFO; + +// +// Structure used in IOCTL_NDISWAN_GET_BRIDGE_INFO +// +typedef struct _NDISWAN_GET_BRIDGE_INFO { + IN NDIS_HANDLE hLinkHandle; + OUT USHORT LanSegmentNumber; + OUT UCHAR BridgeNumber; + OUT UCHAR BridgingOptions; + OUT ULONG BridgingCapabilities; + OUT UCHAR BridgingType; + OUT UCHAR MacBytes[6]; +} NDISWAN_GET_BRIDGE_INFO, *PNDISWAN_GET_BRIDGE_INFO; + +// +// Structure used in IOCTL_NDISWAN_SET_CIPX_INFO +// +typedef struct _NDISWAN_SET_CIPX_INFO { + IN NDIS_HANDLE hLinkHandle; + IN CIPX_INFO SendCapabilities; + IN CIPX_INFO RecvCapabilities; +} NDISWAN_SET_CIPX_INFO, *PNDISWAN_SET_CIPX_INFO; + +// +// Structure used in IOCTL_NDISWAN_GET_CIPX_INFO +// +typedef struct _NDISWAN_GET_CIPX_INFO { + IN NDIS_HANDLE hLinkHandle; + OUT CIPX_INFO SendCapabilities; + OUT CIPX_INFO RecvCapabilities; +} NDISWAN_GET_CIPX_INFO, *PNDISWAN_GET_CIPX_INFO; + +// +// Structure used in IOCTL_NDISWAN_SET_ENCRYPTION_INFO +// +typedef struct _NDISWAN_SET_ENCRYPTION_INFO { + IN NDIS_HANDLE hLinkHandle; + IN ENCRYPT_INFO SendCapabilities; + IN ENCRYPT_INFO RecvCapabilities; +} NDISWAN_SET_ENCRYPTION_INFO, *PNDISWAN_SET_ENCRYPTION_INFO; + +// +// Structure used in IOCTL_NDISWAN_GET_ENCRYPTION_INFO +// +typedef struct _NDISWAN_GET_ENCRYPTION_INFO { + IN NDIS_HANDLE hLinkHandle; + IN ENCRYPT_INFO SendCapabilities; + IN ENCRYPT_INFO RecvCapabilities; +} NDISWAN_GET_ENCRYPTION_INFO, *PNDISWAN_GET_ENCRYPTION_INFO; + +// +// Structure used in IOCTL_NDISWAN_GET_IDLE_TIME +// +typedef struct _NDISWAN_GET_IDLE_TIME { + IN NDIS_HANDLE hBundleHandle; + IN USHORT usProtocolType; + OUT ULONG ulSeconds; +} NDISWAN_GET_IDLE_TIME, *PNDISWAN_GET_IDLE_TIME; + +// +// Structure used in IOCTL_NDISWAN_SET_DEBUG_INFO +// +typedef struct _NDISWAN_SET_DEBUG_INFO { + IN ULONG ulTraceLevel; + IN ULONG ulTraceMask; +}NDISWAN_SET_DEBUG_INFO, *PNDISWAN_SET_DEBUG_INFO; + +// +// Structure used in IOCTL_NDISWAN_ENUM_ADAPTERCB, WAN_ADAPTERCB +// +typedef struct _NDISWAN_ENUMCB { + OUT ULONG ulNumberOfCBs; + OUT PVOID Address[1]; +} NDISWAN_ENUMCB, *PNDISWAN_ENUMCB; + +// +// Structure used in IOCTL_NDISWAN_GET_NDISWANCB, ADAPTERCB, WAN_ADAPTERCB +// +typedef struct _NDISWAN_DUMPCB { + IN OUT PVOID Address; + OUT UCHAR Buffer[1]; +} NDISWAN_DUMPCB, *PNDISWAN_DUMPCB; + +#endif // WAN_PUB + |