Leaked source code of windows server 2003
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.
|
|
//============================================================================
// Copyright (c) 1995, Microsoft Corporation
//
// File: work.h
//
// History:
// Abolade Gbadegesin Aug-8-1995 Created.
//
// Contains structures and functions for IPRIP's work items.
//============================================================================
#ifndef _WORK_H_
#define _WORK_H_
//
// type definition of an input context
//
typedef struct _INPUT_CONTEXT {
DWORD IC_InterfaceIndex; DWORD IC_AddrIndex; SOCKADDR_IN IC_InputSource; DWORD IC_InputLength; IPRIP_PACKET IC_InputPacket;
} INPUT_CONTEXT, *PINPUT_CONTEXT;
//
// type definition of a demand-update context
//
typedef struct _UPDATE_CONTEXT {
DWORD UC_InterfaceIndex; DWORD UC_RetryCount; DWORD UC_RouteCount;
} UPDATE_CONTEXT, *PUPDATE_CONTEXT;
//
// these are the type definitions of the three functions
// that are in each update buffer's function table
//
typedef DWORD (*PSTART_BUFFER_ROUTINE)(PVOID); typedef DWORD (*PADD_ENTRY_ROUTINE)(PVOID, PRIP_IP_ROUTE); typedef DWORD (*PFINISH_BUFFER_ROUTINE)(PVOID);
//
// this is the definition of an update buffer. It includes the command
// to be put in the IPRIP packet header, the destination for the buffer,
// and the three update-buffer functions
//
typedef struct _UPDATE_BUFFER { PIF_TABLE_ENTRY UB_ITE; DWORD UB_AddrIndex; DWORD UB_Address; DWORD UB_Netmask; SOCKET UB_Socket; DWORD UB_Command; DWORD UB_Length; BYTE UB_Buffer[MAX_PACKET_SIZE]; SOCKADDR_IN UB_Destination; DWORD UB_DestAddress; DWORD UB_DestNetmask; PADD_ENTRY_ROUTINE UB_AddRoutine; PSTART_BUFFER_ROUTINE UB_StartRoutine; PFINISH_BUFFER_ROUTINE UB_FinishRoutine; } UPDATE_BUFFER, *PUPDATE_BUFFER;
VOID WorkerFunctionNetworkEvents(PVOID pContext); VOID WorkerFunctionProcessTimer(PVOID pContext); VOID WorkerFunctionProcessInput(PVOID pContext); VOID WorkerFunctionStartFullUpdate(PVOID pContext, BOOLEAN bNotUsed); VOID WorkerFunctionFinishFullUpdate(PVOID pContext, BOOLEAN bNotUsed); VOID WorkerFunctionStartTriggeredUpdate(PVOID pContext); VOID WorkerFunctionFinishTriggeredUpdate(PVOID pContext, BOOLEAN bNotUsed); VOID WorkerFunctionStartDemandUpdate(PVOID pContext); VOID WorkerFunctionFinishDemandUpdate(PVOID pContext, BOOLEAN bNotUsed); VOID WorkerFunctionProcessRtmMessage(PVOID pContext); VOID WorkerFunctionActivateInterface(PVOID pContext); VOID WorkerFunctionDeactivateInterface(PVOID pContext); VOID WorkerFunctionFinishStopProtocol(PVOID pContext); VOID WorkerFunctionMibDisplay(PVOID pContext, BOOLEAN bNotUsed);
DWORD SendRoutes( PIF_TABLE_ENTRY pIfList[], DWORD dwIfCount, DWORD dwSendMode, DWORD dwDestination, DWORD dwAddrIndex );
VOID ProcessRequest( PVOID pContext );
VOID ProcessResponse( PVOID pContext );
DWORD ProcessRtmNotification( RTM_ENTITY_HANDLE hRtmHandle, // not used
RTM_EVENT_TYPE retEventType, PVOID pvContext1, // not used
PVOID pvContext2 // not used
);
VOID CallbackFunctionProcessRtmMessage ( PVOID pContext, // not used
BOOLEAN NotUsed ); VOID CallbackFunctionProcessTimer ( PVOID pContext, // not used
BOOLEAN NotUsed ); VOID CallbackFunctionNetworkEvents ( PVOID pContext, BOOLEAN NotUsed );
DWORD BlockDeleteRoutesOnInterface ( IN HANDLE hRtmHandle, IN DWORD dwIfIndex ); #endif // _WORK_H_
|