summaryrefslogblamecommitdiffstats
path: root/private/net/svcdlls/nwsap/server/externs.h
blob: a188bfe1bf064a47c2b01ab5742606a926e4eca6 (plain) (tree)























































































































































































































































































































































                                                                     
/*++

Copyright (c) 1994  Microsoft Corporation
Copyright (c) 1993  Micro Computer Systems, Inc.

Module Name:

    net\svcdlls\nwsap\server\externs.h

Abstract:

    These are the external variable and function prototypes for
    the NT SAP Agent.

Author:

    Brian Walker (MCS) 06-29-1993

Revision History:

--*/

/** Variables **/

extern LIST_ENTRY SapRecvList;
extern LIST_ENTRY SapFreeList;
extern LIST_ENTRY SapWanRecvList;
extern LIST_ENTRY SapWanFreeList;
extern HANDLE SapRecvSem;
extern HANDLE SapWanSem;
extern HANDLE SapSendEvent;
extern HANDLE SapWanEvent;
extern SOCKET SapSocket;
extern PSAP_CARD SapCardHead;
extern PSAP_CARD SapCardTail;
extern PSAP_SERVER SapServHead;
extern PSAP_SERVER SapServTail;
extern INT SapMaxFreeBufs;
extern INT SapNumFreeBufs;
extern INT SapCurWorkerThreads;
extern INT SapCurReceiveThreads;
extern INT SapCurBackup;
extern INT SapMaxBackup;
extern INT SapWanCurBackup;
extern INT SapWanCurFree;
extern INT SapWanMaxFree;
extern INT SapMaxCardIndex;
extern INT SapNumCards;
extern INT SapCardInitDone;
extern INT SapSendPacketsBusy;
extern INT SapAgainFlag;
extern INT SapDontHopLans;
extern INT SapAllowDuplicateServers;
extern INT SapWorkerThreadWaiting;
extern UCHAR SapNetNum[];
extern UCHAR SapNodeNum[];
extern CRITICAL_SECTION SapRecvCriticalSection;
extern CRITICAL_SECTION SapFreeCriticalSection;
extern CRITICAL_SECTION SapSendCriticalSection;
extern CRITICAL_SECTION SapSendBusyCriticalSection;
extern CRITICAL_SECTION SapThreadCountCriticalSection;
extern CRITICAL_SECTION SapLpcThreadCountCriticalSection;
extern CRITICAL_SECTION SapLpcClientCriticalSection;
extern CRITICAL_SECTION SapMemoryCriticalSection;
extern CRITICAL_SECTION SdmdCriticalSection;
extern CRITICAL_SECTION SapCardlistCriticalSection;
extern CRITICAL_SECTION SapWanRecvCriticalSection;
extern CRITICAL_SECTION SapWanFreeCriticalSection;
extern HANDLE SdmdSynchEvent;
extern ULONG SdmdLockCount;
extern ULONG SapAllocCount;
extern BOOL  SapChanged;
extern PHANDLE SapWanNotifyHandlesBuf;
extern INT SapWorkerStarting;
extern DWORD SapLastWorkerStartTime;
extern UCHAR SapZeros[];
extern ULONG SapCardlistLockCount;
extern HANDLE SapCardlistSynchEvent;
extern INT SapRecheckCount;

extern ULONG SapThreadCount;
extern HANDLE SapThreadEvent;

extern DWORD SsDebug;
extern BOOL  SsInitialized;

extern DWORD SapError;
extern DWORD SapEventId;

/** LPC Variables **/

extern HANDLE SapXsLpcPortHandle;
extern LIST_ENTRY SapLpcClientList;
extern ULONG SapNumLpcClients;

extern ULONG  SapLpcNumWorkers;
extern ULONG  SapLpcMaxWorkers;
extern HANDLE SapLpcThreadEvent;
extern SAP_FILTERHDR SapNameFilterHashTable[SAP_NAMEFILTER_HASHSIZE];
extern ULONG SapFilterCount;

/** Configurable Global Variables **/

extern INT SapMaxFreeBufs;
extern INT SapNumRecvThreads;
extern INT SapNumWorkerThreads;
extern INT SapSendMinutes;
extern INT SapNumArrayEntries;
extern INT SapTimeoutInterval;
extern INT SapMaxEverWorkerThreads;
extern INT SapNewWorkerThreshhold;
extern INT SapNewWorkerTimeout;
extern INT SapHashTableSize;
extern INT SapRespondForInternal;
extern INT SapActiveFilter;
extern ULONG SapWanFilter;
extern INT SapNumWanNotifyThreads;
extern INT SapRecheckAllCardsTime;
extern INT SapRecvDelayOnMallocFail;
extern INT SapRecvDelayOnNetError;
extern INT SapDelayRespondToGeneral;


