509 lines
9.2 KiB
C
509 lines
9.2 KiB
C
/*++
|
|
|
|
Copyright (c) 1995 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
rtrprot.h
|
|
|
|
Abstract:
|
|
|
|
This module contains the internal prototypes
|
|
|
|
Author:
|
|
|
|
Stefan Solomon 03/03/1995
|
|
|
|
Revision History:
|
|
|
|
|
|
--*/
|
|
|
|
#ifndef _RTRPROT_
|
|
#define _RTRPROT_
|
|
|
|
//
|
|
// *** Internal Prototypes ***
|
|
//
|
|
|
|
DWORD
|
|
GetIpxRouterParameters(VOID);
|
|
|
|
VOID
|
|
InitIfDB(VOID);
|
|
|
|
VOID
|
|
InitAdptDB(VOID);
|
|
|
|
DWORD
|
|
FwInitialize(VOID);
|
|
|
|
DWORD
|
|
StartAdapterManager(VOID);
|
|
|
|
VOID
|
|
StopAdapterManager(VOID);
|
|
|
|
DWORD
|
|
SetGlobalInfo(LPVOID);
|
|
|
|
DWORD
|
|
AddInterface(
|
|
IN LPWSTR InterfaceNamep,
|
|
IN LPVOID InterfaceInfop,
|
|
IN INTERFACE_TYPE InterfaceType,
|
|
IN HANDLE hDDMInterface,
|
|
IN OUT HANDLE *phInterface);
|
|
|
|
DWORD
|
|
DeleteInterface(HANDLE InterfaceIndex);
|
|
|
|
DWORD
|
|
GetInterfaceInfo(
|
|
IN HANDLE InterfaceIndex,
|
|
OUT LPVOID InterfaceInfo,
|
|
IN OUT DWORD *InterfaceInfoSize);
|
|
|
|
|
|
DWORD
|
|
SetInterfaceInfo(
|
|
IN HANDLE InterfaceIndex,
|
|
IN LPVOID InterfaceInfop);
|
|
|
|
|
|
DWORD APIENTRY
|
|
InterfaceConnected (
|
|
IN HANDLE hInterface,
|
|
IN PVOID pFilter,
|
|
IN PVOID pPppProjectionResult
|
|
);
|
|
|
|
VOID
|
|
InterfaceDisconnected(
|
|
IN HANDLE Interface);
|
|
|
|
DWORD
|
|
InterfaceNotReachable(
|
|
IN HANDLE Interface,
|
|
IN UNREACHABILITY_REASON Reason);
|
|
|
|
DWORD
|
|
InterfaceReachable(
|
|
IN HANDLE Interface);
|
|
|
|
VOID
|
|
UpdateCompleted(PUPDATE_COMPLETE_MESSAGE ucmsgp);
|
|
|
|
|
|
DWORD
|
|
SetGlobalInfo(
|
|
IN LPVOID pGlobalInfo );
|
|
|
|
VOID
|
|
AdapterNotification(VOID);
|
|
|
|
VOID
|
|
ForwarderNotification(VOID);
|
|
|
|
LPVOID
|
|
GetInfoEntry(PIPX_INFO_BLOCK_HEADER InterfaceInfop,
|
|
ULONG InfoEntryType);
|
|
|
|
DWORD
|
|
CreateStaticRoute(PICB icbp,
|
|
PIPX_STATIC_ROUTE_INFO StaticRouteInfop);
|
|
|
|
DWORD
|
|
DeleteStaticRoute(ULONG IfIndex,
|
|
PIPX_STATIC_ROUTE_INFO StaticRouteInfop);
|
|
|
|
PICB
|
|
GetInterfaceByName(LPWSTR InterfaceNamep);
|
|
|
|
PICB
|
|
GetInterfaceByIndex(ULONG InterfaceIndex);
|
|
|
|
PIPX_TOC_ENTRY
|
|
GetTocEntry(PIPX_INFO_BLOCK_HEADER HeaderInfop,
|
|
ULONG InfoType);
|
|
|
|
VOID
|
|
AddIfToDB(PICB icbp);
|
|
|
|
VOID
|
|
RemoveIfFromDB(PICB icbp);
|
|
|
|
PACB
|
|
GetAdapterByNameAndPktType (LPWSTR AdapterName, ULONG PacketType);
|
|
|
|
VOID
|
|
BindInterfaceToAdapter(PICB icbp,
|
|
PACB acbp);
|
|
|
|
VOID
|
|
UnbindInterfaceFromAdapter(PICB icbp);
|
|
|
|
VOID
|
|
DeleteAllStaticRoutes(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
UpdateStaticIfEntries(
|
|
PICB icbp,
|
|
HANDLE EnumHandle, // handle for the get next enumeration
|
|
ULONG StaticEntrySize,
|
|
ULONG NewStaticEntriesCount, // number of new static entries
|
|
LPVOID NewStaticEntry, // start of the new entries array
|
|
ULONG (*GetNextStaticEntry)(HANDLE EnumHandle, LPVOID entry),
|
|
ULONG (*DeleteStaticEntry)(ULONG IfIndex, LPVOID entry),
|
|
ULONG (*CreateStaticEntry)(PICB icbp, LPVOID entry));
|
|
|
|
HANDLE
|
|
CreateStaticRoutesEnumHandle(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
GetNextStaticRoute(HANDLE EnumHandle, PIPX_STATIC_ROUTE_INFO StaticRtInfop);
|
|
|
|
VOID
|
|
CloseStaticRoutesEnumHandle(HANDLE EnumHandle);
|
|
|
|
HANDLE
|
|
CreateStaticServicesEnumHandle(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
GetNextStaticService(HANDLE EnumHandle, PIPX_STATIC_SERVICE_INFO StaticSvInfop);
|
|
|
|
DWORD
|
|
CloseStaticServicesEnumHandle(HANDLE EnumHandle);
|
|
|
|
DWORD
|
|
DeleteAllStaticServices(ULONG InterfaceIndex);
|
|
|
|
PACB
|
|
GetAdapterByIndex(ULONG AdapterIndex);
|
|
|
|
PICB
|
|
GetInterfaceByAdapterName(LPWSTR AdapterName);
|
|
|
|
DWORD
|
|
CreateLocalRoute(PICB icbp);
|
|
|
|
DWORD
|
|
DeleteLocalRoute(PICB icbp);
|
|
|
|
VOID
|
|
GetInterfaceAnsiName(PUCHAR AnsiInterfaceNameBuffer,
|
|
PWSTR UnicodeInterfaceNameBuffer);
|
|
VOID
|
|
InitIfDB(VOID);
|
|
|
|
VOID
|
|
AddToAdapterHt(PACB acbp);
|
|
|
|
VOID
|
|
RemoveFromAdapterHt(PACB acbp);
|
|
|
|
BOOL
|
|
RtCreateTimer(IN PHANDLE TimerHandlep);
|
|
|
|
BOOL
|
|
RtDestroyTimer(IN HANDLE TimerHandle);
|
|
|
|
BOOL
|
|
RtSetTimer(
|
|
IN HANDLE TimerHandle,
|
|
IN ULONG MillisecondsToExpire,
|
|
IN PTIMER_APC_ROUTINE TimerRoutine,
|
|
IN PVOID Context
|
|
);
|
|
|
|
BOOL
|
|
RtCancelTimer(
|
|
IN HANDLE TimerHandle
|
|
);
|
|
|
|
|
|
DWORD
|
|
StartRoutingProtocols(HANDLE RoutesUpdateEvent, HANDLE ServicesUpdateEvent);
|
|
|
|
VOID
|
|
StopRoutingProtocols(VOID);
|
|
|
|
DWORD
|
|
CreateRoutingProtocolsInterfaces(PIPX_INFO_BLOCK_HEADER InterfaceInfop,
|
|
PICB icbp);
|
|
|
|
DWORD
|
|
DeleteRoutingProtocolsInterfaces(ULONG InterfaceIndex);
|
|
|
|
ULONG
|
|
SizeOfRoutingProtocolsIfsInfo(ULONG InterfaceIndex);
|
|
|
|
ULONG
|
|
RoutingProtocolsTocCount(VOID);
|
|
|
|
DWORD
|
|
CreateRoutingProtocolsTocAndInfoEntries(PIPX_INFO_BLOCK_HEADER ibhp,
|
|
ULONG InterfaceIndex,
|
|
PIPX_TOC_ENTRY *current_tocepp,
|
|
PULONG current_NextInfoOffsetp);
|
|
|
|
DWORD
|
|
SetRoutingProtocolsInterfaces(PIPX_INFO_BLOCK_HEADER InterfaceInfop,
|
|
ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
BindRoutingProtocolsIfsToAdapter(ULONG InterfaceIndex,
|
|
PIPX_ADAPTER_BINDING_INFO abip);
|
|
|
|
DWORD
|
|
UnbindRoutingProtocolsIfsFromAdapter(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
CreateStaticService(PICB icbp,
|
|
PIPX_STATIC_SERVICE_INFO ServiceEntry);
|
|
|
|
DWORD
|
|
DeleteStaticService(ULONG InterfaceIndex,
|
|
PIPX_STATIC_SERVICE_INFO ServiceEntry);
|
|
|
|
|
|
DWORD
|
|
GetFirstService(IN DWORD OrderingMethod,
|
|
IN DWORD ExclusionFlags,
|
|
IN OUT PIPX_SERVICE Service);
|
|
|
|
DWORD
|
|
GetNextService(IN DWORD OrderingMethod,
|
|
IN DWORD ExclusionFlags,
|
|
IN OUT PIPX_SERVICE Service);
|
|
|
|
BOOL
|
|
IsService(USHORT Type,
|
|
PUCHAR Name,
|
|
PIPX_SERVICE Service);
|
|
|
|
DWORD
|
|
GetRoute(ULONG RoutingTable,
|
|
PIPX_ROUTE IpxRoutep);
|
|
|
|
DWORD
|
|
GetFirstRoute(ULONG RoutingTable,
|
|
PIPX_ROUTE IpxRoutep);
|
|
|
|
DWORD
|
|
GetNextRoute(ULONG RoutingTable,
|
|
PIPX_ROUTE IpxRoutep);
|
|
|
|
BOOL
|
|
IsRoute(PUCHAR Network);
|
|
|
|
DWORD
|
|
InitWanNetConfigDbase(VOID);
|
|
|
|
ULONG
|
|
GetNextInterfaceIndex(VOID);
|
|
|
|
DWORD
|
|
CreateGlobalRoute(PUCHAR Network);
|
|
|
|
DWORD
|
|
DeleteGlobalRoute(PUCHAR Network);
|
|
|
|
|
|
DWORD
|
|
RtProtRequestRoutesUpdate(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
RtProtRequestServicesUpdate(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
RtProtSendRoutesUpdate(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
RtProtSendServicesUpdate(ULONG InterfaceIndex);
|
|
|
|
VOID
|
|
RtProtCancelRoutesUpdate(ULONG InterfaceIndex);
|
|
|
|
VOID
|
|
RtProtCancelServicesUpdate(ULONG InterfaceIndex);
|
|
|
|
VOID
|
|
CancelUpdateRequest(HANDLE hInterface);
|
|
|
|
DWORD
|
|
GetDIMUpdateResult(HANDLE InterfaceIndex,
|
|
LPDWORD UpdateResultp);
|
|
|
|
VOID
|
|
InitUpdateCbs(PICB icbp);
|
|
|
|
VOID
|
|
AdminEnable(PICB icbp);
|
|
|
|
VOID
|
|
AdminDisable(PICB icbp);
|
|
|
|
VOID
|
|
DestroyAllAdapters(VOID);
|
|
|
|
VOID
|
|
DestroyAllInterfaces(VOID);
|
|
|
|
DWORD
|
|
GetServiceCount(VOID);
|
|
|
|
DWORD
|
|
MibCreate(ULONG ProtocolId,
|
|
ULONG InputDataSize,
|
|
PVOID InputData);
|
|
|
|
DWORD
|
|
MibDelete(ULONG ProtocolId,
|
|
ULONG InputDataSize,
|
|
PVOID InputData);
|
|
DWORD
|
|
MibSet(ULONG ProtocolId,
|
|
ULONG InputDataSize,
|
|
PVOID InputData);
|
|
|
|
DWORD
|
|
MibGet(ULONG ProtocolId,
|
|
ULONG InputDataSize,
|
|
PVOID InputData,
|
|
PULONG OutputDataSize,
|
|
PVOID OutputData);
|
|
|
|
DWORD
|
|
MibGetFirst(ULONG ProtocolId,
|
|
ULONG InputDataSize,
|
|
PVOID InputData,
|
|
PULONG OutputDataSize,
|
|
PVOID OutputData);
|
|
DWORD
|
|
MibGetNext(ULONG ProtocolId,
|
|
ULONG InputDataSize,
|
|
PVOID InputData,
|
|
PULONG OutputDataSize,
|
|
PVOID OutputData);
|
|
|
|
DWORD
|
|
RequestUpdate(IN HANDLE InterfaceIndex,
|
|
IN HANDLE hEvent);
|
|
|
|
DWORD
|
|
GetStaticServicesCount(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
GetStaticRoutesCount(ULONG InterfaceIndex);
|
|
|
|
VOID
|
|
DestroyRoutingProtocolCB(PRPCB rpcbp);
|
|
|
|
PRPCB
|
|
GetRoutingProtocolCB(DWORD ProtocolId);
|
|
|
|
VOID
|
|
ConvertAllProtocolRoutesToStatic(ULONG InterfaceIndex,
|
|
ULONG RoutingProtocolId);
|
|
|
|
VOID
|
|
ConvertAllServicesToStatic(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
SetRoutingProtocolsGlobalInfo(PIPX_INFO_BLOCK_HEADER GlobalInfop);
|
|
|
|
DWORD
|
|
CreateRouteTable(VOID);
|
|
|
|
DWORD
|
|
EnumerateFirstInterfaceIndex(PULONG InterfaceIndexp);
|
|
|
|
DWORD
|
|
EnumerateNextInterfaceIndex(PULONG InterfaceIndexp);
|
|
|
|
DWORD
|
|
RoutingProtocolsEnableIpxInterface(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
RoutingProtocolsDisableIpxInterface(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
FwEnableIpxInterface(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
FwDisableIpxInterface(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
RoutingProtocolConnectionRequest(ULONG ProtocolId,
|
|
ULONG InterfaceIndex);
|
|
VOID
|
|
DisableStaticRoutes(ULONG InterfaceIndex);
|
|
|
|
VOID
|
|
DisableStaticRoute(ULONG InterfaceIndex, PUCHAR Network);
|
|
|
|
VOID
|
|
EnableStaticRoutes(ULONG InterfaceIndex);
|
|
|
|
VOID
|
|
ExternalEnableInterface(ULONG InterfaceIndex);
|
|
|
|
VOID
|
|
ExternalDisableInterface(ULONG InterfaceIndex);
|
|
|
|
NET_INTERFACE_TYPE
|
|
MapIpxToNetInterfaceType(PICB icbp);
|
|
|
|
VOID
|
|
StartTracing(VOID);
|
|
|
|
VOID
|
|
Trace(ULONG ComponentID,
|
|
char *Format,
|
|
...);
|
|
|
|
VOID
|
|
StopTracing(VOID);
|
|
|
|
DWORD
|
|
RmCreateGlobalRoute(PUCHAR Network);
|
|
|
|
DWORD
|
|
RmAddLocalWkstaDialoutInterface(
|
|
IN LPWSTR InterfaceNamep,
|
|
IN LPVOID InterfaceInfop,
|
|
IN OUT PULONG InterfaceIndexp);
|
|
|
|
DWORD
|
|
RmDeleteLocalWkstaDialoutInterface(ULONG InterfaceIndex);
|
|
|
|
DWORD
|
|
RmGetIpxwanInterfaceConfig(ULONG InterfaceIndex,
|
|
PULONG IpxwanConfigRequired);
|
|
|
|
BOOL
|
|
RmIsRoute(PUCHAR Network);
|
|
|
|
DWORD
|
|
RmGetInternalNetNumber(PUCHAR Network);
|
|
|
|
DWORD
|
|
RmUpdateIpxcpConfig (PIPXCP_ROUTER_CONFIG_PARAMS pParams);
|
|
|
|
DWORD
|
|
I_SetFilters(ULONG InterfaceIndex,
|
|
ULONG FilterMode, // inbound or outbound
|
|
LPVOID FilterInfop);
|
|
|
|
DWORD
|
|
I_GetFilters(ULONG InterfaceIndex,
|
|
ULONG FilterMode,
|
|
LPVOID FilterInfop,
|
|
PULONG FilterInfoSize);
|
|
|
|
DWORD
|
|
DeleteRouteTable(VOID);
|
|
|
|
#endif
|