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설정합니다.
Revision 멤버를 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_CROSSTIMESTAMPOID 요청을 받으면 드라이버는 QUERY_INFORMATIONInformationBufferNDIS_HARDWARE_CROSSTIMESTAMP 구조로 채워 OID를 완료합니다.
드라이버는 SystemTimestamp1, HardwareClockTimestamp 및 SystemTimestamp2 필드에 가능한 한 가깝게, 그리고 다음 순서대로 타임스탬프를 채워야 합니다.
SystemTimestamp1
HardwareClockTimestamp
systemTimestamp2
미니포트 드라이버와 하드웨어는 고급 하드웨어 기능에 따라 이러한 타임스탬프 컬렉션을 자유롭게 최적화할 수 있습니다. 그러나 OID 완성 시 반환된 SystemTimestamp1 및 SystemTimestamp2 값은 캡처 시 QPC(성능 카운터) 값과 정확하게 일치해야 합니다. HardwareClockTimestamp 캡처 지점에서 NIC의 하드웨어 클록 값에 해당해야 합니다. 특정 구현에서 3개가 아닌 두 개의 타임스탬프(예: 하나의 시스템 타임스탬프 및 해당 NIC 하드웨어 시계 타임스탬프)를 보다 정확하게 확인할 수 있는 경우 SystemTimestamp2 필드를 SystemTimestamp1동일한 값으로 설정해야 합니다.
미니포트 드라이버는 SystemTimestamp1, HardwareClockTimestamp또는 SystemTimestamp2 값을 0 설정해서는 안 됩니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 11 |
지원되는 최소 서버 | Windows Server 2022. NDIS 6.82 이상에서 지원됩니다. |
헤더 | ntddndis.h(ndis.h 포함) |