Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Miniport-Treiber verwenden die NDIS_STATUS_TIMESTAMP_CAPABILITY Statusanzeige, um die Hardwarezeitstempelfunktionen der NIC und die Softwarezeitstempelfunktionen des Miniporttreibers an NDIS und übermäßige Treiber zu melden.
Diese Statusanzeige stellt die Zeitstempelfunktionen des Hardware- und Miniporttreibers dar, nicht welche Funktion derzeit aktiviert oder deaktiviert ist. Weitere Informationen zum Melden der aktuellen Zeitstempelkonfiguration finden Sie unter NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG.
Bemerkungen
Während der Initialisierung sollte der Miniporttreiber seine Hardware- und Softwarezeitstempelfunktionen innerhalb seiner MiniportInitializeEx--Funktion angeben. Der Treiber sollte:
Initialisieren Sie eine NDIS_TIMESTAMP_CAPABILITIES Struktur mit den Hardware- und Softwarezeitstempelfunktionen der NIC. Der Treiber legt die Elemente der NDIS_TIMESTAMP_CAPABILITIES Struktur wie folgt fest:
- Der Treiber verwendet die TimestampFlags Feld, um die Hardware- und Softwarezeitstempelfunktionen anzugeben.
Anmerkung
Eine Implementierung muss Hardwarezeitstempel und Zeitstempel unterstützen. Die Unterstützung von Softwarezeitstempeln ist optional.
Der Treiber muss das CrossTimestamp Feld auf TRUEfestlegen.
Das HardwareClockFrequencyHz Feld sollte die nominale Betriebshäufigkeit der Hardwareuhr enthalten, die für die Zeitstempelung durch die NIC verwendet wird. Diese Daten können verwendet werden, um die nominale Taktfrequenz für Endbenutzer zu Informationszwecken anzuzeigen.
Das Feld Typ- im Feld Header sollte auf NDIS_OBJECT_TYPE_DEFAULT und die Revision auf NDIS_TIMESTAMP_CAPABILITIES_REVISION_1festgelegt werden.
Generieren Sie eine NDIS_STATUS_TIMESTAMP_CAPABILITY Statusanzeige, indem Sie NdisMIndicateStatusEx- aufrufen, um die Zeitstempelfunktionen zu melden. Das StatusBuffer Feld der NDIS_STATUS_INDICATION Struktur sollte auf die initialisierte NDIS_TIMESTAMP_CAPABILITIES Struktur verweisen.
Der Miniporttreiber muss auch die Statusanzeige NDIS_STATUS_TIMESTAMP_CAPABILITY(ndis-status-timestamp-capability.md) generieren, wenn eine Änderung der zugrunde liegenden Hardwarefunktionen erkannt wird.
Hier erfahren Sie, wie ein Miniporttreiber die unterstützten Zeitstempelfunktionen angeben kann:
// From within its initialization routine, the miniport in this
// example indicates that it supports the following capabilities:
// - PtpV2OverUdpIPv4EventMsgReceiveHw
// - PtpV2OverUdpIPv6EventMsgReceiveHw
// - TaggedTransmitHw
// - CrossTimestamp
NDIS_STATUS MiniportInitializeEx(
_In_ NDIS_HANDLE MiniportAdapterHandle,
_In_ NDIS_HANDLE MiniportDriverContext,
_In_ PNDIS_MINIPORT_INIT_PARAMETERS MiniportInitParameters
)
{
. . .
NDIS_TIMESTAMP_CAPABILITIES timeStampCapabilities;
NDIS_STATUS_INDICATION timeStampStatus;
. . .
// Initialize an NDIS_TIMESTAMP_CAPABILITIES structure
RtlZeroMemory(&timeStampCapabilities, sizeof(timeStampCapabilities));
RtlZeroMemory(&timeStampStatus, sizeof(timeStampStatus));
timeStampCapabilities.Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
timeStampCapabilities.Header.Size = sizeof(timeStampCapabilities);
timeStampCapabilities.Header.Revision = NDIS_TIMESTAMP_CAPABILITIES_REVISION_1;
timeStampCapabilities.CrossTimestamp = TRUE;
timeStampCapabilities.TimestampFlags.PtpV2OverUdpIPv4EventMsgReceiveHw = TRUE;
timeStampCapabilities.TimestampFlags.PtpV2OverUdpIPv6EventMsgReceiveHw = TRUE;
timeStampCapabilities.TimestampFlags.TaggedTransmitHw = TRUE;
timeStampCapabilities.HardwareClockFrequencyHz = 150000;
timeStampStatus.Header.Type = NDIS_OBJECT_TYPE_STATUS_INDICATION;
timeStampStatus.Header.Revision = NDIS_STATUS_INDICATION_REVISION_1;
timeStampStatus.Header.Size = NDIS_SIZEOF_STATUS_INDICATION_REVISION_1;
timeStampStatus.SourceHandle = MiniportAdapterHandle;
timeStampStatus.StatusBuffer = &timeStampCapabilities;
timeStampStatus.StatusBufferSize = sizeof(timeStampCapabilities);
timeStampStatus.StatusCode = NDIS_STATUS_TIMESTAMP_CAPABILITY;
// Generate an NDIS_STATUS_TIMESTAMP_CAPABILITY status indication
NdisMIndicateStatusEx(MiniportAdapterHandle, &timeStampStatus);
. . .
}
Anforderungen
Anforderung | Wert |
---|---|
Mindestens unterstützter Client | Windows 11 |
Mindestens unterstützter Server | Windows Server 2022 |
NDIS-Version | NDIS 6.82 und höher |
Kopfball | Ntddndis.h (include Ndis.h) |
Siehe auch
Berichten von Zeitstempelfunktionen und aktueller Konfiguration