Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Заметка
OID_GEN_CO_GET_TIME_CAPS совпадает с OID_GEN_GET_TIME_CAPS.
OID_GEN_CO_GET_TIME_CAPS OID запрашивает мини-драйвер для возврата своих возможностей для создания отчетов о локальном времени сетевого адаптера, отформатированного как структура GEN_GET_TIME_CAPS, которая определяется следующим образом:
typedef struct _GEN_GET_TIME_CAPS{
ULONG Flags;
ULONG ClockPrecision;
} GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;
Члены этой структуры содержат следующие сведения:
флаги
Следующие флаги могут быть объединены вместе. Все неопределенные флаги должны иметь значение нулю.
READABLE_LOCAL_CLOCK
При установке указывает наличие доступных для чтения часов в сетевом адаптере. Даже без таких аппаратных часов минипорт-драйвер может использовать системные часы, вызвав NdisGetCurrentSystemTime, если он сообщает правильную точность в члене ClockPrecision.
CLOCK_NETWORK_DERIVED
Если задано значение, указывает, что локальное время сетевого адаптера является производным от сетевого подключения, а не для свободного запуска часов.
CLOCK_PRECISION
Если задано, указывает, что элемент ClockPrecision содержит допустимые сведения.
RECEIVE_TIME_INDICATION_CAPABLE
Если задано, указывает, что оборудование сетевого адаптера может отметить локальное время, в котором он получает первую ячейку полученного PDU, и что мини-драйвер распространяет это время получения для каждого PDU при указании пакета в протокол.
TIMED_SEND_CAPABLE
Если задано, указывает, что сетевой адаптер может запланировать передачу пакета в соответствии со своим локальным временем. Протоколы могут использовать NDIS_SET_PACKET_TIME_TO_SEND, чтобы задать метку времени TimeToSend в блоке данных вне диапазона дескриптора пакетов. Установка метки времени не влияет на момент передачи пакета; Вместо этого метка времени используется для записи. Драйвер протокола может использовать метку времени, чтобы определить, сколько времени требуется для завершения отправки пакета.
TIME_STAMP_CAPABLE
Если задано, указывает, что сетевой адаптер может метки (в соответствующем поле исходящего пакета) время передачи первого байта пакета и что сетевой адаптер может получить это время из того же поля входящего пакета.
ClockPrecision
Указывает точность часов в частях на миллион. Чтобы эти сведения считались допустимыми, необходимо задать флаг CLOCK_PRECISION.
Замечания
Минипорт-драйвер может обеспечить поддержку определенных параметров времени даже в отсутствие локальных или сетевых часов. В частности, минипорт-драйвер может использовать системные часы для указания времени получения, время отправки и даже метки времени. Часы на основе сетевых адаптеров лучше, так как, скорее всего, обеспечивают более высокую точность и будут доступны с более низкой задержкой, чем системные часы. Во всех случаях минипорт-драйвер должен указать точность часов, которые он использует. Это позволяет протоколам определить, как лучше всего использовать поддержку времени минипорта драйвера.
Если минипорт-драйвер сообщает о присутствии доступных для чтения часов, он должен быть готов немедленно реагировать на запрос OID_GEN_GET_NETCARD_TIME. Ответ минипорта на этот вызов является критическим и поэтому должен быть синхронным.
Требования
версии: Windows Vista и более поздних версий заголовка: Ntddndis.h (include Ndis.h)