3 * @copy 2012 MinGW.org project
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
26 #pragma GCC system_header
34 #define RASSAPI_MAX_PHONENUMBER_SIZE 128
35 #define RASSAPI_MAX_MEDIA_NAME 16
36 #define RASSAPI_MAX_PORT_NAME 16
37 #define RASSAPI_MAX_DEVICE_NAME 128
38 #define RASSAPI_MAX_DEVICETYPE_NAME 16
39 #define RASSAPI_MAX_PARAM_KEY_SIZE 32
40 #define RASPRIV_NoCallback 0x01
41 #define RASPRIV_AdminSetCallback 0x02
42 #define RASPRIV_CallerSetCallback 0x04
43 #define RASPRIV_DialinPrivilege 0x08
44 #define RASPRIV_CallbackType (RASPRIV_AdminSetCallback \
45 | RASPRIV_CallerSetCallback \
47 #define RAS_MODEM_OPERATIONAL 1
48 #define RAS_MODEM_NOT_RESPONDING 2
49 #define RAS_MODEM_HARDWARE_FAILURE 3
50 #define RAS_MODEM_INCORRECT_RESPONSE 4
51 #define RAS_MODEM_UNKNOWN 5
52 #define RAS_PORT_NON_OPERATIONAL 1
53 #define RAS_PORT_DISCONNECTED 2
54 #define RAS_PORT_CALLING_BACK 3
55 #define RAS_PORT_LISTENING 4
56 #define RAS_PORT_AUTHENTICATING 5
57 #define RAS_PORT_AUTHENTICATED 6
58 #define RAS_PORT_INITIALIZING 7
59 #define MEDIA_UNKNOWN 0
60 #define MEDIA_SERIAL 1
61 #define MEDIA_RAS10_SERIAL 2
64 #define USER_AUTHENTICATED 0x0001
65 #define MESSENGER_PRESENT 0x0002
66 #define PPP_CLIENT 0x0004
67 #define GATEWAY_ACTIVE 0x0008
68 #define REMOTE_LISTEN 0x0010
69 #define PORT_MULTILINKED 0x0020
70 #define RAS_IPADDRESSLEN 15
71 #define RAS_IPXADDRESSLEN 22
72 #define RAS_ATADDRESSLEN 32
73 #define RASDOWNLEVEL 10
74 #define RASADMIN_35 35
75 #define RASADMIN_CURRENT 40
78 typedef enum _RAS_PARAMS_FORMAT {
82 typedef union RAS_PARAMS_VALUE {
89 typedef struct RAS_PARAMETERS {
90 CHAR P_Key [RASSAPI_MAX_PARAM_KEY_SIZE];
91 RAS_PARAMS_FORMAT P_Type;
93 RAS_PARAMS_VALUE P_Value;
95 typedef struct _RAS_USER_0 {
97 WCHAR szPhoneNumber[RASSAPI_MAX_PHONENUMBER_SIZE + 1];
98 } RAS_USER_0, *PRAS_USER_0;
99 typedef struct _RAS_PORT_0 {
100 WCHAR wszPortName[RASSAPI_MAX_PORT_NAME];
101 WCHAR wszDeviceType[RASSAPI_MAX_DEVICETYPE_NAME];
102 WCHAR wszDeviceName[RASSAPI_MAX_DEVICE_NAME];
103 WCHAR wszMediaName[RASSAPI_MAX_MEDIA_NAME];
106 WCHAR wszUserName[UNLEN + 1];
107 WCHAR wszComputer[NETBIOS_NAME_LEN];
108 DWORD dwStartSessionTime; /* seconds from 1/1/1970 */
109 WCHAR wszLogonDomain[DNLEN + 1];
110 BOOL fAdvancedServer;
111 } RAS_PORT_0, *PRAS_PORT_0;
112 typedef struct _RAS_PPP_NBFCP_RESULT {
114 DWORD dwNetBiosError;
115 CHAR szName[ NETBIOS_NAME_LEN + 1 ];
116 WCHAR wszWksta[ NETBIOS_NAME_LEN + 1 ];
117 } RAS_PPP_NBFCP_RESULT;
118 typedef struct _RAS_PPP_IPCP_RESULT{
120 WCHAR wszAddress[ RAS_IPADDRESSLEN + 1 ];
121 } RAS_PPP_IPCP_RESULT;
122 typedef struct _RAS_PPP_IPXCP_RESULT {
124 WCHAR wszAddress[ RAS_IPXADDRESSLEN + 1 ];
125 } RAS_PPP_IPXCP_RESULT;
126 typedef struct _RAS_PPP_ATCP_RESULT {
128 WCHAR wszAddress[ RAS_ATADDRESSLEN + 1 ];
129 } RAS_PPP_ATCP_RESULT;
130 typedef struct _RAS_PPP_PROJECTION_RESULT {
131 RAS_PPP_NBFCP_RESULT nbf;
132 RAS_PPP_IPCP_RESULT ip;
133 RAS_PPP_IPXCP_RESULT ipx;
134 RAS_PPP_ATCP_RESULT at;
135 } RAS_PPP_PROJECTION_RESULT;
136 typedef struct _RAS_PORT_1{
139 DWORD HardwareCondition;
143 DWORD SizeMediaParms;
144 RAS_PPP_PROJECTION_RESULT ProjResult;
145 } RAS_PORT_1, *PRAS_PORT_1;
146 typedef struct _RAS_PORT_STATISTICS {
149 DWORD dwFramesXmited;
153 DWORD dwAlignmentErr;
154 DWORD dwHardwareOverrunErr;
156 DWORD dwBufferOverrunErr;
157 DWORD dwBytesXmitedUncompressed;
158 DWORD dwBytesRcvedUncompressed;
159 DWORD dwBytesXmitedCompressed;
160 DWORD dwBytesRcvedCompressed;
161 DWORD dwPortBytesXmited;
162 DWORD dwPortBytesRcved;
163 DWORD dwPortFramesXmited;
164 DWORD dwPortFramesRcved;
166 DWORD dwPortTimeoutErr;
167 DWORD dwPortAlignmentErr;
168 DWORD dwPortHardwareOverrunErr;
169 DWORD dwPortFramingErr;
170 DWORD dwPortBufferOverrunErr;
171 DWORD dwPortBytesXmitedUncompressed;
172 DWORD dwPortBytesRcvedUncompressed;
173 DWORD dwPortBytesXmitedCompressed;
174 DWORD dwPortBytesRcvedCompressed;
175 } RAS_PORT_STATISTICS, *PRAS_PORT_STATISTICS;
176 typedef struct _RAS_SERVER_0 {
180 } RAS_SERVER_0, *PRAS_SERVER_0;
182 DWORD APIENTRY RasAdminServerGetInfo( const WCHAR*, PRAS_SERVER_0 );
183 DWORD APIENTRY RasAdminGetUserAccountServer( const WCHAR*, const WCHAR*, LPWSTR );
184 DWORD APIENTRY RasAdminUserGetInfo( const WCHAR*, const WCHAR*, PRAS_USER_0 );
185 DWORD APIENTRY RasAdminUserSetInfo( const WCHAR*, const WCHAR*, const PRAS_USER_0 );
186 DWORD APIENTRY RasAdminPortEnum( const WCHAR*, PRAS_PORT_0*, WORD*);
187 DWORD APIENTRY RasAdminPortGetInfo( const WCHAR*, const WCHAR*, RAS_PORT_1*, RAS_PORT_STATISTICS*, RAS_PARAMETERS** );
188 DWORD APIENTRY RasAdminPortClearStatistics( const WCHAR*, const WCHAR* );
189 DWORD APIENTRY RasAdminPortDisconnect( const WCHAR*, const WCHAR* );
190 DWORD APIENTRY RasAdminFreeBuffer(PVOID);
191 DWORD APIENTRY RasAdminGetErrorString( UINT, WCHAR*, DWORD );
192 BOOL APIENTRY RasAdminAcceptNewConnection( RAS_PORT_1*, RAS_PORT_STATISTICS*, RAS_PARAMETERS* );
193 VOID APIENTRY RasAdminConnectionHangupNotification ( RAS_PORT_1*, RAS_PORT_STATISTICS*, RAS_PARAMETERS* );
194 DWORD APIENTRY RasAdminGetIpAddressForUser ( WCHAR*, WCHAR*, IPADDR*, BOOL*);
195 VOID APIENTRY RasAdminReleaseIpAddress ( WCHAR*, WCHAR*,IPADDR* );
196 DWORD APIENTRY RasAdminGetUserParms( WCHAR*, PRAS_USER_0 );
197 DWORD APIENTRY RasAdminSetUserParms( WCHAR*, DWORD, PRAS_USER_0 );
203 #endif /* _RASSAPI_H */