blob: 0eaa5b28f5b27ab38fcb42f97882acfc3e1b47d0 [file] [log] [blame]
/**
* 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 src/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);
}