Leaked source code of windows server 2003
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.

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