OID_GEN_CO_GET_TIME_CAPS
Hinweis
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 an, um seine Funktionen für die Meldung der Ortszeit einer NIC zurückzugeben, die als GEN_GET_TIME_CAPS-Struktur formatiert ist. Dies ist wie folgt definiert:
typedef struct _GEN_GET_TIME_CAPS{
ULONG Flags;
ULONG ClockPrecision;
} GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;
Die Member dieser Struktur enthalten die folgenden Informationen:
Flags
Die folgenden Flags können zusammen ORed 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 er NdisGetCurrentSystemTime aufruft, solange er die richtige Genauigkeit im ClockPrecision-Member meldet.
CLOCK_NETWORK_DERIVED
Wenn festgelegt, gibt an, dass die Ortszeit der NIC von der Netzwerkverbindung abgeleitet wird, im Gegensatz zu einer frei ausgeführten Onboard-Uhr.
CLOCK_PRECISION
Wenn festgelegt, gibt an, dass der ClockPrecision-Member gültige Informationen enthält.
RECEIVE_TIME_INDICATION_CAPABLE
Gibt bei Festlegung an, dass die NIC-Hardware die Ortszeit notieren kann, zu der sie die erste Zelle einer empfangenen PDU empfängt, und dass der Miniporttreiber diese Empfangszeit für jede PDU weitergibt, wenn er das Paket an ein Protokoll angibt.
TIMED_SEND_CAPABLE
Gibt bei Festlegung an, dass die NIC ein Paket für die Übertragung entsprechend seiner 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 darauf aus, wann das Paket tatsächlich übertragen wird. stattdessen wird der Zeitstempel für die Aufzeichnung verwendet. Ein Protokolltreiber kann den Zeitstempel verwenden, um zu bestimmen, wie lange es dauert, bis das Senden eines Pakets abgeschlossen ist.
TIME_STAMP_CAPABLE
Gibt bei Festlegung an, dass die NIC (im entsprechenden Feld des ausgehenden Pakets) den Zeitpunkt Stempeln kann, zu dem das erste Byte des Pakets übertragen wird, und dass die NIC dieses Mal aus demselben Feld eines eingehenden Pakets abrufen kann.
ClockPrecision
Gibt die Uhrgenauigkeit in parts per 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 Zeitparameter bereitstellen, auch wenn keine lokale oder Netzwerkuhr vorhanden ist. Insbesondere kann ein Miniporttreiber die Systemuhr für Empfangszeitanzeigen, Zeitstempel und sogar Zeitstempel verwenden. Eine NIC-basierte Uhr ist besser, da sie wahrscheinlich eine höhere Genauigkeit bietet und mit geringeren Latenzen zugänglich ist als die Systemuhr. In allen Fällen muss der Miniporttreiber die Genauigkeit der von ihr verwendeten Uhr angeben. Dadurch können Protokolle bestimmen, wie die Timingunterstützung des Miniporttreibers am besten verwendet werden kann.
Wenn der Miniporttreiber das Vorhandensein einer lesbaren Uhr meldet, muss er bereit 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 (include Ndis.h)