Splitting Ethernet Frames
This section describes the specific header-data split requirements that apply to header-data split providers, depending on the type of Ethernet frame that the provider is splitting.
Note After you read the general requirements in this topic, you can use the subsequent topics to understand the specific requirements for each type of Ethernet frame. The later topics build on the requirements in the earlier topics. For example, if a frame contains IPv4 and UDP information, you should read the Splitting IPv4 Frames and Splitting Frames at the UDP Payload topics.
If the header-data split provider splits a frame in compliance with the header-data split requirements, the indicated NET_BUFFER_LIST structures must have the NDIS_NBL_FLAGS_HD_SPLIT flag set in the NblFlags member. If the header-data split provider does not split a frame, the frame must be indicated with the following flags cleared in NblFlags :
For more information about setting header-data split NET_BUFFER_LIST flags and other receive indication requirements, see Receive Indications with Header-Data Split.
There are cases where a header-data split provider can split a received frame outside of the header-data split provider requirements. In these cases, the provider should never split Ethernet frames in the middle of the IP header, IPv4 options, IPsec headers, IPv6 extension headers, or upper-layer-protocol headers, unless the first MDL contains at least as many bytes as NDIS specified for the lookahead size. For more information about the lookahead size, see OID_GEN_CURRENT_LOOKAHEAD.
This section includes: