/* Copyright (c) 1995, Microsoft Corporation, all rights reserved ** ** rmutil.h ** Remote Access RASMAN utility library ** Public header ** ** 06/20/95 Steve Cobb ** 12/26/95 Merge Abolade Gbadesin routines */ #ifndef _RMUTIL_H_ #define _RMUTIL_H_ #include // RAS connection manager header #include // RAS serial media header, for SERIAL_TXT #include // RAS ISDN media header, for ISDN_TXT #include // RAS X.25 media header, for X25_TXT #include // RAS modem/X.25/switch device header, for MXS_*_TXT #include // Win32 RAS header, for constants /* Private RASAPI32 entrypoints. */ extern HPORT APIENTRY RasGetHport( HRASCONN ); extern DWORD APIENTRY RasSetOldPassword( HRASCONN, CHAR* ); /*---------------------------------------------------------------------------- ** Constants **---------------------------------------------------------------------------- */ /* String translation flags. */ #define XLATE_Ctrl 0x00000001 #define XLATE_Cr 0x00000002 #define XLATE_CrSpecial 0x00000004 #define XLATE_Lf 0x00000008 #define XLATE_LfSpecial 0x00000010 #define XLATE_LAngle 0x00000020 #define XLATE_RAngle 0x00000040 #define XLATE_BSlash 0x00000080 #define XLATE_SSpace 0x00000100 #define XLATE_None 0 #define XLATE_Diagnostic (XLATE_Ctrl) #define XLATE_ErrorResponse (XLATE_Ctrl | XLATE_LAngle | XLATE_RAngle \ | XLATE_BSlash | XLATE_CrSpecial \ | XLATE_LfSpecial) /*---------------------------------------------------------------------------- ** Datatypes **---------------------------------------------------------------------------- */ struct RASDEV { HANDLE RD_Handle; DWORD RD_Flags; PTSTR RD_DeviceName; TCHAR RD_PortName[MAX_PORT_NAME + 1]; TCHAR RD_DeviceType[RAS_MaxDeviceType + 1]; }; typedef struct RASDEV RASDEV, *PRASDEV, FAR *LPRASDEV; #define RDFLAG_DialIn 0x00000001 #define RDFLAG_DialOut 0x00000002 #define RDFLAG_Router 0x00000004 #define RDFLAG_IsDialedIn 0x00000008 #define RDFLAG_IsDialedOut 0x00000010 #define RDFLAG_IsRouter 0x00000020 #define RDFLAG_User1 0x80000000 struct RASDEVSTATS { DWORD RDS_Condition; DWORD RDS_Flags; DWORD RDS_LineSpeed; DWORD RDS_ConnectTime; DWORD RDS_InBytes; DWORD RDS_InFrames; DWORD RDS_InCompRatio; DWORD RDS_OutBytes; DWORD RDS_OutFrames; DWORD RDS_OutCompRatio; DWORD RDS_InBytesTotal; DWORD RDS_OutBytesTotal; DWORD RDS_ErrCRC; DWORD RDS_ErrTimeout; DWORD RDS_ErrAlignment; DWORD RDS_ErrFraming; DWORD RDS_ErrHwOverruns; DWORD RDS_ErrBufOverruns; HRASCONN RDS_Hrasconn; }; typedef struct RASDEVSTATS RASDEVSTATS, *PRASDEVSTATS; struct RASCONNENTRY { LIST_ENTRY RCE_Node; RASCONN *RCE_Entry; LIST_ENTRY RCE_Links; }; typedef struct RASCONNENTRY RASCONNENTRY, *PRASCONNENTRY; struct RASCONNLINK { LIST_ENTRY RCL_Node; RASCONN RCL_Link; }; typedef struct RASCONNLINK RASCONNLINK, *PRASCONNLINK; /*---------------------------------------------------------------------------- ** Prototypes **---------------------------------------------------------------------------- */ DWORD ClearRasdevStats( IN RASDEV* pdev, IN BOOL fBundle ); DWORD DeviceIdFromDeviceName( TCHAR* pszDeviceName ); DWORD FreeRasdevTable( RASDEV* pDevTable, DWORD iDevCount ); DWORD GetRasConnection0Table( OUT RAS_CONNECTION_0 ** ppRc0Table, OUT DWORD * piRc0Count ); DWORD GetConnectTime( IN HRASCONN hrasconn, OUT DWORD* pdwConnectTime ); DWORD GetRasconnFraming( IN HRASCONN hrasconn, OUT DWORD* pdwSendFraming, OUT DWORD* pdwRecvFraming ); DWORD GetRasconnFromRasdev( IN RASDEV* pdev, OUT RASCONN** ppconn, IN RASCONN* pConnTable OPTIONAL, IN DWORD iConnCount OPTIONAL ); DWORD GetRasdevBundle( IN RASDEV* pdev, OUT DWORD* pdwBundle ); DWORD GetRasdevFraming( IN RASDEV* pdev, OUT DWORD* pdwFraming ); DWORD GetRasdevFromRasconn( IN RASCONN* pconn, OUT RASDEV** ppdev, IN RASDEV* pDevTable OPTIONAL, IN DWORD iDevCount OPTIONAL ); DWORD GetRasdevFromRasPort0( IN RAS_PORT_0* pport, OUT RASDEV** ppdev, IN RASDEV* pDevTable OPTIONAL, IN DWORD iDevCount OPTIONAL ); DWORD GetRasDeviceString( IN HPORT hport, IN CHAR* pszDeviceType, IN CHAR* pszDeviceName, IN CHAR* pszKey, OUT CHAR** ppszValue, IN DWORD dwXlate ); DWORD GetRasdevStats( IN RASDEV* pdev, OUT RASDEVSTATS* pstats ); DWORD GetRasdevTable( OUT RASDEV** ppDevTable, OUT DWORD* piDevCount ); DWORD GetRasMessage( IN HRASCONN hrasconn, OUT TCHAR** ppszMessage ); DWORD GetRasPads( OUT RASMAN_DEVICE** ppDevices, OUT DWORD* pdwEntries ); DWORD GetRasPort0FromRasdev( IN RASDEV* pdev, OUT RAS_PORT_0** ppport, IN RAS_PORT_0* pPortTable OPTIONAL, IN DWORD iPortCount OPTIONAL ); DWORD GetRasPort0Info( IN HANDLE hPort, OUT RAS_PORT_1 * pRasPort1 ); DWORD GetRasPort0Table( OUT RAS_PORT_0 ** ppPortTable, OUT DWORD * piPortCount ); TCHAR * GetRasPort0UserString( IN RAS_PORT_0 * pport, IN TCHAR * pszUser ); VOID GetRasPortMaxBps( IN HPORT hport, OUT DWORD* pdwMaxConnectBps, OUT DWORD* pdwMaxCarrierBps ); VOID GetRasPortModemSettings( IN HPORT hport, OUT BOOL* pfHwFlowDefault, OUT BOOL* pfEcDefault, OUT BOOL* pfEccDefault ); DWORD GetRasPorts( IN HANDLE hConnection, OUT RASMAN_PORT** ppPorts, OUT DWORD* pdwEntries ); DWORD GetRasPortString( IN HPORT hport, IN CHAR* pszKey, OUT CHAR** ppszValue, IN DWORD dwXlate ); DWORD GetRasSwitches( IN HANDLE hConnection, OUT RASMAN_DEVICE** ppDevices, OUT DWORD* pdwEntries ); TCHAR* GetRasX25Diagnostic( IN HRASCONN hrasconn ); BOOL IsRasdevBundled( IN RASDEV* prasdev, IN RASDEV* pDevTable, IN DWORD iDevCount ); CHAR* PszFromRasValue( IN RAS_VALUE* prasvalue, IN DWORD dwXlate ); DWORD RasPort0Hangup( IN HANDLE hPort ); #endif // _RMUTIL_H_