NDIS_TIMESTAMP_CAPABILITY_FLAGS structure (ntddndis.h)

The NDIS_TIMESTAMP_CAPABILITY_FLAGS structure represents the combined timestamping capabilities of a network interface card (NIC) and miniport driver in various contexts.

Syntax

typedef struct _NDIS_TIMESTAMP_CAPABILITY_FLAGS {
  BOOLEAN PtpV2OverUdpIPv4EventMsgReceiveHw;
  BOOLEAN PtpV2OverUdpIPv4AllMsgReceiveHw;
  BOOLEAN PtpV2OverUdpIPv4EventMsgTransmitHw;
  BOOLEAN PtpV2OverUdpIPv4AllMsgTransmitHw;
  BOOLEAN PtpV2OverUdpIPv6EventMsgReceiveHw;
  BOOLEAN PtpV2OverUdpIPv6AllMsgReceiveHw;
  BOOLEAN PtpV2OverUdpIPv6EventMsgTransmitHw;
  BOOLEAN PtpV2OverUdpIPv6AllMsgTransmitHw;
  BOOLEAN AllReceiveHw;
  BOOLEAN AllTransmitHw;
  BOOLEAN TaggedTransmitHw;
  BOOLEAN AllReceiveSw;
  BOOLEAN AllTransmitSw;
  BOOLEAN TaggedTransmitSw;
} NDIS_TIMESTAMP_CAPABILITY_FLAGS, *PNDIS_TIMESTAMP_CAPABILITY_FLAGS;

Members

PtpV2OverUdpIPv4EventMsgReceiveHw

A value of TRUE indicates that during packet reception the NIC can recognize in hardware a PTP version 2 event message contained in an IPv4 UDP packet and generate a timestamp in hardware corresponding to when such a packet was received. A value of FALSE indicates the hardware is not capable of this.

PtpV2OverUdpIPv4AllMsgReceiveHw

A value of TRUE indicates that during packet reception the NIC can recognize in hardware any PTP version 2 message (not just PTP event messages) contained in an IPv4 UDP packet and generate a timestamp in hardware corresponding to when such a packet was received. A value of FALSE indicates the hardware is not capable of this.

PtpV2OverUdpIPv4EventMsgTransmitHw

A value of TRUE indicates that during packet transmission the NIC can recognize in hardware a PTP version 2 event message contained in an IPv4 UDP packet and generate a timestamp in hardware corresponding to when such a packet was transmitted. A value of FALSE indicates the hardware is not capable of this.

PtpV2OverUdpIPv4AllMsgTransmitHw

A value of TRUE indicates that during packet transmission the NIC can recognize in hardware any PTP version 2 message (not just PTP event messages) contained in an IPv4 UDP packet and generate a timestamp in hardware corresponding to when such a packet was transmitted. A value of FALSE indicates the hardware is not capable of this.

PtpV2OverUdpIPv6EventMsgReceiveHw

A value of TRUE indicates that during packet reception the NIC can recognize in hardware a PTP version 2 event message contained in an IPv6 UDP packet and generate a timestamp in hardware corresponding to when such a packet was received. A value of FALSE indicates the hardware is not capable of this.

PtpV2OverUdpIPv6AllMsgReceiveHw

A value of TRUE indicates that during packet reception the NIC can recognize in hardware any PTP version 2 message (not just PTP event messages) contained in an IPv6 UDP packet and generate a timestamp in hardware corresponding to when such a packet was received. A value of FALSE indicates the hardware is not capable of this.

PtpV2OverUdpIPv6EventMsgTransmitHw

A value of TRUE indicates that during packet transmission the NIC can recognize in hardware a PTP version 2 event message contained in an IPv6 UDP packet and generate a timestamp in hardware corresponding to when such a packet was transmitted. A value of FALSE indicates the hardware is not capable of this.

PtpV2OverUdpIPv6AllMsgTransmitHw

A value of TRUE indicates that during packet transmission the NIC can recognize in hardware any PTP version 2 message (not just PTP event messages) contained in an IPv6 UDP packet and generate a timestamp in hardware corresponding to when such a packet was transmitted. A value of FALSE indicates the hardware is not capable of this

AllReceiveHw

A value of TRUE indicates that the NIC can generate a hardware timestamp for all received packets (for example, not just PTP). A value of FALSE indicates the NIC doesn't have this capability.

AllTransmitHw

A value of TRUE indicates that the NIC can generate a hardware timestamp for all transmitted packets (for example, not just PTP). A value of FALSE indicates the NIC doesn't have this capability.

TaggedTransmitHw

A value of TRUE indicates that the NIC can generate a hardware timestamp for any specific transmitted packet when indicated to do so by the operating system. The operating system will indicate this to the miniport/hardware using a metadata field in the packet. For more details, see Attaching timestamps to packets. A value of FALSE indicates the NIC doesn't have this capability.

AllReceiveSw

A value of TRUE indicates that the miniport driver can generate a software timestamp for all received packets. The driver should generate the timestamp by calling the KeQueryPerformanceCounter API. A value of FALSE indicates the NIC doesn't have this capability.

AllTransmitSw

A value of TRUE indicates that the miniport driver can generate a software timestamp for all transmitted packets. The timestamp should be generated in software using KeQueryPerformanceCounter just before the packet is transmitted. A value of FALSE indicates the NIC doesn't have this capability.

TaggedTransmitSw

A value of TRUE indicates that the miniport driver can generate a software timestamp for any specific transmitted packet when indicated to do so by the operating system. The operating system will indicate this to the miniport using a metadata field in the packet. For more details, see Attaching timestamps to packets. The miniport driver should generate the timestamp using KeQueryPerformanceCounter just before the packet is transmitted. A value of FALSE indicates the NIC doesn't have this capability.

Remarks

The NDIS_TIMESTAMP_CAPABILITY_FLAGS structure is a field in the NDIS_TIMESTAMP_CAPABILITIES structure.

Requirements

Requirement Value
Minimum supported client Windows 11
Minimum supported server Windows Server 2022. Supported in NDIS 6.82 and later.
Header ntddndis.h (include ndis.h)

See also

NDIS_TIMESTAMP_CAPABILITIES

KeQueryPerformanceCounter

Reporting timestamping capabilities and current configuration

Attaching timestamps to packets