// ntddndis.h
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;
View the official Windows Driver Kit DDI referenceNo description available.
The NDIS_TIMESTAMP_CAPABILITY_FLAGS structure represents the combined timestamping capabilities of a network interface card (NIC) and miniport driver in various contexts.
PtpV2OverUdpIPv4EventMsgReceiveHwA 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.
PtpV2OverUdpIPv4AllMsgReceiveHwA 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.
PtpV2OverUdpIPv4EventMsgTransmitHwA 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.
PtpV2OverUdpIPv4AllMsgTransmitHwA 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.
PtpV2OverUdpIPv6EventMsgReceiveHwA 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.
PtpV2OverUdpIPv6AllMsgReceiveHwA 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.
PtpV2OverUdpIPv6EventMsgTransmitHwA 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.
PtpV2OverUdpIPv6AllMsgTransmitHwA 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
AllReceiveHwA 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.
AllTransmitHwA 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.
TaggedTransmitHwA 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.
AllReceiveSwA 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.
AllTransmitSwA 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.
TaggedTransmitSwA 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.
The NDIS_TIMESTAMP_CAPABILITY_FLAGS structure is a field in the NDIS_TIMESTAMP_CAPABILITIES structure.
Reporting timestamping capabilities and current configuration
Attaching timestamps to packets