OSDN Git Service

Apply LICENSE to all files as appropriate.
[mingw/mingw-org-wsl.git] / include / rassapi.h
1 /**
2  * @file rassapi.h
3  * @copy 2012 MinGW.org project
4  *
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:
11  * 
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
14  * Software.
15  * 
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.
23  */
24 #ifndef _RASSAPI_H
25 #define _RASSAPI_H
26 #pragma GCC system_header
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 #ifndef UNLEN
32 #include <lmcons.h>
33 #endif
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 \
46                              | RASPRIV_NoCallback)
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
62 #define MEDIA_X25                       3
63 #define MEDIA_ISDN                      4
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
76
77 typedef ULONG IPADDR;
78 typedef enum _RAS_PARAMS_FORMAT {
79     ParamNumber = 0,
80     ParamString = 1
81 } RAS_PARAMS_FORMAT;
82 typedef union RAS_PARAMS_VALUE {
83         DWORD   Number;
84         struct  {
85             DWORD       Length;
86                 PCHAR   Data;
87                 } String;
88 } RAS_PARAMS_VALUE;
89 typedef struct RAS_PARAMETERS {
90     CHAR                    P_Key [RASSAPI_MAX_PARAM_KEY_SIZE];
91     RAS_PARAMS_FORMAT   P_Type;
92     BYTE                    P_Attributes;
93     RAS_PARAMS_VALUE    P_Value;
94 } RAS_PARAMETERS;
95 typedef struct _RAS_USER_0 {
96     BYTE    bfPrivilege;
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];
104     DWORD reserved;
105     DWORD Flags;
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 {
113     DWORD dwError;
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{
119     DWORD dwError;
120     WCHAR wszAddress[ RAS_IPADDRESSLEN + 1 ];
121 } RAS_PPP_IPCP_RESULT;
122 typedef struct _RAS_PPP_IPXCP_RESULT {
123     DWORD dwError;
124     WCHAR wszAddress[ RAS_IPXADDRESSLEN + 1 ];
125 } RAS_PPP_IPXCP_RESULT;
126 typedef struct _RAS_PPP_ATCP_RESULT {
127     DWORD dwError;
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{
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 typedef struct _RAS_PORT_STATISTICS {
147     DWORD   dwBytesXmited;
148     DWORD   dwBytesRcved;
149     DWORD   dwFramesXmited;
150     DWORD   dwFramesRcved;
151     DWORD   dwCrcErr;
152     DWORD   dwTimeoutErr;
153     DWORD   dwAlignmentErr;
154     DWORD   dwHardwareOverrunErr;
155     DWORD   dwFramingErr;
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;
165     DWORD   dwPortCrcErr;
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 {
177     WORD TotalPorts;
178     WORD PortsInUse;
179     DWORD RasVersion;
180 } RAS_SERVER_0, *PRAS_SERVER_0;
181
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 );
198
199 #ifdef __cplusplus
200 }
201 #endif
202
203 #endif /* _RASSAPI_H */