OID_GEN_TRANSPORT_HEADER_OFFSET
Как набор, OID_GEN_TRANSPORT_HEADER_OFFSET OID указывает размер дополнительных заголовков для пакетов, которые отправляет и получает конкретный транспорт.
Сведения о версии
Windows Vista и более поздние версии Windows
Поддерживается.
Драйверы мини-портов NDIS 6.0 и более поздних версий
Необязательный элемент.
Драйверы минипорта NDIS 5.1
Необязательный элемент.
Драйверы минипорта NDIS 5.1
Необязательный элемент.
Комментарии
Транспорт информирует водителей минипорта и других многоуровневых драйверов об этом размере заголовка; затем эти драйверы могут использовать эти сведения при обработке пакетов. Например, драйвер может использовать размер заголовка вложенного слоя, полученный из транспорта, чтобы найти начало данных более высокого уровня в пакетах, таких как начало ip-заголовка; затем драйвер может проанализировать и соответствующим образом настроить поля заголовка ПРОТОКОЛА IP. Транспорты используют структуру TRANSPORT_HEADER_OFFSET, определенную следующим образом, чтобы указать этот размер заголовка.
typedef struct _TRANSPORT_HEADER_OFFSET {
USHORT ProtocolType;
USHORT HeaderOffset;
} TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET;
Элементы этой структуры содержат следующие сведения:
ProtocolType
Указывает тип протокола, который отправляет этот OID, а затем отправляет и получает пакеты, используя указанный размер заголовка подслоя. Протокол является одним из следующих значений:
NDIS_PROTOCOL_ID_DEFAULT
Протокол по умолчанию
NDIS_PROTOCOL_ID_TCP_IP
Протокол TCP/IP
NDIS_PROTOCOL_ID_IPX
Протокол NETWare IPX
NDIS_PROTOCOL_ID_NBF
Протокол NetBIOS
HeaderOffset
Указывает размер (в байтах) заголовка подслоя, который предшествует заголовку протокола для пакетов, которые протокол впоследствии отправляет или получает от драйвера мини-порта или другого многоуровневого драйвера. Например, sizeof(Заголовок Ethernet) + sizeof(заголовок SNAP).
Как правило, транспорты вычисляют размер заголовков пакетов из сведений, полученных от драйверов мини-порта. Чтобы запросить максимальный общий размер пакета в байтах, поддерживаемый сетевой картой, включая заголовок, транспорты используют OID_GEN_MAXIMUM_TOTAL_SIZE OID. Чтобы запросить максимальный размер пакета в байтах, поддерживаемый сетевой картой, не включая заголовок, транспорты используют OID_GEN_MAXIMUM_FRAME_SIZE OID. Чтобы вычислить максимальный размер заголовка, транспорты вычитают максимальный размер кадра из максимального общего размера.
Если транспорт передает пакеты, содержащие сведения о заголовке подслоя, транспорт должен знать размер заголовка подслоя этих пакетов и информировать базовые драйверы мини-портов и другие многоуровневые драйверы о размере, чтобы драйверы могли обрабатывать пакеты. Отправка и получение сведений о заголовке определенного подслоя в пакете может быть параметром, который можно задать в реестре для определенного протокола. Затем транспорты могут получать сведения о заголовках подслоев из реестра и передавать размер заголовка в драйверы мини-портов или другие многоуровневые драйверы.
Например, если транспорт обрабатывает пакеты из среды Fibre Distributed Data Interface, транспорт должен отправить запрос набора базовым драйверам мини-портов и другим многоуровневые драйверы, используя OID_GEN_TRANSPORT_HEADER_OFFSET для информирования этих драйверов о размере подслойного заголовка пакетов. (FDDI не поддерживается в Windows Vista и более поздних версиях Windows.) Эти пакеты из FDDI могут содержать сведения об управлении логическими ссылками (LLC). Эти сведения LLC, в свою очередь, могут включать заголовок LLC и другие заголовки, такие как Sub-Network Access Protocol (SNAP). Транспорт определяет из реестра использование LLC/SNAP и передает размер заголовка сегментов пакетов LLC/SNAP драйверам мини-порта.
Этот идентификатор OID является необязательным для драйверов мини-портов и других многоуровневые драйверы. Так как этот OID является необязательным, драйверы не обязаны отвечать на запросы, выполняемые транспортом с помощью этого идентификатора.
Требования
Заголовок |
Ntddndis.h (включая Ndis.h) |