2 * Windows API header module
4 * Translated from MinGW Windows headers
6 * Authors: Stewart Gordon
7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
8 * Source: $(DRUNTIMESRC src/core/sys/windows/_rassapi.d)
10 module core.sys.windows.rassapi;
13 private import core.sys.windows.lmcons, core.sys.windows.windef;
15 // FIXME: check types of constants
18 RASSAPI_MAX_PHONENUMBER_SIZE = 128,
19 RASSAPI_MAX_MEDIA_NAME = 16,
20 RASSAPI_MAX_PORT_NAME = 16,
21 RASSAPI_MAX_DEVICE_NAME = 128,
22 RASSAPI_MAX_DEVICETYPE_NAME = 16,
23 RASSAPI_MAX_PARAM_KEY_SIZE = 32;
25 enum RASPRIV_NoCallback = 0x01;
26 enum RASPRIV_AdminSetCallback = 0x02;
27 enum RASPRIV_CallerSetCallback = 0x04;
28 enum RASPRIV_DialinPrivilege = 0x08;
29 enum RASPRIV_CallbackType = 0x07;
32 RAS_MODEM_OPERATIONAL = 1,
33 RAS_MODEM_NOT_RESPONDING,
34 RAS_MODEM_HARDWARE_FAILURE,
35 RAS_MODEM_INCORRECT_RESPONSE,
36 RAS_MODEM_UNKNOWN // = 5
40 RAS_PORT_NON_OPERATIONAL = 1,
41 RAS_PORT_DISCONNECTED,
42 RAS_PORT_CALLING_BACK,
44 RAS_PORT_AUTHENTICATING,
45 RAS_PORT_AUTHENTICATED,
46 RAS_PORT_INITIALIZING // = 7
57 enum USER_AUTHENTICATED = 0x0001;
58 enum MESSENGER_PRESENT = 0x0002;
59 enum PPP_CLIENT = 0x0004;
60 enum GATEWAY_ACTIVE = 0x0008;
61 enum REMOTE_LISTEN = 0x0010;
62 enum PORT_MULTILINKED = 0x0020;
65 RAS_IPADDRESSLEN = 15,
66 RAS_IPXADDRESSLEN = 22,
67 RAS_ATADDRESSLEN = 32;
69 // FIXME: should these be grouped together?
78 enum RAS_PARAMS_FORMAT {
83 union RAS_PARAMS_VALUE {
92 struct RAS_PARAMETERS {
93 CHAR[RASSAPI_MAX_PARAM_KEY_SIZE] P_Key;
94 RAS_PARAMS_FORMAT P_Type;
96 RAS_PARAMS_VALUE P_Value;
101 WCHAR[RASSAPI_MAX_PHONENUMBER_SIZE + 1] szPhoneNumber;
103 alias RAS_USER_0* PRAS_USER_0;
106 WCHAR[RASSAPI_MAX_PORT_NAME] wszPortName;
107 WCHAR[RASSAPI_MAX_DEVICETYPE_NAME] wszDeviceType;
108 WCHAR[RASSAPI_MAX_DEVICE_NAME] wszDeviceName;
109 WCHAR[RASSAPI_MAX_MEDIA_NAME] wszMediaName;
112 WCHAR[UNLEN + 1] wszUserName;
113 WCHAR[NETBIOS_NAME_LEN] wszComputer;
114 DWORD dwStartSessionTime; // seconds from 1/1/1970
115 WCHAR[DNLEN + 1] wszLogonDomain;
116 BOOL fAdvancedServer;
118 alias RAS_PORT_0* PRAS_PORT_0;
120 struct RAS_PPP_NBFCP_RESULT {
122 DWORD dwNetBiosError;
123 CHAR[NETBIOS_NAME_LEN + 1] szName;
124 WCHAR[NETBIOS_NAME_LEN + 1] wszWksta;
127 struct RAS_PPP_IPCP_RESULT {
129 WCHAR[RAS_IPADDRESSLEN + 1] wszAddress;
132 struct RAS_PPP_IPXCP_RESULT {
134 WCHAR[RAS_IPXADDRESSLEN + 1] wszAddress;
137 struct RAS_PPP_ATCP_RESULT {
139 WCHAR[RAS_ATADDRESSLEN + 1] wszAddress;
142 struct RAS_PPP_PROJECTION_RESULT {
143 RAS_PPP_NBFCP_RESULT nbf;
144 RAS_PPP_IPCP_RESULT ip;
145 RAS_PPP_IPXCP_RESULT ipx;
146 RAS_PPP_ATCP_RESULT at;
152 DWORD HardwareCondition;
156 DWORD SizeMediaParms;
157 RAS_PPP_PROJECTION_RESULT ProjResult;
159 alias RAS_PORT_1* PRAS_PORT_1;
161 struct RAS_PORT_STATISTICS {
164 DWORD dwFramesXmited;
168 DWORD dwAlignmentErr;
169 DWORD dwHardwareOverrunErr;
171 DWORD dwBufferOverrunErr;
172 DWORD dwBytesXmitedUncompressed;
173 DWORD dwBytesRcvedUncompressed;
174 DWORD dwBytesXmitedCompressed;
175 DWORD dwBytesRcvedCompressed;
176 DWORD dwPortBytesXmited;
177 DWORD dwPortBytesRcved;
178 DWORD dwPortFramesXmited;
179 DWORD dwPortFramesRcved;
181 DWORD dwPortTimeoutErr;
182 DWORD dwPortAlignmentErr;
183 DWORD dwPortHardwareOverrunErr;
184 DWORD dwPortFramingErr;
185 DWORD dwPortBufferOverrunErr;
186 DWORD dwPortBytesXmitedUncompressed;
187 DWORD dwPortBytesRcvedUncompressed;
188 DWORD dwPortBytesXmitedCompressed;
189 DWORD dwPortBytesRcvedCompressed;
191 alias RAS_PORT_STATISTICS* PRAS_PORT_STATISTICS;
193 struct RAS_SERVER_0 {
198 alias RAS_SERVER_0* PRAS_SERVER_0;
201 DWORD RasAdminServerGetInfo(const(WCHAR)*, PRAS_SERVER_0);
202 DWORD RasAdminGetUserAccountServer(const(WCHAR)*, const(WCHAR)*, LPWSTR);
203 DWORD RasAdminUserGetInfo(const(WCHAR)*, const(WCHAR)*, PRAS_USER_0);
204 DWORD RasAdminUserSetInfo(const(WCHAR)*, const(WCHAR)*, PRAS_USER_0);
205 DWORD RasAdminPortEnum(WCHAR*, PRAS_PORT_0*, WORD*);
206 DWORD RasAdminPortGetInfo(const(WCHAR)*, const(WCHAR)*, RAS_PORT_1*,
207 RAS_PORT_STATISTICS*, RAS_PARAMETERS**);
208 DWORD RasAdminPortClearStatistics(const(WCHAR)*, const(WCHAR)*);
209 DWORD RasAdminPortDisconnect(const(WCHAR)*, const(WCHAR)*);
210 DWORD RasAdminFreeBuffer(PVOID);
211 DWORD RasAdminGetErrorString(UINT, WCHAR*, DWORD);
212 BOOL RasAdminAcceptNewConnection(RAS_PORT_1*, RAS_PORT_STATISTICS*,
214 VOID RasAdminConnectionHangupNotification(RAS_PORT_1*,
215 RAS_PORT_STATISTICS*, RAS_PARAMETERS*);
216 DWORD RasAdminGetIpAddressForUser (WCHAR*, WCHAR*, IPADDR*, BOOL*);
217 VOID RasAdminReleaseIpAddress (WCHAR*, WCHAR*,IPADDR*);
218 DWORD RasAdminGetUserParms(WCHAR*, PRAS_USER_0);
219 DWORD RasAdminSetUserParms(WCHAR*, DWORD, PRAS_USER_0);