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 要求を受信すると、ドライバーは、InformationBuffer を QUERY_INFORMATION に NDIS_HARDWARE_CROSSTIMESTAMP 構造体を入力することによって OID を完了します。
ドライバーは、SystemTimestamp1、HardwareClockTimestamp SystemTimestamp2 フィールドに、可能な限り近い、次の順序でタイムスタンプを入力する必要があります。
SystemTimestamp1
HardwareClockTimestamp
SystemTimestamp2
ミニポート ドライバーとハードウェアは、高度なハードウェア機能に応じて、これらのタイムスタンプのコレクションを最適化する自由です。 ただし、SystemTimestamp1 および SystemTimestamp2 値は、キャプチャ時のパフォーマンス カウンター (QPC) 値に正確に対応している必要があります。 HardwareClockTimestamp は、キャプチャ時点での NIC のハードウェア クロック値に対応している必要があります。 特定の実装で、3 つではなく 2 つのタイムスタンプ (たとえば、1 つのシステム タイムスタンプと対応する NIC ハードウェア クロック タイムスタンプ) をより正確に決定できる場合は、SystemTimestamp2 フィールド SystemTimestamp1と同じ値に設定する必要があります。
ミニポート ドライバーは、SystemTimestamp1、HardwareClockTimestamp、または SystemTimestamp2 値を 0 に設定しないでください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 11 |
サポートされる最小サーバー | Windows Server 2022。 NDIS 6.82 以降でサポートされています。 |
ヘッダー | ntddndis.h (ndis.h を含む) |
関連項目
OID_TIMESTAMP_GET_CROSSTIMESTAMP
KeQueryPerformanceCounterの