NDIS_HARDWARE_CROSSTIMESTAMP 結構 (ntddndis.h)
NDIS_HARDWARE_CROSSTIMESTAMP結構描述 NIC 硬體時鐘與系統時鐘之間的交叉時間戳。
語法
typedef struct _NDIS_HARDWARE_CROSSTIMESTAMP {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
ULONG64 SystemTimestamp1;
ULONG64 HardwareClockTimestamp;
ULONG64 SystemTimestamp2;
} NDIS_HARDWARE_CROSSTIMESTAMP, *PNDIS_HARDWARE_CROSSTIMESTAMP;
成員
Header
描述這個NDIS_HARDWARE_CROSSTIMESTAMP結構的NDIS_OBJECT_HEADER結構。 設定 NDIS_OBJECT_HEADER 結構的成員,如下所示:
將 Type 成員設定為 NDIS_OBJECT_TYPE_DEFAULT。
將 [修訂 成員] 設定為 [NDIS_HARDWARE_CROSSTIMESTAMP_REVISION_1]。
將 Size 成員設定為 NDIS_SIZEOF_HARDWARE_CROSSTIMESTAMP_REVISION_1。
Flags
保留供未來使用。 迷你埠驅動程式不得變更此值。
SystemTimestamp1
透過呼叫 KeQueryPerformanceCounter 取得的 QPC (性能計數器值) 。
HardwareClockTimestamp
NIC 硬體時鐘的目前值。 這應該是 NIC 的原始硬體時鐘值。
SystemTimestamp2
另一個性能計數器值 (透過呼叫 KeQueryPerformanceCounter取得的QPC) 。
備註
當迷你埠驅動程式收到OID_TIMESTAMP_GET_CROSSTIMESTAMP的 OID 要求時,驅動程式會以NDIS_HARDWARE_CROSSTIMESTAMP結構填入QUERY_INFORMATION中的 InformationBuffer 來完成 OID。
驅動程式應該以盡可能接近彼此的時間戳 填入 SystemTimestamp1、 HardwareClockTimestamp 和 SystemTimestamp2 欄位,並依下列順序:
SystemTimestamp1
HardwareClockTimestamp
SystemTimestamp2
迷你埠驅動程式和硬體是免費的,可根據任何進階硬體功能來優化這些時間戳的集合。 不過,在 OID 完成時傳回 的 SystemTimestamp1 和 SystemTimestamp2 值必須正確地對應至擷取時 (QPC) 值的性能計數器。 HardwareClockTimestamp 必須對應至擷取點的 NIC 硬體時鐘值。 例如,如果特定實作可以更精確地判斷兩個時間戳,而不是三個 (,一個系統時間戳和對應的 NIC 硬體時鐘時間戳) ,則應該將 SystemTimestamp2 字段設定為與 SystemTimestamp1 相同的值。
迷你埠驅動程式不應將 SystemTimestamp1、 HardwareClockTimestamp 或 SystemTimestamp2 值設定為 零。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 11 |
最低支援的伺服器 | Windows Server 2022。 NDIS 6.82 和更新版本支援。 |
標頭 | ntddndis.h (包含 ndis.h) |