структура NDIS_HARDWARE_CROSSTIMESTAMP (ntddndis.h)

Структура NDIS_HARDWARE_CROSSTIMESTAMP описывает перекрестную метку времени между аппаратными и системными часами сетевого адаптера.

Синтаксис

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_OBJECT_HEADER , описывающая эту NDIS_HARDWARE_CROSSTIMESTAMP структуру. Задайте элементы структуры NDIS_OBJECT_HEADER следующим образом:

  • Задайте для элемента Typeзначение NDIS_OBJECT_TYPE_DEFAULT.

  • Задайте для элемента Revisionзначение NDIS_HARDWARE_CROSSTIMESTAMP_REVISION_1.

  • Задайте для элемента Размерзначение NDIS_SIZEOF_HARDWARE_CROSSTIMESTAMP_REVISION_1.

Flags

Зарезервировано для последующего использования. Драйвер мини-порта не должен изменять это значение.

SystemTimestamp1

Значение счетчика производительности (QPC), полученное путем вызова KeQueryPerformanceCounter.

HardwareClockTimestamp

Текущее значение аппаратных часов сетевой карты. Это должно быть необработанное значение аппаратных часов сетевого адаптера.

SystemTimestamp2

Другое значение счетчика производительности (QPC), полученное путем вызова KeQueryPerformanceCounter.

Комментарии

Когда драйвер мини-порта получает запрос OID OID_TIMESTAMP_GET_CROSSTIMESTAMP, драйвер завершает OID, заполняя InformationBuffer в QUERY_INFORMATIONструктурой NDIS_HARDWARE_CROSSTIMESTAMP .

Драйвер должен заполнить поля SystemTimestamp1, HardwareClockTimestamp и SystemTimestamp2 метками времени, взятыми как можно ближе друг к другу в следующем порядке:

  1. SystemTimestamp1

  2. HardwareClockTimestamp

  3. SystemTimestamp2

Драйвер и оборудование мини-порта могут бесплатно оптимизировать сбор этих меток времени в зависимости от дополнительных возможностей оборудования. Однако значения SystemTimestamp1 и SystemTimestamp2 , возвращаемые при завершении OID, должны точно соответствовать значению счетчика производительности (QPC) на момент записи. Метка HardwareClockTimestamp должна соответствовать значению аппаратных часов сетевого адаптера в точке записи. Если конкретная реализация может более точно определить две метки времени, а не три (например, одну системную метку времени и соответствующую метку времени аппаратных часов сетевого адаптера), она должна задать для поля SystemTimestamp2 то же значение, что и SystemTimestamp1.

Драйвер мини-порта не должен задавать значения SystemTimestamp1, HardwareClockTimestamp или SystemTimestamp2равным нулю.

Требования

Требование Значение
Минимальная версия клиента Windows 11
Минимальная версия сервера Windows Server 2022. Поддерживается в NDIS 6.82 и более поздних версиях.
Верхняя часть ntddndis.h (включая ndis.h)

См. также раздел

OID_TIMESTAMP_GET_CROSSTIMESTAMP

KeQueryPerformanceCounter

NDIS_OBJECT_HEADER