NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG

Miniport drivers use the NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG status indication to report the current timestamping configuration of the NIC hardware and miniport driver to NDIS and overlying drivers.

This status indication represents which timestamping capabilities are currently enabled or disabled. For information about the status indication driver use to report the timestamping capabilities, see NDIS_STATUS_TIMESTAMP_CAPABILITY.

Remarks

During initialization, the miniport driver should indicate the current timestamping configuration from within its MiniportInitializeEx function. The driver should:

  1. Initialize an NDIS_TIMESTAMP_CAPABILITIES structure with the current timestamping configuration. The driver sets the members of the NDIS_TIMESTAMP_CAPABILITIES structure as follows:

    • The driver uses the TimestampFlags field to indicate its current timestamping configuration. Each flag in the NDIS_TIMESTAMP_CAPABILITY_FLAGS structure should be set to TRUE if the corresponding timestamping capability is currently enabled or FALSE if it is not.

    Note

    To determine which timestamping capabilities are currently enabled or disabled, the miniport reads the current values of the timestamping related keywords *PtpHardwareTimestamp and *SoftwareTimestamp. For more on using these keywords and determining which timestamping capabilities to enable, see Standardized INF keywords for NDIS packet timestamping.

    Note

    If an implementation finds both hardware and software timestamps enabled through the keywords, then the miniport should only enable hardware timestamps and should disable software timestamps.

    • The driver should set the CrossTimestamp field to TRUE if hardware cross timestamps are enabled in the current configuration or FALSE if they are not.

    • The HardwareClockFrequencyHz field must contain the current operating frequency of the NIC’s hardware clock.

    • The Type field in the Header field should be set to NDIS_OBJECT_TYPE_DEFAULT and the Revision to NDIS_TIMESTAMP_CAPABILITIES_REVISION_1.

  2. Generate an NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG status indication by calling NdisMIndicateStatusEx to report the current configuration. The StatusBuffer field of the NDIS_STATUS_INDICATION structure should point to the initialized NDIS_TIMESTAMP_CAPABILITIES structure.

The miniport driver must generate an NDIS_STATUS_TIMESTAMP_CAPABILITY indication at least once before indicating NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG. Otherwise NDIS will reject the NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG status indication and it will not be indicated to overlying drivers.

If the miniport driver indicates a change in the NIC’s hardware timestamping capability using the NDIS_STATUS_TIMESTAMP_CAPABILITY status indication (for example, a change in the HardwareClockFrequencyHz field in the NDIS_TIMESTAMP_CAPABILITIES structure because of an underlying change in the NIC hardware), then it must also report the corresponding change in the current configuration using the NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG status indication.

The miniport driver must also generate the NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG status indication whenever it detects a change in current timestamping configuration.

Requirements

Requirement Value
Minimum supported client Windows 11
Minimum supported server Windows Server 2022
NDIS Version NDIS 6.82 and later
Header Ntddndis.h (include Ndis.h)

See also

Reporting timestamping capabilities and current configuration

Standardized INF keywords for NDIS packet timestamping

NDIS_STATUS_TIMESTAMP_CAPABILITY

NDIS_TIMESTAMP_CAPABILITIES

NDIS_TIMESTAMP_CAPABILITY_FLAGS

MiniportInitializeEx

NdisMIndicateStatusEx

NDIS_STATUS_INDICATION