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.

120 lines
2.2 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. SrvTerminateScavenger (
  36. VOID
  37. );
  38. NTSTATUS
  39. SrvCreateWorkerThreads (
  40. VOID
  41. );
  42. VOID SRVFASTCALL
  43. SrvTerminateWorkerThread (
  44. IN OUT PWORK_CONTEXT SpecialWorkItem
  45. );
  46. VOID
  47. SrvBalanceLoad (
  48. IN OUT PCONNECTION connection
  49. );
  50. //
  51. // Work queue functions.
  52. //
  53. VOID SRVFASTCALL
  54. SrvQueueWorkToBlockingThread (
  55. IN OUT PWORK_CONTEXT WorkContext
  56. );
  57. VOID SRVFASTCALL
  58. SrvQueueWorkToFsp (
  59. IN OUT PWORK_CONTEXT WorkContext
  60. );
  61. //
  62. // SrvQueueWorkToFspAtDpcLevel was once a different routine than
  63. // SrvQueueWorkToFsp -- the latter routine called KeRaise/LowerIrql.
  64. // With the advent of the kernel queue object, there is no longer a
  65. // difference between the routines. The calling code has not been
  66. // changed in order to retain the knowledge about which callers can use
  67. // the optimized call if there is ever again a difference between them.
  68. //
  69. #define SrvQueueWorkToFspAtDpcLevel SrvQueueWorkToFsp
  70. #define QUEUE_WORK_TO_FSP(_work) { \
  71. (_work)->ProcessingCount++; \
  72. SrvInsertWorkQueueTail( \
  73. _work->CurrentWorkQueue, \
  74. (PQUEUEABLE_BLOCK_HEADER)(_work) \
  75. ); \
  76. }
  77. //
  78. // Routine in scavengr.c to store scavenger/alerter timeouts.
  79. //
  80. VOID
  81. SrvCaptureScavengerTimeout (
  82. IN PLARGE_INTEGER ScavengerTimeout,
  83. IN PLARGE_INTEGER AlerterTimeout
  84. );
  85. VOID
  86. SrvUpdateStatisticsFromQueues (
  87. OUT PSRV_STATISTICS CapturedSrvStatistics OPTIONAL
  88. );
  89. #endif // ndef _SRVFSP_