File Annotation

Not logged in
4e2933c620 2015-04-21        kinaba: /***********************************************************************\
4e2933c620 2015-04-21        kinaba: *                               rassapi.d                               *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Windows API header module                       *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                 Translated from MinGW Windows headers                 *
4e2933c620 2015-04-21        kinaba: *                           by Stewart Gordon                           *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Placed into public domain                       *
4e2933c620 2015-04-21        kinaba: \***********************************************************************/
4e2933c620 2015-04-21        kinaba: module win32.rassapi;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: private import win32.lmcons, win32.windef;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // FIXME: check types of constants
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const size_t
4e2933c620 2015-04-21        kinaba: 	RASSAPI_MAX_PHONENUMBER_SIZE = 128,
4e2933c620 2015-04-21        kinaba: 	RASSAPI_MAX_MEDIA_NAME	     =  16,
4e2933c620 2015-04-21        kinaba: 	RASSAPI_MAX_PORT_NAME	     =  16,
4e2933c620 2015-04-21        kinaba: 	RASSAPI_MAX_DEVICE_NAME      = 128,
4e2933c620 2015-04-21        kinaba: 	RASSAPI_MAX_DEVICETYPE_NAME  =  16,
4e2933c620 2015-04-21        kinaba: 	RASSAPI_MAX_PARAM_KEY_SIZE   =  32;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const RASPRIV_NoCallback        = 0x01;
4e2933c620 2015-04-21        kinaba: const RASPRIV_AdminSetCallback  = 0x02;
4e2933c620 2015-04-21        kinaba: const RASPRIV_CallerSetCallback = 0x04;
4e2933c620 2015-04-21        kinaba: const RASPRIV_DialinPrivilege   = 0x08;
4e2933c620 2015-04-21        kinaba: const RASPRIV_CallbackType      = 0x07;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	RAS_MODEM_OPERATIONAL = 1,
4e2933c620 2015-04-21        kinaba: 	RAS_MODEM_NOT_RESPONDING,
4e2933c620 2015-04-21        kinaba: 	RAS_MODEM_HARDWARE_FAILURE,
4e2933c620 2015-04-21        kinaba: 	RAS_MODEM_INCORRECT_RESPONSE,
4e2933c620 2015-04-21        kinaba: 	RAS_MODEM_UNKNOWN  // = 5
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	RAS_PORT_NON_OPERATIONAL = 1,
4e2933c620 2015-04-21        kinaba: 	RAS_PORT_DISCONNECTED,
4e2933c620 2015-04-21        kinaba: 	RAS_PORT_CALLING_BACK,
4e2933c620 2015-04-21        kinaba: 	RAS_PORT_LISTENING,
4e2933c620 2015-04-21        kinaba: 	RAS_PORT_AUTHENTICATING,
4e2933c620 2015-04-21        kinaba: 	RAS_PORT_AUTHENTICATED,
4e2933c620 2015-04-21        kinaba: 	RAS_PORT_INITIALIZING // = 7
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	MEDIA_UNKNOWN,
4e2933c620 2015-04-21        kinaba: 	MEDIA_SERIAL,
4e2933c620 2015-04-21        kinaba: 	MEDIA_RAS10_SERIAL,
4e2933c620 2015-04-21        kinaba: 	MEDIA_X25,
4e2933c620 2015-04-21        kinaba: 	MEDIA_ISDN
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const USER_AUTHENTICATED = 0x0001;
4e2933c620 2015-04-21        kinaba: const MESSENGER_PRESENT  = 0x0002;
4e2933c620 2015-04-21        kinaba: const PPP_CLIENT         = 0x0004;
4e2933c620 2015-04-21        kinaba: const GATEWAY_ACTIVE     = 0x0008;
4e2933c620 2015-04-21        kinaba: const REMOTE_LISTEN      = 0x0010;
4e2933c620 2015-04-21        kinaba: const PORT_MULTILINKED   = 0x0020;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const size_t
4e2933c620 2015-04-21        kinaba: 	RAS_IPADDRESSLEN  = 15,
4e2933c620 2015-04-21        kinaba: 	RAS_IPXADDRESSLEN = 22,
4e2933c620 2015-04-21        kinaba: 	RAS_ATADDRESSLEN  = 32;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // FIXME: should these be grouped together?
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	RASDOWNLEVEL     = 10,
4e2933c620 2015-04-21        kinaba: 	RASADMIN_35      = 35,
4e2933c620 2015-04-21        kinaba: 	RASADMIN_CURRENT = 40
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias ULONG IPADDR;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum RAS_PARAMS_FORMAT {
4e2933c620 2015-04-21        kinaba:     ParamNumber = 0,
4e2933c620 2015-04-21        kinaba:     ParamString
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: union RAS_PARAMS_VALUE {
4e2933c620 2015-04-21        kinaba: 	DWORD Number;
4e2933c620 2015-04-21        kinaba: 	struct _String {
4e2933c620 2015-04-21        kinaba: 		DWORD Length;
4e2933c620 2015-04-21        kinaba: 		PCHAR Data;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	_String String;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct RAS_PARAMETERS {
4e2933c620 2015-04-21        kinaba: 	CHAR[RASSAPI_MAX_PARAM_KEY_SIZE] P_Key;
4e2933c620 2015-04-21        kinaba: 	RAS_PARAMS_FORMAT                P_Type;
4e2933c620 2015-04-21        kinaba: 	BYTE                             P_Attributes;
4e2933c620 2015-04-21        kinaba: 	RAS_PARAMS_VALUE                 P_Value;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct RAS_USER_0 {
4e2933c620 2015-04-21        kinaba: 	BYTE                                    bfPrivilege;
4e2933c620 2015-04-21        kinaba: 	WCHAR[RASSAPI_MAX_PHONENUMBER_SIZE + 1] szPhoneNumber;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias RAS_USER_0* PRAS_USER_0;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct RAS_PORT_0 {
4e2933c620 2015-04-21        kinaba: 	WCHAR[RASSAPI_MAX_PORT_NAME]       wszPortName;
4e2933c620 2015-04-21        kinaba: 	WCHAR[RASSAPI_MAX_DEVICETYPE_NAME] wszDeviceType;
4e2933c620 2015-04-21        kinaba: 	WCHAR[RASSAPI_MAX_DEVICE_NAME]     wszDeviceName;
4e2933c620 2015-04-21        kinaba: 	WCHAR[RASSAPI_MAX_MEDIA_NAME]      wszMediaName;
4e2933c620 2015-04-21        kinaba: 	DWORD                              reserved;
4e2933c620 2015-04-21        kinaba: 	DWORD                              Flags;
4e2933c620 2015-04-21        kinaba: 	WCHAR[UNLEN + 1]                   wszUserName;
4e2933c620 2015-04-21        kinaba: 	WCHAR[NETBIOS_NAME_LEN]            wszComputer;
4e2933c620 2015-04-21        kinaba: 	DWORD                              dwStartSessionTime; // seconds from 1/1/1970
4e2933c620 2015-04-21        kinaba: 	WCHAR[DNLEN + 1]                   wszLogonDomain;
4e2933c620 2015-04-21        kinaba: 	BOOL                               fAdvancedServer;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias RAS_PORT_0* PRAS_PORT_0;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct RAS_PPP_NBFCP_RESULT {
4e2933c620 2015-04-21        kinaba: 	DWORD dwError;
4e2933c620 2015-04-21        kinaba: 	DWORD dwNetBiosError;
4e2933c620 2015-04-21        kinaba: 	CHAR[NETBIOS_NAME_LEN + 1]  szName;
4e2933c620 2015-04-21        kinaba: 	WCHAR[NETBIOS_NAME_LEN + 1] wszWksta;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct RAS_PPP_IPCP_RESULT {
4e2933c620 2015-04-21        kinaba: 	DWORD dwError;
4e2933c620 2015-04-21        kinaba: 	WCHAR[RAS_IPADDRESSLEN + 1] wszAddress;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct RAS_PPP_IPXCP_RESULT {
4e2933c620 2015-04-21        kinaba: 	DWORD dwError;
4e2933c620 2015-04-21        kinaba: 	WCHAR[RAS_IPXADDRESSLEN + 1] wszAddress;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct RAS_PPP_ATCP_RESULT {
4e2933c620 2015-04-21        kinaba: 	DWORD dwError;
4e2933c620 2015-04-21        kinaba: 	WCHAR[RAS_ATADDRESSLEN + 1] wszAddress;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct RAS_PPP_PROJECTION_RESULT {
4e2933c620 2015-04-21        kinaba: 	RAS_PPP_NBFCP_RESULT nbf;
4e2933c620 2015-04-21        kinaba: 	RAS_PPP_IPCP_RESULT  ip;
4e2933c620 2015-04-21        kinaba: 	RAS_PPP_IPXCP_RESULT ipx;
4e2933c620 2015-04-21        kinaba: 	RAS_PPP_ATCP_RESULT  at;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct RAS_PORT_1 {
4e2933c620 2015-04-21        kinaba: 	RAS_PORT_0 rasport0;
4e2933c620 2015-04-21        kinaba: 	DWORD      LineCondition;
4e2933c620 2015-04-21        kinaba: 	DWORD      HardwareCondition;
4e2933c620 2015-04-21        kinaba: 	DWORD      LineSpeed;
4e2933c620 2015-04-21        kinaba: 	WORD       NumStatistics;
4e2933c620 2015-04-21        kinaba: 	WORD       NumMediaParms;
4e2933c620 2015-04-21        kinaba: 	DWORD      SizeMediaParms;
4e2933c620 2015-04-21        kinaba: 	RAS_PPP_PROJECTION_RESULT ProjResult;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias RAS_PORT_1* PRAS_PORT_1;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct RAS_PORT_STATISTICS {
4e2933c620 2015-04-21        kinaba: 	DWORD dwBytesXmited;
4e2933c620 2015-04-21        kinaba: 	DWORD dwBytesRcved;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFramesXmited;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFramesRcved;
4e2933c620 2015-04-21        kinaba: 	DWORD dwCrcErr;
4e2933c620 2015-04-21        kinaba: 	DWORD dwTimeoutErr;
4e2933c620 2015-04-21        kinaba: 	DWORD dwAlignmentErr;
4e2933c620 2015-04-21        kinaba: 	DWORD dwHardwareOverrunErr;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFramingErr;
4e2933c620 2015-04-21        kinaba: 	DWORD dwBufferOverrunErr;
4e2933c620 2015-04-21        kinaba: 	DWORD dwBytesXmitedUncompressed;
4e2933c620 2015-04-21        kinaba: 	DWORD dwBytesRcvedUncompressed;
4e2933c620 2015-04-21        kinaba: 	DWORD dwBytesXmitedCompressed;
4e2933c620 2015-04-21        kinaba: 	DWORD dwBytesRcvedCompressed;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPortBytesXmited;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPortBytesRcved;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPortFramesXmited;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPortFramesRcved;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPortCrcErr;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPortTimeoutErr;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPortAlignmentErr;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPortHardwareOverrunErr;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPortFramingErr;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPortBufferOverrunErr;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPortBytesXmitedUncompressed;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPortBytesRcvedUncompressed;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPortBytesXmitedCompressed;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPortBytesRcvedCompressed;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias RAS_PORT_STATISTICS* PRAS_PORT_STATISTICS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct RAS_SERVER_0 {
4e2933c620 2015-04-21        kinaba: 	WORD TotalPorts;
4e2933c620 2015-04-21        kinaba: 	WORD PortsInUse;
4e2933c620 2015-04-21        kinaba: 	DWORD RasVersion;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias RAS_SERVER_0* PRAS_SERVER_0;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: extern (Windows) {
4e2933c620 2015-04-21        kinaba: 	DWORD RasAdminServerGetInfo(CPtr!(WCHAR), PRAS_SERVER_0);
4e2933c620 2015-04-21        kinaba: 	DWORD RasAdminGetUserAccountServer(CPtr!(WCHAR), CPtr!(WCHAR), LPWSTR);
4e2933c620 2015-04-21        kinaba: 	DWORD RasAdminUserGetInfo(CPtr!(WCHAR), CPtr!(WCHAR), PRAS_USER_0);
4e2933c620 2015-04-21        kinaba: 	DWORD RasAdminUserSetInfo(CPtr!(WCHAR), CPtr!(WCHAR), PRAS_USER_0);
4e2933c620 2015-04-21        kinaba: 	DWORD RasAdminPortEnum(WCHAR*, PRAS_PORT_0*, WORD*);
4e2933c620 2015-04-21        kinaba: 	DWORD RasAdminPortGetInfo(CPtr!(WCHAR), CPtr!(WCHAR), RAS_PORT_1*,
4e2933c620 2015-04-21        kinaba: 	 RAS_PORT_STATISTICS*, RAS_PARAMETERS**);
4e2933c620 2015-04-21        kinaba: 	DWORD RasAdminPortClearStatistics(CPtr!(WCHAR), CPtr!(WCHAR));
4e2933c620 2015-04-21        kinaba: 	DWORD RasAdminPortDisconnect(CPtr!(WCHAR), CPtr!(WCHAR));
4e2933c620 2015-04-21        kinaba: 	DWORD RasAdminFreeBuffer(PVOID);
4e2933c620 2015-04-21        kinaba: 	DWORD RasAdminGetErrorString(UINT, WCHAR*, DWORD);
4e2933c620 2015-04-21        kinaba: 	BOOL RasAdminAcceptNewConnection(RAS_PORT_1*, RAS_PORT_STATISTICS*,
4e2933c620 2015-04-21        kinaba: 	 RAS_PARAMETERS*);
4e2933c620 2015-04-21        kinaba: 	VOID RasAdminConnectionHangupNotification(RAS_PORT_1*,
4e2933c620 2015-04-21        kinaba: 	  RAS_PORT_STATISTICS*, RAS_PARAMETERS*);
4e2933c620 2015-04-21        kinaba: 	DWORD RasAdminGetIpAddressForUser (WCHAR*, WCHAR*, IPADDR*, BOOL*);
4e2933c620 2015-04-21        kinaba: 	VOID RasAdminReleaseIpAddress (WCHAR*, WCHAR*,IPADDR*);
4e2933c620 2015-04-21        kinaba: 	DWORD RasAdminGetUserParms(WCHAR*, PRAS_USER_0);
4e2933c620 2015-04-21        kinaba: 	DWORD RasAdminSetUserParms(WCHAR*, DWORD, PRAS_USER_0);
4e2933c620 2015-04-21        kinaba: }