Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

725 lines
17 KiB

  1. //****************************************************************************
  2. //
  3. // Microsoft NT Remote Access Service
  4. //
  5. // Copyright 1992-93
  6. //
  7. //
  8. // Revision History
  9. //
  10. //
  11. // 5/26/92 Gurdeep Singh Pall Created
  12. //
  13. //
  14. // Description: This file contains all structure and constant definitions for
  15. // RAS Manager Component.
  16. //
  17. //****************************************************************************
  18. #ifndef _RASMAN_
  19. #define _RASMAN_
  20. #include <windows.h>
  21. #include <rassapi.h>
  22. #define WM_RASAPICOMPLETE 0xCCCC // From the "user" window msg range
  23. #define RASMAN_SERVICE_NAME "RASMAN"
  24. #define MAX_MEDIA_NAME RASSAPI_MAX_MEDIA_NAME
  25. #define MAX_PORT_NAME RASSAPI_MAX_PORT_NAME
  26. #define MAX_DEVICE_NAME RASSAPI_MAX_DEVICE_NAME
  27. #define MAX_DEVICETYPE_NAME RASSAPI_MAX_DEVICETYPE_NAME
  28. #define MAX_PARAM_KEY_SIZE RASSAPI_MAX_PARAM_KEY_SIZE
  29. #define MAX_PHONENUMBER_SIZE RASSAPI_MAX_PHONENUMBER_SIZE
  30. #define MAX_USERKEY_SIZE 132
  31. #define MAX_XPORT_NAME 128 // ??
  32. #define MAX_IDENTIFIER_SIZE 32
  33. #define MAX_STAT_NAME 32
  34. #define MAX_CHALLENGE_SIZE 8
  35. #define MAX_RESPONSE_SIZE 24
  36. #define MAX_USERNAME_SIZE UNLEN
  37. #define MAX_DOMAIN_SIZE DNLEN
  38. #define MAX_PASSWORD_SIZE PWLEN
  39. #define MAX_LAN_NETS 16
  40. #define MAX_PROTOCOLS_PER_PORT 4
  41. #define MAX_DLL_NAME_SIZE 8
  42. #define MAX_ENTRYPOINT_NAME_SIZE 32
  43. #define MAX_ARG_STRING_SIZE 32
  44. #define MAX_ENTRYNAME_SIZE 256
  45. #define MAX_CALLBACKNUMBER_SIZE MAX_PHONENUMBER_SIZE
  46. #define MAX_PHONEENTRY_SIZE (MAX_PHONENUMBER_SIZE < MAX_ENTRYNAME_SIZE ? MAX_ENTRYNAME_SIZE : MAX_PHONENUMBER_SIZE)
  47. #define INVALID_TAPI_ID 0xffffffff
  48. typedef DWORD HPORT ;
  49. typedef DWORD HBUNDLE ;
  50. typedef DWORD HCONN;
  51. enum RASMAN_STATUS {
  52. OPEN = 0,
  53. CLOSED = 1,
  54. UNKNOWN = 2
  55. } ;
  56. typedef enum RASMAN_STATUS RASMAN_STATUS ;
  57. enum RASMAN_USAGE {
  58. CALL_IN = 0,
  59. CALL_OUT = 1,
  60. CALL_IN_OUT = 2,
  61. CALL_NONE = 3
  62. } ;
  63. typedef enum RASMAN_USAGE RASMAN_USAGE ;
  64. enum RAS_FORMAT {
  65. Number = 0,
  66. String = 1
  67. } ;
  68. typedef enum RAS_FORMAT RAS_FORMAT ;
  69. union RAS_VALUE {
  70. DWORD Number ;
  71. struct {
  72. DWORD Length ;
  73. PCHAR Data ;
  74. } String ;
  75. } ;
  76. typedef union RAS_VALUE RAS_VALUE ;
  77. enum RASMAN_STATE {
  78. CONNECTING = 0,
  79. LISTENING = 1,
  80. CONNECTED = 2,
  81. DISCONNECTING = 3,
  82. DISCONNECTED = 4,
  83. LISTENCOMPLETED = 5,
  84. } ;
  85. typedef enum RASMAN_STATE RASMAN_STATE ;
  86. enum RASMAN_DISCONNECT_REASON {
  87. USER_REQUESTED = 0,
  88. REMOTE_DISCONNECTION= 1,
  89. HARDWARE_FAILURE = 2,
  90. NOT_DISCONNECTED = 3
  91. } ;
  92. typedef enum RASMAN_DISCONNECT_REASON RASMAN_DISCONNECT_REASON ;
  93. struct RAS_PARAMS {
  94. CHAR P_Key [MAX_PARAM_KEY_SIZE] ;
  95. RAS_FORMAT P_Type ;
  96. BYTE P_Attributes ;
  97. RAS_VALUE P_Value ;
  98. } ;
  99. typedef struct RAS_PARAMS RAS_PARAMS ;
  100. struct RASMAN_PORT {
  101. HPORT P_Handle ;
  102. CHAR P_PortName [MAX_PORT_NAME] ;
  103. RASMAN_STATUS P_Status ;
  104. RASMAN_USAGE P_ConfiguredUsage ;
  105. RASMAN_USAGE P_CurrentUsage ;
  106. CHAR P_MediaName [MAX_MEDIA_NAME] ;
  107. CHAR P_DeviceType[MAX_DEVICETYPE_NAME] ;
  108. CHAR P_DeviceName[MAX_DEVICE_NAME+1] ;
  109. DWORD P_LineDeviceId ; // only valid for TAPI devices
  110. DWORD P_AddressId ; // only valid for TAPI devices
  111. } ;
  112. typedef struct RASMAN_PORT RASMAN_PORT ;
  113. struct RASMAN_PORTINFO {
  114. WORD PI_NumOfParams ;
  115. RAS_PARAMS PI_Params[1] ;
  116. } ;
  117. typedef struct RASMAN_PORTINFO RASMAN_PORTINFO ;
  118. struct RASMAN_DEVICE {
  119. CHAR D_Name [MAX_DEVICE_NAME+1] ;
  120. } ;
  121. typedef struct RASMAN_DEVICE RASMAN_DEVICE ;
  122. struct RASMAN_DEVICEINFO {
  123. WORD DI_NumOfParams ;
  124. RAS_PARAMS DI_Params[1] ;
  125. } ;
  126. typedef struct RASMAN_DEVICEINFO RASMAN_DEVICEINFO ;
  127. enum RAS_PROTOCOLTYPE {
  128. ASYBEUI = 0x80D5,
  129. IPX = 0x8137,
  130. IP = 0x0800,
  131. ARP = 0x0806,
  132. APPLETALK = 0x80F3,
  133. XNS = 0x0600,
  134. RASAUTH = 0x8FFF,
  135. INVALID_TYPE= 0x2222
  136. } ;
  137. typedef enum RAS_PROTOCOLTYPE RAS_PROTOCOLTYPE ;
  138. struct RASMAN_PROTOCOLINFO {
  139. CHAR PI_XportName [MAX_XPORT_NAME] ;
  140. RAS_PROTOCOLTYPE PI_Type ;
  141. } ;
  142. typedef struct RASMAN_PROTOCOLINFO RASMAN_PROTOCOLINFO ;
  143. struct RASMAN_ROUTEINFO {
  144. RAS_PROTOCOLTYPE RI_Type ;
  145. BYTE RI_LanaNum ;
  146. WCHAR RI_XportName [MAX_XPORT_NAME] ;
  147. WCHAR RI_AdapterName [MAX_XPORT_NAME] ;
  148. } ;
  149. typedef struct RASMAN_ROUTEINFO RASMAN_ROUTEINFO ;
  150. struct RAS_PROTOCOLS {
  151. RASMAN_ROUTEINFO RP_ProtocolInfo[MAX_PROTOCOLS_PER_PORT] ;
  152. } ;
  153. typedef struct RAS_PROTOCOLS RAS_PROTOCOLS ;
  154. struct RASMAN_INFO {
  155. RASMAN_STATUS RI_PortStatus ;
  156. RASMAN_STATE RI_ConnState ;
  157. DWORD RI_LinkSpeed ;
  158. DWORD RI_LastError ;
  159. RASMAN_USAGE RI_CurrentUsage ;
  160. CHAR RI_DeviceTypeConnecting [MAX_DEVICETYPE_NAME] ;
  161. CHAR RI_DeviceConnecting [MAX_DEVICE_NAME+1] ;
  162. RASMAN_DISCONNECT_REASON RI_DisconnectReason ;
  163. DWORD RI_OwnershipFlag ;
  164. DWORD RI_ConnectDuration ;
  165. DWORD RI_BytesReceived ;
  166. //
  167. // If this port belongs to a connection, then
  168. // the following fields are filled in.
  169. //
  170. CHAR RI_Phonebook[MAX_PATH+1];
  171. CHAR RI_PhoneEntry[MAX_PHONEENTRY_SIZE+1];
  172. HCONN RI_ConnectionHandle;
  173. DWORD RI_SubEntry;
  174. } ;
  175. typedef struct RASMAN_INFO RASMAN_INFO ;
  176. struct RAS_STATISTICS {
  177. WORD S_NumOfStatistics ;
  178. ULONG S_Statistics[1] ;
  179. } ;
  180. typedef struct RAS_STATISTICS RAS_STATISTICS ;
  181. #define MAX_STATISTICS 14
  182. #define MAX_STATISTICS_EX (MAX_STATISTICS * 2)
  183. #define BYTES_XMITED 0 // Generic Stats
  184. #define BYTES_RCVED 1
  185. #define FRAMES_XMITED 2
  186. #define FRAMES_RCVED 3
  187. #define CRC_ERR 4 // Hardware Stats
  188. #define TIMEOUT_ERR 5
  189. #define ALIGNMENT_ERR 6
  190. #define HARDWARE_OVERRUN_ERR 7
  191. #define FRAMING_ERR 8
  192. #define BUFFER_OVERRUN_ERR 9
  193. #define BYTES_XMITED_UNCOMPRESSED 10 // Compression Stats
  194. #define BYTES_RCVED_UNCOMPRESSED 11
  195. #define BYTES_XMITED_COMPRESSED 12
  196. #define BYTES_RCVED_COMPRESSED 13
  197. #define MSTYPE_COMPRESSION 0x00000001
  198. #define MSTYPE_ENCRYPTION_40 0x00000010
  199. #define MSTYPE_ENCRYPTION_40F 0x00000020
  200. #define MSTYPE_ENCRYPTION_128 0x00000040
  201. #define MACTYPE_NT31RAS 254
  202. #define MAX_SESSIONKEY_SIZE 8
  203. #define MAX_COMPVALUE_SIZE 32
  204. #define MAX_COMPOUI_SIZE 3
  205. struct RAS_COMPRESSION_INFO {
  206. UCHAR RCI_SessionKey[MAX_SESSIONKEY_SIZE]; // May be used for encryption, non-zero if supported.
  207. ULONG RCI_MSCompressionType; // bit 0 = MPPPC, bit 5 = encryption.
  208. UCHAR RCI_MacCompressionType; // 0=OUI, 1-253 = Public, 254 = NT31 RAS, 255=Not supported
  209. WORD RCI_MacCompressionValueLength ;
  210. union {
  211. struct { // Proprietary: used for comp type 0
  212. UCHAR RCI_CompOUI[MAX_COMPOUI_SIZE];
  213. UCHAR RCI_CompSubType;
  214. UCHAR RCI_CompValues[MAX_COMPVALUE_SIZE];
  215. } RCI_Proprietary;
  216. struct { // Public: used for comp type 1-254
  217. UCHAR RCI_CompValues[MAX_COMPVALUE_SIZE];
  218. } RCI_Public;
  219. } RCI_Info ;
  220. };
  221. typedef struct RAS_COMPRESSION_INFO RAS_COMPRESSION_INFO;
  222. struct PROTOCOL_CONFIG_INFO {
  223. DWORD P_Length ;
  224. BYTE P_Info[1] ;
  225. } ;
  226. typedef struct PROTOCOL_CONFIG_INFO PROTOCOL_CONFIG_INFO ;
  227. struct RASMAN_PPPFEATURES {
  228. DWORD MRU;
  229. DWORD ACCM;
  230. DWORD AuthProtocol;
  231. DWORD MagicNumber;
  232. BOOL PFC;
  233. BOOL ACFC;
  234. } ;
  235. typedef struct RASMAN_PPPFEATURES RASMAN_PPPFEATURES ;
  236. enum RAS_FRAMING {PPP, RAS, AUTODETECT, SLIP, SLIPCOMP, SLIPCOMPAUTO} ;
  237. typedef enum RAS_FRAMING RAS_FRAMING ;
  238. struct RAS_FRAMING_CAPABILITIES {
  239. DWORD RFC_MaxFrameSize;
  240. DWORD RFC_MaxReconstructedFrameSize;
  241. DWORD RFC_FramingBits;
  242. DWORD RFC_DesiredACCM;
  243. } ;
  244. typedef struct RAS_FRAMING_CAPABILITIES RAS_FRAMING_CAPABILITIES ;
  245. struct RAS_FRAMING_INFO {
  246. DWORD RFI_MaxSendFrameSize;
  247. DWORD RFI_MaxRecvFrameSize;
  248. DWORD RFI_MaxRSendFrameSize;
  249. DWORD RFI_MaxRRecvFrameSize;
  250. DWORD RFI_HeaderPadding;
  251. DWORD RFI_TailPadding;
  252. DWORD RFI_SendFramingBits;
  253. DWORD RFI_RecvFramingBits;
  254. DWORD RFI_SendCompressionBits;
  255. DWORD RFI_RecvCompressionBits;
  256. DWORD RFI_SendACCM;
  257. DWORD RFI_RecvACCM;
  258. } ;
  259. typedef struct RAS_FRAMING_INFO RAS_FRAMING_INFO ;
  260. // NDIS WAN Framing bits: used with RasPortGetFramingEx and RasPortSetFramingEx
  261. // APIs.
  262. //
  263. #define OLD_RAS_FRAMING 0x00000001
  264. #define RAS_COMPRESSION 0x00000002
  265. #define PPP_MULTILINK_FRAMING 0x00000010
  266. #define PPP_SHORT_SEQUENCE_HDR_FORMAT 0x00000020
  267. #define PPP_FRAMING 0x00000100
  268. #define PPP_COMPRESS_ADDRESS_CONTROL 0x00000200
  269. #define PPP_COMPRESS_PROTOCOL_FIELD 0x00000400
  270. #define PPP_ACCM_SUPPORTED 0x00000800
  271. #define SLIP_FRAMING 0x00001000
  272. #define SLIP_VJ_COMPRESSION 0x00002000
  273. #define SLIP_VJ_AUTODETECT 0x00004000
  274. #define MEDIA_NRZ_ENCODING 0x00010000
  275. #define MEDIA_NRZI_ENCODING 0x00020000
  276. #define MEDIA_NLPID 0x00040000
  277. #define RFC_1356_FRAMING 0x00100000
  278. #define RFC_1483_FRAMING 0x00200000
  279. #define RFC_1490_FRAMING 0x00400000
  280. #define SHIVA_FRAMING 0x01000000
  281. // Defines for RAS_PROTOCOLCOMPRESSION
  282. //
  283. #define VJ_IP_COMPRESSION 0x002d
  284. #define NO_PROTOCOL_COMPRESSION 0x0000
  285. struct RAS_PROTOCOLCOMPRESSION {
  286. union {
  287. struct {
  288. WORD RP_IPCompressionProtocol;
  289. BYTE RP_MaxSlotID; // How many slots to allocate
  290. BYTE RP_CompSlotID; // 1 = Slot ID was negotiated
  291. } RP_IP ;
  292. struct {
  293. WORD RP_IPXCompressionProtocol;
  294. } RP_IPX ;
  295. } RP_ProtocolType ;
  296. } ;
  297. typedef struct RAS_PROTOCOLCOMPRESSION RAS_PROTOCOLCOMPRESSION ;
  298. //
  299. // Definitions for Ras{Get,Set}DialParams
  300. //
  301. // The dwMask values control/specify which fields
  302. // of the RAS_DIALPARAMS are stored/retrieved.
  303. //
  304. // NOTE: these values have to match the RASCF_*
  305. // values in ras.h.
  306. //
  307. #define DLPARAMS_MASK_USERNAME 0x00000001
  308. #define DLPARAMS_MASK_PASSWORD 0x00000002
  309. #define DLPARAMS_MASK_DOMAIN 0x00000004
  310. #define DLPARAMS_MASK_PHONENUMBER 0x00000008
  311. #define DLPARAMS_MASK_CALLBACKNUMBER 0x00000010
  312. #define DLPARAMS_MASK_SUBENTRY 0x00000020
  313. #define DLPARAMS_MASK_OLDSTYLE 0x80000000
  314. typedef struct _RAS_DIALPARAMS {
  315. DWORD DP_Uid;
  316. WCHAR DP_PhoneNumber[MAX_PHONENUMBER_SIZE + 1];
  317. WCHAR DP_CallbackNumber[MAX_CALLBACKNUMBER_SIZE + 1];
  318. WCHAR DP_UserName[MAX_USERNAME_SIZE + 1];
  319. WCHAR DP_Password[MAX_PASSWORD_SIZE + 1];
  320. WCHAR DP_Domain[MAX_DOMAIN_SIZE + 1];
  321. DWORD DP_SubEntry;
  322. } RAS_DIALPARAMS, *PRAS_DIALPARAMS;
  323. //
  324. // Definitions for Ras{Get,Set}ConnectionParams
  325. //
  326. typedef struct _RAS_CONNECTIONPARAMS {
  327. //
  328. // Phonebook and entry name.
  329. //
  330. CHAR CP_Phonebook[MAX_PATH + 1];
  331. CHAR CP_PhoneEntry[MAX_PHONEENTRY_SIZE + 1];
  332. //
  333. // Bandwidth-on-demand parameters
  334. //
  335. DWORD CP_DialExtraPercent;
  336. DWORD CP_DialExtraSampleSeconds;
  337. DWORD CP_HangUpExtraPercent;
  338. DWORD CP_HangUpExtraSampleSeconds;
  339. //
  340. // Idle disconnect parameters
  341. //
  342. DWORD CP_IdleDisconnectSeconds;
  343. //
  344. // Redial on link failure flag
  345. //
  346. BOOL CP_RedialOnLinkFailure;
  347. } RAS_CONNECTIONPARAMS, *PRAS_CONNECTIONPARAMS;
  348. //
  349. // Flags for RasAddNotification.
  350. //
  351. // Note: the NOTIF_* values must match the
  352. // RASCN_* values in ras.h
  353. //
  354. #define NOTIF_CONNECT 0x00000001
  355. #define NOTIF_DISCONNECT 0x00000002
  356. #define NOTIF_BANDWIDTHADDED 0x00000004
  357. #define NOTIF_BANDWIDTHREMOVED 0x00000008
  358. //* RAS Manager entrypoint Prototypes
  359. //
  360. DWORD APIENTRY RasPortOpen(PCHAR, HPORT*, HANDLE);
  361. DWORD APIENTRY RasPortClose(HPORT);
  362. DWORD APIENTRY RasPortEnum(PBYTE, PWORD, PWORD);
  363. DWORD APIENTRY RasPortGetInfo(HPORT, PBYTE, PWORD);
  364. DWORD APIENTRY RasPortSetInfo(HPORT, RASMAN_PORTINFO*);
  365. DWORD APIENTRY RasPortDisconnect(HPORT, HANDLE);
  366. DWORD APIENTRY RasPortSend(HPORT, PBYTE, WORD);
  367. DWORD APIENTRY RasPortReceive(HPORT, PBYTE, PWORD, DWORD, HANDLE);
  368. DWORD APIENTRY RasPortListen(HPORT, DWORD, HANDLE);
  369. DWORD APIENTRY RasPortConnectComplete(HPORT);
  370. DWORD APIENTRY RasPortGetStatistics(HPORT, PBYTE, PWORD);
  371. DWORD APIENTRY RasPortClearStatistics(HPORT);
  372. DWORD APIENTRY RasDeviceEnum(PCHAR, PBYTE, PWORD, PWORD);
  373. DWORD APIENTRY RasDeviceGetInfo(HPORT, PCHAR, PCHAR, PBYTE, PWORD);
  374. DWORD APIENTRY RasDeviceSetInfo(HPORT, PCHAR, PCHAR, RASMAN_DEVICEINFO*);
  375. DWORD APIENTRY RasDeviceConnect(HPORT, PCHAR, PCHAR, DWORD, HANDLE);
  376. DWORD APIENTRY RasGetInfo(HPORT, RASMAN_INFO*);
  377. DWORD APIENTRY RasGetInfoEx(RASMAN_INFO*, PWORD);
  378. DWORD APIENTRY RasGetBuffer(PBYTE*, PWORD);
  379. DWORD APIENTRY RasFreeBuffer(PBYTE);
  380. DWORD APIENTRY RasProtocolEnum(PBYTE, PWORD, PWORD);
  381. DWORD APIENTRY RasAllocateRoute(HPORT, RAS_PROTOCOLTYPE, BOOL, RASMAN_ROUTEINFO*);
  382. DWORD APIENTRY RasActivateRoute(HPORT, RAS_PROTOCOLTYPE, RASMAN_ROUTEINFO*, PROTOCOL_CONFIG_INFO*);
  383. DWORD APIENTRY RasActivateRouteEx(HPORT, RAS_PROTOCOLTYPE, DWORD, RASMAN_ROUTEINFO*, PROTOCOL_CONFIG_INFO*);
  384. DWORD APIENTRY RasDeAllocateRoute(HPORT, RAS_PROTOCOLTYPE);
  385. DWORD APIENTRY RasCompressionGetInfo(HPORT, RAS_COMPRESSION_INFO* Send, RAS_COMPRESSION_INFO* Recv);
  386. DWORD APIENTRY RasCompressionSetInfo(HPORT, RAS_COMPRESSION_INFO* Send, RAS_COMPRESSION_INFO* Recv);
  387. DWORD APIENTRY RasGetUserCredentials(PBYTE, PLUID, PWCHAR, PBYTE, PBYTE, PBYTE) ;
  388. DWORD APIENTRY RasSetCachedCredentials( PCHAR, PCHAR, PCHAR ) ;
  389. DWORD APIENTRY RasRequestNotification (HPORT, HANDLE) ;
  390. DWORD APIENTRY RasPortCancelReceive (HPORT) ;
  391. DWORD APIENTRY RasPortEnumProtocols (HPORT, RAS_PROTOCOLS*, PWORD) ;
  392. DWORD APIENTRY RasEnumLanNets (DWORD *, UCHAR *) ;
  393. DWORD APIENTRY RasPortSetFraming (HPORT, RAS_FRAMING, RASMAN_PPPFEATURES*, RASMAN_PPPFEATURES*) ;
  394. DWORD APIENTRY RasPortRegisterSlip (HPORT, DWORD, WCHAR *, BOOL, WCHAR*, WCHAR*, WCHAR*, WCHAR*) ;
  395. DWORD APIENTRY RasPortStoreUserData (HPORT, PBYTE, DWORD) ;
  396. DWORD APIENTRY RasPortRetrieveUserData (HPORT, PBYTE, DWORD *) ;
  397. DWORD APIENTRY RasPortGetFramingEx (HPORT, RAS_FRAMING_INFO *) ;
  398. DWORD APIENTRY RasPortSetFramingEx (HPORT, RAS_FRAMING_INFO *) ;
  399. DWORD APIENTRY RasPortGetProtocolCompression (HPORT, RAS_PROTOCOLTYPE, RAS_PROTOCOLCOMPRESSION *, RAS_PROTOCOLCOMPRESSION *) ;
  400. DWORD APIENTRY RasPortSetProtocolCompression (HPORT, RAS_PROTOCOLTYPE, RAS_PROTOCOLCOMPRESSION *, RAS_PROTOCOLCOMPRESSION *) ;
  401. DWORD APIENTRY RasGetFramingCapabilities (HPORT, RAS_FRAMING_CAPABILITIES*) ;
  402. DWORD APIENTRY RasInitialize () ;
  403. DWORD APIENTRY RasPortReserve (PCHAR, HPORT*) ;
  404. DWORD APIENTRY RasPortFree (HPORT) ;
  405. DWORD APIENTRY RasPortBundle( HPORT, HPORT );
  406. DWORD APIENTRY RasPortGetBundledPort (HPORT oldport, HPORT *pnewport) ;
  407. DWORD APIENTRY RasBundleGetPort (HBUNDLE hbundle, HPORT *phport) ;
  408. DWORD APIENTRY RasPortGetBundle (HPORT hport, HBUNDLE *phbundle) ;
  409. DWORD APIENTRY RasReferenceRasman (BOOL fAttach);
  410. DWORD APIENTRY RasGetDialParams (DWORD dwUID, LPDWORD lpdwMask, PRAS_DIALPARAMS pDialParams);
  411. DWORD APIENTRY RasSetDialParams (DWORD dwOldUID, DWORD dwMask, PRAS_DIALPARAMS pDialParams, BOOL fDelete);
  412. DWORD APIENTRY RasCreateConnection (HCONN *hconn);
  413. DWORD APIENTRY RasDestroyConnection (HCONN hconn);
  414. DWORD APIENTRY RasConnectionEnum (HCONN *lphconn, LPDWORD lpdwcbConnections, LPDWORD lpdwcConnections);
  415. DWORD APIENTRY RasAddConnectionPort (HCONN hconn, HPORT hport, DWORD dwSubEntry);
  416. DWORD APIENTRY RasEnumConnectionPorts (HCONN hconn, RASMAN_PORT *pPorts, LPDWORD lpdwcbPorts, LPDWORD lpdwcPorts);
  417. DWORD APIENTRY RasGetConnectionParams (HCONN hconn, PRAS_CONNECTIONPARAMS pConnectionParams);
  418. DWORD APIENTRY RasSetConnectionParams (HCONN hconn, PRAS_CONNECTIONPARAMS pConnectionParams);
  419. DWORD APIENTRY RasGetConnectionUserData (HPORT hconn, DWORD dwTag, PBYTE pBuf, LPDWORD lpdwcbBuf);
  420. DWORD APIENTRY RasSetConnectionUserData (HPORT hconn, DWORD dwTag, PBYTE pBuf, DWORD dwcbBuf);
  421. DWORD APIENTRY RasGetPortUserData (HPORT hport, DWORD dwTag, PBYTE pBuf, LPDWORD lpdwcbBuf);
  422. DWORD APIENTRY RasSetPortUserData (HPORT hport, DWORD dwTag, PBYTE pBuf, DWORD dwcbBuf);
  423. DWORD APIENTRY RasAddNotification (HCONN hconn, HANDLE hevent, DWORD dwfFlags);
  424. DWORD APIENTRY RasSignalNewConnection(HCONN hconn);
  425. DWORD APIENTRY RasSetDevConfig(HPORT hport, PCHAR devicetype, PBYTE config, DWORD size);
  426. DWORD APIENTRY RasGetDevConfig(HPORT hport, PCHAR devicetype, PBYTE config, DWORD* size);
  427. DWORD APIENTRY RasGetTimeSinceLastActivity(HPORT hport, LPDWORD lpdwTimeSinceLastActivity );
  428. DWORD APIENTRY RasBundleGetStatistics(HPORT, PBYTE, PWORD);
  429. DWORD APIENTRY RasBundleClearStatistics(HPORT);
  430. DWORD _RasmanInit( LPDWORD pNumPorts );
  431. VOID _RasmanEngine();
  432. #endif
  433.