Windows NT 4.0 source code leak
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

/*++
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