OID_GEN_TRANSPORT_HEADER_OFFSET

作为集,OID_GEN_TRANSPORT_HEADER_OFFSET OID 指示特定传输发送和接收的数据包的其他标头的大小。

版本信息

Windows Vista 和更高版本的 Windows

NDIS 6.0 及更高版本的微型端口驱动程序
可选。

NDIS 5.1 微型端口驱动程序
可选。

Windows XP
支持。

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 (以太网标头) + sizeof (SNAP 标头) 。

通常,传输根据从微型端口驱动程序检索的信息计算数据包的标头大小。 若要请求 NIC 支持的最大总数据包大小(包括 标头),传输将使用 OID_GEN_MAXIMUM_TOTAL_SIZE OID。 若要请求 NIC 支持的最大数据包大小(不包括标头),传输将使用 OID_GEN_MAXIMUM_FRAME_SIZE OID。 若要计算最大标头大小,传输将从最大总大小中减去最大帧大小。

如果传输传输包含子层标头信息的数据包,则传输必须知道这些数据包的子层标头大小,并且必须告知基础微型端口驱动程序和其他分层驱动程序大小,以便驱动程序可以处理数据包。 可以在特定协议的注册表中设置在数据包中发送和接收特定子层标头信息。 然后,传输可以从注册表获取有关子层标头的信息,并将标头大小向下传递到微型端口驱动程序或其他分层驱动程序。

例如,如果传输处理来自光纤分布式数据接口介质的数据包,则传输必须使用OID_GEN_TRANSPORT_HEADER_OFFSET向基础微型端口驱动程序和其他分层驱动程序发送设置请求,以通知这些驱动程序数据包的子层标头的大小。 (Windows Vista 及更高版本的 Windows 不支持 FDDI。) 这些来自 FDDI 的数据包可能包含逻辑链接控制 (LLC) 信息。 此 LLC 信息可能反过来包括 LLC 标头和其他标头,例如Sub-Network访问协议 (SNAP) 。 传输从注册表确定使用 LLC/SNAP,并将数据包的 LLC/SNAP 段的标头大小传递给微型端口驱动程序。

对于微型端口驱动程序和其他分层驱动程序,此 OID 是可选的。 由于此 OID 是可选的,因此驱动程序不需要响应使用此 OID 的传输发出的请求。

要求

标头

Ntddndis.h (包括 Ndis.h)

另请参阅

OID_GEN_MAXIMUM_FRAME_SIZE

OID_GEN_MAXIMUM_TOTAL_SIZE