123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- /**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
- #ifndef TIMEPROV_H
- #define TIMEPROV_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define wszW32TimeRegKeyTimeProviders L"System\\CurrentControlSet\\Services\\W32Time\\TimeProviders"
- #define wszW32TimeRegKeyPolicyTimeProviders L"Software\\Policies\\Microsoft\\W32Time\\TimeProviders"
- #define wszW32TimeRegValueEnabled L"Enabled"
- #define wszW32TimeRegValueDllName L"DllName"
- #define wszW32TimeRegValueInputProvider L"InputProvider"
- #define TSF_Hardware 0x00000001
- #define TSF_Authenticated 0x00000002
- typedef enum TimeProvCmd {
- TPC_TimeJumped,TPC_UpdateConfig,TPC_PollIntervalChanged,TPC_GetSamples,TPC_NetTopoChange,TPC_Query,TPC_Shutdown
- } TimeProvCmd;
- typedef enum TimeSysInfo {
- TSI_LastSyncTime,TSI_ClockTickSize,TSI_ClockPrecision,TSI_CurrentTime,TSI_PhaseOffset,TSI_TickCount,TSI_LeapFlags,TSI_Stratum,
- TSI_ReferenceIdentifier,TSI_PollInterval,TSI_RootDelay,TSI_RootDispersion,TSI_TSFlags
- } TimeSysInfo;
- typedef enum TimeJumpedFlags {
- TJF_Default=0,TJF_UserRequested=1
- } TimeJumpedFlags;
- typedef enum NetTopoChangeFlags {
- NTC_Default=0,NTC_UserRequested=1
- } NetTopoChangeFlags;
- typedef enum TimeProvState {
- TPS_Running,TPS_Error
- } TimeProvState;
- struct SetProviderStatusInfo;
- typedef void (WINAPI SetProviderStatusInfoFreeFunc)(struct SetProviderStatusInfo *pspsi);
- typedef struct SetProviderStatusInfo {
- TimeProvState tpsCurrentState;
- DWORD dwStratum;
- LPWSTR wszProvName;
- HANDLE hWaitEvent;
- SetProviderStatusInfoFreeFunc *pfnFree;
- HRESULT *pHr;
- DWORD *pdwSysStratum;
- } SetProviderStatusInfo;
- typedef HRESULT (WINAPI GetTimeSysInfoFunc)(TimeSysInfo eInfo,void *pvInfo);
- typedef HRESULT (WINAPI LogTimeProvEventFunc)(WORD wType,WCHAR *wszProvName,WCHAR *wszMessage);
- typedef HRESULT (WINAPI AlertSamplesAvailFunc)(void);
- typedef HRESULT (WINAPI SetProviderStatusFunc)(SetProviderStatusInfo *pspsi);
- typedef struct TimeProvSysCallbacks {
- DWORD dwSize;
- GetTimeSysInfoFunc *pfnGetTimeSysInfo;
- LogTimeProvEventFunc *pfnLogTimeProvEvent;
- AlertSamplesAvailFunc *pfnAlertSamplesAvail;
- SetProviderStatusFunc *pfnSetProviderStatus;
- } TimeProvSysCallbacks;
- typedef void *TimeProvArgs;
- typedef struct TimeSample {
- DWORD dwSize;
- DWORD dwRefid;
- __MINGW_EXTENSION signed __int64 toOffset;
- __MINGW_EXTENSION signed __int64 toDelay;
- __MINGW_EXTENSION unsigned __int64 tpDispersion;
- __MINGW_EXTENSION unsigned __int64 nSysTickCount;
- __MINGW_EXTENSION signed __int64 nSysPhaseOffset;
- BYTE nLeapFlags;
- BYTE nStratum;
- DWORD dwTSFlags;
- WCHAR wszUniqueName[256];
- } TimeSample;
- typedef struct TpcGetSamplesArgs {
- BYTE *pbSampleBuf;
- DWORD cbSampleBuf;
- DWORD dwSamplesReturned;
- DWORD dwSamplesAvailable;
- } TpcGetSamplesArgs;
- typedef struct TpcTimeJumpedArgs {
- TimeJumpedFlags tjfFlags;
- } TpcTimeJumpedArgs;
- typedef struct TpcNetTopoChangeArgs {
- NetTopoChangeFlags ntcfFlags;
- } TpcNetTopoChangeArgs;
- typedef void *TimeProvHandle;
- HRESULT WINAPI TimeProvOpen(WCHAR *wszName,TimeProvSysCallbacks *pSysCallbacks,TimeProvHandle *phTimeProv);
- HRESULT WINAPI TimeProvCommand(TimeProvHandle hTimeProv,TimeProvCmd eCmd,TimeProvArgs pvArgs);
- HRESULT WINAPI TimeProvClose(TimeProvHandle hTimeProv);
- #ifdef __cplusplus
- }
- #endif
- #endif
|