w32t

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: MIT Imports: 8 Imported by: 0

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

Constants

This section is empty.

Variables

View Source
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 (o *ConfigurationAdvanced) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigurationAdvanced) UnmarshalNDR

func (o *ConfigurationAdvanced) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ConfigurationBasic) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigurationBasic) UnmarshalNDR

func (o *ConfigurationBasic) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ConfigurationDefault) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigurationDefault) UnmarshalNDR

func (o *ConfigurationDefault) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ConfigurationInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigurationInfo) UnmarshalNDR

func (o *ConfigurationInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ConfigurationProvider) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ConfigurationProvider) UnmarshalNDR

func (o *ConfigurationProvider) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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.

func (*Entry) MarshalNDR

func (o *Entry) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Entry) UnmarshalNDR

func (o *Entry) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *HardwareProviderData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*HardwareProviderData) UnmarshalNDR

func (o *HardwareProviderData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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

func (o *NTPClientProviderConfigData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *NTPPeerInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*NTPPeerInfo) UnmarshalNDR

func (o *NTPPeerInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *NTPProviderData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*NTPProviderData) UnmarshalNDR

func (o *NTPProviderData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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

func (o *NTPServerProviderConfigData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ProviderConfig) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ProviderConfig) UnmarshalNDR

func (o *ProviderConfig) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ProviderConfigData) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*ProviderConfigData) NDRSwitchValue

func (o *ProviderConfigData) NDRSwitchValue(sw uint32) uint32

func (*ProviderConfigData) UnmarshalUnionNDR

func (o *ProviderConfigData) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

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

func (o *ProviderConfigData_NTPClient) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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

func (o *ProviderConfigData_NTPServer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ProviderData) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*ProviderData) NDRSwitchValue

func (o *ProviderData) NDRSwitchValue(sw uint32) uint32

func (*ProviderData) UnmarshalUnionNDR

func (o *ProviderData) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

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 (o *ProviderData_Hardware) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ProviderData_Hardware) UnmarshalNDR

func (o *ProviderData_Hardware) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ProviderData_NTP) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ProviderData_NTP) UnmarshalNDR

func (o *ProviderData_NTP) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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 (o *ProviderInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ProviderInfo) UnmarshalNDR

func (o *ProviderInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

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.

func (*StatusInfo) MarshalNDR

func (o *StatusInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*StatusInfo) UnmarshalNDR

func (o *StatusInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

Directories

Path Synopsis
w32time
v4

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL