OID_GEN_TRANSPORT_HEADER_OFFSET
如所設定,OID_GEN_TRANSPORT_HEADER_OFFSET OID 表示特定傳輸所傳送和接收之封包的額外標頭大小。
版本資訊
Windows Vista 和更新版本的 Windows
支援。
備註
傳輸會通知迷你埠驅動程式和其他層次驅動程式此標頭大小;這些驅動程式接著可以在處理封包時使用此資訊。 例如,驅動程式可以使用從傳輸取得的子層標頭大小,找出封包中較高層資訊的開頭,例如 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。 若要計算標頭大小上限,傳輸會從最大大小減去最大畫面格大小。
如果傳輸會傳輸包含子層標頭資訊的封包,傳輸必須知道這些封包的子層標頭大小,而且必須通知基礎迷你埠驅動程式和其他層次驅動程式大小,讓驅動程式可以處理封包。 在封包內傳送和接收特定子層標頭資訊可能是可在登錄中針對特定通訊協定設定的選項。 傳輸接著可以從登錄取得子層標頭的相關資訊,並將標頭大小向下傳遞至迷你埠驅動程式或其他層次驅動程式。
例如,如果傳輸處理來自 Fiber 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 是選擇性的,因此不需要驅動程式來回應使用此 OID 進行傳輸的要求。
規格需求
標頭 |
Ntddndis.h (包括 Ndis.h) |