Leaked source code of windows server 2003
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.

131 lines
2.5 KiB

  1. /*++
  2. Copyright (c) 1989 Microsoft Corporation
  3. Module Name:
  4. srvfsp.h
  5. Abstract:
  6. This module defines main FSP routines for the LAN Manager server.
  7. Author:
  8. Chuck Lenzmeier (chuckl) 1-Dec-1989
  9. Revision History:
  10. --*/
  11. #ifndef _SRVFSP_
  12. #define _SRVFSP_
  13. //#include <ntos.h>
  14. //
  15. // Configuration thread routine. Processes requests from the server
  16. // service. Runs in an EX worker thread.
  17. //
  18. VOID
  19. SrvConfigurationThread (
  20. IN PDEVICE_OBJECT pDevice,
  21. IN PIO_WORKITEM pWorkItem
  22. );
  23. //
  24. // Thread manager routines
  25. //
  26. NTSTATUS
  27. SrvInitializeScavenger (
  28. VOID
  29. );
  30. VOID
  31. SrvResourceThread (
  32. IN PVOID Parameter
  33. );
  34. VOID
  35. SrvResourceAllocThread (
  36. IN PVOID Parameter
  37. );
  38. VOID
  39. SrvTerminateScavenger (
  40. VOID
  41. );
  42. NTSTATUS
  43. SrvCreateWorkerThreads (
  44. VOID
  45. );
  46. VOID SRVFASTCALL
  47. SrvTerminateWorkerThread (
  48. IN OUT PWORK_CONTEXT SpecialWorkItem
  49. );
  50. VOID
  51. SrvBalanceLoad (
  52. IN OUT PCONNECTION connection
  53. );
  54. //
  55. // Work queue functions.
  56. //
  57. VOID SRVFASTCALL
  58. SrvQueueWorkToBlockingThread (
  59. IN OUT PWORK_CONTEXT WorkContext
  60. );
  61. NTSTATUS SRVFASTCALL
  62. SrvQueueWorkToLpcThread (
  63. IN OUT PWORK_CONTEXT WorkContext,
  64. IN BOOLEAN ThrottleRequest
  65. );
  66. VOID SRVFASTCALL
  67. SrvQueueWorkToFsp (
  68. IN OUT PWORK_CONTEXT WorkContext
  69. );
  70. //
  71. // SrvQueueWorkToFspAtDpcLevel was once a different routine than
  72. // SrvQueueWorkToFsp -- the latter routine called KeRaise/LowerIrql.
  73. // With the advent of the kernel queue object, there is no longer a
  74. // difference between the routines. The calling code has not been
  75. // changed in order to retain the knowledge about which callers can use
  76. // the optimized call if there is ever again a difference between them.
  77. //
  78. #define SrvQueueWorkToFspAtDpcLevel SrvQueueWorkToFsp
  79. #define QUEUE_WORK_TO_FSP(_work) { \
  80. (_work)->ProcessingCount++; \
  81. SrvInsertWorkQueueTail( \
  82. _work->CurrentWorkQueue, \
  83. (PQUEUEABLE_BLOCK_HEADER)(_work) \
  84. ); \
  85. }
  86. //
  87. // Routine in scavengr.c to store scavenger/alerter timeouts.
  88. //
  89. VOID
  90. SrvCaptureScavengerTimeout (
  91. IN PLARGE_INTEGER ScavengerTimeout,
  92. IN PLARGE_INTEGER AlerterTimeout
  93. );
  94. VOID
  95. SrvUpdateStatisticsFromQueues (
  96. OUT PSRV_STATISTICS CapturedSrvStatistics OPTIONAL
  97. );
  98. #endif // ndef _SRVFSP_