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.

1077 lines
23 KiB

  1. //+----------------------------------------------------------------------------
  2. //
  3. // File: cmras.h
  4. //
  5. // Module: CMDIAL32.DLL, CMCFG32.DLL, CMMGR32.EXE, CMSTP.EXE, CMUTOA.DLL
  6. //
  7. // Synopsis: The Connection Manager version of the RAS header. Contains different
  8. // versions of several RAS structs as well as constants/structs we cannot
  9. // see when compiling with WinVer == 4.
  10. //
  11. // Copyright (c) 1998-1999 Microsoft Corporation
  12. //
  13. // Author: quintinb Created Header 08/19/99
  14. //
  15. //+----------------------------------------------------------------------------
  16. #ifndef _CM_RAS_H_
  17. #define _CM_RAS_H_
  18. //
  19. // Make sure we pack on the same alignment as RAS for 64-bit Windows
  20. //
  21. #ifdef _WIN64
  22. #include <pshpack4.h>
  23. #endif
  24. ///////////////////////////////////////////////////////////////////////////////////
  25. // define's
  26. ///////////////////////////////////////////////////////////////////////////////////
  27. #if (WINVER < 0x401)
  28. //
  29. // RASENTRY 'dwDialMode' values.
  30. //
  31. #define RASEDM_DialAll 1
  32. #define RASEDM_DialAsNeeded 2
  33. #define RASCREDENTIALSA struct tagRASCREDENTIALSA
  34. RASCREDENTIALSA
  35. {
  36. DWORD dwSize;
  37. DWORD dwMask;
  38. CHAR szUserName[ UNLEN + 1 ];
  39. CHAR szPassword[ PWLEN + 1 ];
  40. CHAR szDomain[ DNLEN + 1 ];
  41. };
  42. #define RASCREDENTIALSW struct tagRASCREDENTIALSW
  43. RASCREDENTIALSW
  44. {
  45. DWORD dwSize;
  46. DWORD dwMask;
  47. WCHAR szUserName[ UNLEN + 1 ];
  48. WCHAR szPassword[ PWLEN + 1 ];
  49. WCHAR szDomain[ DNLEN + 1 ];
  50. };
  51. #ifdef UNICODE
  52. #define RASCREDENTIALS RASCREDENTIALSW
  53. #else
  54. #define RASCREDENTIALS RASCREDENTIALSA
  55. #endif
  56. #define LPRASCREDENTIALSW RASCREDENTIALSW*
  57. #define LPRASCREDENTIALSA RASCREDENTIALSA*
  58. #define LPRASCREDENTIALS RASCREDENTIALS*
  59. //
  60. // RASCREDENTIALS 'dwMask' values.
  61. //
  62. #define RASCM_UserName 0x00000001
  63. #define RASCM_Password 0x00000002
  64. #define RASCM_Domain 0x00000004
  65. #endif
  66. //
  67. // For global creds support. This is only used on WindowsXP,
  68. // but we can't assume that RAS defined it since we compile with WINVER < WindowsXP
  69. //
  70. #ifndef RASCM_DefaultCreds
  71. #define RASCM_DefaultCreds 0x00000008
  72. #endif
  73. //
  74. // This is from the W2K ras.h
  75. //
  76. #ifndef RDEOPT_CustomDial
  77. #define RDEOPT_CustomDial 0x00001000
  78. #endif
  79. #ifndef RDEOPT_UseCustomScripting
  80. #define RDEOPT_UseCustomScripting 0x00002000
  81. #endif
  82. //
  83. // 5.00 RASEO Options
  84. //
  85. #ifndef RASEO_SecureLocalFiles
  86. #define RASEO_SecureLocalFiles 0x00010000
  87. #endif
  88. #ifndef RASEO_RequireEAP
  89. #define RASEO_RequireEAP 0x00020000
  90. #endif
  91. #ifndef RASEO_RequirePAP
  92. #define RASEO_RequirePAP 0x00040000
  93. #endif
  94. #ifndef RASEO_RequireSPAP
  95. #define RASEO_RequireSPAP 0x00080000
  96. #endif
  97. #ifndef RASEO_Custom
  98. #define RASEO_Custom 0x00100000
  99. #endif
  100. #ifndef RASEO_RequireCHAP
  101. #define RASEO_RequireCHAP 0x08000000
  102. #endif
  103. #ifndef RASEO_RequireMsCHAP
  104. #define RASEO_RequireMsCHAP 0x10000000
  105. #endif
  106. #ifndef RASEO_RequireMsCHAP2
  107. #define RASEO_RequireMsCHAP2 0x20000000
  108. #endif
  109. #ifndef RASEO_RequireW95MSCHAP
  110. #define RASEO_RequireW95MSCHAP 0x40000000
  111. #endif
  112. #ifndef RASEO_CustomScript
  113. #define RASEO_CustomScript 0x80000000
  114. #endif
  115. //
  116. // 5.01 RASEO options for dwfOptions2
  117. //
  118. #ifndef RASEO2_SecureFileAndPrint
  119. #define RASEO2_SecureFileAndPrint 0x00000001
  120. #endif
  121. #ifndef RASEO2_SecureClientForMSNet
  122. #define RASEO2_SecureClientForMSNet 0x00000002
  123. #endif
  124. #ifndef RASEO2_DontNegotiateMultilink
  125. #define RASEO2_DontNegotiateMultilink 0x00000004
  126. #endif
  127. #ifndef RASEO2_DontUseRasCredentials
  128. #define RASEO2_DontUseRasCredentials 0x00000008
  129. #endif
  130. #ifndef RASEO2_UsePreSharedKey
  131. #define RASEO2_UsePreSharedKey 0x00000010
  132. #endif
  133. #ifndef RASEO2_Internet
  134. #define RASEO2_Internet 0x00000020
  135. #endif
  136. #ifndef RASEO2_DisableNbtOverIP
  137. #define RASEO2_DisableNbtOverIP 0x00000040
  138. #endif
  139. #ifndef RASEO2_UseGlobalDeviceSettings
  140. #define RASEO2_UseGlobalDeviceSettings 0x00000080
  141. #endif
  142. #ifndef RASEO2_ReconnectIfDropped
  143. #define RASEO2_ReconnectIfDropped 0x00000100
  144. #endif
  145. //
  146. // Encryption Types
  147. //
  148. #define ET_None 0 // No encryption
  149. #define ET_Require 1 // Require Encryption
  150. #define ET_RequireMax 2 // Require max encryption
  151. #define ET_Optional 3 // Do encryption if possible. None Ok.
  152. //
  153. // RAS Custom Dial (RCD) flags
  154. // Note: Re-defined here because RAS.H defines them in a WINVER > 0x500 section.
  155. //
  156. #define RCD_SingleUser 0
  157. #define RCD_AllUsers 0x00000001
  158. #define RCD_Eap 0x00000002
  159. #define RCD_Logon 0x00000004
  160. ///////////////////////////////////////////////////////////////////////////////////
  161. // typedef's
  162. ///////////////////////////////////////////////////////////////////////////////////
  163. //
  164. // From RAS\UI\COMMON\PBK\UTIL.C
  165. //
  166. #ifndef EAP_CUSTOM_DATA
  167. typedef struct _EAP_CUSTOM_DATA
  168. {
  169. DWORD dwSignature;
  170. DWORD dwCustomAuthKey;
  171. DWORD dwSize;
  172. BYTE abdata[1];
  173. } EAP_CUSTOM_DATA;
  174. #endif
  175. //
  176. // From RASMAN.H
  177. //
  178. #ifndef EAPLOGONINFO
  179. typedef struct _EAPLOGONINFO
  180. {
  181. DWORD dwSize;
  182. DWORD dwLogonInfoSize;
  183. DWORD dwOffsetLogonInfo;
  184. DWORD dwPINInfoSize;
  185. DWORD dwOffsetPINInfo;
  186. BYTE abdata[1];
  187. } EAPLOGONINFO, *PEAPLOGONINFO;
  188. #endif
  189. //
  190. // Private structure for use with DwSetEntryPropertiesPrivate on Win2k
  191. //
  192. typedef struct _tagRASENTRY_EX_0
  193. {
  194. DWORD dwTcpWindowSize;
  195. } RASENTRY_EX_0;
  196. //
  197. // From raseapif.h
  198. //
  199. #ifndef RAS_EAP_FLAG_NON_INTERACTIVE
  200. #define RAS_EAP_FLAG_NON_INTERACTIVE 0x00000002 // No UI should be displayed
  201. #endif
  202. #ifndef RAS_EAP_FLAG_LOGON
  203. #define RAS_EAP_FLAG_LOGON 0x00000004 // The user data was obtained from Winlogon
  204. #endif
  205. #ifndef RAS_EAP_FLAG_PREVIEW
  206. #define RAS_EAP_FLAG_PREVIEW 0x00000008 // User has checked "Prompt for information"
  207. #endif
  208. #if (WINVER < 0x401)
  209. //
  210. // define RASSUBENTRY here since it's only define for
  211. // WINVER >= x0401
  212. //
  213. //
  214. // A RAS phone book multilinked sub-entry.
  215. //
  216. #define RASSUBENTRYA struct tagRASSUBENTRYA
  217. RASSUBENTRYA
  218. {
  219. DWORD dwSize;
  220. DWORD dwfFlags;
  221. //
  222. // Device
  223. //
  224. CHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
  225. CHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
  226. //
  227. // Phone numbers
  228. //
  229. CHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  230. DWORD dwAlternateOffset;
  231. };
  232. #define RASSUBENTRYW struct tagRASSUBENTRYW
  233. RASSUBENTRYW
  234. {
  235. DWORD dwSize;
  236. DWORD dwfFlags;
  237. //
  238. // Device
  239. //
  240. WCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
  241. WCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
  242. //
  243. // Phone numbers
  244. //
  245. WCHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  246. DWORD dwAlternateOffset;
  247. };
  248. #ifdef UNICODE
  249. #define RASSUBENTRY RASSUBENTRYW
  250. #else
  251. #define RASSUBENTRY RASSUBENTRYA
  252. #endif
  253. #define LPRASSUBENTRYW RASSUBENTRYW*
  254. #define LPRASSUBENTRYA RASSUBENTRYA*
  255. #define LPRASSUBENTRY RASSUBENTRY*
  256. #endif
  257. //
  258. //Describes connection establishment parameters. (See RasDial)
  259. //
  260. #define RASDIALPARAMSW_V401 struct tagRASDIALPARAMSW_V401
  261. RASDIALPARAMSW_V401
  262. {
  263. DWORD dwSize;
  264. WCHAR szEntryName[ RAS_MaxEntryName + 1 ];
  265. WCHAR szPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  266. WCHAR szCallbackNumber[ RAS_MaxCallbackNumber + 1 ];
  267. WCHAR szUserName[ UNLEN + 1 ];
  268. WCHAR szPassword[ PWLEN + 1 ];
  269. WCHAR szDomain[ DNLEN + 1 ];
  270. DWORD dwSubEntry;
  271. ULONG_PTR dwCallbackId;
  272. };
  273. #define RASDIALPARAMSA_V401 struct tagRASDIALPARAMSA_V401
  274. RASDIALPARAMSA_V401
  275. {
  276. DWORD dwSize;
  277. CHAR szEntryName[ RAS_MaxEntryName + 1 ];
  278. CHAR szPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  279. CHAR szCallbackNumber[ RAS_MaxCallbackNumber + 1 ];
  280. CHAR szUserName[ UNLEN + 1 ];
  281. CHAR szPassword[ PWLEN + 1 ];
  282. CHAR szDomain[ DNLEN + 1 ];
  283. DWORD dwSubEntry;
  284. ULONG_PTR dwCallbackId;
  285. };
  286. #ifdef UNICODE
  287. #define RASDIALPARAMS_V401 RASDIALPARAMSW_V401
  288. #else
  289. #define RASDIALPARAMS_V401 RASDIALPARAMSA_V401
  290. #endif
  291. #define LPRASDIALPARAMSW_V401 RASDIALPARAMSW_V401*
  292. #define LPRASDIALPARAMSA_V401 RASDIALPARAMSA_V401*
  293. #define LPRASDIALPARAMS_V401 RASDIALPARAMS_V401*
  294. //
  295. // A RAS phone book entry. - from ras.h for NT 4.0
  296. //
  297. #define RASENTRYA_V401 struct tagRASENTRYA_V401
  298. RASENTRYA_V401
  299. {
  300. DWORD dwSize;
  301. DWORD dwfOptions;
  302. //
  303. // Location/phone number.
  304. //
  305. DWORD dwCountryID;
  306. DWORD dwCountryCode;
  307. CHAR szAreaCode[ RAS_MaxAreaCode + 1 ];
  308. CHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  309. DWORD dwAlternateOffset;
  310. //
  311. // PPP/Ip
  312. //
  313. RASIPADDR ipaddr;
  314. RASIPADDR ipaddrDns;
  315. RASIPADDR ipaddrDnsAlt;
  316. RASIPADDR ipaddrWins;
  317. RASIPADDR ipaddrWinsAlt;
  318. //
  319. // Framing
  320. //
  321. DWORD dwFrameSize;
  322. DWORD dwfNetProtocols;
  323. DWORD dwFramingProtocol;
  324. //
  325. // Scripting
  326. //
  327. CHAR szScript[ MAX_PATH ];
  328. //
  329. // AutoDial
  330. //
  331. CHAR szAutodialDll[ MAX_PATH ];
  332. CHAR szAutodialFunc[ MAX_PATH ];
  333. //
  334. // Device
  335. //
  336. CHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
  337. CHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
  338. //
  339. // X.25
  340. //
  341. CHAR szX25PadType[ RAS_MaxPadType + 1 ];
  342. CHAR szX25Address[ RAS_MaxX25Address + 1 ];
  343. CHAR szX25Facilities[ RAS_MaxFacilities + 1 ];
  344. CHAR szX25UserData[ RAS_MaxUserData + 1 ];
  345. DWORD dwChannels;
  346. //
  347. // Reserved
  348. //
  349. DWORD dwReserved1;
  350. DWORD dwReserved2;
  351. //
  352. // Multilink
  353. //
  354. DWORD dwSubEntries;
  355. DWORD dwDialMode;
  356. DWORD dwDialExtraPercent;
  357. DWORD dwDialExtraSampleSeconds;
  358. DWORD dwHangUpExtraPercent;
  359. DWORD dwHangUpExtraSampleSeconds;
  360. //
  361. // Idle timeout
  362. //
  363. DWORD dwIdleDisconnectSeconds;
  364. };
  365. #define RASENTRYW_V401 struct tagRASENTRYW_V401
  366. RASENTRYW_V401
  367. {
  368. DWORD dwSize;
  369. DWORD dwfOptions;
  370. //
  371. // Location/phone number
  372. //
  373. DWORD dwCountryID;
  374. DWORD dwCountryCode;
  375. WCHAR szAreaCode[ RAS_MaxAreaCode + 1 ];
  376. WCHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  377. DWORD dwAlternateOffset;
  378. //
  379. // PPP/Ip
  380. //
  381. RASIPADDR ipaddr;
  382. RASIPADDR ipaddrDns;
  383. RASIPADDR ipaddrDnsAlt;
  384. RASIPADDR ipaddrWins;
  385. RASIPADDR ipaddrWinsAlt;
  386. //
  387. // Framing
  388. //
  389. DWORD dwFrameSize;
  390. DWORD dwfNetProtocols;
  391. DWORD dwFramingProtocol;
  392. //
  393. // Scripting
  394. //
  395. WCHAR szScript[ MAX_PATH ];
  396. //
  397. // AutoDial
  398. //
  399. WCHAR szAutodialDll[ MAX_PATH ];
  400. WCHAR szAutodialFunc[ MAX_PATH ];
  401. //
  402. // Device
  403. //
  404. WCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
  405. WCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
  406. //
  407. // X.25
  408. //
  409. WCHAR szX25PadType[ RAS_MaxPadType + 1 ];
  410. WCHAR szX25Address[ RAS_MaxX25Address + 1 ];
  411. WCHAR szX25Facilities[ RAS_MaxFacilities + 1 ];
  412. WCHAR szX25UserData[ RAS_MaxUserData + 1 ];
  413. DWORD dwChannels;
  414. //
  415. // Reserved
  416. //
  417. DWORD dwReserved1;
  418. DWORD dwReserved2;
  419. //
  420. // Multilink
  421. //
  422. DWORD dwSubEntries;
  423. DWORD dwDialMode;
  424. DWORD dwDialExtraPercent;
  425. DWORD dwDialExtraSampleSeconds;
  426. DWORD dwHangUpExtraPercent;
  427. DWORD dwHangUpExtraSampleSeconds;
  428. //
  429. // Idle timeout
  430. //
  431. DWORD dwIdleDisconnectSeconds;
  432. };
  433. #ifdef UNICODE
  434. #define RASENTRY_V401 RASENTRYW_V401
  435. #else
  436. #define RASENTRY_V401 RASENTRYA_V401
  437. #endif
  438. #define LPRASENTRYW_V401 RASENTRYW_V401*
  439. #define LPRASENTRYA_V401 RASENTRYA_V401*
  440. #define LPRASENTRY_V401 RASENTRY_V401*
  441. //
  442. // A RAS phone book entry. - for NT5
  443. //
  444. #define RASENTRYA_V500 struct tagRASENTRYA_V500
  445. RASENTRYA_V500
  446. {
  447. DWORD dwSize;
  448. DWORD dwfOptions;
  449. //
  450. // Location/phone number.
  451. //
  452. DWORD dwCountryID;
  453. DWORD dwCountryCode;
  454. CHAR szAreaCode[ RAS_MaxAreaCode + 1 ];
  455. CHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  456. DWORD dwAlternateOffset;
  457. //
  458. // PPP/Ip
  459. //
  460. RASIPADDR ipaddr;
  461. RASIPADDR ipaddrDns;
  462. RASIPADDR ipaddrDnsAlt;
  463. RASIPADDR ipaddrWins;
  464. RASIPADDR ipaddrWinsAlt;
  465. //
  466. // Framing
  467. //
  468. DWORD dwFrameSize;
  469. DWORD dwfNetProtocols;
  470. DWORD dwFramingProtocol;
  471. //
  472. // Scripting
  473. //
  474. CHAR szScript[ MAX_PATH ];
  475. //
  476. // AutoDial
  477. //
  478. CHAR szAutodialDll[ MAX_PATH ];
  479. CHAR szAutodialFunc[ MAX_PATH ];
  480. //
  481. // Device
  482. //
  483. CHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
  484. CHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
  485. //
  486. // X.25
  487. //
  488. CHAR szX25PadType[ RAS_MaxPadType + 1 ];
  489. CHAR szX25Address[ RAS_MaxX25Address + 1 ];
  490. CHAR szX25Facilities[ RAS_MaxFacilities + 1 ];
  491. CHAR szX25UserData[ RAS_MaxUserData + 1 ];
  492. DWORD dwChannels;
  493. //
  494. // Reserved
  495. //
  496. DWORD dwReserved1;
  497. DWORD dwReserved2;
  498. //
  499. // Multilink
  500. //
  501. DWORD dwSubEntries;
  502. DWORD dwDialMode;
  503. DWORD dwDialExtraPercent;
  504. DWORD dwDialExtraSampleSeconds;
  505. DWORD dwHangUpExtraPercent;
  506. DWORD dwHangUpExtraSampleSeconds;
  507. //
  508. // Idle timeout
  509. //
  510. DWORD dwIdleDisconnectSeconds;
  511. //
  512. // Entry Type
  513. //
  514. DWORD dwType;
  515. //
  516. // Encryption type
  517. //
  518. DWORD dwEncryptionType;
  519. //
  520. // CustomAuthKey to be used for EAP
  521. //
  522. DWORD dwCustomAuthKey;
  523. //
  524. // Guid of the connection
  525. //
  526. GUID guidId;
  527. //
  528. // Custom Dial DLL
  529. //
  530. CHAR szCustomDialDll[MAX_PATH];
  531. //
  532. // DwVpnStrategy
  533. //
  534. DWORD dwVpnStrategy;
  535. };
  536. #define RASENTRYW_V500 struct tagRASENTRYW_V500
  537. RASENTRYW_V500
  538. {
  539. DWORD dwSize;
  540. DWORD dwfOptions;
  541. //
  542. // Location/phone number
  543. //
  544. DWORD dwCountryID;
  545. DWORD dwCountryCode;
  546. WCHAR szAreaCode[ RAS_MaxAreaCode + 1 ];
  547. WCHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  548. DWORD dwAlternateOffset;
  549. //
  550. // PPP/Ip
  551. //
  552. RASIPADDR ipaddr;
  553. RASIPADDR ipaddrDns;
  554. RASIPADDR ipaddrDnsAlt;
  555. RASIPADDR ipaddrWins;
  556. RASIPADDR ipaddrWinsAlt;
  557. //
  558. // Framing
  559. //
  560. DWORD dwFrameSize;
  561. DWORD dwfNetProtocols;
  562. DWORD dwFramingProtocol;
  563. //
  564. // Scripting
  565. //
  566. WCHAR szScript[ MAX_PATH ];
  567. //
  568. // AutoDial
  569. //
  570. WCHAR szAutodialDll[ MAX_PATH ];
  571. WCHAR szAutodialFunc[ MAX_PATH ];
  572. //
  573. // Device
  574. //
  575. WCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
  576. WCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
  577. //
  578. // X.25
  579. //
  580. WCHAR szX25PadType[ RAS_MaxPadType + 1 ];
  581. WCHAR szX25Address[ RAS_MaxX25Address + 1 ];
  582. WCHAR szX25Facilities[ RAS_MaxFacilities + 1 ];
  583. WCHAR szX25UserData[ RAS_MaxUserData + 1 ];
  584. DWORD dwChannels;
  585. //
  586. // Reserved
  587. //
  588. DWORD dwReserved1;
  589. DWORD dwReserved2;
  590. //
  591. // Multilink
  592. //
  593. DWORD dwSubEntries;
  594. DWORD dwDialMode;
  595. DWORD dwDialExtraPercent;
  596. DWORD dwDialExtraSampleSeconds;
  597. DWORD dwHangUpExtraPercent;
  598. DWORD dwHangUpExtraSampleSeconds;
  599. //
  600. // Idle timeout
  601. //
  602. DWORD dwIdleDisconnectSeconds;
  603. //
  604. // Entry Type
  605. //
  606. DWORD dwType;
  607. //
  608. // Encryption type
  609. //
  610. DWORD dwEncryptionType;
  611. //
  612. // CustomAuthKey to be used for EAP
  613. //
  614. DWORD dwCustomAuthKey;
  615. //
  616. // Guid of the connection
  617. //
  618. GUID guidId;
  619. //
  620. // Custom Dial DLL
  621. //
  622. WCHAR szCustomDialDll[MAX_PATH];
  623. //
  624. // DwVpnStrategy
  625. //
  626. DWORD dwVpnStrategy;
  627. };
  628. #ifdef UNICODE
  629. #define RASENTRY_V500 RASENTRYW_V500
  630. #else
  631. #define RASENTRY_V500 RASENTRYA_V500
  632. #endif
  633. #define LPRASENTRYW_V500 RASENTRYW_V500*
  634. #define LPRASENTRYA_V500 RASENTRYA_V500*
  635. #define LPRASENTRY_V500 RASENTRY_V500*
  636. //
  637. // 501 (whistler)
  638. //
  639. #define RASENTRYA_V501 struct tagRASENTRYA_V501
  640. RASENTRYA_V501
  641. {
  642. DWORD dwSize;
  643. DWORD dwfOptions;
  644. //
  645. // Location/phone number.
  646. //
  647. DWORD dwCountryID;
  648. DWORD dwCountryCode;
  649. CHAR szAreaCode[ RAS_MaxAreaCode + 1 ];
  650. CHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  651. DWORD dwAlternateOffset;
  652. //
  653. // PPP/Ip
  654. //
  655. RASIPADDR ipaddr;
  656. RASIPADDR ipaddrDns;
  657. RASIPADDR ipaddrDnsAlt;
  658. RASIPADDR ipaddrWins;
  659. RASIPADDR ipaddrWinsAlt;
  660. //
  661. // Framing
  662. //
  663. DWORD dwFrameSize;
  664. DWORD dwfNetProtocols;
  665. DWORD dwFramingProtocol;
  666. //
  667. // Scripting
  668. //
  669. CHAR szScript[ MAX_PATH ];
  670. //
  671. // AutoDial
  672. //
  673. CHAR szAutodialDll[ MAX_PATH ];
  674. CHAR szAutodialFunc[ MAX_PATH ];
  675. //
  676. // Device
  677. //
  678. CHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
  679. CHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
  680. //
  681. // X.25
  682. //
  683. CHAR szX25PadType[ RAS_MaxPadType + 1 ];
  684. CHAR szX25Address[ RAS_MaxX25Address + 1 ];
  685. CHAR szX25Facilities[ RAS_MaxFacilities + 1 ];
  686. CHAR szX25UserData[ RAS_MaxUserData + 1 ];
  687. DWORD dwChannels;
  688. //
  689. // Reserved
  690. //
  691. DWORD dwReserved1;
  692. DWORD dwReserved2;
  693. //
  694. // Multilink
  695. //
  696. DWORD dwSubEntries;
  697. DWORD dwDialMode;
  698. DWORD dwDialExtraPercent;
  699. DWORD dwDialExtraSampleSeconds;
  700. DWORD dwHangUpExtraPercent;
  701. DWORD dwHangUpExtraSampleSeconds;
  702. //
  703. // Idle timeout
  704. //
  705. DWORD dwIdleDisconnectSeconds;
  706. //
  707. // Entry Type
  708. //
  709. DWORD dwType;
  710. //
  711. // Encryption type
  712. //
  713. DWORD dwEncryptionType;
  714. //
  715. // CustomAuthKey to be used for EAP
  716. //
  717. DWORD dwCustomAuthKey;
  718. //
  719. // Guid of the connection
  720. //
  721. GUID guidId;
  722. //
  723. // Custom Dial DLL
  724. //
  725. CHAR szCustomDialDll[MAX_PATH];
  726. //
  727. // DwVpnStrategy
  728. //
  729. DWORD dwVpnStrategy;
  730. //
  731. // More RASEO_* options
  732. //
  733. DWORD dwfOptions2;
  734. //
  735. // For future use
  736. //
  737. DWORD dwfOptions3;
  738. CHAR szDnsSuffix[RAS_MaxDnsSuffix];
  739. DWORD dwTcpWindowSize;
  740. CHAR szPrerequisitePbk[MAX_PATH];
  741. CHAR szPrerequisiteEntry[RAS_MaxEntryName + 1];
  742. DWORD dwRedialCount;
  743. DWORD dwRedialPause;
  744. };
  745. #define RASENTRYW_V501 struct tagRASENTRYW_V501
  746. RASENTRYW_V501
  747. {
  748. DWORD dwSize;
  749. DWORD dwfOptions;
  750. //
  751. // Location/phone number
  752. //
  753. DWORD dwCountryID;
  754. DWORD dwCountryCode;
  755. WCHAR szAreaCode[ RAS_MaxAreaCode + 1 ];
  756. WCHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  757. DWORD dwAlternateOffset;
  758. //
  759. // PPP/Ip
  760. //
  761. RASIPADDR ipaddr;
  762. RASIPADDR ipaddrDns;
  763. RASIPADDR ipaddrDnsAlt;
  764. RASIPADDR ipaddrWins;
  765. RASIPADDR ipaddrWinsAlt;
  766. //
  767. // Framing
  768. //
  769. DWORD dwFrameSize;
  770. DWORD dwfNetProtocols;
  771. DWORD dwFramingProtocol;
  772. //
  773. // Scripting
  774. //
  775. WCHAR szScript[ MAX_PATH ];
  776. //
  777. // AutoDial
  778. //
  779. WCHAR szAutodialDll[ MAX_PATH ];
  780. WCHAR szAutodialFunc[ MAX_PATH ];
  781. //
  782. // Device
  783. //
  784. WCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
  785. WCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
  786. //
  787. // X.25
  788. //
  789. WCHAR szX25PadType[ RAS_MaxPadType + 1 ];
  790. WCHAR szX25Address[ RAS_MaxX25Address + 1 ];
  791. WCHAR szX25Facilities[ RAS_MaxFacilities + 1 ];
  792. WCHAR szX25UserData[ RAS_MaxUserData + 1 ];
  793. DWORD dwChannels;
  794. //
  795. // Reserved
  796. //
  797. DWORD dwReserved1;
  798. DWORD dwReserved2;
  799. //
  800. // Multilink
  801. //
  802. DWORD dwSubEntries;
  803. DWORD dwDialMode;
  804. DWORD dwDialExtraPercent;
  805. DWORD dwDialExtraSampleSeconds;
  806. DWORD dwHangUpExtraPercent;
  807. DWORD dwHangUpExtraSampleSeconds;
  808. //
  809. // Idle timeout
  810. //
  811. DWORD dwIdleDisconnectSeconds;
  812. //
  813. // Entry Type
  814. //
  815. DWORD dwType;
  816. //
  817. // Encryption type
  818. //
  819. DWORD dwEncryptionType;
  820. //
  821. // CustomAuthKey to be used for EAP
  822. //
  823. DWORD dwCustomAuthKey;
  824. //
  825. // Guid of the connection
  826. //
  827. GUID guidId;
  828. //
  829. // Custom Dial DLL
  830. //
  831. WCHAR szCustomDialDll[MAX_PATH];
  832. //
  833. // DwVpnStrategy
  834. //
  835. DWORD dwVpnStrategy;
  836. //
  837. // More RASEO_* options
  838. //
  839. DWORD dwfOptions2;
  840. //
  841. // For future use
  842. //
  843. DWORD dwfOptions3;
  844. WCHAR szDnsSuffix[RAS_MaxDnsSuffix];
  845. DWORD dwTcpWindowSize;
  846. WCHAR szPrerequisitePbk[MAX_PATH];
  847. WCHAR szPrerequisiteEntry[RAS_MaxEntryName + 1];
  848. DWORD dwRedialCount;
  849. DWORD dwRedialPause;
  850. };
  851. #ifdef UNICODE
  852. #define RASENTRY_V501 RASENTRYW_V501
  853. #else
  854. #define RASENTRY_V501 RASENTRYA_V501
  855. #endif
  856. #define LPRASENTRYW_V501 RASENTRYW_V501*
  857. #define LPRASENTRYA_V501 RASENTRYA_V501*
  858. #define LPRASENTRY_V501 RASENTRY_V501*
  859. // Describes EAP extended connection establishment option. For NT5.
  860. #define RASEAPINFO struct tagRASEAPINFO
  861. RASEAPINFO
  862. {
  863. DWORD dwSizeofEapInfo;
  864. BYTE *pbEapInfo;
  865. };
  866. // Describes extended connection establishment options. For NT5. (See RasDial)
  867. #define RASDIALEXTENSIONS_V500 struct tagRASDIALEXTENSIONS_V500
  868. RASDIALEXTENSIONS_V500
  869. {
  870. DWORD dwSize;
  871. DWORD dwfOptions;
  872. HWND hwndParent;
  873. ULONG_PTR reserved;
  874. ULONG_PTR reserved1;
  875. RASEAPINFO RasEapInfo;
  876. };
  877. #define LPRASDIALEXTENSIONS_V500 RASDIALEXTENSIONS_V500*
  878. //
  879. // New RAS Entry Name Structs for NT5
  880. //
  881. #define RASENTRYNAMEW_V500 struct tagRASENTRYNAMEW_V500
  882. RASENTRYNAMEW_V500
  883. {
  884. DWORD dwSize;
  885. WCHAR szEntryName[ RAS_MaxEntryName + 1 ];
  886. //
  887. // If this flag is RCD_AllUsers then its a
  888. // system phonebook.
  889. //
  890. DWORD dwFlags;
  891. WCHAR szPhonebookPath[MAX_PATH + 1];
  892. };
  893. #define RASENTRYNAMEA_V500 struct tagRASENTRYNAMEA_V500
  894. RASENTRYNAMEA_V500
  895. {
  896. DWORD dwSize;
  897. CHAR szEntryName[ RAS_MaxEntryName + 1 ];
  898. DWORD dwFlags;
  899. CHAR szPhonebookPath[MAX_PATH + 1];
  900. };
  901. #ifdef UNICODE
  902. #define RASENTRYNAME_V500 RASENTRYNAMEW_V500
  903. #else
  904. #define RASENTRYNAME_V500 RASENTRYNAMEA_V500
  905. #endif
  906. #define LPRASENTRYNAMEW_V500 RASENTRYNAMEW_V500*
  907. #define LPRASENTRYNAME_V500A RASENTRYNAMEA_V500*
  908. #define LPRASENTRYNAME_V500 RASENTRYNAME_V500*
  909. // RasGetEapUserIdentity structure. - For NT5
  910. #define RASEAPUSERIDENTITYA struct tagRASEAPUSERIDENTITYA
  911. RASEAPUSERIDENTITYA
  912. {
  913. CHAR szUserName[ UNLEN + 1 ];
  914. DWORD dwSizeofEapInfo;
  915. BYTE pbEapInfo[ 1 ];
  916. };
  917. #define RASEAPUSERIDENTITYW struct tagRASEAPUSERIDENTITYW
  918. RASEAPUSERIDENTITYW
  919. {
  920. WCHAR szUserName[ UNLEN + 1 ];
  921. DWORD dwSizeofEapInfo;
  922. BYTE pbEapInfo[ 1 ];
  923. };
  924. #ifdef UNICODE
  925. #define RASEAPUSERIDENTITY RASEAPUSERIDENTITYW
  926. #else
  927. #define RASEAPUSERIDENTITY RASEAPUSERIDENTITYA
  928. #endif
  929. #define LPRASEAPUSERIDENTITYW RASEAPUSERIDENTITYW*
  930. #define LPRASEAPUSERIDENTITYA RASEAPUSERIDENTITYA*
  931. #define LPRASEAPUSERIDENTITY RASEAPUSERIDENTITY*
  932. #ifdef _WIN64
  933. #include <poppack.h>
  934. #endif
  935. #endif // _CM_RAS_H_