1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _RASSAPI_H_ 7 #define _RASSAPI_H_ 8 9 #ifdef __cplusplus 10 extern "C" { 11 #endif 12 13 #if 1 14 15 #ifndef UNLEN 16 #include <lmcons.h> 17 #endif 18 19 #define RASSAPI_MAX_PHONENUMBER_SIZE 128 20 #define RASSAPI_MAX_MEDIA_NAME 16 21 #define RASSAPI_MAX_PORT_NAME 16 22 #define RASSAPI_MAX_DEVICE_NAME 128 23 #define RASSAPI_MAX_DEVICETYPE_NAME 16 24 #define RASSAPI_MAX_PARAM_KEY_SIZE 32 25 26 #define RASPRIV_NoCallback 0x01 27 #define RASPRIV_AdminSetCallback 0x02 28 #define RASPRIV_CallerSetCallback 0x04 29 #define RASPRIV_DialinPrivilege 0x08 30 31 #define RASPRIV_CallbackType (RASPRIV_AdminSetCallback | RASPRIV_CallerSetCallback | RASPRIV_NoCallback) 32 33 #define RAS_MODEM_OPERATIONAL 1 34 #define RAS_MODEM_NOT_RESPONDING 2 35 #define RAS_MODEM_HARDWARE_FAILURE 3 36 #define RAS_MODEM_INCORRECT_RESPONSE 4 37 #define RAS_MODEM_UNKNOWN 5 38 39 #define RAS_PORT_NON_OPERATIONAL 1 40 #define RAS_PORT_DISCONNECTED 2 41 #define RAS_PORT_CALLING_BACK 3 42 #define RAS_PORT_LISTENING 4 43 #define RAS_PORT_AUTHENTICATING 5 44 #define RAS_PORT_AUTHENTICATED 6 45 #define RAS_PORT_INITIALIZING 7 46 47 enum RAS_PARAMS_FORMAT { 48 ParamNumber = 0,ParamString = 1 49 }; 50 typedef enum RAS_PARAMS_FORMAT RAS_PARAMS_FORMAT; 51 52 union RAS_PARAMS_VALUE { 53 DWORD Number; 54 struct { 55 DWORD Length; 56 PCHAR Data; 57 } String; 58 }; 59 typedef union RAS_PARAMS_VALUE RAS_PARAMS_VALUE; 60 61 struct RAS_PARAMETERS { 62 CHAR P_Key[RASSAPI_MAX_PARAM_KEY_SIZE]; 63 RAS_PARAMS_FORMAT P_Type; 64 BYTE P_Attributes; 65 RAS_PARAMS_VALUE P_Value; 66 }; 67 typedef struct RAS_PARAMETERS RAS_PARAMETERS; 68 69 typedef struct _RAS_USER_0 { 70 BYTE bfPrivilege; 71 WCHAR szPhoneNumber[RASSAPI_MAX_PHONENUMBER_SIZE + 1]; 72 } RAS_USER_0,*PRAS_USER_0; 73 74 typedef struct _RAS_PORT_0 { 75 WCHAR wszPortName[RASSAPI_MAX_PORT_NAME]; 76 WCHAR wszDeviceType[RASSAPI_MAX_DEVICETYPE_NAME]; 77 WCHAR wszDeviceName[RASSAPI_MAX_DEVICE_NAME]; 78 WCHAR wszMediaName[RASSAPI_MAX_MEDIA_NAME]; 79 DWORD reserved; 80 DWORD Flags; 81 WCHAR wszUserName[UNLEN + 1]; 82 WCHAR wszComputer[NETBIOS_NAME_LEN]; 83 DWORD dwStartSessionTime; 84 WCHAR wszLogonDomain[DNLEN + 1]; 85 WINBOOL fAdvancedServer; 86 } RAS_PORT_0,*PRAS_PORT_0; 87 88 #define MEDIA_UNKNOWN 0 89 #define MEDIA_SERIAL 1 90 #define MEDIA_RAS10_SERIAL 2 91 #define MEDIA_X25 3 92 #define MEDIA_ISDN 4 93 94 #define USER_AUTHENTICATED 0x0001 95 #define MESSENGER_PRESENT 0x0002 96 #define PPP_CLIENT 0x0004 97 #define GATEWAY_ACTIVE 0x0008 98 #define REMOTE_LISTEN 0x0010 99 #define PORT_MULTILINKED 0x0020 100 101 typedef ULONG IPADDR; 102 103 #define RAS_IPADDRESSLEN 15 104 #define RAS_IPXADDRESSLEN 22 105 #define RAS_ATADDRESSLEN 32 106 107 typedef struct _RAS_PPP_NBFCP_RESULT { 108 DWORD dwError; 109 DWORD dwNetBiosError; 110 CHAR szName[NETBIOS_NAME_LEN + 1]; 111 WCHAR wszWksta[NETBIOS_NAME_LEN + 1]; 112 } RAS_PPP_NBFCP_RESULT; 113 114 typedef struct _RAS_PPP_IPCP_RESULT { 115 DWORD dwError; 116 WCHAR wszAddress[RAS_IPADDRESSLEN + 1]; 117 } RAS_PPP_IPCP_RESULT; 118 119 typedef struct _RAS_PPP_IPXCP_RESULT { 120 DWORD dwError; 121 WCHAR wszAddress[RAS_IPXADDRESSLEN + 1]; 122 } RAS_PPP_IPXCP_RESULT; 123 124 typedef struct _RAS_PPP_ATCP_RESULT { 125 DWORD dwError; 126 WCHAR wszAddress[RAS_ATADDRESSLEN + 1]; 127 } RAS_PPP_ATCP_RESULT; 128 129 typedef struct _RAS_PPP_PROJECTION_RESULT { 130 RAS_PPP_NBFCP_RESULT nbf; 131 RAS_PPP_IPCP_RESULT ip; 132 RAS_PPP_IPXCP_RESULT ipx; 133 RAS_PPP_ATCP_RESULT at; 134 } RAS_PPP_PROJECTION_RESULT; 135 136 typedef struct _RAS_PORT_1 { 137 RAS_PORT_0 rasport0; 138 DWORD LineCondition; 139 DWORD HardwareCondition; 140 DWORD LineSpeed; 141 WORD NumStatistics; 142 WORD NumMediaParms; 143 DWORD SizeMediaParms; 144 RAS_PPP_PROJECTION_RESULT ProjResult; 145 } RAS_PORT_1,*PRAS_PORT_1; 146 147 typedef struct _RAS_PORT_STATISTICS { 148 DWORD dwBytesXmited; 149 DWORD dwBytesRcved; 150 DWORD dwFramesXmited; 151 DWORD dwFramesRcved; 152 DWORD dwCrcErr; 153 DWORD dwTimeoutErr; 154 DWORD dwAlignmentErr; 155 DWORD dwHardwareOverrunErr; 156 DWORD dwFramingErr; 157 DWORD dwBufferOverrunErr; 158 DWORD dwBytesXmitedUncompressed; 159 DWORD dwBytesRcvedUncompressed; 160 DWORD dwBytesXmitedCompressed; 161 DWORD dwBytesRcvedCompressed; 162 DWORD dwPortBytesXmited; 163 DWORD dwPortBytesRcved; 164 DWORD dwPortFramesXmited; 165 DWORD dwPortFramesRcved; 166 DWORD dwPortCrcErr; 167 DWORD dwPortTimeoutErr; 168 DWORD dwPortAlignmentErr; 169 DWORD dwPortHardwareOverrunErr; 170 DWORD dwPortFramingErr; 171 DWORD dwPortBufferOverrunErr; 172 DWORD dwPortBytesXmitedUncompressed; 173 DWORD dwPortBytesRcvedUncompressed; 174 DWORD dwPortBytesXmitedCompressed; 175 DWORD dwPortBytesRcvedCompressed; 176 } RAS_PORT_STATISTICS,*PRAS_PORT_STATISTICS; 177 178 #define RASDOWNLEVEL 10 179 #define RASADMIN_35 35 180 #define RASADMIN_CURRENT 40 181 182 typedef struct _RAS_SERVER_0 { 183 WORD TotalPorts; 184 WORD PortsInUse; 185 DWORD RasVersion; 186 } RAS_SERVER_0,*PRAS_SERVER_0; 187 188 DWORD WINAPI RasAdminServerGetInfo(const WCHAR *lpszServer,PRAS_SERVER_0 pRasServer0); 189 DWORD WINAPI RasAdminGetUserAccountServer(const WCHAR *lpszDomain,const WCHAR *lpszServer,LPWSTR lpszUserAccountServer); 190 DWORD WINAPI RasAdminUserGetInfo(const WCHAR *lpszUserAccountServer,const WCHAR *lpszUser,PRAS_USER_0 pRasUser0); 191 DWORD WINAPI RasAdminUserSetInfo(const WCHAR *lpszUserAccountServer,const WCHAR *lpszUser,const PRAS_USER_0 pRasUser0); 192 DWORD WINAPI RasAdminPortEnum(const WCHAR *lpszServer,PRAS_PORT_0 *ppRasPort0,WORD *pcEntriesRead); 193 DWORD WINAPI RasAdminPortGetInfo(const WCHAR *lpszServer,const WCHAR *lpszPort,RAS_PORT_1 *pRasPort1,RAS_PORT_STATISTICS *pRasStats,RAS_PARAMETERS **ppRasParams); 194 DWORD WINAPI RasAdminPortClearStatistics(const WCHAR *lpszServer,const WCHAR *lpszPort); 195 DWORD WINAPI RasAdminPortDisconnect(const WCHAR *lpszServer,const WCHAR *lpszPort); 196 DWORD WINAPI RasAdminFreeBuffer(PVOID Pointer); 197 WINBOOL WINAPI RasAdminAcceptNewConnection (RAS_PORT_1 *pRasPort1,RAS_PORT_STATISTICS *pRasStats,RAS_PARAMETERS *pRasParams); 198 VOID WINAPI RasAdminConnectionHangupNotification (RAS_PORT_1 *pRasPort1,RAS_PORT_STATISTICS *pRasStats,RAS_PARAMETERS *pRasParams); 199 DWORD WINAPI RasAdminGetIpAddressForUser (WCHAR *lpszUserName,WCHAR *lpszPortName,IPADDR *pipAddress,WINBOOL *bNotifyRelease); 200 VOID WINAPI RasAdminReleaseIpAddress (WCHAR *lpszUserName,WCHAR *lpszPortName,IPADDR *pipAddress); 201 202 #endif 203 204 #ifdef __cplusplus 205 } 206 #endif 207 #endif 208