Share via


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 요청을 받으면 드라이버는 QUERY_INFORMATIONInformationBufferNDIS_HARDWARE_CROSSTIMESTAMP 구조로 채워 OID를 완료합니다.

드라이버는 SystemTimestamp1, HardwareClockTimestampSystemTimestamp2 필드를 가능한 한 가까이에서 다음 순서로 가져온 타임스탬프로 채워야 합니다.

  1. SystemTimestamp1

  2. HardwareClockTimestamp

  3. SystemTimestamp2

미니포트 드라이버 및 하드웨어는 고급 하드웨어 기능에 따라 이러한 타임스탬프의 컬렉션을 자유롭게 최적화할 수 있습니다. 그러나 OID 완성 시 반환된 SystemTimestamp1SystemTimestamp2 값은 캡처 시 QPC(성능 카운터) 값과 정확하게 일치해야 합니다. HardwareClockTimestamp는 캡처할 때 NIC의 하드웨어 클록 값에 해당해야 합니다. 특정 구현이 3개가 아닌 두 개의 타임스탬프(예: 하나의 시스템 타임스탬프 및 해당 NIC 하드웨어 클록 타임스탬프)를 보다 정확하게 결정할 수 있는 경우 SystemTimestamp2 필드를 SystemTimestamp1과 동일한 값으로 설정해야 합니다.

미니포트 드라이버는 SystemTimestamp1, HardwareClockTimestamp 또는 SystemTimestamp2 값을 0으로 설정하면 안 됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 11
지원되는 최소 서버 Windows Server 2022. NDIS 6.82 이상에서 지원됩니다.
머리글 ntddndis.h(include ndis.h)

추가 정보

OID_TIMESTAMP_GET_CROSSTIMESTAMP

KeQueryPerformanceCounter

NDIS_OBJECT_HEADER