1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221
|
/**
* Windows API header module
*
* Translated from MinGW Windows headers
*
* Authors: Stewart Gordon
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(DRUNTIMESRC core/sys/windows/_rassapi.d)
*/
module core.sys.windows.rassapi;
version (Windows):
@system:
import core.sys.windows.lmcons, core.sys.windows.windef;
// FIXME: check types of constants
enum size_t
RASSAPI_MAX_PHONENUMBER_SIZE = 128,
RASSAPI_MAX_MEDIA_NAME = 16,
RASSAPI_MAX_PORT_NAME = 16,
RASSAPI_MAX_DEVICE_NAME = 128,
RASSAPI_MAX_DEVICETYPE_NAME = 16,
RASSAPI_MAX_PARAM_KEY_SIZE = 32;
enum RASPRIV_NoCallback = 0x01;
enum RASPRIV_AdminSetCallback = 0x02;
enum RASPRIV_CallerSetCallback = 0x04;
enum RASPRIV_DialinPrivilege = 0x08;
enum RASPRIV_CallbackType = 0x07;
enum {
RAS_MODEM_OPERATIONAL = 1,
RAS_MODEM_NOT_RESPONDING,
RAS_MODEM_HARDWARE_FAILURE,
RAS_MODEM_INCORRECT_RESPONSE,
RAS_MODEM_UNKNOWN // = 5
}
enum {
RAS_PORT_NON_OPERATIONAL = 1,
RAS_PORT_DISCONNECTED,
RAS_PORT_CALLING_BACK,
RAS_PORT_LISTENING,
RAS_PORT_AUTHENTICATING,
RAS_PORT_AUTHENTICATED,
RAS_PORT_INITIALIZING // = 7
}
enum {
MEDIA_UNKNOWN,
MEDIA_SERIAL,
MEDIA_RAS10_SERIAL,
MEDIA_X25,
MEDIA_ISDN
}
enum USER_AUTHENTICATED = 0x0001;
enum MESSENGER_PRESENT = 0x0002;
enum PPP_CLIENT = 0x0004;
enum GATEWAY_ACTIVE = 0x0008;
enum REMOTE_LISTEN = 0x0010;
enum PORT_MULTILINKED = 0x0020;
enum size_t
RAS_IPADDRESSLEN = 15,
RAS_IPXADDRESSLEN = 22,
RAS_ATADDRESSLEN = 32;
// FIXME: should these be grouped together?
enum {
RASDOWNLEVEL = 10,
RASADMIN_35 = 35,
RASADMIN_CURRENT = 40
}
alias ULONG IPADDR;
enum RAS_PARAMS_FORMAT {
ParamNumber = 0,
ParamString
}
union RAS_PARAMS_VALUE {
DWORD Number;
struct _String {
DWORD Length;
PCHAR Data;
}
_String String;
}
struct RAS_PARAMETERS {
CHAR[RASSAPI_MAX_PARAM_KEY_SIZE] P_Key = 0;
RAS_PARAMS_FORMAT P_Type;
BYTE P_Attributes;
RAS_PARAMS_VALUE P_Value;
}
struct RAS_USER_0 {
BYTE bfPrivilege;
WCHAR[RASSAPI_MAX_PHONENUMBER_SIZE + 1] szPhoneNumber = 0;
}
alias RAS_USER_0* PRAS_USER_0;
struct RAS_PORT_0 {
WCHAR[RASSAPI_MAX_PORT_NAME] wszPortName = 0;
WCHAR[RASSAPI_MAX_DEVICETYPE_NAME] wszDeviceType = 0;
WCHAR[RASSAPI_MAX_DEVICE_NAME] wszDeviceName = 0;
WCHAR[RASSAPI_MAX_MEDIA_NAME] wszMediaName = 0;
DWORD reserved;
DWORD Flags;
WCHAR[UNLEN + 1] wszUserName = 0;
WCHAR[NETBIOS_NAME_LEN] wszComputer = 0;
DWORD dwStartSessionTime; // seconds from 1/1/1970
WCHAR[DNLEN + 1] wszLogonDomain = 0;
BOOL fAdvancedServer;
}
alias RAS_PORT_0* PRAS_PORT_0;
struct RAS_PPP_NBFCP_RESULT {
DWORD dwError;
DWORD dwNetBiosError;
CHAR[NETBIOS_NAME_LEN + 1] szName = 0;
WCHAR[NETBIOS_NAME_LEN + 1] wszWksta = 0;
}
struct RAS_PPP_IPCP_RESULT {
DWORD dwError;
WCHAR[RAS_IPADDRESSLEN + 1] wszAddress = 0;
}
struct RAS_PPP_IPXCP_RESULT {
DWORD dwError;
WCHAR[RAS_IPXADDRESSLEN + 1] wszAddress = 0;
}
struct RAS_PPP_ATCP_RESULT {
DWORD dwError;
WCHAR[RAS_ATADDRESSLEN + 1] wszAddress = 0;
}
struct RAS_PPP_PROJECTION_RESULT {
RAS_PPP_NBFCP_RESULT nbf;
RAS_PPP_IPCP_RESULT ip;
RAS_PPP_IPXCP_RESULT ipx;
RAS_PPP_ATCP_RESULT at;
}
struct RAS_PORT_1 {
RAS_PORT_0 rasport0;
DWORD LineCondition;
DWORD HardwareCondition;
DWORD LineSpeed;
WORD NumStatistics;
WORD NumMediaParms;
DWORD SizeMediaParms;
RAS_PPP_PROJECTION_RESULT ProjResult;
}
alias RAS_PORT_1* PRAS_PORT_1;
struct RAS_PORT_STATISTICS {
DWORD dwBytesXmited;
DWORD dwBytesRcved;
DWORD dwFramesXmited;
DWORD dwFramesRcved;
DWORD dwCrcErr;
DWORD dwTimeoutErr;
DWORD dwAlignmentErr;
DWORD dwHardwareOverrunErr;
DWORD dwFramingErr;
DWORD dwBufferOverrunErr;
DWORD dwBytesXmitedUncompressed;
DWORD dwBytesRcvedUncompressed;
DWORD dwBytesXmitedCompressed;
DWORD dwBytesRcvedCompressed;
DWORD dwPortBytesXmited;
DWORD dwPortBytesRcved;
DWORD dwPortFramesXmited;
DWORD dwPortFramesRcved;
DWORD dwPortCrcErr;
DWORD dwPortTimeoutErr;
DWORD dwPortAlignmentErr;
DWORD dwPortHardwareOverrunErr;
DWORD dwPortFramingErr;
DWORD dwPortBufferOverrunErr;
DWORD dwPortBytesXmitedUncompressed;
DWORD dwPortBytesRcvedUncompressed;
DWORD dwPortBytesXmitedCompressed;
DWORD dwPortBytesRcvedCompressed;
}
alias RAS_PORT_STATISTICS* PRAS_PORT_STATISTICS;
struct RAS_SERVER_0 {
WORD TotalPorts;
WORD PortsInUse;
DWORD RasVersion;
}
alias RAS_SERVER_0* PRAS_SERVER_0;
extern (Windows) {
DWORD RasAdminServerGetInfo(const(WCHAR)*, PRAS_SERVER_0);
DWORD RasAdminGetUserAccountServer(const(WCHAR)*, const(WCHAR)*, LPWSTR);
DWORD RasAdminUserGetInfo(const(WCHAR)*, const(WCHAR)*, PRAS_USER_0);
DWORD RasAdminUserSetInfo(const(WCHAR)*, const(WCHAR)*, PRAS_USER_0);
DWORD RasAdminPortEnum(WCHAR*, PRAS_PORT_0*, WORD*);
DWORD RasAdminPortGetInfo(const(WCHAR)*, const(WCHAR)*, RAS_PORT_1*,
RAS_PORT_STATISTICS*, RAS_PARAMETERS**);
DWORD RasAdminPortClearStatistics(const(WCHAR)*, const(WCHAR)*);
DWORD RasAdminPortDisconnect(const(WCHAR)*, const(WCHAR)*);
DWORD RasAdminFreeBuffer(PVOID);
DWORD RasAdminGetErrorString(UINT, WCHAR*, DWORD);
BOOL RasAdminAcceptNewConnection(RAS_PORT_1*, RAS_PORT_STATISTICS*,
RAS_PARAMETERS*);
VOID RasAdminConnectionHangupNotification(RAS_PORT_1*,
RAS_PORT_STATISTICS*, RAS_PARAMETERS*);
DWORD RasAdminGetIpAddressForUser (WCHAR*, WCHAR*, IPADDR*, BOOL*);
VOID RasAdminReleaseIpAddress (WCHAR*, WCHAR*,IPADDR*);
DWORD RasAdminGetUserParms(WCHAR*, PRAS_USER_0);
DWORD RasAdminSetUserParms(WCHAR*, DWORD, PRAS_USER_0);
}
|