Documentation ¶
Overview ¶
The w32t package implements the W32T client protocol.
Introduction ¶
The W32Time Remote Protocol is a remote procedure call (RPC) interface for controlling and monitoring a time service that implements the Network Time Protocol (NTP) Authentication Extensions [MS-SNTP].
Overview ¶
The W32Time Remote Protocol is an RPC-based protocol used for controlling and monitoring a time service that implements the Network Time Protocol (NTP) Authentication Extensions specified in [MS-SNTP].
The client side of the W32Time Remote Protocol is an application that issues method calls on the RPC interface.
The server side of the W32Time Remote Protocol provides methods for controlling and monitoring the client and server instances of the locally hosted NTP Authentication Extensions [MS-SNTP] implementation.<1>
Index ¶
- Variables
- type ConfigurationAdvanced
- type ConfigurationBasic
- type ConfigurationDefault
- type ConfigurationInfo
- type ConfigurationProvider
- type Entry
- type HardwareProviderData
- type NTPClientProviderConfigData
- type NTPPeerInfo
- type NTPProviderData
- type NTPServerProviderConfigData
- type ProviderConfig
- type ProviderConfigData
- func (o *ProviderConfigData) GetValue() any
- func (o *ProviderConfigData) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error
- func (o *ProviderConfigData) NDRSwitchValue(sw uint32) uint32
- func (o *ProviderConfigData) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error
- type ProviderConfigData_NTPClient
- type ProviderConfigData_NTPServer
- type ProviderData
- type ProviderData_Hardware
- type ProviderData_NTP
- type ProviderInfo
- type StatusInfo
Constants ¶
This section is empty.
Variables ¶
var (
// import guard
GoPackage = "w32t"
)
Functions ¶
This section is empty.
Types ¶
type ConfigurationAdvanced ¶
type ConfigurationAdvanced struct { // ulSize: The size, in bytes, of this structure. Size uint32 `idl:"name:ulSize" json:"size"` // ulFrequencyCorrectRate: The FrequencyCorrectRate element value (see section 3.2.1.1). FrequencyCorrectRate uint32 `idl:"name:ulFrequencyCorrectRate" json:"frequency_correct_rate"` // ulPollAdjustFactor: The PollAdjustFactor element value (see section 3.2.1.1). PollAdjustFactor uint32 `idl:"name:ulPollAdjustFactor" json:"poll_adjust_factor"` // ulLargePhaseOffset: An integer that indicates the threshold that determines whether // or not a time sample indicates a spike, in 100-nanosecond units. If the time difference // of the time sample is more than the value, the sample indicates a possible spike, // in which case the time service changes its state, as specified in section 2.2.7. // For more information on spike detection, see [NTP-TR9733i] and [NTP-TR9733] section // 4. LargePhaseOffset uint32 `idl:"name:ulLargePhaseOffset" json:"large_phase_offset"` // ulSpikeWatchPeriod: An integer that indicates the time interval, in seconds, that // determines how long the time service watches a spike condition. If time samples constantly // indicate spikes in this time interval, the time service becomes unsynchronized, in // which case the time service MUST change its state, as described in section 2.2.7. // For more information on spike detection, see [NTP-TR9733i] and [NTP-TR9733] section // 4.3. SpikeWatchPeriod uint32 `idl:"name:ulSpikeWatchPeriod" json:"spike_watch_period"` // ulLocalClockDispersion: An integer that indicates the local clock dispersion, in // seconds. The root dispersion is set to this value if the time service runs as a primary // server, or if the root dispersion is invalid in the received response. For details // on dispersion and root dispersion, see [RFC1305] section 3.2. LocalClockDispersion uint32 `idl:"name:ulLocalClockDispersion" json:"local_clock_dispersion"` // ulHoldPeriod: An integer that indicates the number of time samples during which // the spike detection is disabled when the time service is in the HOLD state, as specified // in section 2.2.7. For more information on the HOLD state, see [NTP-TR9733i] and [NTP-TR9733] // section 4.3. HoldPeriod uint32 `idl:"name:ulHoldPeriod" json:"hold_period"` // ulPhaseCorrectRate: The PhaseCorrectRate element value (see section 3.2.1.1). PhaseCorrectRate uint32 `idl:"name:ulPhaseCorrectRate" json:"phase_correct_rate"` // ulUpdateInterval: The UpdateInterval element value (see section 3.2.1.1). UpdateInterval uint32 `idl:"name:ulUpdateInterval" json:"update_interval"` // ulFrequencyCorrectRateFlag: An integer that indicates the source of the configuration // setting for ulFrequencyCorrectRate, as specified in section 2.2.6. FrequencyCorrectRateFlag uint32 `idl:"name:ulFrequencyCorrectRateFlag" json:"frequency_correct_rate_flag"` // ulPollAdjustFactorFlag: An integer that indicates the source of the configuration // setting for ulPollAdjustFactor, as specified in section 2.2.6. PollAdjustFactorFlag uint32 `idl:"name:ulPollAdjustFactorFlag" json:"poll_adjust_factor_flag"` // ulLargePhaseOffsetFlag: An integer that indicates the source of the configuration // setting for ulLargePhaseOffset, as specified in section 2.2.6. LargePhaseOffsetFlag uint32 `idl:"name:ulLargePhaseOffsetFlag" json:"large_phase_offset_flag"` // ulSpikeWatchPeriodFlag: An integer that indicates the source of the configuration // setting for ulSpikeWatchPeriod, as specified in section 2.2.6. SpikeWatchPeriodFlag uint32 `idl:"name:ulSpikeWatchPeriodFlag" json:"spike_watch_period_flag"` // ulLocalClockDispersionFlag: An integer that indicates the source of the configuration // setting for ulLocalClockDispersion, as specified in section 2.2.6. LocalClockDispersionFlag uint32 `idl:"name:ulLocalClockDispersionFlag" json:"local_clock_dispersion_flag"` // ulHoldPeriodFlag: An integer that indicates the source of the configuration setting // for ulHoldPeriod, as specified in section 2.2.6. HoldPeriodFlag uint32 `idl:"name:ulHoldPeriodFlag" json:"hold_period_flag"` // ulPhaseCorrectRateFlag: An integer that indicates the source of the configuration // setting for ulPhaseCorrectRate, as specified in section 2.2.6. PhaseCorrectRateFlag uint32 `idl:"name:ulPhaseCorrectRateFlag" json:"phase_correct_rate_flag"` // ulUpdateIntervalFlag: An integer that indicates the source of the configuration // setting for ulUpdateInterval, as specified in section 2.2.6. UpdateIntervalFlag uint32 `idl:"name:ulUpdateIntervalFlag" json:"update_interval_flag"` }
ConfigurationAdvanced structure represents W32TIME_CONFIGURATION_ADVANCED RPC structure.
The W32TIME_CONFIGURATION_ADVANCED structure defines the advanced configuration data of the time service.<13>
The structure is defined to match the advanced configuration of the W32Time implementation. Fields in the structure that are not valid in other implementations SHOULD have their corresponding configuration-setting type fields set to W32TIME_CONFIGURATION_SETTING_UNDEFINED. For more information on W32Time, see [WTSREF].
func (*ConfigurationAdvanced) MarshalNDR ¶
func (*ConfigurationAdvanced) UnmarshalNDR ¶
type ConfigurationBasic ¶
type ConfigurationBasic struct { // ulSize: The size, in bytes, of this structure. Size uint32 `idl:"name:ulSize" json:"size"` // ulEventLogFlags: The EventLogFlags element value (see section 3.2.1.1). EventLogFlags uint32 `idl:"name:ulEventLogFlags" json:"event_log_flags"` // ulAnnounceFlags: An integer that indicates the combination of flags that determines // how the time service advertises itself as a time server. The value MUST be a bitwise // OR of zero or more of the following flags. // // +--------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +--------------------------------------------+----------------------------------------------------------------------------------+ // +--------------------------------------------+----------------------------------------------------------------------------------+ // | Timeserv_Announce_No 0x00000000 | Not a time server. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | Timeserv_Announce_Yes 0x00000001 | Always advertised as a time server. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | Timeserv_Announce_Auto 0x00000002 | Advertising as a time server is decided automatically: only when the server is | // | | synchronized. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | Reliable_Timeserv_Announce_Yes 0x00000004 | Always advertised as a reliable time server. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | Reliable_Timeserv_Announce_Auto 0x00000008 | Advertising as a time server is decided automatically: only when the server is | // | | synchronized and is a reliable time server. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // // All other values are reserved for future use. AnnounceFlags uint32 `idl:"name:ulAnnounceFlags" json:"announce_flags"` // ulTimeJumpAuditOffset: The TimeJumpAuditOffset element value (see section 3.2.1.1). TimeJumpAuditOffset uint32 `idl:"name:ulTimeJumpAuditOffset" json:"time_jump_audit_offset"` // ulMinPollInterval: An integer that indicates the minimum poll interval of domain // time synchronization, expressed as specified in [RFC1305] section 3.2.7, using units // of seconds given as exponents to a power of two. MinPollInterval uint32 `idl:"name:ulMinPollInterval" json:"min_poll_interval"` // ulMaxPollInterval: An integer that indicates the maximum poll interval of domain // time synchronization, expressed as specified in [RFC1305] section 3.2.7, using units // of seconds given as exponents to a power of two. MaxPollInterval uint32 `idl:"name:ulMaxPollInterval" json:"max_poll_interval"` // ulMaxNegPhaseCorrection: The MaxNegPhaseCorrection element value (see section 3.2.1.1). MaxNegPhaseCorrection uint32 `idl:"name:ulMaxNegPhaseCorrection" json:"max_neg_phase_correction"` // ulMaxPosPhaseCorrection: The MaxPosPhaseCorrection element value (see section 3.2.1.1). MaxPosPhaseCorrection uint32 `idl:"name:ulMaxPosPhaseCorrection" json:"max_pos_phase_correction"` // ulMaxAllowedPhaseOffset: The MaxAllowedPhaseOffset element value (see section 3.2.1.1). MaxAllowedPhaseOffset uint32 `idl:"name:ulMaxAllowedPhaseOffset" json:"max_allowed_phase_offset"` // ulEventLogFlagsFlag: An integer that indicates the source of the configuration setting // for ulEventLogFlags, as specified in section 2.2.6. EventLogFlagsFlag uint32 `idl:"name:ulEventLogFlagsFlag" json:"event_log_flags_flag"` // ulAnnounceFlagsFlag: An integer that indicates the source of the configuration setting // for ulAnnounceFlags, as specified in section 2.2.6. AnnounceFlagsFlag uint32 `idl:"name:ulAnnounceFlagsFlag" json:"announce_flags_flag"` // ulTimeJumpAuditOffsetFlag: An integer that indicates the source of the configuration // setting for ulTimeJumpAuditOffset, as specified in section 2.2.6. TimeJumpAuditOffsetFlag uint32 `idl:"name:ulTimeJumpAuditOffsetFlag" json:"time_jump_audit_offset_flag"` // ulMinPollIntervalFlag: An integer that indicates the source of the configuration // setting for ulMinPollInterval, as specified in section 2.2.6. MinPollIntervalFlag uint32 `idl:"name:ulMinPollIntervalFlag" json:"min_poll_interval_flag"` // ulMaxPollIntervalFlag: An integer that indicates the source of the configuration // setting for ulMaxPollInterval, as specified in section 2.2.6. MaxPollIntervalFlag uint32 `idl:"name:ulMaxPollIntervalFlag" json:"max_poll_interval_flag"` // ulMaxNegPhaseCorrectionFlag: An integer that indicates the source of the configuration // setting for ulMaxNegPhaseCorrection, as specified in section 2.2.6. MaxNegPhaseCorrectionFlag uint32 `idl:"name:ulMaxNegPhaseCorrectionFlag" json:"max_neg_phase_correction_flag"` // ulMaxPosPhaseCorrectionFlag: An integer that indicates the source of the configuration // setting for ulMaxPosPhaseCorrection, as specified in section 2.2.6. MaxPosPhaseCorrectionFlag uint32 `idl:"name:ulMaxPosPhaseCorrectionFlag" json:"max_pos_phase_correction_flag"` // ulMaxAllowedPhaseOffsetFlag: An integer that indicates the source of the configuration // setting for ulMaxAllowedPhaseOffset, as specified in section 2.2.6. MaxAllowedPhaseOffsetFlag uint32 `idl:"name:ulMaxAllowedPhaseOffsetFlag" json:"max_allowed_phase_offset_flag"` }
ConfigurationBasic structure represents W32TIME_CONFIGURATION_BASIC RPC structure.
The W32TIME_CONFIGURATION_BASIC structure defines the basic configuration data of the time service.
The structure is defined to match the basic configuration of the W32Time implementation, as described in [WTSREF]. Fields in the structure that are not valid in other implementations SHOULD have their corresponding configuration-setting type fields set to W32TIME_CONFIGURATION_SETTING_UNDEFINED.<12>
func (*ConfigurationBasic) MarshalNDR ¶
func (*ConfigurationBasic) UnmarshalNDR ¶
type ConfigurationDefault ¶
type ConfigurationDefault struct { // ulSize: The size, in bytes, of this structure. Size uint32 `idl:"name:ulSize" json:"size"` // wszFileLogName: The FileLogName element value (see section 3.2.1.1). FileLogName string `idl:"name:wszFileLogName;string;pointer:unique" json:"file_log_name"` // wszFileLogEntries: The FileLogEntries element value (see section 3.2.1.1). FileLogEntries string `idl:"name:wszFileLogEntries;string;pointer:unique" json:"file_log_entries"` // ulFileLogSize: The FileLogSize element value (see section 3.2.1.1). FileLogSize uint32 `idl:"name:ulFileLogSize" json:"file_log_size"` // ulFileLogFlags: The FileLogFlags element value (see section 3.2.1.1). FileLogFlags uint32 `idl:"name:ulFileLogFlags" json:"file_log_flags"` // ulFileLogNameFlag: An integer that indicates the source of the configuration setting // for wszFileLogName, as specified in section 2.2.6. FileLogNameFlag uint32 `idl:"name:ulFileLogNameFlag" json:"file_log_name_flag"` // ulFileLogEntriesFlag: An integer that indicates the source of the configuration // setting for wszFileLogEntries, as specified in section 2.2.6. FileLogEntriesFlag uint32 `idl:"name:ulFileLogEntriesFlag" json:"file_log_entries_flag"` // ulFileLogSizeFlag: An integer that indicates the source of the configuration setting // for ulFileLogSize, as specified in section 2.2.6. FileLogSizeFlag uint32 `idl:"name:ulFileLogSizeFlag" json:"file_log_size_flag"` // ulFileLogFlagsFlag: An integer that indicates the source of the configuration setting // for ulFileLogFlags, as specified in section 2.2.6. FileLogFlagsFlag uint32 `idl:"name:ulFileLogFlagsFlag" json:"file_log_flags_flag"` }
ConfigurationDefault structure represents W32TIME_CONFIGURATION_DEFAULT RPC structure.
The W32TIME_CONFIGURATION_DEFAULT structure defines the default configuration data of the time service as described in [WTSREF].
The structure is defined to match the default configuration of the W32Time implementation. Fields in the structure that are not valid in other implementations SHOULD have their corresponding configuration-setting type fields set to W32TIME_CONFIGURATION_SETTING_UNDEFINED.<14>
func (*ConfigurationDefault) MarshalNDR ¶
func (*ConfigurationDefault) UnmarshalNDR ¶
type ConfigurationInfo ¶
type ConfigurationInfo struct { // ulSize: The size, in bytes, of this structure. Size uint32 `idl:"name:ulSize" json:"size"` // basicConfig: The W32TIME_CONFIGURATION_BASIC structure that represents the basic // time service configuration data. BasicConfig *ConfigurationBasic `idl:"name:basicConfig" json:"basic_config"` // advancedConfig: The W32TIME_CONFIGURATION_ADVANCED structure that represents the // advanced time service configuration data. AdvancedConfig *ConfigurationAdvanced `idl:"name:advancedConfig" json:"advanced_config"` // defaultConfig: The W32TIME_CONFIGURATION_DEFAULT structure that represents the default // time service configuration data. DefaultConfig *ConfigurationDefault `idl:"name:defaultConfig" json:"default_config"` // cProviderConfig: The number of time providers that are configured in the time service. // This value also indicates the number of structures in pProviderConfig. ProviderConfigCount uint32 `idl:"name:cProviderConfig" json:"provider_config_count"` // pProviderConfig: An array of W32TIME_CONFIGURATION_PROVIDER structures that represent // the configuration data of time providers that are configured in the time service. ProviderConfig []*ConfigurationProvider `idl:"name:pProviderConfig;size_is:(cProviderConfig)" json:"provider_config"` // cEntries: An integer that indicates the number of additional configuration entries // in pEntries. EntriesCount uint32 `idl:"name:cEntries" json:"entries_count"` // pEntries: A pointer to W32TIME_ENTRY structures that represent additional configuration // entries. Entries []*Entry `idl:"name:pEntries;size_is:(cEntries)" json:"entries"` }
ConfigurationInfo structure represents W32TIME_CONFIGURATION_INFO RPC structure.
The W32TIME_CONFIGURATION_INFO structure defines the configuration data of the time service.
func (*ConfigurationInfo) MarshalNDR ¶
func (*ConfigurationInfo) UnmarshalNDR ¶
type ConfigurationProvider ¶
type ConfigurationProvider struct { // ulSize: The size, in bytes, of this structure. Size uint32 `idl:"name:ulSize" json:"size"` // ulInputProvider: An integer that indicates whether the provider is capable of retrieving // time samples. // // +-------+------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +-------+------------------------------------------------------------------------+ // +-------+------------------------------------------------------------------------+ // | 0 | Indicates that the provider is not capable of retrieving time samples. | // +-------+------------------------------------------------------------------------+ // | 1 | Indicates that the provider is capable of retrieving time samples. | // +-------+------------------------------------------------------------------------+ InputProvider uint32 `idl:"name:ulInputProvider" json:"input_provider"` // ulEnabled: An integer that indicates whether or not the provider is enabled. // // +-------+------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +-------+------------------------------------------+ // +-------+------------------------------------------+ // | 0 | Indicates that the provider is disabled. | // +-------+------------------------------------------+ // | 1 | Indicates that the provider is enabled. | // +-------+------------------------------------------+ Enabled uint32 `idl:"name:ulEnabled" json:"enabled"` // wszDllName: The ProviderDllName element value (see section 3.2.1.2). DLLName string `idl:"name:wszDllName;string;pointer:unique" json:"dll_name"` // wszProviderName: The ProviderName element value (see section 3.2.1.2) ProviderName string `idl:"name:wszProviderName;string;pointer:unique" json:"provider_name"` // ulDllNameFlag: An integer indicating the source of the configuration setting for // wszDllName, as specified in section 2.2.6. DLLNameFlag uint32 `idl:"name:ulDllNameFlag" json:"dll_name_flag"` // ulProviderNameFlag: An integer indicating the source of the configuration setting // for wszProviderName, as specified in section 2.2.6. ProviderNameFlag uint32 `idl:"name:ulProviderNameFlag" json:"provider_name_flag"` // ulInputProviderFlag: An integer indicating the source of the configuration setting // for ulInputProvider, as specified in section 2.2.6. InputProviderFlag uint32 `idl:"name:ulInputProviderFlag" json:"input_provider_flag"` // ulEnabledFlag: An integer indicating the source of the configuration setting for // ulEnabled, as specified in section 2.2.6. EnabledFlag uint32 `idl:"name:ulEnabledFlag" json:"enabled_flag"` // pProviderConfig: A pointer to the W32TIME_PROVIDER_CONFIG structure. ProviderConfig *ProviderConfig `idl:"name:pProviderConfig" json:"provider_config"` }
ConfigurationProvider structure represents W32TIME_CONFIGURATION_PROVIDER RPC structure.
The W32TIME_CONFIGURATION_PROVIDER structure defines the configuration data of an NTP time provider.
func (*ConfigurationProvider) MarshalNDR ¶
func (*ConfigurationProvider) UnmarshalNDR ¶
type Entry ¶
type Entry struct { // ulSize: The size, in bytes, of this structure. Size uint32 `idl:"name:ulSize" json:"size"` // wszName: A null-terminated string that indicates the name of the entry. Name string `idl:"name:wszName;string;pointer:unique" json:"name"` // wszValue: A null-terminated string that indicates the value of the entry. Value string `idl:"name:wszValue;string;pointer:unique" json:"value"` // wszHelp: A null-terminated string that indicates the display text of the entry. Help string `idl:"name:wszHelp;string;pointer:unique" json:"help"` }
Entry structure represents W32TIME_ENTRY RPC structure.
The W32TIME_ENTRY structure defines the general entry as a possible extension to other time service data structures. This structure has no current use.
type HardwareProviderData ¶
type HardwareProviderData struct { // ulSize: The size, in bytes, of this structure. Size uint32 `idl:"name:ulSize" json:"size"` // ulError: The LastError element value (see section 3.2.1.2). Because the values transmitted // in this field are implementation specific, all nonzero values MUST be treated as // equivalent for the purposes of this protocol.<4> Error uint32 `idl:"name:ulError" json:"error"` // ulErrorMsgId: The LastErrorMessageId element value (see section 3.2.1.2). The values // in this field are implementation-specific. If an implementation receives a value // it does not understand, the implementation MUST ignore the value.<5> ErrorMessageID uint32 `idl:"name:ulErrorMsgId" json:"error_message_id"` // wszReferenceIdentifier: The Reference Clock Identifier that identifies the time // source for this time service, as specified in [RFC1305] Appendix A, "NTP Data Format". ReferenceID string `idl:"name:wszReferenceIdentifier;string;pointer:unique" json:"reference_id"` }
HardwareProviderData structure represents W32TIME_HARDWARE_PROVIDER_DATA RPC structure.
The W32TIME_HARDWARE_PROVIDER_DATA structure contains operational information about a hardware time provider, such as a cesium or atomic clock.
func (*HardwareProviderData) MarshalNDR ¶
func (*HardwareProviderData) UnmarshalNDR ¶
type NTPClientProviderConfigData ¶
type NTPClientProviderConfigData struct { // ulSize: The size, in bytes, of this structure. Size uint32 `idl:"name:ulSize" json:"size"` // ulAllowNonstandardModeCombinations: An integer that indicates whether mode combinations // that would result in an error action as defined in [RFC1305] Table 5 (Modes and Actions) // are allowed. // // +-------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +-------+----------------------------------------------------------------------------------+ // +-------+----------------------------------------------------------------------------------+ // | 0 | Indicates that mode combinations that would result in an error action are not | // | | allowed. | // +-------+----------------------------------------------------------------------------------+ // | 1 | Indicates that mode combinations that would result in an error action are | // | | allowed. | // +-------+----------------------------------------------------------------------------------+ AllowNonstandardModeCombinations uint32 `idl:"name:ulAllowNonstandardModeCombinations" json:"allow_nonstandard_mode_combinations"` // ulCrossSiteSyncFlags: The CrossSiteSyncFlags element value (see section 3.2.1.2.1). CrossSiteSyncFlags uint32 `idl:"name:ulCrossSiteSyncFlags" json:"cross_site_sync_flags"` // ulResolvePeerBackoffMinutes: The ResolvePeerBackoffMinutes element value (see [MS-SNTP] // section 3.1.1). ResolvePeerBackoffMinutes uint32 `idl:"name:ulResolvePeerBackoffMinutes" json:"resolve_peer_backoff_minutes"` // ulResolvePeerBackoffMaxTimes: The ResolvePeerBackoffMaxTimes element value (see // [MS-SNTP] section 3.1.1). ResolvePeerBackoffMaxTimes uint32 `idl:"name:ulResolvePeerBackoffMaxTimes" json:"resolve_peer_backoff_max_times"` // ulCompatibilityFlags: The CompatibilityFlags element value (see section 3.2.1.2.1). CompatibilityFlags uint32 `idl:"name:ulCompatibilityFlags" json:"compatibility_flags"` // ulEventLogFlags: The NTPEventLogFlags element value (see section 3.2.1.2.1). EventLogFlags uint32 `idl:"name:ulEventLogFlags" json:"event_log_flags"` // ulLargeSampleSkew: The LargeSampleSkew element value (see section 3.2.1.2.1). LargeSampleSkew uint32 `idl:"name:ulLargeSampleSkew" json:"large_sample_skew"` // ulSpecialPollInterval: An integer that indicates a special poll interval, in seconds, // for manual time synchronization. SpecialPollInterval uint32 `idl:"name:ulSpecialPollInterval" json:"special_poll_interval"` // wszType: A case-insensitive, null-terminated string that indicates the time synchronization // behavior of the time service. The string MUST have one of the allowable values listed // for the TimeSourceType Abstract Data Model variable described in [MS-SNTP] section // 3.1.1. Type string `idl:"name:wszType;string;pointer:unique" json:"type"` // wszNtpServer: A case-insensitive, null-terminated string that indicates a space-delimited // list of time sources that the time service can synchronize with. Each time source // MUST be in the following form. // // <Time Source>[,<Bitwise Flag>] // // The "Time Source" MUST be in the form of a fully qualified domain name (FQDN) or // an IP address. // // The "Bitwise Flag", if included, MUST be a bitwise OR of zero or more of the following // flags. // // +------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------------------+----------------------------------------------------------------------------------+ // +------------------------+----------------------------------------------------------------------------------+ // | SpecialInterval 0x01 | The time service uses the polling interval for this time source, as defined by | // | | the value of the ulSpecialPollInterval member. | // +------------------------+----------------------------------------------------------------------------------+ // | UseAsFallbackOnly 0x02 | The time service uses this time source only when all other time sources have | // | | failed. | // +------------------------+----------------------------------------------------------------------------------+ // | SymmetricActive 0x04 | The time service uses the symmetric active mode when communicating with this | // | | time source. | // +------------------------+----------------------------------------------------------------------------------+ // | Client 0x08 | The time service uses the client mode when communicating with this time source. | // +------------------------+----------------------------------------------------------------------------------+ // // Multiple time sources are delineated by a space. For two time sources, the following // form would be used. // // <Time Source #1>,<Bitwise Flags #1> <Time Source #2>,<Bitwise Flags #2> NTPServer string `idl:"name:wszNtpServer;string;pointer:unique" json:"ntp_server"` // ulAllowNonstandardModeCombinationsFlag: An integer that indicates the source of // the configuration setting for ulAllowNonstandardModeCombinations, as specified in // section 2.2.6. AllowNonstandardModeCombinationsFlag uint32 `idl:"name:ulAllowNonstandardModeCombinationsFlag" json:"allow_nonstandard_mode_combinations_flag"` // ulCrossSiteSyncFlagsFlag: An integer that indicates the source of the configuration // setting for ulCrossSiteSyncFlags, as specified in section 2.2.6. CrossSiteSyncFlagsFlag uint32 `idl:"name:ulCrossSiteSyncFlagsFlag" json:"cross_site_sync_flags_flag"` // ulResolvePeerBackoffMinutesFlag: An integer that indicates the source of the configuration // setting for ulResolvePeerBackoffMinutes, as specified in section 2.2.6. ResolvePeerBackoffMinutesFlag uint32 `idl:"name:ulResolvePeerBackoffMinutesFlag" json:"resolve_peer_backoff_minutes_flag"` // ulResolvePeerBackoffMaxTimesFlag: An integer that indicates the source of the configuration // setting for ulResolvePeerBackoffMaxTimes, as specified in section 2.2.6. ResolvePeerBackoffMaxTimesFlag uint32 `idl:"name:ulResolvePeerBackoffMaxTimesFlag" json:"resolve_peer_backoff_max_times_flag"` // ulCompatibilityFlagsFlag: An integer that indicates the source of the configuration // setting for ulCompatibilityFlags, as specified in section 2.2.6. CompatibilityFlagsFlag uint32 `idl:"name:ulCompatibilityFlagsFlag" json:"compatibility_flags_flag"` // ulEventLogFlagsFlag: An integer that indicates the source of the configuration setting // for ulEventLogFlags, as specified in section 2.2.6. EventLogFlagsFlag uint32 `idl:"name:ulEventLogFlagsFlag" json:"event_log_flags_flag"` // ulLargeSampleSkewFlag: An integer that indicates the source of the configuration // setting for ulLargeSampleSkew, as specified in section 2.2.6. LargeSampleSkewFlag uint32 `idl:"name:ulLargeSampleSkewFlag" json:"large_sample_skew_flag"` // ulSpecialPollIntervalFlag: An integer that indicates the source of the configuration // setting for ulSpecialPollInterval, as specified in section 2.2.6. SpecialPollIntervalFlag uint32 `idl:"name:ulSpecialPollIntervalFlag" json:"special_poll_interval_flag"` // ulTypeFlag: An integer that indicates the source of the configuration setting for // wszType, as specified in section 2.2.6. TypeFlag uint32 `idl:"name:ulTypeFlag" json:"type_flag"` // ulNtpServerFlag: An integer that indicates the source of the configuration setting // for wszNtpServer, as specified in section 2.2.6. NTPServerFlag uint32 `idl:"name:ulNtpServerFlag" json:"ntp_server_flag"` // cEntries: An integer that indicates the number of additional configuration entries // in pEntries. EntriesCount uint32 `idl:"name:cEntries" json:"entries_count"` // pEntries: A pointer to W32TIME_ENTRY structures that represent additional configuration // entries. Entries []*Entry `idl:"name:pEntries;size_is:(cEntries)" json:"entries"` }
NTPClientProviderConfigData structure represents W32TIME_NTPCLIENT_PROVIDER_CONFIG_DATA RPC structure.
The W32TIME_NTPCLIENT_PROVIDER_CONFIG_DATA structure contains configuration data about an NtpClient time provider.
The structure is defined to match the NtpClient time provider's configuration of the W32Time implementation. Fields in the structure that do not apply to other implementations SHOULD<10> have their corresponding configuration-setting type fields set to W32TIME_CONFIGURATION_SETTING_UNDEFINED.
func (*NTPClientProviderConfigData) MarshalNDR ¶
func (*NTPClientProviderConfigData) UnmarshalNDR ¶
type NTPPeerInfo ¶
type NTPPeerInfo struct { // ulSize: The size, in bytes, of this structure.<8> Size uint32 `idl:"name:ulSize" json:"size"` // ulResolveAttempts: The ResolvedAttempts element value (see section 3.2.1.3). ResolveAttempts uint32 `idl:"name:ulResolveAttempts" json:"resolve_attempts"` // u64TimeRemaining: The TimeRemaining element value (see section 3.2.1.3). TimeRemaining uint64 `idl:"name:u64TimeRemaining" json:"time_remaining"` // u64LastSuccessfulSync: The LastSuccessfulSync element value (see section 3.2.1.3). LastSuccessfulSync uint64 `idl:"name:u64LastSuccessfulSync" json:"last_successful_sync"` // ulLastSyncError: The LastSyncError element value (see section 3.2.1.3). LastSyncError uint32 `idl:"name:ulLastSyncError" json:"last_sync_error"` // ulLastSyncErrorMsgId: The LastSyncErrorMessageId element value (see section 3.2.1.3). LastSyncErrorMessageID uint32 `idl:"name:ulLastSyncErrorMsgId" json:"last_sync_error_message_id"` // ulValidDataCounter: The ValidDataCounter element value (see section 3.2.1.3). ValidDataCounter uint32 `idl:"name:ulValidDataCounter" json:"valid_data_counter"` // ulAuthTypeMsgId: The AuthenticationTypeMessageId element value (see section 3.2.1.3). AuthTypeMessageID uint32 `idl:"name:ulAuthTypeMsgId" json:"auth_type_message_id"` // wszUniqueName: The PeerName element value (see section 3.2.1.3). UniqueName string `idl:"name:wszUniqueName;string;pointer:unique" json:"unique_name"` // ulMode: This time peer's current NTP association mode, as specified in [RFC1305] // section 3.2.1, "Common Variables". Mode uint8 `idl:"name:ulMode" json:"mode"` // ulStratum: This time peer's stratum level, which indicates the distance between // this time peer and a reference source. This value is compared with other peers' stratum // levels to ensure that a machine closer to a reference source is not synchronized // to a machine that is farther away, as specified in [RFC1305] section 2.2, "Network // Configurations". Stratum uint8 `idl:"name:ulStratum" json:"stratum"` // ulReachability: An 8-bit shift register that contains this time peer's reachability, // as specified in [RFC1305] section 3.2.3, "Peer Variables". Reachability uint8 `idl:"name:ulReachability" json:"reachability"` // ulPeerPollInterval: This time peer's poll interval, expressed as specified in [RFC1305], // using units of seconds given as exponents to a power of two. For example, a value // of six indicates a minimum interval of 64 seconds. PeerPollInterval uint8 `idl:"name:ulPeerPollInterval" json:"peer_poll_interval"` // ulHostPollInterval: The interval at which the NTP service provider is polling this // time peer, expressed as specified in [RFC1305], using units of seconds given as exponents // to a power of two. For example, a value of six indicates a minimum interval of 64 // seconds. HostPollInterval uint8 `idl:"name:ulHostPollInterval" json:"host_poll_interval"` }
NTPPeerInfo structure represents W32TIME_NTP_PEER_INFO RPC structure.
The W32TIME_NTP_PEER_INFO structure defines the current state of a time peer for an NTP time provider.
func (*NTPPeerInfo) MarshalNDR ¶
func (*NTPPeerInfo) UnmarshalNDR ¶
type NTPProviderData ¶
type NTPProviderData struct { // ulSize: The size, in bytes, of this structure. Size uint32 `idl:"name:ulSize" json:"size"` // ulError: The LastError element value (see section 3.2.1.2). Because the values transmitted // in this field are implementation-specific, all nonzero values MUST be treated as // equivalent for protocol purposes.<6> Error uint32 `idl:"name:ulError" json:"error"` // ulErrorMsgId: The LastErrorMessageId element value (see section 3.2.1.2). The values // in this field are implementation-specific. If an implementation receives a value // it does not understand, the implementation MUST ignore the value.<7> ErrorMessageID uint32 `idl:"name:ulErrorMsgId" json:"error_message_id"` // cPeerInfo: The number of active time peers that synchronize with this NTP time provider. // This value also indicates the number of structures in pPeerInfo. PeerInfoCount uint32 `idl:"name:cPeerInfo" json:"peer_info_count"` // pPeerInfo: The PeerList element value (see section 3.2.1.2). A pointer to W32TIME_NTP_PEER_INFO // structures representing the time peers with which this time provider is currently // synchronizing. PeerInfo []*NTPPeerInfo `idl:"name:pPeerInfo;size_is:(cPeerInfo)" json:"peer_info"` }
NTPProviderData structure represents W32TIME_NTP_PROVIDER_DATA RPC structure.
The W32TIME_NTP_PROVIDER_DATA structure defines the state of an NTP time provider.
func (*NTPProviderData) MarshalNDR ¶
func (*NTPProviderData) UnmarshalNDR ¶
type NTPServerProviderConfigData ¶
type NTPServerProviderConfigData struct { // ulSize: The size, in bytes, of this structure. Size uint32 `idl:"name:ulSize" json:"size"` // ulAllowNonstandardModeCombinations: An integer that indicates whether or not nonstandard // mode combinations are allowed. // // +-------+---------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +-------+---------------------------------------------------------------+ // +-------+---------------------------------------------------------------+ // | 0 | Indicates that nonstandard mode combinations are not allowed. | // +-------+---------------------------------------------------------------+ // | 1 | Indicates that nonstandard mode combinations are allowed. | // +-------+---------------------------------------------------------------+ AllowNonstandardModeCombinations uint32 `idl:"name:ulAllowNonstandardModeCombinations" json:"allow_nonstandard_mode_combinations"` // ulAllowNonstandardModeCombinationsFlag: An integer that indicates the source of // the configuration setting for ulAllowNonstandardModeCombinations, as specified in // section 2.2.6. AllowNonstandardModeCombinationsFlag uint32 `idl:"name:ulAllowNonstandardModeCombinationsFlag" json:"allow_nonstandard_mode_combinations_flag"` // ulEventLogFlags: An integer that indicates the combination of flags that determines // how the time provider logs events into an event log. This MUST be the following value. // // +-----------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +-----------------------------------------+----------------------------------------------------------------------------------+ // +-----------------------------------------+----------------------------------------------------------------------------------+ // | NCELF_LogServerResponseError 0x00000008 | Log an event when the time provider fails to validate a request for | // | | authenticated time synchronization. | // +-----------------------------------------+----------------------------------------------------------------------------------+ EventLogFlags uint32 `idl:"name:ulEventLogFlags" json:"event_log_flags"` // ulEventLogFlagsFlag: An integer that indicates the source of the configuration setting // for ulEventLogFlags, as specified in section 2.2.6. EventLogFlagsFlag uint32 `idl:"name:ulEventLogFlagsFlag" json:"event_log_flags_flag"` // cEntries: An integer that indicates the number of additional configuration entries // in pEntries. EntriesCount uint32 `idl:"name:cEntries" json:"entries_count"` // pEntries: A pointer to W32TIME_ENTRY structures that represent additional configuration // entries. Entries []*Entry `idl:"name:pEntries;size_is:(cEntries)" json:"entries"` }
NTPServerProviderConfigData structure represents W32TIME_NTPSERVER_PROVIDER_CONFIG_DATA RPC structure.
The W32TIME_NTPSERVER_PROVIDER_CONFIG_DATA structure contains configuration data about an NtpServer time provider.
The structure is defined to match the NtpServer time provider's configuration of the W32Time implementation as described in [WTSREF]. Fields in the structure that do not apply to other implementations SHOULD<11> have their corresponding configuration-setting type fields set to W32TIME_CONFIGURATION_SETTING_UNDEFINED.
func (*NTPServerProviderConfigData) MarshalNDR ¶
func (*NTPServerProviderConfigData) UnmarshalNDR ¶
type ProviderConfig ¶
type ProviderConfig struct { // ulSize: The size, in bytes, of this structure. Size uint32 `idl:"name:ulSize" json:"size"` // ulProviderType: The type of time provider, which MUST be one of the following values. // // +---------------------------------------------------+-----------------------------+ // | | | // | VALUE | MEANING | // | | | // +---------------------------------------------------+-----------------------------+ // +---------------------------------------------------+-----------------------------+ // | W32TIME_NTPCLIENT_PROVIDER_CONFIG_DATA 0x00000000 | NtpClient NTP time provider | // +---------------------------------------------------+-----------------------------+ // | W32TIME_NTPSERVER_PROVIDER_CONFIG_DATA 0x00000001 | NtpServer NTP time provider | // +---------------------------------------------------+-----------------------------+ ProviderType uint32 `idl:"name:ulProviderType" json:"provider_type"` // pProviderConfigData: A W32TIME_PROVIDER_CONFIG_DATA union that contains configuration // data about the time provider. ProviderConfigData *ProviderConfigData `idl:"name:pProviderConfigData;switch_is:ulProviderType" json:"provider_config_data"` }
ProviderConfig structure represents W32TIME_PROVIDER_CONFIG RPC structure.
The W32TIME_PROVIDER_CONFIG structure defines configuration data for a selected time provider.
func (*ProviderConfig) MarshalNDR ¶
func (*ProviderConfig) UnmarshalNDR ¶
type ProviderConfigData ¶
type ProviderConfigData struct { // Types that are assignable to Value // // *ProviderConfigData_NTPClient // *ProviderConfigData_NTPServer Value is_ProviderConfigData `json:"value"` }
ProviderConfigData structure represents W32TIME_PROVIDER_CONFIG_DATA RPC union.
func (*ProviderConfigData) GetValue ¶
func (o *ProviderConfigData) GetValue() any
func (*ProviderConfigData) MarshalUnionNDR ¶
func (*ProviderConfigData) NDRSwitchValue ¶
func (o *ProviderConfigData) NDRSwitchValue(sw uint32) uint32
func (*ProviderConfigData) UnmarshalUnionNDR ¶
type ProviderConfigData_NTPClient ¶
type ProviderConfigData_NTPClient struct {
NTPClientProviderConfigData *NTPClientProviderConfigData `idl:"name:pNtpClientProviderConfigData" json:"ntp_client_provider_config_data"`
}
ProviderConfigData_NTPClient structure represents W32TIME_PROVIDER_CONFIG_DATA RPC union arm.
It has following labels: 0
func (*ProviderConfigData_NTPClient) MarshalNDR ¶
func (*ProviderConfigData_NTPClient) UnmarshalNDR ¶
type ProviderConfigData_NTPServer ¶
type ProviderConfigData_NTPServer struct {
NTPServerProviderConfigData *NTPServerProviderConfigData `idl:"name:pNtpServerProviderConfigData" json:"ntp_server_provider_config_data"`
}
ProviderConfigData_NTPServer structure represents W32TIME_PROVIDER_CONFIG_DATA RPC union arm.
It has following labels: 1
func (*ProviderConfigData_NTPServer) MarshalNDR ¶
func (*ProviderConfigData_NTPServer) UnmarshalNDR ¶
type ProviderData ¶
type ProviderData struct { // Types that are assignable to Value // // *ProviderData_NTP // *ProviderData_Hardware Value is_ProviderData `json:"value"` }
ProviderData structure represents W32TIME_PROVIDER_DATA RPC union.
func (*ProviderData) GetValue ¶
func (o *ProviderData) GetValue() any
func (*ProviderData) MarshalUnionNDR ¶
func (*ProviderData) NDRSwitchValue ¶
func (o *ProviderData) NDRSwitchValue(sw uint32) uint32
func (*ProviderData) UnmarshalUnionNDR ¶
type ProviderData_Hardware ¶
type ProviderData_Hardware struct {
HardwareProviderData *HardwareProviderData `idl:"name:pHardwareProviderData" json:"hardware_provider_data"`
}
ProviderData_Hardware structure represents W32TIME_PROVIDER_DATA RPC union arm.
It has following labels: 1
func (*ProviderData_Hardware) MarshalNDR ¶
func (*ProviderData_Hardware) UnmarshalNDR ¶
type ProviderData_NTP ¶
type ProviderData_NTP struct {
NTPProviderData *NTPProviderData `idl:"name:pNtpProviderData" json:"ntp_provider_data"`
}
ProviderData_NTP structure represents W32TIME_PROVIDER_DATA RPC union arm.
It has following labels: 0
func (*ProviderData_NTP) MarshalNDR ¶
func (*ProviderData_NTP) UnmarshalNDR ¶
type ProviderInfo ¶
type ProviderInfo struct { // ulProviderType: The type of time provider, which MUST be one of the following values. // // All other values are reserved for future use and servers SHOULD NOT send them. // // +-------+------------------------+ // | | | // | VALUE | MEANING | // | | | // +-------+------------------------+ // +-------+------------------------+ // | 0 | NTP time provider | // +-------+------------------------+ // | 1 | Hardware time provider | // +-------+------------------------+ ProviderType uint32 `idl:"name:ulProviderType" json:"provider_type"` // ProviderData: A W32TIME_PROVIDER_DATA union that contains information about the // time provider. ProviderData *ProviderData `idl:"name:ProviderData;switch_is:ulProviderType" json:"provider_data"` }
ProviderInfo structure represents W32TIME_PROVIDER_INFO RPC structure.
The W32TIME_PROVIDER_INFO structure defines information about a selected time provider (either an NTP time provider or a hardware time provider).
func (*ProviderInfo) MarshalNDR ¶
func (*ProviderInfo) UnmarshalNDR ¶
type StatusInfo ¶
type StatusInfo struct { // ulSize: The size, in bytes, of this structure. Size uint32 `idl:"name:ulSize" json:"size"` // eLeapIndicator: An integer that warns of an impending leap second in the last minute // of the current day, as specified in [RFC1305] section 3.2. LeapIndicator uint32 `idl:"name:eLeapIndicator" json:"leap_indicator"` // nStratum: An integer that indicates the stratum level of the local clock in the // time service, as specified in [RFC1305] section 3.2. Stratum uint32 `idl:"name:nStratum" json:"stratum"` // nPollInterval: An integer that indicates the poll interval of the time service, // expressed as specified in [RFC1305] section 3.2, using units of seconds given as // exponents to a power of two. PollInterval int32 `idl:"name:nPollInterval" json:"poll_interval"` // refidSource: A 32-bit code that identifies the particular reference clock of the // time source that the time service is synchronizing with, as specified in [RFC1305] // section 3.2. SourceID uint32 `idl:"name:refidSource" json:"source_id"` // qwLastSyncTicks: The LastSyncTicks element value (see section 3.2.1.1). LastSyncTicks uint64 `idl:"name:qwLastSyncTicks" json:"last_sync_ticks"` // toRootDelay: A 64-bit signed integer that indicates the total round-trip delay to // the primary time source, as specified in [RFC1305] section 3.2, in 100-nanosecond // units. ToRootDelay int64 `idl:"name:toRootDelay" json:"to_root_delay"` // tpRootDispersion: A 64-bit unsigned integer that indicates the root dispersion, // as specified in [RFC1305] section 3.2, in 100-nanosecond units. RootDispersion uint64 `idl:"name:tpRootDispersion" json:"root_dispersion"` // nClockPrecision: An integer that indicates the time resolution of the local system // clock, expressed in the same format as poll intervals that are specified in [RFC1305] // section 3.2, using units of seconds given as exponents to a power of two. ClockPrecision int32 `idl:"name:nClockPrecision" json:"clock_precision"` // wszSource: The TimeSourceIPAddress element value (see section 3.2.1.1). Source string `idl:"name:wszSource;string;pointer:unique" json:"source"` // toSysPhaseOffset: The SysPhaseOffset element value (see section 3.2.1.1). ToSystemPhaseOffset int64 `idl:"name:toSysPhaseOffset" json:"to_system_phase_offset"` // ulLcState: The CurrentState element value (see section 3.2.1.1). LCState uint32 `idl:"name:ulLcState" json:"lc_state"` // ulTSFlags: The TimeSourceFlags element value (see section 3.2.1.1). TSFlags uint32 `idl:"name:ulTSFlags" json:"ts_flags"` // ulClockRate: The ClockRate element value (see section 3.2.1.1). ClockRate uint32 `idl:"name:ulClockRate" json:"clock_rate"` // ulNetlogonServiceBits: An unsigned 32-bit integer that contains information about // the functionality that the time service provides, as specified in section 3.2.5.2. NetlogonServiceBits uint32 `idl:"name:ulNetlogonServiceBits" json:"netlogon_service_bits"` // eLastSyncResult: An integer that indicates the TimeSync_ReturnResult code, as specified // in section 3.2.5.1. LastSyncResult uint32 `idl:"name:eLastSyncResult" json:"last_sync_result"` // tpTimeLastGoodSync: The TimeLastGoodSync element value (see section 3.2.1.1). TimeLastGoodSync uint64 `idl:"name:tpTimeLastGoodSync" json:"time_last_good_sync"` // cEntries: The number of additional configuration entries in pEntries. EntriesCount uint32 `idl:"name:cEntries" json:"entries_count"` // pEntries: A pointer to W32TIME_ENTRY structures that represent additional configuration // entries. Entries []*Entry `idl:"name:pEntries;size_is:(cEntries)" json:"entries"` }
StatusInfo structure represents W32TIME_STATUS_INFO RPC structure.
The W32TIME_STATUS_INFO structure defines the current status data of the time service.