/** * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ #ifndef _RASSAPI_H_ #define _RASSAPI_H_ #ifdef __cplusplus extern "C" { #endif #if 1 #ifndef UNLEN #include <lmcons.h> #endif #define RASSAPI_MAX_PHONENUMBER_SIZE 128 #define RASSAPI_MAX_MEDIA_NAME 16 #define RASSAPI_MAX_PORT_NAME 16 #define RASSAPI_MAX_DEVICE_NAME 128 #define RASSAPI_MAX_DEVICETYPE_NAME 16 #define RASSAPI_MAX_PARAM_KEY_SIZE 32 #define RASPRIV_NoCallback 0x01 #define RASPRIV_AdminSetCallback 0x02 #define RASPRIV_CallerSetCallback 0x04 #define RASPRIV_DialinPrivilege 0x08 #define RASPRIV_CallbackType (RASPRIV_AdminSetCallback | RASPRIV_CallerSetCallback | RASPRIV_NoCallback) #define RAS_MODEM_OPERATIONAL 1 #define RAS_MODEM_NOT_RESPONDING 2 #define RAS_MODEM_HARDWARE_FAILURE 3 #define RAS_MODEM_INCORRECT_RESPONSE 4 #define RAS_MODEM_UNKNOWN 5 #define RAS_PORT_NON_OPERATIONAL 1 #define RAS_PORT_DISCONNECTED 2 #define RAS_PORT_CALLING_BACK 3 #define RAS_PORT_LISTENING 4 #define RAS_PORT_AUTHENTICATING 5 #define RAS_PORT_AUTHENTICATED 6 #define RAS_PORT_INITIALIZING 7 enum RAS_PARAMS_FORMAT { ParamNumber = 0,ParamString = 1 }; typedef enum RAS_PARAMS_FORMAT RAS_PARAMS_FORMAT; union RAS_PARAMS_VALUE { DWORD Number; struct { DWORD Length; PCHAR Data; } String; }; typedef union RAS_PARAMS_VALUE RAS_PARAMS_VALUE; struct RAS_PARAMETERS { CHAR P_Key[RASSAPI_MAX_PARAM_KEY_SIZE]; RAS_PARAMS_FORMAT P_Type; BYTE P_Attributes; RAS_PARAMS_VALUE P_Value; }; typedef struct RAS_PARAMETERS RAS_PARAMETERS; typedef struct _RAS_USER_0 { BYTE bfPrivilege; WCHAR szPhoneNumber[RASSAPI_MAX_PHONENUMBER_SIZE + 1]; } RAS_USER_0,*PRAS_USER_0; typedef struct _RAS_PORT_0 { WCHAR wszPortName[RASSAPI_MAX_PORT_NAME]; WCHAR wszDeviceType[RASSAPI_MAX_DEVICETYPE_NAME]; WCHAR wszDeviceName[RASSAPI_MAX_DEVICE_NAME]; WCHAR wszMediaName[RASSAPI_MAX_MEDIA_NAME]; DWORD reserved; DWORD Flags; WCHAR wszUserName[UNLEN + 1]; WCHAR wszComputer[NETBIOS_NAME_LEN]; DWORD dwStartSessionTime; WCHAR wszLogonDomain[DNLEN + 1]; WINBOOL fAdvancedServer; } RAS_PORT_0,*PRAS_PORT_0; #define MEDIA_UNKNOWN 0 #define MEDIA_SERIAL 1 #define MEDIA_RAS10_SERIAL 2 #define MEDIA_X25 3 #define MEDIA_ISDN 4 #define USER_AUTHENTICATED 0x0001 #define MESSENGER_PRESENT 0x0002 #define PPP_CLIENT 0x0004 #define GATEWAY_ACTIVE 0x0008 #define REMOTE_LISTEN 0x0010 #define PORT_MULTILINKED 0x0020 typedef ULONG IPADDR; #define RAS_IPADDRESSLEN 15 #define RAS_IPXADDRESSLEN 22 #define RAS_ATADDRESSLEN 32 typedef struct _RAS_PPP_NBFCP_RESULT { DWORD dwError; DWORD dwNetBiosError; CHAR szName[NETBIOS_NAME_LEN + 1]; WCHAR wszWksta[NETBIOS_NAME_LEN + 1]; } RAS_PPP_NBFCP_RESULT; typedef struct _RAS_PPP_IPCP_RESULT { DWORD dwError; WCHAR wszAddress[RAS_IPADDRESSLEN + 1]; } RAS_PPP_IPCP_RESULT; typedef struct _RAS_PPP_IPXCP_RESULT { DWORD dwError; WCHAR wszAddress[RAS_IPXADDRESSLEN + 1]; } RAS_PPP_IPXCP_RESULT; typedef struct _RAS_PPP_ATCP_RESULT { DWORD dwError; WCHAR wszAddress[RAS_ATADDRESSLEN + 1]; } RAS_PPP_ATCP_RESULT; typedef struct _RAS_PPP_PROJECTION_RESULT { RAS_PPP_NBFCP_RESULT nbf; RAS_PPP_IPCP_RESULT ip; RAS_PPP_IPXCP_RESULT ipx; RAS_PPP_ATCP_RESULT at; } RAS_PPP_PROJECTION_RESULT; typedef struct _RAS_PORT_1 { RAS_PORT_0 rasport0; DWORD LineCondition; DWORD HardwareCondition; DWORD LineSpeed; WORD NumStatistics; WORD NumMediaParms; DWORD SizeMediaParms; RAS_PPP_PROJECTION_RESULT ProjResult; } RAS_PORT_1,*PRAS_PORT_1; typedef struct _RAS_PORT_STATISTICS { DWORD dwBytesXmited; DWORD dwBytesRcved; DWORD dwFramesXmited; DWORD dwFramesRcved; DWORD dwCrcErr; DWORD dwTimeoutErr; DWORD dwAlignmentErr; DWORD dwHardwareOverrunErr; DWORD dwFramingErr; DWORD dwBufferOverrunErr; DWORD dwBytesXmitedUncompressed; DWORD dwBytesRcvedUncompressed; DWORD dwBytesXmitedCompressed; DWORD dwBytesRcvedCompressed; DWORD dwPortBytesXmited; DWORD dwPortBytesRcved; DWORD dwPortFramesXmited; DWORD dwPortFramesRcved; DWORD dwPortCrcErr; DWORD dwPortTimeoutErr; DWORD dwPortAlignmentErr; DWORD dwPortHardwareOverrunErr; DWORD dwPortFramingErr; DWORD dwPortBufferOverrunErr; DWORD dwPortBytesXmitedUncompressed; DWORD dwPortBytesRcvedUncompressed; DWORD dwPortBytesXmitedCompressed; DWORD dwPortBytesRcvedCompressed; } RAS_PORT_STATISTICS,*PRAS_PORT_STATISTICS; #define RASDOWNLEVEL 10 #define RASADMIN_35 35 #define RASADMIN_CURRENT 40 typedef struct _RAS_SERVER_0 { WORD TotalPorts; WORD PortsInUse; DWORD RasVersion; } RAS_SERVER_0,*PRAS_SERVER_0; DWORD WINAPI RasAdminServerGetInfo(const WCHAR *lpszServer,PRAS_SERVER_0 pRasServer0); DWORD WINAPI RasAdminGetUserAccountServer(const WCHAR *lpszDomain,const WCHAR *lpszServer,LPWSTR lpszUserAccountServer); DWORD WINAPI RasAdminUserGetInfo(const WCHAR *lpszUserAccountServer,const WCHAR *lpszUser,PRAS_USER_0 pRasUser0); DWORD WINAPI RasAdminUserSetInfo(const WCHAR *lpszUserAccountServer,const WCHAR *lpszUser,const PRAS_USER_0 pRasUser0); DWORD WINAPI RasAdminPortEnum(const WCHAR *lpszServer,PRAS_PORT_0 *ppRasPort0,WORD *pcEntriesRead); DWORD WINAPI RasAdminPortGetInfo(const WCHAR *lpszServer,const WCHAR *lpszPort,RAS_PORT_1 *pRasPort1,RAS_PORT_STATISTICS *pRasStats,RAS_PARAMETERS **ppRasParams); DWORD WINAPI RasAdminPortClearStatistics(const WCHAR *lpszServer,const WCHAR *lpszPort); DWORD WINAPI RasAdminPortDisconnect(const WCHAR *lpszServer,const WCHAR *lpszPort); DWORD WINAPI RasAdminFreeBuffer(PVOID Pointer); WINBOOL WINAPI RasAdminAcceptNewConnection (RAS_PORT_1 *pRasPort1,RAS_PORT_STATISTICS *pRasStats,RAS_PARAMETERS *pRasParams); VOID WINAPI RasAdminConnectionHangupNotification (RAS_PORT_1 *pRasPort1,RAS_PORT_STATISTICS *pRasStats,RAS_PARAMETERS *pRasParams); DWORD WINAPI RasAdminGetIpAddressForUser (WCHAR *lpszUserName,WCHAR *lpszPortName,IPADDR *pipAddress,WINBOOL *bNotifyRelease); VOID WINAPI RasAdminReleaseIpAddress (WCHAR *lpszUserName,WCHAR *lpszPortName,IPADDR *pipAddress); #endif #ifdef __cplusplus } #endif #endif