共用方式為


初始化Header-Data分割提供者

若要支援標頭資料分割,迷你埠驅動程式必須註冊為 NDIS 6.1 或更新版本的驅動程式。 迷你埠驅動程式的來源檔案必須指定 DNDIS61_MINIPORT=1,而不是 DNDIS60_MINIPORT=1。 迷你埠驅動程式也必須在 NDIS_MINIPORT_DRIVER_CHARACTERISTICS 結構中指定 NDIS 6.1 或更新版本。

若要註冊其標頭資料分割屬性,NDIS 6.1 迷你埠驅動程式會從其 MiniportInitializeEx函式呼叫NdisMSetMiniportAttributes函式,並傳遞NdisMSetMiniportAttributes初始化NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES結構。

NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 結構包含下列資訊:

  • NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES的 HDSplitAttributes 成員包含 NDIS_HD_SPLIT_ATTRIBUTES 結構的指標,指定迷你埠配接器所提供的標頭資料分割功能。

  • NDIS_HD_SPLIT_ATTRIBUTES 的 HardwareCapabilities 成員包含迷你埠配接器支援的標頭資料分割功能。 這些功能可能包括 INF 檔案設定目前停用的功能,或透過 [ 進階 屬性] 頁面停用的功能。

  • NDIS_HD_SPLIT_ATTRIBUTES的 CurrentCapabilities 成員包含迷你埠配接器支援的目前標頭資料分割功能。 如果標頭資料分割是透過 *HeaderDataSplit 標準化 INF 關鍵字啟用,迷你埠驅動程式會使用與 HardwareCapabilities 成員相同的旗標來指出目前的標頭資料分割組態。 如需 *HeaderDataSplit的詳細資訊,請參閱 Header-Data分割的標準化 INF 關鍵字

  • NDIS_HD_SPLIT_ATTRIBUTES的 HDSplitFlags 成員包含標頭資料分割組態旗標。 迷你埠驅動程式應該先將此成員設定為零,再呼叫 NdisMSetMiniportAttributes。 NDIS 會以位 OR 設定這個成員的組態旗標。 成功傳回 NdisMSetMiniportAttributes 之後,迷你埠驅動程式必須檢查 HDSplitFlags 中的旗標設定,並據以設定硬體。

NDIS 會使用 NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT 旗標來啟用迷你埠配接器的標頭資料分割。 如果迷你埠驅動程式未在NDIS_HD_SPLIT_ATTRIBUTES 結構的 CurrentCapabilities 成員中設定NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT旗標,則 NDIS 將不會設定 NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT 。 如果 NDIS 設定NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT旗標,迷你埠驅動程式應該會在 NIC 中啟用標頭資料分割。

迷你埠驅動程式應該先將NDIS_HD_SPLIT_ATTRIBUTES結構的 BackfillSize 成員設定為零,再呼叫 NdisMSetMiniportAttributes。 如果迷你埠驅動程式必須在分割框架的資料緩衝區中預先配置回填儲存體, NDIS 會設定 BackfillSize 成員。 成功傳回 NdisMSetMiniportAttributes 之後,迷你埠驅動程式必須使用 NDIS 指定的 BackfillSize 值,並預先配置資料緩衝區。 如需資料緩衝區回填大小的詳細資訊,請參閱 配置資料緩衝區的回填

迷你埠驅動程式應該先將NDIS_HD_SPLIT_ATTRIBUTES結構的MaxHeaderSize成員設定為零,再呼叫NdisMSetMiniportAttributes。 NDIS 會將這個成員設定為分割框架標頭緩衝區允許的大小上限。 成功傳回 NdisMSetMiniportAttributes 之後,迷你埠驅動程式必須使用 NDIS 指定的 MaxHeaderSize 值。 如需標頭大小上限的詳細資訊,請參閱 配置標頭緩衝區