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.

288 lines
6.0 KiB

  1. /*++
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. AOLRasSetEntryProperties.cpp
  5. Abstract:
  6. History:
  7. 05/03/2001 markder Created
  8. --*/
  9. #include "precomp.h"
  10. #include "ras.h"
  11. IMPLEMENT_SHIM_BEGIN(AOLRasSetEntryProperties)
  12. #include "ShimHookMacro.h"
  13. APIHOOK_ENUM_BEGIN
  14. APIHOOK_ENUM_ENTRY(RasSetEntryPropertiesA)
  15. APIHOOK_ENUM_ENTRY(RasSetEntryPropertiesW)
  16. APIHOOK_ENUM_END
  17. #define RASENTRYW_V500 struct tagRASENTRYW_V500
  18. RASENTRYW_V500
  19. {
  20. DWORD dwSize;
  21. DWORD dwfOptions;
  22. //
  23. // Location/phone number
  24. //
  25. DWORD dwCountryID;
  26. DWORD dwCountryCode;
  27. WCHAR szAreaCode[ RAS_MaxAreaCode + 1 ];
  28. WCHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  29. DWORD dwAlternateOffset;
  30. //
  31. // PPP/Ip
  32. //
  33. RASIPADDR ipaddr;
  34. RASIPADDR ipaddrDns;
  35. RASIPADDR ipaddrDnsAlt;
  36. RASIPADDR ipaddrWins;
  37. RASIPADDR ipaddrWinsAlt;
  38. //
  39. // Framing
  40. //
  41. DWORD dwFrameSize;
  42. DWORD dwfNetProtocols;
  43. DWORD dwFramingProtocol;
  44. //
  45. // Scripting
  46. //
  47. WCHAR szScript[ MAX_PATH ];
  48. //
  49. // AutoDial
  50. //
  51. WCHAR szAutodialDll[ MAX_PATH ];
  52. WCHAR szAutodialFunc[ MAX_PATH ];
  53. //
  54. // Device
  55. //
  56. WCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
  57. WCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
  58. //
  59. // X.25
  60. //
  61. WCHAR szX25PadType[ RAS_MaxPadType + 1 ];
  62. WCHAR szX25Address[ RAS_MaxX25Address + 1 ];
  63. WCHAR szX25Facilities[ RAS_MaxFacilities + 1 ];
  64. WCHAR szX25UserData[ RAS_MaxUserData + 1 ];
  65. DWORD dwChannels;
  66. //
  67. // Reserved
  68. //
  69. DWORD dwReserved1;
  70. DWORD dwReserved2;
  71. #if (WINVER >= 0x401)
  72. //
  73. // Multilink
  74. //
  75. DWORD dwSubEntries;
  76. DWORD dwDialMode;
  77. DWORD dwDialExtraPercent;
  78. DWORD dwDialExtraSampleSeconds;
  79. DWORD dwHangUpExtraPercent;
  80. DWORD dwHangUpExtraSampleSeconds;
  81. //
  82. // Idle timeout
  83. //
  84. DWORD dwIdleDisconnectSeconds;
  85. #endif
  86. #if (WINVER >= 0x500)
  87. //
  88. // Entry Type
  89. //
  90. DWORD dwType;
  91. //
  92. // EncryptionType
  93. //
  94. DWORD dwEncryptionType;
  95. //
  96. // CustomAuthKey to be used for EAP
  97. //
  98. DWORD dwCustomAuthKey;
  99. //
  100. // Guid of the connection
  101. //
  102. GUID guidId;
  103. //
  104. // Custom Dial Dll
  105. //
  106. WCHAR szCustomDialDll[MAX_PATH];
  107. //
  108. // Vpn Strategy
  109. //
  110. DWORD dwVpnStrategy;
  111. #endif
  112. };
  113. #define RASENTRYA_V500 struct tagRASENTRYA_V500
  114. RASENTRYA_V500
  115. {
  116. DWORD dwSize;
  117. DWORD dwfOptions;
  118. //
  119. // Location/phone number.
  120. //
  121. DWORD dwCountryID;
  122. DWORD dwCountryCode;
  123. CHAR szAreaCode[ RAS_MaxAreaCode + 1 ];
  124. CHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  125. DWORD dwAlternateOffset;
  126. //
  127. // PPP/Ip
  128. //
  129. RASIPADDR ipaddr;
  130. RASIPADDR ipaddrDns;
  131. RASIPADDR ipaddrDnsAlt;
  132. RASIPADDR ipaddrWins;
  133. RASIPADDR ipaddrWinsAlt;
  134. //
  135. // Framing
  136. //
  137. DWORD dwFrameSize;
  138. DWORD dwfNetProtocols;
  139. DWORD dwFramingProtocol;
  140. //
  141. // Scripting
  142. //
  143. CHAR szScript[ MAX_PATH ];
  144. //
  145. // AutoDial
  146. //
  147. CHAR szAutodialDll[ MAX_PATH ];
  148. CHAR szAutodialFunc[ MAX_PATH ];
  149. //
  150. // Device
  151. //
  152. CHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
  153. CHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
  154. //
  155. // X.25
  156. //
  157. CHAR szX25PadType[ RAS_MaxPadType + 1 ];
  158. CHAR szX25Address[ RAS_MaxX25Address + 1 ];
  159. CHAR szX25Facilities[ RAS_MaxFacilities + 1 ];
  160. CHAR szX25UserData[ RAS_MaxUserData + 1 ];
  161. DWORD dwChannels;
  162. //
  163. // Reserved
  164. //
  165. DWORD dwReserved1;
  166. DWORD dwReserved2;
  167. #if (WINVER >= 0x401)
  168. //
  169. // Multilink
  170. //
  171. DWORD dwSubEntries;
  172. DWORD dwDialMode;
  173. DWORD dwDialExtraPercent;
  174. DWORD dwDialExtraSampleSeconds;
  175. DWORD dwHangUpExtraPercent;
  176. DWORD dwHangUpExtraSampleSeconds;
  177. //
  178. // Idle timeout
  179. //
  180. DWORD dwIdleDisconnectSeconds;
  181. #endif
  182. #if (WINVER >= 0x500)
  183. //
  184. // Entry Type
  185. //
  186. DWORD dwType;
  187. //
  188. // Encryption type
  189. //
  190. DWORD dwEncryptionType;
  191. //
  192. // CustomAuthKey to be used for EAP
  193. //
  194. DWORD dwCustomAuthKey;
  195. //
  196. // Guid of the connection
  197. //
  198. GUID guidId;
  199. //
  200. // Custom Dial Dll
  201. //
  202. CHAR szCustomDialDll[MAX_PATH];
  203. //
  204. // DwVpnStrategy
  205. //
  206. DWORD dwVpnStrategy;
  207. #endif
  208. };
  209. DWORD APIHOOK(RasSetEntryPropertiesA)(
  210. LPCSTR lpszPhoneBook,
  211. LPCSTR szEntry ,
  212. LPRASENTRYA lpbEntry,
  213. DWORD dwEntrySize,
  214. LPBYTE lpb,
  215. DWORD dwSize )
  216. {
  217. lpbEntry->dwSize = sizeof(RASENTRYA_V500); // win2k version struct size
  218. return ORIGINAL_API(RasSetEntryPropertiesA)(
  219. lpszPhoneBook,
  220. szEntry,
  221. lpbEntry,
  222. dwEntrySize,
  223. lpb,
  224. dwSize);
  225. }
  226. DWORD APIHOOK(RasSetEntryPropertiesW)(
  227. LPCWSTR lpszPhoneBook,
  228. LPCWSTR szEntry ,
  229. LPRASENTRYW lpbEntry,
  230. DWORD dwEntrySize,
  231. LPBYTE lpb,
  232. DWORD dwSize )
  233. {
  234. lpbEntry->dwSize = sizeof(RASENTRYW_V500); // win2k version struct size
  235. return ORIGINAL_API(RasSetEntryPropertiesW)(
  236. lpszPhoneBook,
  237. szEntry,
  238. lpbEntry,
  239. dwEntrySize,
  240. lpb,
  241. dwSize);
  242. }
  243. /*++
  244. Register hooked functions
  245. --*/
  246. HOOK_BEGIN
  247. APIHOOK_ENTRY(RASAPI32.DLL, RasSetEntryPropertiesA)
  248. APIHOOK_ENTRY(RASAPI32.DLL, RasSetEntryPropertiesW)
  249. HOOK_END
  250. IMPLEMENT_SHIM_END