rassapi.h 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef _RASSAPI_H_
  7. #define _RASSAPI_H_
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. #if 1
  12. #ifndef UNLEN
  13. #include <lmcons.h>
  14. #endif
  15. #define RASSAPI_MAX_PHONENUMBER_SIZE 128
  16. #define RASSAPI_MAX_MEDIA_NAME 16
  17. #define RASSAPI_MAX_PORT_NAME 16
  18. #define RASSAPI_MAX_DEVICE_NAME 128
  19. #define RASSAPI_MAX_DEVICETYPE_NAME 16
  20. #define RASSAPI_MAX_PARAM_KEY_SIZE 32
  21. #define RASPRIV_NoCallback 0x01
  22. #define RASPRIV_AdminSetCallback 0x02
  23. #define RASPRIV_CallerSetCallback 0x04
  24. #define RASPRIV_DialinPrivilege 0x08
  25. #define RASPRIV_CallbackType (RASPRIV_AdminSetCallback | RASPRIV_CallerSetCallback | RASPRIV_NoCallback)
  26. #define RAS_MODEM_OPERATIONAL 1
  27. #define RAS_MODEM_NOT_RESPONDING 2
  28. #define RAS_MODEM_HARDWARE_FAILURE 3
  29. #define RAS_MODEM_INCORRECT_RESPONSE 4
  30. #define RAS_MODEM_UNKNOWN 5
  31. #define RAS_PORT_NON_OPERATIONAL 1
  32. #define RAS_PORT_DISCONNECTED 2
  33. #define RAS_PORT_CALLING_BACK 3
  34. #define RAS_PORT_LISTENING 4
  35. #define RAS_PORT_AUTHENTICATING 5
  36. #define RAS_PORT_AUTHENTICATED 6
  37. #define RAS_PORT_INITIALIZING 7
  38. enum RAS_PARAMS_FORMAT {
  39. ParamNumber = 0,ParamString = 1
  40. };
  41. typedef enum RAS_PARAMS_FORMAT RAS_PARAMS_FORMAT;
  42. union RAS_PARAMS_VALUE {
  43. DWORD Number;
  44. struct {
  45. DWORD Length;
  46. PCHAR Data;
  47. } String;
  48. };
  49. typedef union RAS_PARAMS_VALUE RAS_PARAMS_VALUE;
  50. struct RAS_PARAMETERS {
  51. CHAR P_Key[RASSAPI_MAX_PARAM_KEY_SIZE];
  52. RAS_PARAMS_FORMAT P_Type;
  53. BYTE P_Attributes;
  54. RAS_PARAMS_VALUE P_Value;
  55. };
  56. typedef struct RAS_PARAMETERS RAS_PARAMETERS;
  57. typedef struct _RAS_USER_0 {
  58. BYTE bfPrivilege;
  59. WCHAR szPhoneNumber[RASSAPI_MAX_PHONENUMBER_SIZE + 1];
  60. } RAS_USER_0,*PRAS_USER_0;
  61. typedef struct _RAS_PORT_0 {
  62. WCHAR wszPortName[RASSAPI_MAX_PORT_NAME];
  63. WCHAR wszDeviceType[RASSAPI_MAX_DEVICETYPE_NAME];
  64. WCHAR wszDeviceName[RASSAPI_MAX_DEVICE_NAME];
  65. WCHAR wszMediaName[RASSAPI_MAX_MEDIA_NAME];
  66. DWORD reserved;
  67. DWORD Flags;
  68. WCHAR wszUserName[UNLEN + 1];
  69. WCHAR wszComputer[NETBIOS_NAME_LEN];
  70. DWORD dwStartSessionTime;
  71. WCHAR wszLogonDomain[DNLEN + 1];
  72. WINBOOL fAdvancedServer;
  73. } RAS_PORT_0,*PRAS_PORT_0;
  74. #define MEDIA_UNKNOWN 0
  75. #define MEDIA_SERIAL 1
  76. #define MEDIA_RAS10_SERIAL 2
  77. #define MEDIA_X25 3
  78. #define MEDIA_ISDN 4
  79. #define USER_AUTHENTICATED 0x0001
  80. #define MESSENGER_PRESENT 0x0002
  81. #define PPP_CLIENT 0x0004
  82. #define GATEWAY_ACTIVE 0x0008
  83. #define REMOTE_LISTEN 0x0010
  84. #define PORT_MULTILINKED 0x0020
  85. typedef ULONG IPADDR;
  86. #define RAS_IPADDRESSLEN 15
  87. #define RAS_IPXADDRESSLEN 22
  88. #define RAS_ATADDRESSLEN 32
  89. typedef struct _RAS_PPP_NBFCP_RESULT {
  90. DWORD dwError;
  91. DWORD dwNetBiosError;
  92. CHAR szName[NETBIOS_NAME_LEN + 1];
  93. WCHAR wszWksta[NETBIOS_NAME_LEN + 1];
  94. } RAS_PPP_NBFCP_RESULT;
  95. typedef struct _RAS_PPP_IPCP_RESULT {
  96. DWORD dwError;
  97. WCHAR wszAddress[RAS_IPADDRESSLEN + 1];
  98. } RAS_PPP_IPCP_RESULT;
  99. typedef struct _RAS_PPP_IPXCP_RESULT {
  100. DWORD dwError;
  101. WCHAR wszAddress[RAS_IPXADDRESSLEN + 1];
  102. } RAS_PPP_IPXCP_RESULT;
  103. typedef struct _RAS_PPP_ATCP_RESULT {
  104. DWORD dwError;
  105. WCHAR wszAddress[RAS_ATADDRESSLEN + 1];
  106. } RAS_PPP_ATCP_RESULT;
  107. typedef struct _RAS_PPP_PROJECTION_RESULT {
  108. RAS_PPP_NBFCP_RESULT nbf;
  109. RAS_PPP_IPCP_RESULT ip;
  110. RAS_PPP_IPXCP_RESULT ipx;
  111. RAS_PPP_ATCP_RESULT at;
  112. } RAS_PPP_PROJECTION_RESULT;
  113. typedef struct _RAS_PORT_1 {
  114. RAS_PORT_0 rasport0;
  115. DWORD LineCondition;
  116. DWORD HardwareCondition;
  117. DWORD LineSpeed;
  118. WORD NumStatistics;
  119. WORD NumMediaParms;
  120. DWORD SizeMediaParms;
  121. RAS_PPP_PROJECTION_RESULT ProjResult;
  122. } RAS_PORT_1,*PRAS_PORT_1;
  123. typedef struct _RAS_PORT_STATISTICS {
  124. DWORD dwBytesXmited;
  125. DWORD dwBytesRcved;
  126. DWORD dwFramesXmited;
  127. DWORD dwFramesRcved;
  128. DWORD dwCrcErr;
  129. DWORD dwTimeoutErr;
  130. DWORD dwAlignmentErr;
  131. DWORD dwHardwareOverrunErr;
  132. DWORD dwFramingErr;
  133. DWORD dwBufferOverrunErr;
  134. DWORD dwBytesXmitedUncompressed;
  135. DWORD dwBytesRcvedUncompressed;
  136. DWORD dwBytesXmitedCompressed;
  137. DWORD dwBytesRcvedCompressed;
  138. DWORD dwPortBytesXmited;
  139. DWORD dwPortBytesRcved;
  140. DWORD dwPortFramesXmited;
  141. DWORD dwPortFramesRcved;
  142. DWORD dwPortCrcErr;
  143. DWORD dwPortTimeoutErr;
  144. DWORD dwPortAlignmentErr;
  145. DWORD dwPortHardwareOverrunErr;
  146. DWORD dwPortFramingErr;
  147. DWORD dwPortBufferOverrunErr;
  148. DWORD dwPortBytesXmitedUncompressed;
  149. DWORD dwPortBytesRcvedUncompressed;
  150. DWORD dwPortBytesXmitedCompressed;
  151. DWORD dwPortBytesRcvedCompressed;
  152. } RAS_PORT_STATISTICS,*PRAS_PORT_STATISTICS;
  153. #define RASDOWNLEVEL 10
  154. #define RASADMIN_35 35
  155. #define RASADMIN_CURRENT 40
  156. typedef struct _RAS_SERVER_0 {
  157. WORD TotalPorts;
  158. WORD PortsInUse;
  159. DWORD RasVersion;
  160. } RAS_SERVER_0,*PRAS_SERVER_0;
  161. DWORD WINAPI RasAdminServerGetInfo(const WCHAR *lpszServer,PRAS_SERVER_0 pRasServer0);
  162. DWORD WINAPI RasAdminGetUserAccountServer(const WCHAR *lpszDomain,const WCHAR *lpszServer,LPWSTR lpszUserAccountServer);
  163. DWORD WINAPI RasAdminUserGetInfo(const WCHAR *lpszUserAccountServer,const WCHAR *lpszUser,PRAS_USER_0 pRasUser0);
  164. DWORD WINAPI RasAdminUserSetInfo(const WCHAR *lpszUserAccountServer,const WCHAR *lpszUser,const PRAS_USER_0 pRasUser0);
  165. DWORD WINAPI RasAdminPortEnum(const WCHAR *lpszServer,PRAS_PORT_0 *ppRasPort0,WORD *pcEntriesRead);
  166. DWORD WINAPI RasAdminPortGetInfo(const WCHAR *lpszServer,const WCHAR *lpszPort,RAS_PORT_1 *pRasPort1,RAS_PORT_STATISTICS *pRasStats,RAS_PARAMETERS **ppRasParams);
  167. DWORD WINAPI RasAdminPortClearStatistics(const WCHAR *lpszServer,const WCHAR *lpszPort);
  168. DWORD WINAPI RasAdminPortDisconnect(const WCHAR *lpszServer,const WCHAR *lpszPort);
  169. DWORD WINAPI RasAdminFreeBuffer(PVOID Pointer);
  170. WINBOOL WINAPI RasAdminAcceptNewConnection (RAS_PORT_1 *pRasPort1,RAS_PORT_STATISTICS *pRasStats,RAS_PARAMETERS *pRasParams);
  171. VOID WINAPI RasAdminConnectionHangupNotification (RAS_PORT_1 *pRasPort1,RAS_PORT_STATISTICS *pRasStats,RAS_PARAMETERS *pRasParams);
  172. DWORD WINAPI RasAdminGetIpAddressForUser (WCHAR *lpszUserName,WCHAR *lpszPortName,IPADDR *pipAddress,WINBOOL *bNotifyRelease);
  173. VOID WINAPI RasAdminReleaseIpAddress (WCHAR *lpszUserName,WCHAR *lpszPortName,IPADDR *pipAddress);
  174. #endif
  175. #ifdef __cplusplus
  176. }
  177. #endif
  178. #endif