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.

272 lines
3.9 KiB

  1. /*++
  2. Copyright (c) 1995 Microsoft Corporation
  3. Module Name:
  4. prot.h
  5. Abstract:
  6. RIP component prototypes
  7. Author:
  8. Stefan Solomon 06/22/1995
  9. Revision History:
  10. --*/
  11. #ifndef _PROT_
  12. #define _PROT_
  13. VOID
  14. InitIfDbase(VOID);
  15. PICB
  16. GetInterfaceByIndex(ULONG InterfaceIndex);
  17. PICB
  18. GetInterfaceByAdapterIndex(ULONG AdapterIndex);
  19. VOID
  20. AddIfToDb(PICB icbp);
  21. VOID
  22. RemoveIfFromDb(PICB icbp);
  23. VOID
  24. BindIf(PICB icbp,
  25. PIPX_ADAPTER_BINDING_INFO BindingInfop);
  26. VOID
  27. UnbindIf(PICB icbp);
  28. VOID
  29. ProcessReceivedPacket(PWORK_ITEM wip);
  30. VOID
  31. PostEventMessage(ROUTING_PROTOCOL_EVENTS Event,
  32. PMESSAGE Result);
  33. BOOL
  34. DeleteRipInterface(PICB icbp);
  35. DWORD
  36. SetRipInterface(ULONG InterfaceIndex,
  37. PRIP_IF_INFO RipIfInfop,
  38. PRIP_IF_FILTERS_I RipIfFiltersIp,
  39. ULONG IpxIfAdminState);
  40. DWORD
  41. InitTimer(VOID);
  42. VOID
  43. StartWiTimer(PWORK_ITEM wip,
  44. ULONG timeout);
  45. ULONG
  46. ProcessTimerQueue(VOID);
  47. VOID
  48. FlushTimerQueue(VOID);
  49. DWORD
  50. OpenRipSocket(VOID);
  51. DWORD
  52. CloseRipSocket(VOID);
  53. VOID
  54. StartReceiver(VOID);
  55. VOID
  56. RepostRcvPackets(VOID);
  57. VOID
  58. EnqueueRcvPacketToRepostQueue(PWORK_ITEM wip);
  59. PWORK_ITEM
  60. DequeueRcvPacketFromRepostQueue(PWORK_ITEM wip);
  61. DWORD
  62. ReceiveSubmit(PWORK_ITEM wip);
  63. DWORD
  64. SendSubmit(PWORK_ITEM wip);
  65. VOID
  66. CreateStartChangesBcastWi(VOID);
  67. VOID
  68. ProcessRTMChanges(VOID);
  69. VOID
  70. StartChangesBcast(PWORK_ITEM wip);
  71. VOID
  72. ChangeBcast(PWORK_ITEM wip);
  73. VOID
  74. ShutdownInterfaces(PWORK_ITEM wip);
  75. VOID
  76. CheckUpdateStatus(PWORK_ITEM wip);
  77. DWORD
  78. OpenRTM(VOID);
  79. VOID
  80. CloseRTM(VOID);
  81. VOID
  82. DeleteAllRipRoutes(ULONG InterfaceIndex);
  83. VOID
  84. SendGeneralRequest(PWORK_ITEM wip);
  85. DWORD
  86. ValidStateAndIfIndex(ULONG InterfaceIndex,
  87. PICB *icbpp);
  88. DWORD
  89. CreateWorkItemsManager(VOID);
  90. PWORK_ITEM
  91. AllocateWorkItem(ULONG Type);
  92. VOID
  93. FreeWorkItem(PWORK_ITEM wip);
  94. //VOID
  95. //EnqueueWorkItemToWorker(PWORK_ITEM wip);
  96. // Queue the work item for processing by the
  97. // worker threads
  98. VOID
  99. ProcessWorkItem(PWORK_ITEM wip);
  100. VOID
  101. DestroyWorkItemsManager(VOID);
  102. PWORK_ITEM
  103. DequeueWorkItemForWorker(VOID);
  104. ULONG
  105. GetRipRoutesCount(ULONG InterfaceIndex);
  106. VOID
  107. IfPeriodicBcast(PWORK_ITEM wip);
  108. VOID
  109. IfCompleteGenResponse(PWORK_ITEM wip);
  110. VOID
  111. IfChangeBcast(PWORK_ITEM wip);
  112. VOID
  113. IfCheckUpdateStatus(PWORK_ITEM wip);
  114. USHORT
  115. MakeRipGenResponsePacket(PWORK_ITEM wip,
  116. PUCHAR dstnodep,
  117. PUCHAR dstsocket);
  118. HANDLE
  119. CreateBestRoutesEnumHandle(VOID);
  120. DWORD
  121. EnumGetNextRoute(HANDLE EnumHandle,
  122. PIPX_ROUTE IpxRoutep);
  123. VOID
  124. CloseEnumHandle(HANDLE EnumHandle);
  125. HANDLE
  126. CreateRipRoutesEnumHandle(ULONG InterfaceIndex);
  127. DWORD
  128. DequeueRouteChangeFromRtm(PIPX_ROUTE IpxRoutep,
  129. PBOOL skipitp,
  130. PBOOL lastmessagep);
  131. DWORD
  132. DequeueRouteChangeFromRip(PIPX_ROUTE IpxRoutep);
  133. VOID
  134. SetRipIpxHeader(PUCHAR hdrp, // pointer to the packet header
  135. PICB icbp,
  136. PUCHAR dstnode,
  137. PUCHAR dstsocket,
  138. USHORT RipOpcode);
  139. VOID
  140. SetNetworkEntry(PUCHAR pktp, // ptr where to set the net entry
  141. PIPX_ROUTE IpxRoutep,
  142. USHORT LinkTickCount);
  143. DWORD
  144. SendRipGenRequest(PICB icbp);
  145. DWORD
  146. AddRipRoute(PIPX_ROUTE IpxRoutep,
  147. ULONG TimeToLive);
  148. DWORD
  149. DeleteRipRoute(PIPX_ROUTE IpxRoutep);
  150. BOOL
  151. IsRoute(PUCHAR Network,
  152. PIPX_ROUTE IpxRoutep);
  153. DWORD
  154. IfRefSendSubmit(PWORK_ITEM wip);
  155. VOID
  156. ReceiveComplete(PWORK_ITEM wip);
  157. VOID
  158. SendComplete(PWORK_ITEM wip);
  159. VOID
  160. ProcessRIPChanges(VOID);
  161. BOOL
  162. PassFilter(PICB icbp,
  163. PUCHAR Network);
  164. VOID
  165. CreateFiltersDatabase(VOID);
  166. VOID
  167. DestroyFiltersDatabase(VOID);
  168. BOOL
  169. IsRouteAdvertisable(PICB icbp,
  170. PIPX_ROUTE IpxRoutep);
  171. VOID
  172. IfPeriodicGenRequest(PWORK_ITEM wip);
  173. VOID
  174. GetIpxRipRegistryParameters(VOID);
  175. BOOL
  176. IsDuplicateBestRoute(PICB icbp,
  177. PIPX_ROUTE IpxRoutep);
  178. BOOL
  179. PassRipSupplyFilter(PICB icbp,
  180. PUCHAR Network);
  181. BOOL
  182. PassRipListenFilter(PICB icbp,
  183. PUCHAR Network);
  184. VOID
  185. DestroyInterfaceCB(PICB icbp);
  186. #endif