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.

177 lines
3.1 KiB

  1. /*++
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. rmALG.h
  5. Abstract:
  6. This module declares routines for the ALG transparent proxy module's
  7. interface to the IP router-manager. (See ROUTPROT.H for details).
  8. Author:
  9. JPDup 10-Nov-2000
  10. Revision History:
  11. --*/
  12. #ifndef _NATHLP_RMALG_H_
  13. #define _NATHLP_RMALG_H_
  14. //
  15. // GLOBAL DATA DECLARATIONS
  16. //
  17. extern COMPONENT_REFERENCE AlgComponentReference;
  18. extern PIP_ALG_GLOBAL_INFO AlgGlobalInfo;
  19. extern CRITICAL_SECTION AlgGlobalInfoLock;
  20. extern HANDLE AlgNotificationEvent;
  21. extern HANDLE AlgTimerQueueHandle;
  22. extern HANDLE AlgPortReservationHandle;
  23. extern ULONG AlgProtocolStopped;
  24. extern const MPR_ROUTING_CHARACTERISTICS AlgRoutingCharacteristics;
  25. extern IP_ALG_STATISTICS AlgStatistics;
  26. extern SUPPORT_FUNCTIONS AlgSupportFunctions;
  27. extern HANDLE AlgTranslatorHandle;
  28. //
  29. // MACRO DECLARATIONS
  30. //
  31. #define REFERENCE_ALG() \
  32. REFERENCE_COMPONENT(&AlgComponentReference)
  33. #define REFERENCE_ALG_OR_RETURN(retcode) \
  34. REFERENCE_COMPONENT_OR_RETURN(&AlgComponentReference,retcode)
  35. #define DEREFERENCE_ALG() \
  36. DEREFERENCE_COMPONENT(&AlgComponentReference)
  37. #define DEREFERENCE_ALG_AND_RETURN(retcode) \
  38. DEREFERENCE_COMPONENT_AND_RETURN(&AlgComponentReference, retcode)
  39. #define ALG_PORT_RESERVATION_BLOCK_SIZE 32
  40. //
  41. // FUNCTION DECLARATIONS
  42. //
  43. VOID
  44. AlgCleanupModule(
  45. VOID
  46. );
  47. BOOLEAN
  48. AlgInitializeModule(
  49. VOID
  50. );
  51. ULONG
  52. APIENTRY
  53. AlgRmStartProtocol(
  54. HANDLE NotificationEvent,
  55. PSUPPORT_FUNCTIONS SupportFunctions,
  56. PVOID GlobalInfo,
  57. ULONG StructureVersion,
  58. ULONG StructureSize,
  59. ULONG StructureCount
  60. );
  61. ULONG
  62. APIENTRY
  63. AlgRmStartComplete(
  64. VOID
  65. );
  66. ULONG
  67. APIENTRY
  68. AlgRmStopProtocol(
  69. VOID
  70. );
  71. ULONG
  72. APIENTRY
  73. AlgRmAddInterface(
  74. PWCHAR Name,
  75. ULONG Index,
  76. NET_INTERFACE_TYPE Type,
  77. ULONG MediaType,
  78. USHORT AccessType,
  79. USHORT ConnectionType,
  80. PVOID InterfaceInfo,
  81. ULONG StructureVersion,
  82. ULONG StructureSize,
  83. ULONG StructureCount
  84. );
  85. ULONG
  86. APIENTRY
  87. AlgRmDeleteInterface(
  88. ULONG Index
  89. );
  90. ULONG
  91. APIENTRY
  92. AlgRmInterfaceStatus(
  93. ULONG Index,
  94. BOOL InterfaceActive,
  95. ULONG StatusType,
  96. PVOID StatusInfo
  97. );
  98. ULONG
  99. APIENTRY
  100. AlgRmBindInterface(
  101. ULONG Index,
  102. PVOID BindingInfo
  103. );
  104. ULONG
  105. APIENTRY
  106. AlgRmUnbindInterface(
  107. ULONG Index
  108. );
  109. ULONG
  110. APIENTRY
  111. AlgRmEnableInterface(
  112. ULONG Index
  113. );
  114. ULONG
  115. APIENTRY
  116. AlgRmDisableInterface(
  117. ULONG Index
  118. );
  119. ULONG
  120. APIENTRY
  121. AlgRmGetGlobalInfo(
  122. PVOID GlobalInfo,
  123. IN OUT PULONG GlobalInfoSize,
  124. IN OUT PULONG StructureVersion,
  125. IN OUT PULONG StructureSize,
  126. IN OUT PULONG StructureCount
  127. );
  128. ULONG
  129. APIENTRY
  130. AlgRmSetGlobalInfo(
  131. PVOID GlobalInfo,
  132. ULONG StructureVersion,
  133. ULONG StructureSize,
  134. ULONG StructureCount
  135. );
  136. ULONG
  137. AlgRmPortMappingChanged(
  138. ULONG Index,
  139. UCHAR Protocol,
  140. USHORT Port
  141. );
  142. #endif // _NATHLP_RMALG_H_