114 lines
2.6 KiB
C
114 lines
2.6 KiB
C
/*++
|
|
|
|
Copyright (c) 1989 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
recursvc.h
|
|
|
|
Abstract:
|
|
|
|
|
|
|
|
Author:
|
|
|
|
Balan Sethu Raman [SethuR] 7-March-1995
|
|
|
|
Revision History:
|
|
|
|
|
|
Notes:
|
|
|
|
Refer to recursvc.c
|
|
|
|
--*/
|
|
|
|
#ifndef _RECURSVC_H_
|
|
#define _RECURSVC_H_
|
|
|
|
extern NTSTATUS
|
|
MRxSmbInitializeRecurrentServices();
|
|
|
|
extern VOID
|
|
MRxSmbTearDownRecurrentServices();
|
|
|
|
|
|
#define RECURRENT_SERVICE_CANCELLED (0xcccccccc)
|
|
#define RECURRENT_SERVICE_ACTIVE (0xaaaaaaaa)
|
|
#define RECURRENT_SERVICE_DORMANT (0xdddddddd)
|
|
#define RECURRENT_SERVICE_SHUTDOWN (0xffffffff)
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(NTAPI *PRECURRENT_SERVICE_ROUTINE) (
|
|
IN PVOID Context
|
|
);
|
|
|
|
typedef struct _RECURRENT_SERVICE_CONTEXT_ {
|
|
LONG State;
|
|
NTSTATUS Status;
|
|
LARGE_INTEGER Interval;
|
|
RX_WORK_ITEM WorkItem;
|
|
KEVENT CancelCompletionEvent;
|
|
PRECURRENT_SERVICE_ROUTINE pServiceRoutine;
|
|
PVOID pServiceRoutineParameter;
|
|
} RECURRENT_SERVICE_CONTEXT, *PRECURRENT_SERVICE_CONTEXT;
|
|
|
|
extern VOID
|
|
MRxSmbInitializeRecurrentService(
|
|
PRECURRENT_SERVICE_CONTEXT pRecurrentServiceContext,
|
|
PRECURRENT_SERVICE_ROUTINE pServiceRoutine,
|
|
PVOID pServiceRoutineParameter,
|
|
PLARGE_INTEGER pTimeInterval);
|
|
|
|
extern VOID
|
|
MRxSmbCancelRecurrentService(
|
|
PRECURRENT_SERVICE_CONTEXT pRecurrentServiceContext);
|
|
|
|
extern NTSTATUS
|
|
MRxSmbActivateRecurrentService(
|
|
PRECURRENT_SERVICE_CONTEXT pRecurrentServiceContext);
|
|
|
|
typedef struct _MRXSMB_ECHO_PROBE_SERVICE_CONTEXT_ {
|
|
RECURRENT_SERVICE_CONTEXT RecurrentServiceContext;
|
|
|
|
PVOID pEchoSmb;
|
|
ULONG EchoSmbLength;
|
|
} MRXSMB_ECHO_PROBE_SERVICE_CONTEXT, *PMRXSMB_ECHO_PROBE_SERVICE_CONTEXT;
|
|
|
|
extern MRXSMB_ECHO_PROBE_SERVICE_CONTEXT MRxSmbEchoProbeServiceContext;
|
|
|
|
extern NTSTATUS
|
|
SmbCeProbeServers(
|
|
PVOID pContext);
|
|
|
|
extern NTSTATUS
|
|
MRxSmbInitializeEchoProbeService(
|
|
PMRXSMB_ECHO_PROBE_SERVICE_CONTEXT pEchoProcessingContext);
|
|
|
|
extern VOID
|
|
MRxSmbTearDownEchoProbeService(
|
|
PMRXSMB_ECHO_PROBE_SERVICE_CONTEXT pEchoProcessingContext);
|
|
|
|
typedef struct _MRXSMB_SCAVENGER_SERVICE_CONTEXT_ {
|
|
RECURRENT_SERVICE_CONTEXT RecurrentServiceContext;
|
|
|
|
SMBCE_V_NET_ROOT_CONTEXTS VNetRootContexts;
|
|
} MRXSMB_SCAVENGER_SERVICE_CONTEXT, *PMRXSMB_SCAVENGER_SERVICE_CONTEXT;
|
|
|
|
extern MRXSMB_SCAVENGER_SERVICE_CONTEXT MRxSmbScavengerServiceContext;
|
|
|
|
extern NTSTATUS
|
|
MRxSmbInitializeScavengerService(
|
|
PMRXSMB_SCAVENGER_SERVICE_CONTEXT pScavengerServiceContext);
|
|
|
|
extern VOID
|
|
MRxSmbTearDownScavengerService(
|
|
PMRXSMB_SCAVENGER_SERVICE_CONTEXT pScavengerServiceContext);
|
|
|
|
extern NTSTATUS
|
|
SmbCeScavenger(
|
|
PVOID pContext);
|
|
|
|
#endif
|