共用方式為


NDIS_HD_SPLIT_ATTRIBUTES 結構 (ndis.h)

NDIS_HD_SPLIT_ATTRIBUTES 結構會定義與迷你埠配接器相關聯的標頭數據分割屬性。

語法

typedef struct _NDIS_HD_SPLIT_ATTRIBUTES {
  NDIS_OBJECT_HEADER Header;
  ULONG              HardwareCapabilities;
  ULONG              CurrentCapabilities;
  ULONG              HDSplitFlags;
  ULONG              BackfillSize;
  ULONG              MaxHeaderSize;
} NDIS_HD_SPLIT_ATTRIBUTES, *PNDIS_HD_SPLIT_ATTRIBUTES;

成員

Header

提供者特性結構的 NDIS_OBJECT_HEADER 結構 (NDIS_HD_SPLIT_ATTRIBUTES) 。 驅動程式會設定 Header 指定要NDIS_OBJECT_TYPE_HD_SPLIT_ATTRIBUTES的 Type 成員、要NDIS_OBJECT_HD_SPLIT_ATTRIBUTES_REVISION_1的 Revision 成員,以及要NDIS_SIZEOF_HD_SPLIT_ATTRIBUTES_REVISION_1的 Size 成員。

HardwareCapabilities

迷你埠配接器支援的標頭數據分割硬體功能。 這些功能應該包含 INF 檔案設定或透過 [ 進階 屬性] 頁面目前停用的功能。 HardwareCapabilities 的值是下列旗標的位 OR:

NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT

迷你埠配接器可以將標頭和數據分割成符合標頭數據分割支援需求的個別 MDL。

NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV4_OPTIONS

迷你埠適配卡可以分割包含 IPv4 選項的 IPv4 乙太網路畫面格。 迷你埠配接器可以支援分割某些 IPv4 選項,而不支援分割其他選項。

注意 NIC 不得分割包含不支援之 IPv4 選項的 IPv4 畫面。 如果分割 IPv4 框架,分割框架的標頭部分必須包含整個 IPv4 標頭和所有存在的 IPv4 選項。
 

NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV6_EXTENSION_HEADERS

迷你埠適配卡可以分割包含 IPv6 擴充標頭的 IPv6 乙太網路框架。 迷你埠配接器可以支援某些 IPv6 擴充功能標頭,但不支援其他標頭。

注意 NIC 不得分割包含不支援之 IPv6 擴充標頭的 IPv6 畫面格。 如果分割 IPv6 框架,分割框架的標頭部分必須包含整個 IPv6 標頭和所有存在的 IPv6 延伸模組標頭。
 

NDIS_HD_SPLIT_CAPS_SUPPORTS_TCP_OPTIONS

除了時間戳選項之外,迷你埠配接器還可以與其他 TCP 選項分割 TCP 畫面格。 迷你埠配接器可以支援一些 TCP 選項,不支援其他選項。

注意 如果框架中唯一的 TCP 選項是時間戳選項,則數據分割提供者必須能夠分割框架。
 
注意 如果 TCP 標頭包含不支援的 TCP 選項,NIC 必須在 TCP 標頭開頭分割框架,或不得分割框架。
 

CurrentCapabilities

迷你埠配接器支援的目前標頭數據分割功能。 迷你埠驅動程式會使用針對 HardwareCapabilities 成員定義的相同旗標。 在此情況下,旗標會設定為指出相依於目前組態設定的目前功能。

HDSplitFlags

一組旗標,控制迷你埠配接器標頭數據分割的狀態。 迷你埠驅動程序應該先將此成員設定為零,再呼叫 NdisMSetMiniportAttributes 函式。 成功傳回 NdisMSetMiniportAttributes 之後,驅動程式必須檢查旗標,並據以設定硬體。 NDIS 會以下列旗標的位 OR 來設定此成員:

NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT

如果設定此旗標,迷你埠驅動程序應該會在硬體中啟用標頭數據分割。 否則,會停用標頭數據分割。 如果計算機使用標頭數據分割,而迷你埠驅動程式也會在 CurrentCapabilities 成員中設定NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT旗標,NDIS 會設定NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT。

BackfillSize

分割框架之數據部分的回填大小,以位元組為單位。 迷你埠驅動程序應該設定
在呼叫 NdisMSetMiniportAttributes 之前,BackfillSize 為零。 如果迷你埠驅動程序必須在分割框架的數據部分預先配置回填記憶體,NDIS 會設定此成員。 成功傳回 NdisMSetMiniportAttributes 之後,驅動程式必須使用 NDIS 設定的 BackfillSize 值來預先配置數據緩衝區。

MaxHeaderSize

分割框架標頭部分的大小上限,以位元組為單位。 迷你埠驅動程序應該先將 MaxHeaderSize 設定為零,再呼叫 NdisMSetMiniportAttributes。 NDIS 會將這個成員設定為分割框架之標頭緩衝區的大小上限。 成功傳回 NdisMSetMiniportAttributes 之後,驅動程式必須使用 NDIS 所提供的值。

注意 如果標頭的長度超過 MaxHeaderSize ,因為 IPv4 選項、IPSec 標頭或 IPv6 延伸模組標頭存在,則框架不得分割。 如果包含 TCP 或 UDP 標頭的標頭因為 TCP 標頭、TCP 選項或 UDP 標頭的存在而超過 MaxHeaderSize ,則 NIC 必須在上層通訊協定標頭的開頭分割框架,或不得分割框架。
 

備註

若要支援標頭數據分割,迷你埠驅動程式會將指標傳遞至 NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTESMiniportAttributes 參數中的 結構 NdisMSetMiniportAttributes 函式。 NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES的 HDSplitAttributes 成員包含NDIS_HD_SPLIT_ATTRIBUTES結構的指標。 迷你埠驅動程式會在初始化期間從其MiniportInitializeEx函式呼叫 NdisMSetMiniportAttributes

規格需求

需求
最低支援的用戶端 NDIS 6.1 和更新版本支援。
標頭 ndis.h (包含 Ndis.h)

另請參閱

MiniportInitializeEx

NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES

NDIS_OBJECT_HEADER

NdisMSetMiniportAttributes