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.

113 lines
2.7 KiB

  1. /*++
  2. Copyright (c) 1989 Microsoft Corporation
  3. Module Name:
  4. recursvc.h
  5. Abstract:
  6. Author:
  7. Balan Sethu Raman [SethuR] 7-March-1995
  8. Revision History:
  9. Notes:
  10. Refer to recursvc.c
  11. --*/
  12. #ifndef _RECURSVC_H_
  13. #define _RECURSVC_H_
  14. extern NTSTATUS
  15. MRxSmbInitializeRecurrentServices();
  16. extern VOID
  17. MRxSmbTearDownRecurrentServices();
  18. #define RECURRENT_SERVICE_CANCELLED (0xcccccccc)
  19. #define RECURRENT_SERVICE_ACTIVE (0xaaaaaaaa)
  20. #define RECURRENT_SERVICE_DORMANT (0xdddddddd)
  21. #define RECURRENT_SERVICE_SHUTDOWN (0xffffffff)
  22. typedef
  23. NTSTATUS
  24. (NTAPI *PRECURRENT_SERVICE_ROUTINE) (
  25. IN PVOID Context
  26. );
  27. typedef struct _RECURRENT_SERVICE_CONTEXT_ {
  28. LONG State;
  29. NTSTATUS Status;
  30. LARGE_INTEGER Interval;
  31. RX_WORK_ITEM WorkItem;
  32. KEVENT CancelCompletionEvent;
  33. PRECURRENT_SERVICE_ROUTINE pServiceRoutine;
  34. PVOID pServiceRoutineParameter;
  35. } RECURRENT_SERVICE_CONTEXT, *PRECURRENT_SERVICE_CONTEXT;
  36. extern VOID
  37. MRxSmbInitializeRecurrentService(
  38. PRECURRENT_SERVICE_CONTEXT pRecurrentServiceContext,
  39. PRECURRENT_SERVICE_ROUTINE pServiceRoutine,
  40. PVOID pServiceRoutineParameter,
  41. PLARGE_INTEGER pTimeInterval);
  42. extern VOID
  43. MRxSmbCancelRecurrentService(
  44. PRECURRENT_SERVICE_CONTEXT pRecurrentServiceContext);
  45. extern NTSTATUS
  46. MRxSmbActivateRecurrentService(
  47. PRECURRENT_SERVICE_CONTEXT pRecurrentServiceContext);
  48. typedef struct _MRXSMB_ECHO_PROBE_SERVICE_CONTEXT_ {
  49. RECURRENT_SERVICE_CONTEXT RecurrentServiceContext;
  50. PVOID pEchoSmb;
  51. ULONG EchoSmbLength;
  52. } MRXSMB_ECHO_PROBE_SERVICE_CONTEXT, *PMRXSMB_ECHO_PROBE_SERVICE_CONTEXT;
  53. extern MRXSMB_ECHO_PROBE_SERVICE_CONTEXT MRxSmbEchoProbeServiceContext;
  54. extern NTSTATUS
  55. SmbCeProbeServers(
  56. PVOID pContext);
  57. extern NTSTATUS
  58. MRxSmbInitializeEchoProbeService(
  59. PMRXSMB_ECHO_PROBE_SERVICE_CONTEXT pEchoProcessingContext);
  60. extern VOID
  61. MRxSmbTearDownEchoProbeService(
  62. PMRXSMB_ECHO_PROBE_SERVICE_CONTEXT pEchoProcessingContext);
  63. typedef struct _MRXSMB_SCAVENGER_SERVICE_CONTEXT_ {
  64. RECURRENT_SERVICE_CONTEXT RecurrentServiceContext;
  65. SMBCE_V_NET_ROOT_CONTEXTS VNetRootContexts;
  66. } MRXSMB_SCAVENGER_SERVICE_CONTEXT, *PMRXSMB_SCAVENGER_SERVICE_CONTEXT;
  67. extern MRXSMB_SCAVENGER_SERVICE_CONTEXT MRxSmbScavengerServiceContext;
  68. extern NTSTATUS
  69. MRxSmbInitializeScavengerService(
  70. PMRXSMB_SCAVENGER_SERVICE_CONTEXT pScavengerServiceContext);
  71. extern VOID
  72. MRxSmbTearDownScavengerService(
  73. PMRXSMB_SCAVENGER_SERVICE_CONTEXT pScavengerServiceContext);
  74. extern NTSTATUS
  75. SmbCeScavenger(
  76. PVOID pContext);
  77. #endif