/*****************************************************************
        Function Declarations
*****************************************************************/

/** ADVAPI.c **/

INT
SapAddAdvertiseInternal(
    IN PUCHAR ServerName,
    IN USHORT ServerType,
    IN PUCHAR ServerAddr,
    IN BOOL   RespondNearest,
    IN ULONG  ClientId);

INT
SapRemoveAdvertiseInternal(
    IN PUCHAR ServerName,
    IN USHORT ServerType);

VOID
SapClientDisconnected(
    IN ULONG ClientId);

/** BINDLIB.c **/

INT
SapGetObjectIDInternal(
    IN PUCHAR ObjectName,
    IN USHORT ObjectType,
    IN PULONG ObjectID);

INT
SapGetObjectNameInternal(
    IN ULONG   ObjectID,
    IN PUCHAR  ObjectName,
    IN PUSHORT ObjectType,
    IN PUCHAR  ObjectAddr);

INT
SapScanObjectInternal(
    IN PULONG   ObjectID,
    IN PUCHAR   ObjectName,
    IN PUSHORT  ObjectType,
    IN USHORT   ScanType);


/** DUMP.c **/

VOID
SapDumpMem(
    PUCHAR Address,
    INT    Length,
    PCHAR  Comment);

VOID
SapDumpMemToMemory(
    PUCHAR Address,
    INT    Length,
    PUCHAR Buffer);

/** FILTER.c **/

INT
SapFilterInit(
    VOID);

VOID
SapFilterShutdown(
    VOID);

INT
SapAddFilter(
    PUCHAR ServerName,
    BOOL Flag);

BOOL
SapShouldIAdvertiseByName(
    PUCHAR ServerName);

BOOL
SapShouldIAdvertiseByCard(
    PSAP_CARD Cardptr,
    BOOL EntryHasChanged);

/** NETWORK.c **/

INT
SapNetworkInit(
    VOID);

VOID
SapNetworkShutdown(
    VOID);

INT
SapSendPackets(
    INT Flag);

INT
SapSendForTypes(
    USHORT ServerType,
    PUCHAR RemoteAddress,
    INT    RemoteAddressLength,
    INT    Cardnum,
    UCHAR  Bcast,
    BOOL   WanFlag);

INT
SapSendGeneralRequest(
    INT Flag,
    PUCHAR NetNum);

USHORT
SapGetDelayTime(
    PUCHAR Netnum);

VOID
SapCleanupDownedCard(
    INT Cardnum);

VOID
SapUpdateCardNetworkNumbers(
    VOID);

/** NWSAP.c **/

INT
SapInit(
    VOID);

VOID
SapShutdown(
    VOID);

DWORD WINAPI
SapSendThread(
    LPVOID Threadparm);

INT
SapStartWorkerThread(
    VOID);

BOOL
SapCanIRespondNearest(
    PUCHAR ServerName,
    USHORT ServerType);

/** REGISTRY.c **/

INT
SapReadRegistry(
    VOID);

/** SAPDEBUG.c **/

#if DBG

VOID
SapDebugHandler(
    VOID);

PVOID
SapDebugMalloc(
    ULONG length,
    PUCHAR string);

VOID
SapDebugFree(
    PVOID ptr,
    PUCHAR string);

#endif

/** SAPLPC.c **/

DWORD
SapXsInitialize(
    VOID);

VOID
SapXsShutdown(
    VOID);

/** SSSUBS.c **/

VOID
SsAssert(
    IN PVOID FailedAssertion,
    IN PVOID FileName,
    IN ULONG LineNumber);

VOID
SsLogEvent(
    IN DWORD MessageId,
    IN DWORD NumberOfSubStrings,
    IN LPWSTR *SubStrings,
    IN DWORD ErrorCode);

VOID
SsPrintf(
    char *Format,
    ...);

/** WANCHECK.c **/

INT
SapWanInit(
    VOID);

VOID
SapWanShutdown(
    VOID);

VOID
SapRecheckAllCards(
    VOID);

VOID
SapCheckSendGeneralRequest(
    VOID);