Source code of Windows XP (NT5)
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.

134 lines
3.0 KiB

  1. /*++
  2. Copyright (c) 1989 Microsoft Corporation
  3. Module Name:
  4. RxData.h
  5. Abstract:
  6. This module declares the global data used by the RDBSS file system.
  7. Author:
  8. Joe Linn [JoeLinn] 1-aug-1994
  9. Revision History:
  10. --*/
  11. #ifndef _RDBSSDATA_
  12. #define _RDBSSDATA_
  13. //
  14. extern RX_DISPATCHER RxDispatcher;
  15. extern RX_WORK_QUEUE_DISPATCHER RxDispatcherWorkQueues;
  16. //this constants are the same as the versions in ntexapi.h
  17. // but drivers are not supposed to import that!
  18. #define RX_PROCESSOR_ARCHITECTURE_INTEL 0
  19. #define RX_PROCESSOR_ARCHITECTURE_MIPS 1
  20. #define RX_PROCESSOR_ARCHITECTURE_ALPHA 2
  21. #define RX_PROCESSOR_ARCHITECTURE_PPC 3
  22. #define RX_PROCESSOR_ARCHITECTURE_UNKNOWN 0xffff
  23. // RX_CONTEXT serialization
  24. extern KMUTEX RxSerializationMutex;
  25. #define RxAcquireSerializationMutex() \
  26. KeWaitForSingleObject(&RxSerializationMutex,Executive,KernelMode,FALSE,NULL)
  27. #define RxReleaseSerializationMutex() \
  28. KeReleaseMutex(&RxSerializationMutex,FALSE)
  29. //
  30. // The global fsd data record, and global large integer constants
  31. //
  32. extern ULONG RxElapsedSecondsSinceStart;
  33. extern NTSTATUS RxStubStatus;
  34. extern PRDBSS_DEVICE_OBJECT RxFileSystemDeviceObject;
  35. extern LARGE_INTEGER RxLargeZero;
  36. extern LARGE_INTEGER RxMaxLarge;
  37. extern LARGE_INTEGER Rx30Milliseconds;
  38. extern LARGE_INTEGER RxOneSecond;
  39. extern LARGE_INTEGER RxOneDay;
  40. extern LARGE_INTEGER RxJanOne1980;
  41. extern LARGE_INTEGER RxDecThirtyOne1979;
  42. //
  43. // The status actually returned by the FsdDispatchStub.....usually not implemented
  44. //
  45. extern NTSTATUS RxStubStatus;
  46. //
  47. // The FCB for opens that refer to the device object directly or
  48. // for file objects that reference nonFcbs (like treecons)
  49. //
  50. extern FCB RxDeviceFCB;
  51. #if 0
  52. //
  53. // Define maximum number of parallel Reads or Writes that will be generated
  54. // per one request.
  55. //
  56. #define RDBSS_MAX_IO_RUNS_ON_STACK ((ULONG) 5)
  57. //
  58. // Define the maximum number of delayed closes.
  59. //
  60. #define RDBSS_MAX_DELAYED_CLOSES ((ULONG)16)
  61. extern ULONG RxMaxDelayedCloseCount;
  62. #endif //0
  63. #if DBG
  64. //
  65. // The following variables are used to keep track of the total amount
  66. // of requests processed by the file system, and the number of requests
  67. // that end up being processed by the Fsp thread. The first variable
  68. // is incremented whenever an Irp context is created (which is always
  69. // at the start of an Fsd entry point) and the second is incremented
  70. // by read request.
  71. //
  72. extern ULONG RxFsdEntryCount;
  73. //extern ULONG RxFspEntryCount;
  74. //extern ULONG RxIoCallDriverCount;
  75. //extern ULONG RxTotalTicks[];
  76. extern ULONG RxIrpCodeCount[];
  77. #endif
  78. // The list of active RxContexts being processed by the RDBSS
  79. extern LIST_ENTRY RxSrvCalldownList;
  80. extern LIST_ENTRY RxActiveContexts;
  81. extern LONG RxNumberOfActiveFcbs;
  82. extern UNICODE_STRING s_PipeShareName;
  83. extern UNICODE_STRING s_MailSlotShareName;
  84. extern UNICODE_STRING s_MailSlotServerPrefix;
  85. extern UNICODE_STRING s_IpcShareName;
  86. extern UNICODE_STRING s_PrimaryDomainName;
  87. #endif // _RDBSSDATA_