Freigeben über


OID_GEN_CO_GET_TIME_CAPS

Anmerkung

OID_GEN_CO_GET_TIME_CAPS ist identisch mit OID_GEN_GET_TIME_CAPS.

Die OID_GEN_CO_GET_TIME_CAPS OID fordert einen Miniporttreiber auf, seine Funktionen zurückzugeben, um die lokale Zeit einer NIC als GEN_GET_TIME_CAPS-Struktur zu melden, die wie folgt definiert ist:

typedef struct _GEN_GET_TIME_CAPS{
    ULONG   Flags;
    ULONG   ClockPrecision;
} GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;

Die Elemente dieser Struktur enthalten die folgenden Informationen:

Flags
Die folgenden Flags können zusammen oRediert werden. Alle nicht angegebenen Flags müssen auf Null festgelegt werden.

READABLE_LOCAL_CLOCK
Wenn festgelegt, gibt das Vorhandensein einer lesbaren Uhr auf der NIC an. Auch ohne eine solche Hardwareuhr kann ein Miniporttreiber die Systemuhr verwenden, indem NdisGetCurrentSystemTime aufgerufen wird, solange er die richtige Genauigkeit im ClockPrecision-Element meldet.

CLOCK_NETWORK_DERIVED
Wenn festgelegt, gibt an, dass die lokale Zeit der NIC von der Netzwerkverbindung abgeleitet wird, im Gegensatz zu einer frei ausgeführten Onboard-Uhr.

CLOCK_PRECISION
Gibt an, dass das ClockPrecision-Element gültige Informationen enthält.

RECEIVE_TIME_INDICATION_CAPABLE
Wenn festgelegt, gibt an, dass die NIC-Hardware die lokale Uhrzeit notieren kann, zu der sie die erste Zelle einer empfangenen PDU empfängt und dass der Miniporttreiber diese Empfangszeit für jede PDU verteilt, wenn das Paket an ein Protokoll angibt.

TIMED_SEND_CAPABLE
Wenn festgelegt, gibt an, dass die NIC ein Paket für die Übertragung entsprechend ihrer ortszeit planen kann. Protokolle können NDIS_SET_PACKET_TIME_TO_SEND verwenden, um den TimeToSend-Zeitstempel im Out-of-Band-Datenblock eines Paketdeskriptors festzulegen. Das Festlegen des Zeitstempels wirkt sich nicht auf die Übertragung des Pakets aus. Stattdessen wird der Zeitstempel für die Datensatzerstellung verwendet. Ein Protokolltreiber kann den Zeitstempel verwenden, um zu bestimmen, wie lange es dauert, um das Senden eines Pakets abzuschließen.

TIME_STAMP_CAPABLE
Wenn festgelegt, gibt an, dass die NIC (im entsprechenden Feld des ausgehenden Pakets) die Zeit stempeln kann, zu der das erste Byte des Pakets übertragen wird und dass die NIC diese Zeit aus demselben Feld eines eingehenden Pakets abrufen kann.

ClockPrecision-
Gibt die Uhrgenauigkeit in Teilen pro Million an. Damit diese Informationen als gültig gelten, muss das CLOCK_PRECISION Flag festgelegt werden.

Bemerkungen

Ein Miniporttreiber kann unterstützung für bestimmte Anzeigeparameter bereitstellen, auch wenn keine lokale oder Netzwerkuhr vorhanden ist. Insbesondere kann ein Miniporttreiber die Systemuhr für den Empfang von Zeitanzeigen, Zeitstempeln und sogar Zeitstempeln verwenden. Eine NIC-basierte Uhr ist besser, da es wahrscheinlich eine höhere Genauigkeit bietet und mit niedrigeren Latenzen als der Systemuhr zugänglich ist. In allen Fällen muss der Miniporttreiber die Genauigkeit der von ihr verwendeten Uhr angeben. Auf diese Weise können Protokolle bestimmen, wie sie die Unterstützung für die Anzeigedauer des Miniporttreibers am besten verwenden können.

Wenn der Miniporttreiber das Vorhandensein einer lesbaren Uhr meldet, muss er darauf vorbereitet sein, sofort auf eine OID_GEN_GET_NETCARD_TIME Abfrage zu reagieren. Die Reaktion des Miniporttreibers auf diesen Aufruf ist zeitkritisch und muss daher synchron sein.

Anforderungen

Version: Windows Vista und höher Header-: Ntddndis.h (enthalten Ndis.h)