| /** |
| * 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); |
| } |