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.

148 lines
2.5 KiB

  1. /*++
  2. Copyright (c) 2001 Microsoft Corporation
  3. Abstract:
  4. Defines and prototypes for the 6to4 service
  5. --*/
  6. #define SECONDS 1
  7. #define MINUTES (60 * SECONDS)
  8. #define HOURS (60 * MINUTES)
  9. #define DAYS (24 * HOURS)
  10. //////////////////////////
  11. // Routines from svcmain.c
  12. //////////////////////////
  13. VOID
  14. Set6to4ServiceStatus(
  15. IN DWORD dwState,
  16. IN DWORD dwErr);
  17. typedef enum {
  18. DEFAULT = 0,
  19. AUTOMATIC,
  20. ENABLED,
  21. DISABLED
  22. } STATE;
  23. //////////////////////////
  24. // Routines from 6to4svc.c
  25. //////////////////////////
  26. extern STATE g_stService;
  27. extern SOCKET g_sIPv4Socket;
  28. VOID
  29. Stop6to4();
  30. VOID
  31. Cleanup6to4();
  32. DWORD
  33. OnConfigChange(VOID);
  34. DWORD
  35. Start6to4(VOID);
  36. VOID
  37. IncEventCount(IN PCHAR pszWhere);
  38. VOID
  39. DecEventCount(IN PCHAR pszWhere);
  40. BOOL
  41. ConvertOemToUnicode(
  42. IN LPSTR OemString,
  43. OUT LPWSTR UnicodeString,
  44. IN int UnicodeLen);
  45. DWORD
  46. GetAddrInfoW(PWCHAR pwszName, PWCHAR pwszServ, struct addrinfo *hints,
  47. struct addrinfo **ai);
  48. ULONG
  49. GetInteger(
  50. IN HKEY hKey,
  51. IN LPCTSTR lpName,
  52. IN ULONG ulDefault);
  53. VOID
  54. GetString(
  55. IN HKEY hKey,
  56. IN LPCTSTR lpName,
  57. IN PWCHAR pBuff,
  58. IN ULONG ulLength,
  59. IN PWCHAR pDefault);
  60. //////////////////////////
  61. // Routines from ipv6.c
  62. //////////////////////////
  63. extern void
  64. ForEachInterface(void (*func)(IPV6_INFO_INTERFACE *, void *), void *Context);
  65. extern int
  66. InitIPv6Library(void);
  67. extern void
  68. UninitIPv6Library(void);
  69. extern BOOL
  70. ReconnectInterface(PWCHAR AdapterName);
  71. extern int
  72. UpdateRouteTable(IPV6_INFO_ROUTE_TABLE *Route);
  73. extern int
  74. UpdateAddress(IPV6_UPDATE_ADDRESS *Address);
  75. extern u_int
  76. ConfirmIPv6Reachability(SOCKADDR_IN6 *Dest, u_int Timeout);
  77. extern BOOL
  78. DeleteInterface(u_int IfIndex);
  79. extern u_int
  80. CreateV6V4Interface(IN_ADDR SrcAddr, IN_ADDR DstAddr);
  81. extern u_int
  82. Create6over4Interface(IN_ADDR SrcAddr);
  83. extern int
  84. UpdateInterface(IPV6_INFO_INTERFACE *Update);
  85. extern IPV6_INFO_INTERFACE *
  86. GetInterfaceStackInfo(WCHAR *pwszAdapterName);
  87. extern BOOL
  88. UpdateRouterLinkAddress(u_int IfIndex, IN_ADDR SrcAddr, IN_ADDR DstAddr);
  89. //////////////////////////
  90. // Routines from dyndns.c
  91. //////////////////////////
  92. DWORD
  93. StartIpv6AddressChangeNotification(VOID);
  94. VOID
  95. StopIpv6AddressChangeNotification(VOID);
  96. VOID CALLBACK
  97. OnIpv6AddressChange(IN PVOID lpParameter, IN BOOLEAN TimerOrWaitFired);
  98. //////////////////////////
  99. // Routines from proxy.c
  100. //////////////////////////
  101. BOOL
  102. QueueUpdateGlobalPortState(IN PVOID Unused);
  103. VOID
  104. UninitializePorts(VOID);
  105. VOID
  106. InitializePorts(VOID);