Splitting Frames at the Beginning of the Upper-Layer-Protocol Headers
An upper-layer protocol is an IP transport protocol such as TCP, UDP, or ICMP.
If a NIC splits an Ethernet frame at the beginning of the upper-layer-protocol header, the indicated NET_BUFFER must contain exactly two MDLs. The buffer that the first MDL describes must begin with the first byte of the Ethernet frame (MAC header) and the buffer that the second MDL describes must start with the first byte of the upper-layer-protocol header.
If the header-data split provider splits the frame at the beginning of the upper-layer-protocol header, the indicated NET_BUFFER_LIST structures must have the NDIS_NBL_FLAGS_SPLIT_AT_UPPER_LAYER_PROTOCOL_HEADER flag set in the NblFlags member. For more information about setting header-data split NET_BUFFER_LIST flags, see Setting NET_BUFFER_LIST Information.
The NIC must not split a frame if the resulting header buffer has a greater length than the maximum header size. For more information about splitting frames when the maximum header size is exceeded, see Allocating the Header Buffer.