3.2.5.9.1 Time Provider Configuration Data Structure Generation

For a given time provider, its configuration data structure (W32TIME_CONFIGURATION_PROVIDER) is populated as follows:

  1. ulSize MUST be set with the size, in bytes, of the W32TIME_CONFIGURATION_PROVIDER structure.

  2. ulInputProvider MUST be set to 0 if the IsInputProvider data element (section 3.2.1.2) is false; otherwise, it MUST be set to 1.

  3. ulEnabled MUST be set to 0 if the IsEnabled data element (section 3.2.1.2) is false; otherwise, it MUST be set to 1.

  4. wszDllName MUST be set to the ProviderDllName data element value (section 3.2.1.2).

  5. wszProviderName MUST be set to the ProviderName data element value (section 3.2.1.2).

  6. ulDllNameFlag MUST be set to an integer indicating the type of the configuration setting for wszDllName, as specified in section 2.2.6.

  7. ulProviderNameFlag MUST be set to an integer indicating the type of the configuration setting for wszProviderName, as specified in section 2.2.6.

  8. ulInputProviderFlag MUST be set to an integer indicating the type of the configuration setting for ulInputProvider, as specified in section 2.2.6.

  9. ulEnabledFlag MUST be set to an integer indicating the type of the configuration setting for ulEnabled, as specified in section 2.2.6.

  10. pProviderConfig.ulSize MUST be set with the size, in bytes, of the W32TIME_PROVIDER_CONFIG structure.

  11. If the IsInputProvider data element (section 3.2.1.2) is true then:

    1. pProviderConfig.ulProviderType MUST be set to 0.

    2. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulSize MUST be set with the size, in bytes, of the W32TIME_NTPCLIENT_PROVIDER_CONFIG_DATA structure.

    3. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulAllowNonstandardModeCombinations MUST be set to 0 if the IsNonstandardModeCombinationsAllowed data element (section 3.2.1.2) is false; otherwise, it MUST be set to 1.

    4. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulCrossSiteSyncFlags MUST be set to the CrossSiteSyncFlags data element value (section 3.2.1.2.1).

    5. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulResolvePeerBackoffMinutes MUST be set to the ResolvePeerBackoffMinutes data element value ([MS-SNTP] section 3.1.1).

    6. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulResolvePeerBackoffMaxTimes MUST be set to the ResolvePeerBackoffMaxTimes data element value ([MS-SNTP] section 3.1.1).

    7. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulCompatibilityFlags MUST be set to the CompatibilityFlags data element value (section 3.2.1.2.1).

    8. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulEventLogFlags MUST be set to the NTPEventLogFlags data element value (section 3.2.1.2.1).

    9. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulLargeSampleSkew MUST be set to the LargeSampleSkew data element value (section 3.2.1.2.1).

    10. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulSpecialPollInterval MUST be set to the SpecialPollInterval data element value (see [MS-SNTP] section 3.1.1).

    11. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.wszType MUST be set to the TimeSourceType data element value (see [MS-SNTP] section 3.1.1).

    12. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.wszNtpServer MUST be set to the NtpServer data element value (see [MS-SNTP] section 3.1.1).

    13. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulAllowNonstandardModeCombinationsFlag SHOULD be set to an integer indicating the type of the configuration setting for ulAllowNonstandardModeCombinations, as specified in section 2.2.6.

    14. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulCrossSiteSyncFlagsFlag SHOULD be set to an integer indicating the type of the configuration setting for ulCrossSiteSyncFlags, as specified in section 2.2.6.

    15. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulResolvePeerBackoffMinutesFlag SHOULD be set to an integer indicating the type of the configuration setting for ulResolvePeerBackoffMinutes, as specified in section 2.2.6.

    16. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulResolvePeerBackoffMaxTimesFlag SHOULD be set to an integer indicating the type of the configuration setting for ulResolvePeerBackoffMaxTimes, as specified in section 2.2.6.

    17. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulCompatibilityFlagsFlag SHOULD be set to an integer indicating the type of the configuration setting for ulCompatibilityFlags, as specified in section 2.2.6.

    18. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulEventLogFlagsFlag SHOULD be set to an integer indicating the type of the configuration setting for ulEventLogFlags, as specified in section 2.2.6.

    19. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulLargeSampleSkewFlag SHOULD be set to an integer indicating the type of the configuration setting for ulLargeSampleSkew, as specified in section 2.2.6.

    20. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulSpecialPollIntervalFlag SHOULD be set to an integer indicating the type of the configuration setting for ulSpecialPollInterval, as specified in section 2.2.6.

    21. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulTypeFlag SHOULD be set to an integer indicating the type of the configuration setting for wszType, as specified in section 2.2.6.

    22. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.ulNtpServerFlag SHOULD be set to an integer indicating the type of the configuration setting for wszNtpServer, as specified in section 2.2.6.

    23. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.cEntries MUST be set to 0.

    24. pProviderConfig.pProviderConfigData.pNtpClientProviderConfigData.pEntries MUST be set to NULL.

  12. If the IsInputProvider data element (section 3.2.1.2) is false then:

    1. pProviderConfig.ulProviderType MUST be set to 1.

    2. pProviderConfig.pProviderConfigData.pNtpServerProviderConfigData.ulSize MUST be set with the size, in bytes, of the W32TIME_NTPSERVER_PROVIDER_CONFIG_DATA structure.

    3. pProviderConfig.pProviderConfigData.pNtpServerProviderConfigData.ulAllowNonstandardModeCombinations MUST be set to 0 if the IsNonstandardModeCombinationsAllowed data element (section 3.2.1.2) is false; otherwise, it MUST be set to 1.

    4. pProviderConfig.pProviderConfigData.pNtpServerProviderConfigData.ulAllowNonstandardModeCombinationsFlag SHOULD be set to an integer indicating the type of the configuration setting for ulAllowNonstandardModeCombinations, as specified in section 2.2.6.

    5. pProviderConfig.pProviderConfigData.pNtpServerProviderConfigData.ulEventLogFlags MUST be set to 0 indicating that events are logged when the time provider fails to validate a request for authenticated time synchronization.

    6. pProviderConfig.pProviderConfigData.pNtpServerProviderConfigData.ulEventLogFlagsFlag SHOULD be set to an integer indicating the type of the configuration setting for ulEventLogFlags, as specified in section 2.2.6.

    7. pProviderConfig.pProviderConfigData.pNtpServerProviderConfigData.cEntries MUST be set to 0.

    8. pProviderConfig.pProviderConfigData.pNtpServerProviderConfigData.pEntries MUST be set to NULL.