//**************************************************************************** // // File: wancfg.h // Content: This file contains the general WAN-device related declaration // // Copyright (c) 1992-1995, Microsoft Corporation, all rights reserved // // History: // Tues 8-15-95 ScottH Created // //**************************************************************************** #ifndef _WANCFG_H_ #define _WANCFG_H_ // // Device types known to the WAN.TSP // #define WAN_DEVICETYPE_ISDN 0 #define WAN_DEVICETYPE_PPTP 1 #define WAN_DEVICETYPE_ATM 2 #define MAX_DEVICETYPE 32 #define MAX_DEVICEDESC 260 typedef struct tagWANCONFIG { DWORD cbSize; /* size of structure */ DWORD cbTotalSize; /* Total mem used by struct & var data */ TCHAR szDeviceType[MAX_DEVICETYPE]; /* device type */ TCHAR szDeviceDesc[MAX_DEVICEDESC]; /* device description */ DWORD dwDeviceOffset; /* offset of device specific data in bytes from the start */ DWORD cbDeviceSize; /* size of the device specific data field */ WCHAR wcData[1]; /* device specific data */ } WANCONFIG, FAR * LPWANCONFIG; // WAN Device Types #define SZ_WANTYPE_ISDN "ISDN" #define SZ_WANTYPE_X25 "X.25" #define SZ_WANTYPE_PPTP "PPTP" #define SZ_WANTYPE_ATM "ATM" // // WAN Phone book data. This data is stored on a per connection basis // and the device info used for TAPI get and set dev config. // typedef struct tagWANPBCONFIG { DWORD cbSize; /* size of structure */ DWORD cbTotalSize; /* Total size used by struct & var data */ TCHAR szDeviceType[MAX_DEVICETYPE]; /* device type */ DWORD dwDeviceOffset; /* offset of device specific data in bytes from the start */ DWORD cbDeviceSize; /* size of the device specific data field */ DWORD dwVendorOffset; /* offset of vendor specific data in bytes from the start */ DWORD cbVendorSize; /* size of the vendor specific data field */ DWORD dwReservedOffset; /* offset of reserved data in bytes from the start */ DWORD cbReservedSize; /* size of the reserved data field */ WCHAR wcData[1]; /* variable data */ } WANPBCONFIG, FAR * LPWANPBCONFIG; // // ISDN Phone book data. This data is stored on a per connection basis // and is the structure returned for get and set dev config. // typedef struct tagISDNPBCONFIG { DWORD dwFlags; /* flags for the line (ISDN_CHAN_*) */ DWORD dwOptions; /* options for the line (ISDN_CHANOPT_) */ DWORD dwSpeedType; /* channel speed and type */ DWORD dwInactivityTimeout; /* disconnect time in seconds */ } ISDNPBCONFIG, FAR * LPISDNPBCONFIG; typedef struct tagISDNDEVCAPS { DWORD cbSize; /* size of structure */ DWORD dwFlags; /* flags for the device (ISDN_*) */ DWORD nSubType; /* device subtype (ISDN_SUBTYPE_*) */ DWORD cLinesMax; /* number of physical lines supported */ DWORD cActiveLines; /* number of active physical lines */ } ISDNDEVCAPS, FAR * LPISDNDEVCAPS; // Flags for ISDNDEVCAPS #define ISDN_DEFAULT 0x00000000L #define ISDN_NO_RESTART 0x00000001L #define ISDN_VENDOR_CONFIG 0x00000002L // Subtype ordinals #define ISDN_SUBTYPE_INTERNAL 0L #define ISDN_SUBTYPE_PCMCIA 1L #define ISDN_SUBTYPE_PPTP 2L typedef struct tagISDNLINECAPS { DWORD cbSize; /* size of structure */ DWORD dwFlags; /* flags for the line (ISDN_LINE_*) */ DWORD dwChannelFlags; /* flags for the channels (ISDN_CHAN_*) */ DWORD dwSwitchType; /* switches supported */ DWORD dwSpeedType; /* speed type */ DWORD cChannelsMax; /* number of B-channels per line supported */ DWORD cActiveChannels; /* number of active channels */ } ISDNLINECAPS, FAR * LPISDNLINECAPS; // Flags for ISDNLINECAPS #define ISDN_LINE_DEFAULT 0x00000000L #define ISDN_LINE_INACTIVE 0x00000001L // Channel flags for ISDNLINECAPS #define ISDN_CHAN_DEFAULT 0x00000000L #define ISDN_CHAN_INACTIVE 0x00000001L #define ISDN_CHAN_SPEED_ADJUST 0x00000002L // Switch type //#define ISDN_SWITCH_NONE 0x00000000L #define ISDN_SWITCH_AUTO 0x00000001L #define ISDN_SWITCH_ATT 0x00000002L #define ISDN_SWITCH_NI1 0x00000004L #define ISDN_SWITCH_NTI 0x00000008L #define ISDN_SWITCH_INS64 0x00000010L #define ISDN_SWITCH_1TR6 0x00000020L #define ISDN_SWITCH_VN3 0x00000040L /* retained for compatibility, use VN4*/ #define ISDN_SWITCH_NET3 0x00000080L /* retained for compatibility, use DSS1*/ #define ISDN_SWITCH_DSS1 0x00000080L #define ISDN_SWITCH_AUS 0x00000100L #define ISDN_SWITCH_BEL 0x00000200L #define ISDN_SWITCH_VN4 0x00000400L #define ISDN_SWITCH_NI2 0x00000800L #define MAX_SWITCH 12 /* Needs to be updated with above list */ // Speed type #define ISDN_SPEED_64K_DATA 0x00000001L #define ISDN_SPEED_56K_DATA 0x00000002L #define ISDN_SPEED_56K_VOICE 0x00000004L #define ISDN_SPEED_128K_DATA 0x00000008L typedef struct tagISDNCONFIG { DWORD cbSize; /* size of structure */ DWORD cbTotalSize; /* Total mem used by struct & var data */ DWORD dwFlags; /* flags for the device (ISDN_*) */ ISDNDEVCAPS idc; /* device capabilities */ DWORD cLines; /* number of physical lines in the line specific data block */ HKEY hkeyDriver; /* handle to driver registry key */ DWORD dwVendorOffset; /* offset of vendor specific data in bytes from the start */ DWORD cbVendorSize; /* size of the vendor specific data field */ DWORD dwReservedOffset; /* offset of reserved data in bytes from the start */ DWORD cbReservedSize; /* size of the reserved data field */ DWORD dwLineOffset; /* offset of line specific data in bytes from the start */ DWORD cbLineSize; /* size of the line specific data */ WORD padding; /* padding for dword alignment */ WCHAR wcData[1]; /* variable data */ } ISDNCONFIG, FAR * LPISDNCONFIG; typedef struct tagISDNLINE { DWORD cbSize; /* size of structure */ DWORD cbTotalSize; /* Total mem used by struct & var data */ DWORD dwLineID; /* unique line ID */ DWORD dwFlags; /* flags for the line (ISDN_LINE_*) */ DWORD dwOptions; /* options for the line (ISDN_LINEOPT_) */ DWORD dwSwitchType; /* switch type */ DWORD dwUseChannel; /* specific channel to use or number of channels to use */ ISDNLINECAPS ilc; /* line capabilities */ DWORD cChannels; /* number of channels in the channel specific data block */ HKEY hkeyLine; /* handle to line registry key */ DWORD dwVendorOffset; /* offset of vendor specific data in bytes from the start */ DWORD cbVendorSize; /* size of the vendor specific data field */ DWORD dwReservedOffset; /* offset of reserved data in bytes from the start */ DWORD cbReservedSize; /* size of the reserved data field */ DWORD dwChannelOffset; /* offset of channel specific data in bytes from the start */ DWORD cbChannelSize; /* size of the channel specific data */ WORD padding; /* padding for dword alignment */ WCHAR wcData[1]; /* variable data */ } ISDNLINE, FAR * LPISDNLINE; // Options for line #define ISDN_LINEOPT_DEFAULT 0x00000000L #define ISDN_LINEOPT_CHANNELID 0x00000001L #define ISDN_LINEOPT_FIXEDCOUNT 0x00000002L #define MAX_PHONE 32 #define MAX_SPID 32 typedef struct tagISDNCHANNEL { DWORD cbSize; /* size of structure */ DWORD cbTotalSize; /* Total mem used by struct & var data */ DWORD dwChannelID; /* unique channel ID */ DWORD dwFlags; /* flags for the line (ISDN_CHAN_*) */ DWORD dwOptions; /* options for the line (ISDN_CHANOPT_) */ DWORD dwSpeedType; /* channel speed and type */ DWORD dwInactivityTimeout; /* disconnect time in seconds */ TCHAR szPhone[MAX_PHONE]; /* phone number */ TCHAR szSPID[MAX_SPID]; /* SPID */ HKEY hkeyChannel; /* handle to channel registry key */ DWORD dwVendorOffset; /* offset of vendor specific data in bytes from the start */ DWORD cbVendorSize; /* size of the vendor specific data field */ DWORD dwReservedOffset; /* offset of reserved data in bytes from the start */ DWORD cbReservedSize; /* size of the reserved data field */ WORD padding; /* padding for dword alignment */ WCHAR wcData[1]; /* variable data */ } ISDNCHANNEL, FAR * LPISDNCHANNEL; // Options for channel #define ISDN_CHANOPT_DEFAULT 0x00000000L #define ISDN_CHANOPT_SHOW_STATUS 0x00000001L #define ISDN_CHANOPT_ENABLE_LOG 0x00000002L #define ISDN_CHANOPT_INACTIVE_TIMEOUT 0x00000004L // // ATM Configuration info // typedef struct tagATMCONFIG { DWORD cbSize; /* size of structure */ DWORD cbTotalSize; /* Total mem used by struct & var data */ DWORD dwFlags; /* flags for the device */ DWORD dwCircuitFlags; /* flags for the circuit */ HKEY hkeyDriver; /* handle to driver registry key */ DWORD dwVendorOffset; /* offset of vendor specific data in bytes from the start */ DWORD cbVendorSize; /* size of the vendor specific data field */ DWORD dwReservedOffset; /* offset of reserved data in bytes from the start */ DWORD cbReservedSize; /* size of the reserved data field */ WCHAR wcData[1]; /* variable data */ } ATMCONFIG, FAR * LPATMCONFIG; // // ATM Phone book data. This data is stored on a per connection basis // and is the structure returned for get and set dev config. // typedef struct tagATMPBCONFIG { DWORD dwGeneralOpt; /* General options */ DWORD dwCircuitOpt; /* Circuit options */ DWORD dwCircuitSpeed; /* Circuit Speed */ WORD wPvcVpi; /* PVC: VPI */ WORD wPvcVci; /* PVC: VCI */ } ATMPBCONFIG, FAR * LPATMPBCONFIG; // // Flags for ATM Phone Book entry // // // ATM General Options // #define ATM_GENERAL_OPT_VENDOR_CONFIG 0x00000001L #define ATM_GENERAL_OPT_SHOW_STATUS 0x00000002L #define ATM_GENERAL_OPT_ENABLE_LOG 0x00000004L #define ATM_GENERAL_OPT_MASK 0x0000000FL #define ATM_GENERAL_OPT_DEFAULT 0x00000000L // // ATM Circuit Options // #define ATM_CIRCUIT_OPT_QOS_ADJUST 0x00000010L #define ATM_CIRCUIT_OPT_SPEED_ADJUST 0x00000020L #define ATM_CIRCUIT_OPT_SVC 0x00000040L #define ATM_CIRCUIT_OPT_PVC 0x00000080L #define ATM_CIRCUIT_OPT_MASK 0x000000F0L #define ATM_CIRCUIT_OPT_DEFAULT (ATM_CIRCUIT_OPT_SVC | ATM_CIRCUIT_OPT_QOS_ADJUST | ATM_CIRCUIT_OPT_SPEED_ADJUST) // // ATM QOS Flags // #define ATM_CIRCUIT_QOS_VBR 0x00000100L #define ATM_CIRCUIT_QOS_CBR 0x00000200L #define ATM_CIRCUIT_QOS_ABR 0x00000400L #define ATM_CIRCUIT_QOS_UBR 0x00000800L #define ATM_CIRCUIT_QOS_MASK 0x00000F00L #define ATM_CIRCUIT_QOS_DEFAULT (ATM_CIRCUIT_QOS_UBR) // // ATM Speed Flags // #define ATM_CIRCUIT_SPEED_LINE_RATE 0x00001000L #define ATM_CIRCUIT_SPEED_USER_SPEC 0x00002000L #define ATM_CIRCUIT_SPEED_512KB 0x00004000L #define ATM_CIRCUIT_SPEED_1536KB 0x00008000L #define ATM_CIRCUIT_SPEED_25MB 0x00010000L #define ATM_CIRCUIT_SPEED_155MB 0x00020000L #define ATM_CIRCUIT_SPEED_MASK 0x000FF000L #define ATM_CIRCUIT_SPEED_DEFAULT (ATM_CIRCUIT_SPEED_LINE_RATE) // // ATM Encapsulation Flags // #define ATM_CIRCUIT_ENCAP_NULL 0x00100000L #define ATM_CIRCUIT_ENCAP_LLC 0x00200000L #define ATM_CIRCUIT_ENCAP_MASK 0x00F00000L #define ATM_CIRCUIT_ENCAP_DEFAULT (ATM_CIRCUIT_ENCAP_NULL) // // WAN Handler binding // DWORD WINAPI WanBind_Get(LPCTSTR pszDeviceType); DWORD WINAPI WanBind_Release(LPCTSTR pszDeviceType); HICON WINAPI WanBind_GetIcon(LPCTSTR pszDeviceType); DWORD WINAPI WanBind_ConfigDialog(LPCTSTR pszDeviceType, LPCTSTR pszFriendlyName, HWND hwndOwner, LPWANCONFIG pwc, LPWANPBCONFIG pwpbc); DWORD WINAPI WanBind_QueryConfigData(LPCTSTR pszDeviceType, HKEY hkey, DWORD dwLineID, LPVOID pvData, LPDWORD pcbData); // // Exports by the handler // DWORD WINAPI WanQueryConfigData(HKEY hkey, DWORD dwLineID, LPVOID pvData, LPDWORD pcbData); DWORD WINAPI WanConfigDialog(LPCTSTR pszFriendlyName, HWND hwndOwner, LPWANCONFIG lpwanconfig, LPWANPBCONFIG pwpbc); #endif //_WANCFG_H_