source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/timeprov.h@ 1170

Last change on this file since 1170 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 3.5 KB
Line 
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef TIMEPROV_H
7#define TIMEPROV_H
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13#define wszW32TimeRegKeyTimeProviders L"System\\CurrentControlSet\\Services\\W32Time\\TimeProviders"
14#define wszW32TimeRegKeyPolicyTimeProviders L"Software\\Policies\\Microsoft\\W32Time\\TimeProviders"
15#define wszW32TimeRegValueEnabled L"Enabled"
16#define wszW32TimeRegValueDllName L"DllName"
17#define wszW32TimeRegValueInputProvider L"InputProvider"
18
19#define TSF_Hardware 0x00000001
20#define TSF_Authenticated 0x00000002
21
22 typedef enum TimeProvCmd {
23 TPC_TimeJumped,TPC_UpdateConfig,TPC_PollIntervalChanged,TPC_GetSamples,TPC_NetTopoChange,TPC_Query,TPC_Shutdown
24 } TimeProvCmd;
25
26 typedef enum TimeSysInfo {
27 TSI_LastSyncTime,TSI_ClockTickSize,TSI_ClockPrecision,TSI_CurrentTime,TSI_PhaseOffset,TSI_TickCount,TSI_LeapFlags,TSI_Stratum,
28 TSI_ReferenceIdentifier,TSI_PollInterval,TSI_RootDelay,TSI_RootDispersion,TSI_TSFlags
29 } TimeSysInfo;
30
31 typedef enum TimeJumpedFlags {
32 TJF_Default=0,TJF_UserRequested=1
33 } TimeJumpedFlags;
34
35 typedef enum NetTopoChangeFlags {
36 NTC_Default=0,NTC_UserRequested=1
37 } NetTopoChangeFlags;
38
39 typedef enum TimeProvState {
40 TPS_Running,TPS_Error
41 } TimeProvState;
42
43 struct SetProviderStatusInfo;
44
45 typedef void (WINAPI SetProviderStatusInfoFreeFunc)(struct SetProviderStatusInfo *pspsi);
46
47 typedef struct SetProviderStatusInfo {
48 TimeProvState tpsCurrentState;
49 DWORD dwStratum;
50 LPWSTR wszProvName;
51 HANDLE hWaitEvent;
52 SetProviderStatusInfoFreeFunc *pfnFree;
53 HRESULT *pHr;
54 DWORD *pdwSysStratum;
55 } SetProviderStatusInfo;
56
57 typedef HRESULT (WINAPI GetTimeSysInfoFunc)(TimeSysInfo eInfo,void *pvInfo);
58 typedef HRESULT (WINAPI LogTimeProvEventFunc)(WORD wType,WCHAR *wszProvName,WCHAR *wszMessage);
59 typedef HRESULT (WINAPI AlertSamplesAvailFunc)(void);
60 typedef HRESULT (WINAPI SetProviderStatusFunc)(SetProviderStatusInfo *pspsi);
61
62 typedef struct TimeProvSysCallbacks {
63 DWORD dwSize;
64 GetTimeSysInfoFunc *pfnGetTimeSysInfo;
65 LogTimeProvEventFunc *pfnLogTimeProvEvent;
66 AlertSamplesAvailFunc *pfnAlertSamplesAvail;
67 SetProviderStatusFunc *pfnSetProviderStatus;
68 } TimeProvSysCallbacks;
69
70 typedef void *TimeProvArgs;
71
72 typedef struct TimeSample {
73 DWORD dwSize;
74 DWORD dwRefid;
75 __MINGW_EXTENSION signed __int64 toOffset;
76 __MINGW_EXTENSION signed __int64 toDelay;
77 __MINGW_EXTENSION unsigned __int64 tpDispersion;
78 __MINGW_EXTENSION unsigned __int64 nSysTickCount;
79 __MINGW_EXTENSION signed __int64 nSysPhaseOffset;
80 BYTE nLeapFlags;
81 BYTE nStratum;
82 DWORD dwTSFlags;
83 WCHAR wszUniqueName[256];
84 } TimeSample;
85
86 typedef struct TpcGetSamplesArgs {
87 BYTE *pbSampleBuf;
88 DWORD cbSampleBuf;
89 DWORD dwSamplesReturned;
90 DWORD dwSamplesAvailable;
91 } TpcGetSamplesArgs;
92
93 typedef struct TpcTimeJumpedArgs {
94 TimeJumpedFlags tjfFlags;
95 } TpcTimeJumpedArgs;
96
97 typedef struct TpcNetTopoChangeArgs {
98 NetTopoChangeFlags ntcfFlags;
99 } TpcNetTopoChangeArgs;
100
101 typedef void *TimeProvHandle;
102
103 HRESULT WINAPI TimeProvOpen(WCHAR *wszName,TimeProvSysCallbacks *pSysCallbacks,TimeProvHandle *phTimeProv);
104 HRESULT WINAPI TimeProvCommand(TimeProvHandle hTimeProv,TimeProvCmd eCmd,TimeProvArgs pvArgs);
105 HRESULT WINAPI TimeProvClose(TimeProvHandle hTimeProv);
106
107#ifdef __cplusplus
108}
109#endif
110#endif
Note: See TracBrowser for help on using the repository browser.