windows-nt/Source/XPSP1/NT/ds/security/protocols/kerberos/client2/timesync.h
2020-09-26 16:20:57 +08:00

61 lines
1.6 KiB
C

//+-----------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (c) Microsoft Corporation 1992 - 1997
//
// File: timesync.h
//
// Contents: Prototypes for time-sync functions
//
//
// History: 3-Nov-1997 MikeSw Created
//
//------------------------------------------------------------------------
#ifndef __TIMESYNC_H__
#define __TIMESYNC_H__
#ifdef EXTERN
#undef EXTERN
#endif
#ifdef TIMESYNC_ALLOCATE
#define EXTERN
#else
#define EXTERN extern
#endif
typedef struct _KERB_TIME_SKEW_ENTRY {
TimeStamp RequestTime;
BOOLEAN Skewed;
} KERB_TIME_SKEW_ENTRY, *PKERB_TIME_SKEW_ENTRY;
typedef struct _KERB_TIME_SKEW_STATE {
TimeStamp LastSync; // time of last sync
TimeStamp MinimumSyncLapse; // Minimum allowed time between sync requests
ULONG SkewThreshold; // number of skews to trigger sync
ULONG TotalRequests; // Number of entries to track
ULONG SkewedRequests; // number of time skew events
ULONG SuccessRequests; // number of success events
ULONG LastRequest; // index into next skew entry
LONG ActiveSyncs; // number of threads doing a sync
PKERB_TIME_SKEW_ENTRY SkewEntries; // array of skew entries
RTL_CRITICAL_SECTION Lock; // lock for skew state
} KERB_TIME_SKEW_STATE, *PKERB_TIME_SKEW_STATE;
EXTERN KERB_TIME_SKEW_ENTRY KerbSkewEntries[10];
EXTERN KERB_TIME_SKEW_STATE KerbSkewState;
VOID
KerbUpdateSkewTime(
IN BOOLEAN Skewed
);
NTSTATUS
KerbInitializeSkewState(
VOID
);
#endif // __TIMESYNC_H__