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
37 #define RASSAPI_MAX_PHONENUMBER_SIZE 128
38 #define RASSAPI_MAX_MEDIA_NAME 16
39 #define RASSAPI_MAX_PORT_NAME 16
40 #define RASSAPI_MAX_DEVICE_NAME 128
41 #define RASSAPI_MAX_DEVICETYPE_NAME 16
42 #define RASSAPI_MAX_PARAM_KEY_SIZE 32
43 #define RASPRIV_NoCallback 0x01
44 #define RASPRIV_AdminSetCallback 0x02
45 #define RASPRIV_CallerSetCallback 0x04
46 #define RASPRIV_DialinPrivilege 0x08
47 #define RASPRIV_CallbackType (RASPRIV_AdminSetCallback \
48 | RASPRIV_CallerSetCallback \
50 #define RAS_MODEM_OPERATIONAL 1
51 #define RAS_MODEM_NOT_RESPONDING 2
52 #define RAS_MODEM_HARDWARE_FAILURE 3
53 #define RAS_MODEM_INCORRECT_RESPONSE 4
54 #define RAS_MODEM_UNKNOWN 5
55 #define RAS_PORT_NON_OPERATIONAL 1
56 #define RAS_PORT_DISCONNECTED 2
57 #define RAS_PORT_CALLING_BACK 3
58 #define RAS_PORT_LISTENING 4
59 #define RAS_PORT_AUTHENTICATING 5
60 #define RAS_PORT_AUTHENTICATED 6
61 #define RAS_PORT_INITIALIZING 7
62 #define MEDIA_UNKNOWN 0
63 #define MEDIA_SERIAL 1
64 #define MEDIA_RAS10_SERIAL 2
67 #define USER_AUTHENTICATED 0x0001
68 #define MESSENGER_PRESENT 0x0002
69 #define PPP_CLIENT 0x0004
70 #define GATEWAY_ACTIVE 0x0008
71 #define REMOTE_LISTEN 0x0010
72 #define PORT_MULTILINKED 0x0020
73 #define RAS_IPADDRESSLEN 15
74 #define RAS_IPXADDRESSLEN 22
75 #define RAS_ATADDRESSLEN 32
76 #define RASDOWNLEVEL 10
77 #define RASADMIN_35 35
78 #define RASADMIN_CURRENT 40
81 typedef enum _RAS_PARAMS_FORMAT {
85 typedef union RAS_PARAMS_VALUE {
92 typedef struct RAS_PARAMETERS {
93 CHAR P_Key [RASSAPI_MAX_PARAM_KEY_SIZE];
94 RAS_PARAMS_FORMAT P_Type;
96 RAS_PARAMS_VALUE P_Value;
98 typedef struct _RAS_USER_0 {
100 WCHAR szPhoneNumber[RASSAPI_MAX_PHONENUMBER_SIZE + 1];
101 } RAS_USER_0, *PRAS_USER_0;
102 typedef struct _RAS_PORT_0 {
103 WCHAR wszPortName[RASSAPI_MAX_PORT_NAME];
104 WCHAR wszDeviceType[RASSAPI_MAX_DEVICETYPE_NAME];
105 WCHAR wszDeviceName[RASSAPI_MAX_DEVICE_NAME];
106 WCHAR wszMediaName[RASSAPI_MAX_MEDIA_NAME];
109 WCHAR wszUserName[UNLEN + 1];
110 WCHAR wszComputer[NETBIOS_NAME_LEN];
111 DWORD dwStartSessionTime; /* seconds from 1/1/1970 */
112 WCHAR wszLogonDomain[DNLEN + 1];
113 BOOL fAdvancedServer;
114 } RAS_PORT_0, *PRAS_PORT_0;
115 typedef struct _RAS_PPP_NBFCP_RESULT {
117 DWORD dwNetBiosError;
118 CHAR szName[ NETBIOS_NAME_LEN + 1 ];
119 WCHAR wszWksta[ NETBIOS_NAME_LEN + 1 ];
120 } RAS_PPP_NBFCP_RESULT;
121 typedef struct _RAS_PPP_IPCP_RESULT{
123 WCHAR wszAddress[ RAS_IPADDRESSLEN + 1 ];
124 } RAS_PPP_IPCP_RESULT;
125 typedef struct _RAS_PPP_IPXCP_RESULT {
127 WCHAR wszAddress[ RAS_IPXADDRESSLEN + 1 ];
128 } RAS_PPP_IPXCP_RESULT;
129 typedef struct _RAS_PPP_ATCP_RESULT {
131 WCHAR wszAddress[ RAS_ATADDRESSLEN + 1 ];
132 } RAS_PPP_ATCP_RESULT;
133 typedef struct _RAS_PPP_PROJECTION_RESULT {
134 RAS_PPP_NBFCP_RESULT nbf;
135 RAS_PPP_IPCP_RESULT ip;
136 RAS_PPP_IPXCP_RESULT ipx;
137 RAS_PPP_ATCP_RESULT at;
138 } RAS_PPP_PROJECTION_RESULT;
139 typedef struct _RAS_PORT_1{
142 DWORD HardwareCondition;
146 DWORD SizeMediaParms;
147 RAS_PPP_PROJECTION_RESULT ProjResult;
148 } RAS_PORT_1, *PRAS_PORT_1;
149 typedef struct _RAS_PORT_STATISTICS {
152 DWORD dwFramesXmited;
156 DWORD dwAlignmentErr;
157 DWORD dwHardwareOverrunErr;
159 DWORD dwBufferOverrunErr;
160 DWORD dwBytesXmitedUncompressed;
161 DWORD dwBytesRcvedUncompressed;
162 DWORD dwBytesXmitedCompressed;
163 DWORD dwBytesRcvedCompressed;
164 DWORD dwPortBytesXmited;
165 DWORD dwPortBytesRcved;
166 DWORD dwPortFramesXmited;
167 DWORD dwPortFramesRcved;
169 DWORD dwPortTimeoutErr;
170 DWORD dwPortAlignmentErr;
171 DWORD dwPortHardwareOverrunErr;
172 DWORD dwPortFramingErr;
173 DWORD dwPortBufferOverrunErr;
174 DWORD dwPortBytesXmitedUncompressed;
175 DWORD dwPortBytesRcvedUncompressed;
176 DWORD dwPortBytesXmitedCompressed;
177 DWORD dwPortBytesRcvedCompressed;
178 } RAS_PORT_STATISTICS, *PRAS_PORT_STATISTICS;
179 typedef struct _RAS_SERVER_0 {
183 } RAS_SERVER_0, *PRAS_SERVER_0;
185 DWORD APIENTRY RasAdminServerGetInfo( const WCHAR*, PRAS_SERVER_0 );
186 DWORD APIENTRY RasAdminGetUserAccountServer( const WCHAR*, const WCHAR*, LPWSTR );
187 DWORD APIENTRY RasAdminUserGetInfo( const WCHAR*, const WCHAR*, PRAS_USER_0 );
188 DWORD APIENTRY RasAdminUserSetInfo( const WCHAR*, const WCHAR*, const PRAS_USER_0 );
189 DWORD APIENTRY RasAdminPortEnum( const WCHAR*, PRAS_PORT_0*, WORD*);
190 DWORD APIENTRY RasAdminPortGetInfo( const WCHAR*, const WCHAR*, RAS_PORT_1*, RAS_PORT_STATISTICS*, RAS_PARAMETERS** );
191 DWORD APIENTRY RasAdminPortClearStatistics( const WCHAR*, const WCHAR* );
192 DWORD APIENTRY RasAdminPortDisconnect( const WCHAR*, const WCHAR* );
193 DWORD APIENTRY RasAdminFreeBuffer(PVOID);
194 DWORD APIENTRY RasAdminGetErrorString( UINT, WCHAR*, DWORD );
195 BOOL APIENTRY RasAdminAcceptNewConnection( RAS_PORT_1*, RAS_PORT_STATISTICS*, RAS_PARAMETERS* );
196 VOID APIENTRY RasAdminConnectionHangupNotification ( RAS_PORT_1*, RAS_PORT_STATISTICS*, RAS_PARAMETERS* );
197 DWORD APIENTRY RasAdminGetIpAddressForUser ( WCHAR*, WCHAR*, IPADDR*, BOOL*);
198 VOID APIENTRY RasAdminReleaseIpAddress ( WCHAR*, WCHAR*,IPADDR* );
199 DWORD APIENTRY RasAdminGetUserParms( WCHAR*, PRAS_USER_0 );
200 DWORD APIENTRY RasAdminSetUserParms( WCHAR*, DWORD, PRAS_USER_0 );
206 #endif /* _RASSAPI_H */