OID_GEN_CO_GET_TIME_CAPS
Nuta
OID_GEN_CO_GET_TIME_CAPS jest taka sama jak OID_GEN_GET_TIME_CAPS.
Identyfikator OID OID_GEN_CO_GET_TIME_CAPS żąda sterownika miniportu w celu zwrócenia jego możliwości raportowania czasu lokalnego karty sieciowej sformatowanej jako struktura GEN_GET_TIME_CAPS, która jest zdefiniowana w następujący sposób:
typedef struct _GEN_GET_TIME_CAPS{
ULONG Flags;
ULONG ClockPrecision;
} GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;
Elementy członkowskie tej struktury zawierają następujące informacje:
flagi
Następujące flagi mogą być razem ORed. Wszystkie nieokreślone flagi muszą być ustawione na zero.
READABLE_LOCAL_CLOCK
Po ustawieniu wskazuje obecność czytelnego zegara na karcie sieciowej. Nawet bez takiego zegara sprzętowego sterownik miniportu może używać zegara systemowego przez wywołanie NdisGetCurrentSystemTime, tak długo, jak zgłasza poprawną precyzję w składowej ClockPrecision.
CLOCK_NETWORK_DERIVED
Po ustawieniu wskazuje, że lokalny czas karty sieciowej pochodzi z połączenia sieciowego, w przeciwieństwie do bezpłatnego zegara dołączania.
CLOCK_PRECISION
Po ustawieniu wskazuje, że element członkowski ClockPrecision zawiera prawidłowe informacje.
RECEIVE_TIME_INDICATION_CAPABLE
Po ustawieniu wskazuje, że sprzęt karty sieciowej może zanotować czas lokalny, w którym otrzymuje pierwszą komórkę odebranego kontrolera PDU i że sterownik miniportu propaguje ten czas odbierania dla każdego pdU podczas wskazywania pakietu do protokołu.
TIMED_SEND_CAPABLE
Po ustawieniu wskazuje, że karta sieciowa może zaplanować pakiet do transmisji zgodnie z czasem lokalnym. Protokoły mogą używać NDIS_SET_PACKET_TIME_TO_SEND, aby ustawić znacznik czasu TimeToSend w bloku danych poza pasmem deskryptora pakietów. Ustawienie znacznika czasu nie ma wpływu na to, kiedy pakiet jest rzeczywiście przesyłany; zamiast tego znacznik czasu jest używany do rejestrowania. Sterownik protokołu może użyć znacznika czasu, aby określić, jak długo trwa wysyłanie pakietu.
TIME_STAMP_CAPABLE
Po ustawieniu wskazuje, że karta sieciowa może sygnaturować (w odpowiednim polu pakietu wychodzącego) czas, w którym pierwszy bajt pakietu jest przesyłany i że karta sieciowa może pobrać ten czas z tego samego pola pakietu przychodzącego.
ClockPrecision
Określa dokładność zegara w częściach na milion. Aby te informacje można było uznać za prawidłowe, należy ustawić flagę CLOCK_PRECISION.
Uwagi
Sterownik miniportu może zapewnić obsługę niektórych parametrów chronometrażu nawet w przypadku braku zegara lokalnego lub sieciowego. W szczególności sterownik miniportu może używać zegara systemowego do odbierania wskazówek czasu, wysyłania czasowego, a nawet sygnatury czasowej. Zegar oparty na karcie sieciowej jest lepszy, ponieważ prawdopodobnie zapewni większą precyzję i będzie dostępny z niższymi opóźnieniami niż zegar systemowy. We wszystkich przypadkach sterownik miniportu musi określać precyzję zegara, którego używa. Dzięki temu protokoły mogą określić, jak najlepiej korzystać z obsługi chronometrażu sterownika miniportu.
Jeśli sterownik miniportu zgłasza obecność czytelnego zegara, musi być przygotowany do natychmiastowego reagowania na zapytanie OID_GEN_GET_NETCARD_TIME. Odpowiedź sterownika miniportu na to wywołanie jest krytyczna dla czasu i dlatego musi być synchroniczna.
Wymagania
version: Windows Vista and later Header: Ntddndis.h (include Ndis.h)