mirror of https://github.com/tongzx/nt5src
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
272 lines
3.9 KiB
/*++
|
|
|
|
Copyright (c) 1995 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
prot.h
|
|
|
|
Abstract:
|
|
|
|
RIP component prototypes
|
|
|
|
Author:
|
|
|
|
Stefan Solomon 06/22/1995
|
|
|
|
Revision History:
|
|
|
|
|
|
--*/
|
|
|
|
#ifndef _PROT_
|
|
#define _PROT_
|
|
|
|
VOID
|
|
InitIfDbase(VOID);
|
|
|
|
PICB
|
|
GetInterfaceByIndex(ULONG InterfaceIndex);
|
|
|
|
PICB
|
|
GetInterfaceByAdapterIndex(ULONG AdapterIndex);
|
|
|
|
VOID
|
|
AddIfToDb(PICB icbp);
|
|
|
|
VOID
|
|
RemoveIfFromDb(PICB icbp);
|
|
|
|
VOID
|
|
BindIf(PICB icbp,
|
|
PIPX_ADAPTER_BINDING_INFO BindingInfop);
|
|
|
|
VOID
|
|
UnbindIf(PICB icbp);
|
|
|
|
VOID
|
|
ProcessReceivedPacket(PWORK_ITEM wip);
|
|
|
|
VOID
|
|
PostEventMessage(ROUTING_PROTOCOL_EVENTS Event,
|
|
PMESSAGE Result);
|
|
|
|
BOOL
|
|
DeleteRipInterface(PICB icbp);
|
|
|
|
DWORD
|
|
SetRipInterface(ULONG InterfaceIndex,
|
|
PRIP_IF_INFO RipIfInfop,
|
|
PRIP_IF_FILTERS_I RipIfFiltersIp,
|
|
ULONG IpxIfAdminState);
|
|
|
|
DWORD
|
|
InitTimer(VOID);
|
|
|
|
VOID
|
|
StartWiTimer(PWORK_ITEM wip,
|
|
ULONG timeout);
|
|
|
|
ULONG
|
|
ProcessTimerQueue(VOID);
|
|
|
|
VOID
|
|
FlushTimerQueue(VOID);
|
|
|
|
|
|
DWORD
|
|
OpenRipSocket(VOID);
|
|
|
|
DWORD
|
|
CloseRipSocket(VOID);
|
|
|
|
VOID
|
|
StartReceiver(VOID);
|
|
|
|
VOID
|
|
RepostRcvPackets(VOID);
|
|
|
|
VOID
|
|
EnqueueRcvPacketToRepostQueue(PWORK_ITEM wip);
|
|
|
|
PWORK_ITEM
|
|
DequeueRcvPacketFromRepostQueue(PWORK_ITEM wip);
|
|
|
|
DWORD
|
|
ReceiveSubmit(PWORK_ITEM wip);
|
|
|
|
DWORD
|
|
SendSubmit(PWORK_ITEM wip);
|
|
|
|
VOID
|
|
CreateStartChangesBcastWi(VOID);
|
|
|
|
VOID
|
|
ProcessRTMChanges(VOID);
|
|
|
|
VOID
|
|
StartChangesBcast(PWORK_ITEM wip);
|
|
|
|
VOID
|
|
ChangeBcast(PWORK_ITEM wip);
|
|
|
|
VOID
|
|
ShutdownInterfaces(PWORK_ITEM wip);
|
|
|
|
VOID
|
|
CheckUpdateStatus(PWORK_ITEM wip);
|
|
|
|
DWORD
|
|
OpenRTM(VOID);
|
|
|
|
VOID
|
|
CloseRTM(VOID);
|
|
|
|
VOID
|
|
DeleteAllRipRoutes(ULONG InterfaceIndex);
|
|
|
|
VOID
|
|
SendGeneralRequest(PWORK_ITEM wip);
|
|
|
|
DWORD
|
|
ValidStateAndIfIndex(ULONG InterfaceIndex,
|
|
PICB *icbpp);
|
|
|
|
DWORD
|
|
CreateWorkItemsManager(VOID);
|
|
|
|
PWORK_ITEM
|
|
AllocateWorkItem(ULONG Type);
|
|
|
|
VOID
|
|
FreeWorkItem(PWORK_ITEM wip);
|
|
|
|
//VOID
|
|
//EnqueueWorkItemToWorker(PWORK_ITEM wip);
|
|
// Queue the work item for processing by the
|
|
// worker threads
|
|
VOID
|
|
ProcessWorkItem(PWORK_ITEM wip);
|
|
|
|
VOID
|
|
DestroyWorkItemsManager(VOID);
|
|
|
|
PWORK_ITEM
|
|
DequeueWorkItemForWorker(VOID);
|
|
|
|
ULONG
|
|
GetRipRoutesCount(ULONG InterfaceIndex);
|
|
|
|
VOID
|
|
IfPeriodicBcast(PWORK_ITEM wip);
|
|
|
|
VOID
|
|
IfCompleteGenResponse(PWORK_ITEM wip);
|
|
|
|
VOID
|
|
IfChangeBcast(PWORK_ITEM wip);
|
|
|
|
VOID
|
|
IfCheckUpdateStatus(PWORK_ITEM wip);
|
|
|
|
USHORT
|
|
MakeRipGenResponsePacket(PWORK_ITEM wip,
|
|
PUCHAR dstnodep,
|
|
PUCHAR dstsocket);
|
|
|
|
HANDLE
|
|
CreateBestRoutesEnumHandle(VOID);
|
|
|
|
DWORD
|
|
EnumGetNextRoute(HANDLE EnumHandle,
|
|
PIPX_ROUTE IpxRoutep);
|
|
|
|
VOID
|
|
CloseEnumHandle(HANDLE EnumHandle);
|
|
|
|
HANDLE
|
|
CreateRipRoutesEnumHandle(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
DequeueRouteChangeFromRtm(PIPX_ROUTE IpxRoutep,
|
|
PBOOL skipitp,
|
|
PBOOL lastmessagep);
|
|
|
|
DWORD
|
|
DequeueRouteChangeFromRip(PIPX_ROUTE IpxRoutep);
|
|
|
|
|
|
VOID
|
|
SetRipIpxHeader(PUCHAR hdrp, // pointer to the packet header
|
|
PICB icbp,
|
|
PUCHAR dstnode,
|
|
PUCHAR dstsocket,
|
|
USHORT RipOpcode);
|
|
|
|
VOID
|
|
SetNetworkEntry(PUCHAR pktp, // ptr where to set the net entry
|
|
PIPX_ROUTE IpxRoutep,
|
|
USHORT LinkTickCount);
|
|
|
|
DWORD
|
|
SendRipGenRequest(PICB icbp);
|
|
|
|
DWORD
|
|
AddRipRoute(PIPX_ROUTE IpxRoutep,
|
|
ULONG TimeToLive);
|
|
|
|
DWORD
|
|
DeleteRipRoute(PIPX_ROUTE IpxRoutep);
|
|
|
|
BOOL
|
|
IsRoute(PUCHAR Network,
|
|
PIPX_ROUTE IpxRoutep);
|
|
|
|
DWORD
|
|
IfRefSendSubmit(PWORK_ITEM wip);
|
|
|
|
VOID
|
|
ReceiveComplete(PWORK_ITEM wip);
|
|
|
|
VOID
|
|
SendComplete(PWORK_ITEM wip);
|
|
|
|
VOID
|
|
ProcessRIPChanges(VOID);
|
|
|
|
BOOL
|
|
PassFilter(PICB icbp,
|
|
PUCHAR Network);
|
|
|
|
VOID
|
|
CreateFiltersDatabase(VOID);
|
|
|
|
VOID
|
|
DestroyFiltersDatabase(VOID);
|
|
|
|
BOOL
|
|
IsRouteAdvertisable(PICB icbp,
|
|
PIPX_ROUTE IpxRoutep);
|
|
|
|
VOID
|
|
IfPeriodicGenRequest(PWORK_ITEM wip);
|
|
|
|
VOID
|
|
GetIpxRipRegistryParameters(VOID);
|
|
|
|
BOOL
|
|
IsDuplicateBestRoute(PICB icbp,
|
|
PIPX_ROUTE IpxRoutep);
|
|
|
|
BOOL
|
|
PassRipSupplyFilter(PICB icbp,
|
|
PUCHAR Network);
|
|
|
|
BOOL
|
|
PassRipListenFilter(PICB icbp,
|
|
PUCHAR Network);
|
|
|
|
VOID
|
|
DestroyInterfaceCB(PICB icbp);
|
|
|
|
#endif
|