mirror of https://github.com/lianthony/NT4.0
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.
161 lines
4.7 KiB
161 lines
4.7 KiB
/*++
|
|
|
|
Copyright (c) 1987-1993 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
rpldata.h
|
|
|
|
Abstract:
|
|
|
|
Remote initial Program Load service global variables (external &
|
|
definitions).
|
|
|
|
Provides similar functionality to rplglob.c & rmapext.h in LANMAN 2.1 code.
|
|
|
|
Author:
|
|
|
|
Vladimir Z. Vulovic 27 - July - 1993
|
|
|
|
Environment:
|
|
|
|
User mode
|
|
|
|
Revision History :
|
|
|
|
--*/
|
|
|
|
//
|
|
// rplmain.c will #include this file with RPLDATA_ALLOCATE defined.
|
|
// That will cause each of these variables to be allocated.
|
|
//
|
|
#ifdef RPLDATA_ALLOCATE
|
|
#define EXTERN
|
|
#define INIT( _x) = _x
|
|
#else
|
|
#define EXTERN extern
|
|
#define INIT( _x)
|
|
#endif
|
|
|
|
#ifdef RPL_DEBUG
|
|
EXTERN DWORD RG_Debug;
|
|
EXTERN DWORD RG_BootCount;
|
|
#endif // RPL_DEBUG
|
|
|
|
|
|
EXTERN DWORD RG_Error;
|
|
EXTERN DWORD RG_Null INIT( 0); // used in bbcfile for empty entries in string tables
|
|
|
|
//
|
|
// Synchronization Object for RPL server code
|
|
//
|
|
|
|
EXTERN CRITICAL_SECTION RG_ProtectRcbList;
|
|
EXTERN CRITICAL_SECTION RG_ProtectServerHandle;
|
|
EXTERN CRITICAL_SECTION RG_ProtectCurrentStatus; // service status
|
|
|
|
|
|
EXTERN DWORD RG_ServerHandle; // service handle returned to client
|
|
EXTERN DWORD RG_AdapterPolicy; // whether to log AdapterName-s of unknown clients
|
|
EXTERN DWORD RG_BackupInterval; // how often to do database backup (in hours)
|
|
EXTERN RPL_SESSION RG_RequestSession; // jet handles for request threads
|
|
EXTERN RPL_SESSION RG_WorkerSession; // jet handles for worker threads
|
|
EXTERN RPL_SESSION RG_ApiSession; // jet handles for api threads
|
|
EXTERN BOOL RG_DetachDatabase; // do we need to detach jet database
|
|
EXTERN PCHAR RG_Mdb; // points to rplsvc.mdb
|
|
EXTERN PCHAR RG_BackupPath; // points to database backup path
|
|
EXTERN JET_INSTANCE RG_Instance;
|
|
EXTERN BOOL RG_InstanceAllocated;
|
|
EXTERN CRITICAL_SECTION RG_ProtectRequestSession;
|
|
EXTERN CRITICAL_SECTION RG_ProtectWorkerSession;
|
|
EXTERN CRITICAL_SECTION RG_ProtectDatabase; // used for ApiSession also
|
|
|
|
|
|
EXTERN HANDLE RG_TerminateNowEvent;
|
|
|
|
//
|
|
// Other globals of the actual ripl server code:
|
|
//
|
|
|
|
EXTERN SERVICE_STATUS RG_ServiceStatus;
|
|
EXTERN SERVICE_STATUS_HANDLE RG_ServiceStatusHandle;
|
|
EXTERN SC_HANDLE RG_ServiceHandle;
|
|
EXTERN DWORD RG_Tasks;
|
|
EXTERN CRITICAL_SECTION RG_ProtectServiceStatus;
|
|
|
|
EXTERN HANDLE RG_MemoryHandle; // for memory "owned" by main thread
|
|
EXTERN HANDLE RG_MessageHandle;
|
|
|
|
EXTERN PRPL_REQUEST_PARAMS RG_pRequestParams;
|
|
EXTERN CRITICAL_SECTION RG_ProtectRequestList;
|
|
|
|
|
|
EXTERN DWORD RG_MaxWorkerCount; // upper limit on number of worker threads
|
|
EXTERN DWORD RG_WorkerCount; // number of worker threads
|
|
EXTERN HANDLE RG_EventWorkerCount; // event for changes in the above
|
|
EXTERN CRITICAL_SECTION RG_ProtectWorkerCount;
|
|
|
|
EXTERN CRITICAL_SECTION RG_ProtectTerminationList;
|
|
EXTERN PTERM_LIST RG_TerminationListBase; // base of termination list
|
|
|
|
//
|
|
// The following globals are defined together with their default values.
|
|
// These values may be overriden by user in lanman.ini & command line.
|
|
//
|
|
|
|
EXTERN WCHAR RG_Directory[ MAX_PATH]; // path to rpl service disk data
|
|
EXTERN DWORD RG_DirectoryLength; // length of the above path
|
|
|
|
EXTERN BOOL RG_ReadChecksum; // status set while files chksmmed
|
|
EXTERN PBYTE RG_CodePageBuffer; // "pCodePage"
|
|
EXTERN DWORD RG_CodePageSize; // "cbCodePage"
|
|
|
|
//
|
|
// This value contains the current adapter policy and also the startup flags
|
|
//
|
|
|
|
EXTERN DWORD RG_AdapterPolicy;
|
|
|
|
//
|
|
// If we ever separate DLC-RPL server from FILE-RPL server, then
|
|
// RG_ComputerName should be a pointer to FILE-RPL server name.
|
|
//
|
|
EXTERN WCHAR RG_ComputerName[ MAX_COMPUTERNAME_LENGTH + 1];
|
|
|
|
EXTERN PWCHAR RG_UncRplfiles; // UNC name sent to rpl client
|
|
EXTERN PWCHAR RG_DiskRplfiles; // local path used in disk operations
|
|
|
|
EXTERN PWCHAR RG_DiskBinfiles; // local path to binfiles root
|
|
|
|
|
|
//
|
|
// The following group of globals should be constant and they are
|
|
// initialized only once, at load exe time (not every time at
|
|
// start service time).
|
|
//
|
|
|
|
//
|
|
// NLS patches of RPLBOOT.SYS and DLCLOADR.COM
|
|
//
|
|
|
|
EXTERN DWORD RG_MessageTable[]
|
|
#ifdef RPLDATA_ALLOCATE
|
|
= {
|
|
NERR_BadDosRetCode,
|
|
NERR_ProgNeedsExtraMem,
|
|
NERR_BadDosFunction,
|
|
NERR_RemoteBootFailed,
|
|
NERR_BadFileCheckSum,
|
|
NERR_NoRplBootSystem
|
|
}
|
|
#endif // RPLDATA_ALLOCATE
|
|
;
|
|
|
|
#define MESSAGE_TABLE_LENGTH 6 // number of entries in the array above
|
|
#define DBCS_MESSAGE_BUFFER_SIZE (MESSAGE_TABLE_LENGTH * DBCS_SINGLE_MESSAGE_BUFFER_SIZE)
|
|
|
|
EXTERN PBYTE RG_DbcsMessageBuffer INIT( NULL);
|
|
|
|
#undef EXTERN
|
|
|
|
|