共用方式為


指出已接收的乙太網路框架

Windows TCP/IP 通訊協定驅動程式會強制一組接收乙太網路框架的需求。 任何源自的驅動程式都會收到乙太網路畫面的指示,或修改接收基礎驅動程式的指示,都必須支援 TCP/IP 所施加的一般需求。 這些驅動程式包括乙太網路迷你埠驅動程式、MUX 中繼驅動程式和篩選驅動程式。

注意 如果驅動程式不符合這些需求,則會過度 (驅動程式,例如 TCP/IP 傳輸、MUX 中繼驅動程式和篩選驅動程式,) 可能會無法預期。

源自乙太網路的驅動程式必須支援下列需求:

  • 驅動程式必須為接收的乙太網路框架配置 NET_BUFFER_LIST 結構。 每個 NET_BUFFER_LIST 結構都必須包含特定用途所需NET_BUFFER_LIST NetBufferListInfo 成員中定義的頻外 (OOB ) 資料。

  • 驅動程式必須為框架配置 NET_BUFFER 結構,並將其連結至 NET_BUFFER_LIST 結構。 乙太網路迷你埠必須在指出已接收的資料時,將一個 NET_BUFFER 結構指派給 NET_BUFFER_LIST 結構。 這項限制僅適用于乙太網路接收路徑。 不適用於其他媒體類型,例如原生 802.11 無線區域網路 介面。 或一般 NDIS。

  • 從 NDIS 6.1 開始,在某些情況下, NET_BUFFER 結構可以與所接收乙太網路框架的多個記憶體描述項清單相關聯 (MDL) 。 即使 NET_BUFFER_LIST 結構必須包含單一 NET_BUFFER 結構,但使用多個 MDL 可讓驅動程式將收到的封包資料分割成不同的緩衝區。

    例如,支援標頭資料分割介面的乙太網路驅動程式會使用與單一 NET_BUFFER 結構相關聯的多個 MDL 連結清單來分割接收的乙太網路框架。 如需詳細資訊,請參閱 標頭資料分割

    基於簡單性和效能考慮,強烈建議不支援標頭資料分割的驅動程式針對每個 NET_BUFFER 結構只使用一個 MDL。

    注意 在適用于 Windows Vista 的 NDIS 6.0 中,每個 NET_BUFFER 結構都必須只包含一個 MDL。

  • 除非第一個 MDL 包含至少為查閱標頭指定的 NDIS,否則驅動程式不得分割在 IP 標頭、IPv4 選項、IPsec 標頭、IPv6 擴充功能標頭或高層通訊協定標頭中間的接收乙太網路框架。

NDIS 通訊協定和篩選驅動程式必須支援在接收指示中分割乙太網路畫面,如果這類分割框架符合上述清單專案中所定義的限制。 這些限制可確保通訊協定和篩選驅動程式與未來的 Windows 版本相容。