mirror of https://github.com/tongzx/nt5src
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.
117 lines
2.8 KiB
117 lines
2.8 KiB
/*++
|
|
|
|
Copyright (c) 1989 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
RxData.c
|
|
|
|
Abstract:
|
|
|
|
This module declares the global data used by the Rx file system.
|
|
|
|
Author:
|
|
|
|
JoeLinn [JoeLinn] 1-Dec-94
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#include "precomp.h"
|
|
#pragma hdrstop
|
|
#include "stdarg.h"
|
|
#include "stdio.h"
|
|
#include "string.h"
|
|
#include "prefix.h"
|
|
|
|
//
|
|
// The global fsd data record, and zero large integer
|
|
//
|
|
|
|
RX_DISPATCHER RxDispatcher;
|
|
RX_WORK_QUEUE_DISPATCHER RxDispatcherWorkQueues;
|
|
|
|
LIST_ENTRY RxSrvCalldownList;
|
|
LIST_ENTRY RxActiveContexts;
|
|
PRX_CONTEXT RxStopContext = NULL;
|
|
|
|
//
|
|
// the debugger extension needs to know the target architecture. sacrifice one ulong....
|
|
// the highorder 0xabc is just for consistency..........
|
|
|
|
ULONG RxProcessorArchitecture = 0xabc0000 |
|
|
#if defined(_X86_)
|
|
RX_PROCESSOR_ARCHITECTURE_INTEL;
|
|
#elif defined(_MIPS_)
|
|
RX_PROCESSOR_ARCHITECTURE_MIPS;
|
|
#elif defined(_ALPHA_)
|
|
RX_PROCESSOR_ARCHITECTURE_ALPHA;
|
|
#elif defined(_PPC_)
|
|
RX_PROCESSOR_ARCHITECTURE_PPC;
|
|
#else
|
|
RX_PROCESSOR_ARCHITECTURE_UNKNOWN;
|
|
#endif
|
|
|
|
#ifdef EXPLODE_POOLTAGS
|
|
ULONG RxExplodePoolTags = 1;
|
|
#else
|
|
ULONG RxExplodePoolTags = 0;
|
|
#endif
|
|
|
|
KMUTEX RxSerializationMutex;
|
|
|
|
RDBSS_DATA RxData;
|
|
RDBSS_EXPORTS RxExports;
|
|
ULONG RxElapsedSecondsSinceStart;
|
|
|
|
KSPIN_LOCK RxStrucSupSpinLock = {0}; // used to synchronize access to zones/structures
|
|
|
|
PRDBSS_DEVICE_OBJECT RxFileSystemDeviceObject;
|
|
NTSTATUS RxStubStatus = (STATUS_NOT_IMPLEMENTED);
|
|
FCB RxDeviceFCB;
|
|
|
|
LARGE_INTEGER RxLargeZero = {0,0};
|
|
LARGE_INTEGER RxMaxLarge = {MAXULONG,MAXLONG};
|
|
LARGE_INTEGER Rx30Milliseconds = {(ULONG)(-30 * 1000 * 10), -1};
|
|
LARGE_INTEGER RxOneSecond = {10000000,0};
|
|
LARGE_INTEGER RxOneDay = {0x2a69c000, 0xc9};
|
|
LARGE_INTEGER RxJanOne1980 = {0xe1d58000,0x01a8e79f};
|
|
LARGE_INTEGER RxDecThirtyOne1979 = {0xb76bc000,0x01a8e6d6};
|
|
|
|
|
|
ULONG RxFsdEntryCount = 0;
|
|
ULONG RxFspEntryCount = 0;
|
|
ULONG RxIoCallDriverCount = 0;
|
|
|
|
LONG RxPerformanceTimerLevel = 0x00000000;
|
|
|
|
ULONG RxTotalTicks[32] = { 0 };
|
|
|
|
//
|
|
// I need this because C can't support conditional compilation within
|
|
// a macro.
|
|
//
|
|
|
|
PVOID RxNull = NULL;
|
|
|
|
|
|
extern LONG RxNumberOfActiveFcbs = 0;
|
|
|
|
// Reference Tracing mask value .. Turn it on by default for DBG builds
|
|
|
|
#ifdef DBG
|
|
ULONG RdbssReferenceTracingValue = 0x8000003f;
|
|
#else
|
|
ULONG RdbssReferenceTracingValue = 0;
|
|
#endif
|
|
|
|
|
|
UNICODE_STRING s_PipeShareName = { 10, 10, L"\\PIPE" };
|
|
UNICODE_STRING s_MailSlotShareName = { 18, 18, L"\\MAILSLOT" };
|
|
UNICODE_STRING s_MailSlotServerPrefix = {8,8,L";$:\\"};
|
|
UNICODE_STRING s_IpcShareName = { 10, 10, L"\\IPC$" };
|
|
|
|
UNICODE_STRING s_PrimaryDomainName = {0,0,NULL};
|
|
|
|
|