137 lines
2.7 KiB
C
137 lines
2.7 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1995 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
net\routing\ipx\sap\sapmain.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Header file for SAP DLL main module and thread container.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Vadim Eydelman 05-15-1995
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _SAP_SAPMAIN_
|
||
|
#define _SAP_SAPMAIN_
|
||
|
|
||
|
// DLL module instance handle
|
||
|
extern HANDLE hDLLInstance;
|
||
|
// Handle of main thread
|
||
|
extern HANDLE MainThreadHdl;
|
||
|
// Operational state of sap agent
|
||
|
extern ULONG OperationalState;
|
||
|
// Operational state lock to protect from external
|
||
|
// calls in bad states
|
||
|
extern CRITICAL_SECTION OperationalStateLock;
|
||
|
// Are we part of a router
|
||
|
extern volatile BOOLEAN Routing;
|
||
|
// Which external API sets are active
|
||
|
extern volatile BOOLEAN ServiceIfActive;
|
||
|
extern volatile BOOLEAN RouterIfActive;
|
||
|
// Time limit for shutdown broadcast
|
||
|
extern ULONG ShutdownTimeout;
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
GetRouteMetric (
|
||
|
IN UCHAR Network[4],
|
||
|
OUT PUSHORT Metric
|
||
|
);
|
||
|
|
||
|
#define GetServerMetric(Server,Metric) \
|
||
|
((RouterIfActive) \
|
||
|
? GetRouteMetric((Server)->Network, (Metric)) \
|
||
|
: ((*Metric=(Server)->HopCount), NO_ERROR))
|
||
|
|
||
|
|
||
|
/*++
|
||
|
*******************************************************************
|
||
|
C r e a t e A l l C o m p o n e n t s
|
||
|
Routine Description:
|
||
|
Calls all sap componenets with initialization call and compiles an
|
||
|
array of synchronization objects from objects returned from each
|
||
|
individual component
|
||
|
Arguments:
|
||
|
None
|
||
|
Return Value:
|
||
|
NO_ERROR - component initialization was performed OK
|
||
|
other - operation failed (windows error code)
|
||
|
|
||
|
*******************************************************************
|
||
|
--*/
|
||
|
DWORD
|
||
|
CreateAllComponents (
|
||
|
HANDLE RMNotificationEvent
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
/*++
|
||
|
*******************************************************************
|
||
|
D e l e t e A l l C o m p o n e n t s
|
||
|
Routine Description:
|
||
|
Releases all resources allocated by SAP agent
|
||
|
Arguments:
|
||
|
None
|
||
|
Return Value:
|
||
|
NO_ERROR - SAP agent was unloaded OK
|
||
|
other - operation failed (windows error code)
|
||
|
|
||
|
*******************************************************************
|
||
|
--*/
|
||
|
DWORD
|
||
|
DeleteAllComponents (
|
||
|
void
|
||
|
);
|
||
|
|
||
|
/*++
|
||
|
*******************************************************************
|
||
|
S t a r t S A P
|
||
|
Routine Description:
|
||
|
Starts SAP threads
|
||
|
Arguments:
|
||
|
None
|
||
|
Return Value:
|
||
|
NO_ERROR - threads started OK
|
||
|
other (windows error code) - start failed
|
||
|
*******************************************************************
|
||
|
--*/
|
||
|
DWORD
|
||
|
StartSAP (
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
/*++
|
||
|
*******************************************************************
|
||
|
S t o p S A P
|
||
|
Routine Description:
|
||
|
Signals SAP threads to stop
|
||
|
Arguments:
|
||
|
No used
|
||
|
Return Value:
|
||
|
None
|
||
|
*******************************************************************
|
||
|
--*/
|
||
|
VOID
|
||
|
StopSAP (
|
||
|
void
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
ScheduleSvcsWorkItem (
|
||
|
WORKERFUNCTION *worker
|
||
|
);
|
||
|
VOID
|
||
|
ScheduleRouterWorkItem (
|
||
|
WORKERFUNCTION *worker
|
||
|
);
|
||
|
|
||
|
#endif
|