共用方式為


傳送乙太網路框架

Windows TCP/IP 傳輸支援一組傳送乙太網路框架的需求。 例如,任何驅動程式 (,MUX 中繼驅動程式或篩選驅動程式) 源自傳送要求或修改超載驅動程式的傳送要求,都必須支援 TCP/IP 傳輸實作的需求。

注意 如果驅動程式堆疊中的任何驅動程式未遵循這些需求,基礎迷你埠驅動程式、MUX 中繼驅動程式和篩選驅動程式可能會無法預測。

針對乙太網路傳送要求,驅動程式必須支援下列需求:

  • 如果驅動程式源自傳送要求,驅動程式應該為乙太網路畫面配置 NET_BUFFER_LIST 結構。 每個NET_BUFFER_LIST結構中的 NetBufferListInfo 成員都必須包含特定用途所需的頻外 (OOB) 資料。 OOB 資料會套用至與NET_BUFFER_LIST結構相關聯的所有 NET_BUFFER 結構。

  • 如果驅動程式源自傳送要求,驅動程式應該為乙太網路畫面配置一或多個NET_BUFFER結構,並將這些結構連結至NET_BUFFER_LIST結構。 每個連結至NET_BUFFER_LIST結構的NET_BUFFER結構都會描述單一乙太網路框架。 驅動程式可能會在傳送要求中鏈結多個NET_BUFFER_LIST結構。

  • 所有與 NET_BUFFER_LIST 結構相關聯的NET_BUFFER結構都必須具有相同的乙太網路框架類型和 IP 通訊協定版本, (IPv4 或 IPv6) 。

  • 所有與NET_BUFFER_LIST結構相關聯的NET_BUFFER結構都必須具有相同的來源和目的地 MAC 位址。

  • 如果驅動程式正在傳送 TCP 或 UDP 畫面格,與NET_BUFFER_LIST結構相關聯的所有NET_BUFFER結構都必須與相同的 TCP 或 UDP 連線相關聯。 注意 根據下列需求,可以分割傳輸的乙太網路畫面。 也就是說,多個記憶體描述元清單 (MDL) 可以與傳送要求中的NET_BUFFER結構相關聯。

  • 請勿將傳輸乙太網路框架的 MAC 標頭分割到多個 MDL。 如果存在,請將虛擬 LAN (VLAN) (或 Priority) 旗標視為 MAC 標頭的一部分。 因此,此旗標必須與 MAC 標頭的其餘部分位於相同的 MDL 中。

  • 如果驅動程式變更NET_BUFFER結構中 MDL 鏈結中的連結,或NET_BUFFER_LIST結構中的NET_BUFFER鏈結,則驅動程式必須先還原原始組態的連結,才能將NET_BUFFER_LIST擁有權傳回超載驅動程式。 不過,不需要驅動程式才能還原NET_BUFFER_LIST結構之間的連結。