структура 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 метками времени, взятыми как можно ближе друг к другу в следующем порядке:
SystemTimestamp1
HardwareClockTimestamp
SystemTimestamp2
Драйвер и оборудование мини-порта могут бесплатно оптимизировать сбор этих меток времени в зависимости от дополнительных возможностей оборудования. Однако значения SystemTimestamp1 и SystemTimestamp2 , возвращаемые при завершении OID, должны точно соответствовать значению счетчика производительности (QPC) на момент записи. Метка HardwareClockTimestamp должна соответствовать значению аппаратных часов сетевого адаптера в точке записи. Если конкретная реализация может более точно определить две метки времени, а не три (например, одну системную метку времени и соответствующую метку времени аппаратных часов сетевого адаптера), она должна задать для поля SystemTimestamp2 то же значение, что и SystemTimestamp1.
Драйвер мини-порта не должен задавать значения SystemTimestamp1, HardwareClockTimestamp или SystemTimestamp2равным нулю.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 11 |
Минимальная версия сервера | Windows Server 2022. Поддерживается в NDIS 6.82 и более поздних версиях. |
Верхняя часть | ntddndis.h (включая ndis.h) |