Receive Indications with Header-Data Split

A miniport driver that supports header-data split must indicate received data in the format that header-data split requires. For example, the header buffers should all be in a contiguous block of storage and the data buffers must include backfill space.

The header information in split frames must never include virtual LAN (VLAN) tags. Header-data split requires support for VLAN in hardware and requires removing VLAN tags from the incoming frames and placing them in the Ieee8021QNetBufferListInfo OOB information in the NET_BUFFER_LIST structure. The miniport driver must specify support for VLAN in the MacOptions member of the NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES structure and in response to the OID_GEN_MAC_OPTIONS OID query.

NDIS and overlying drivers or user-mode applications use the OID_GEN_HD_SPLIT_PARAMETERS OID to set the current header-data split settings of a miniport adapter. If the NDIS_HD_SPLIT_COMBINE_ALL_HEADERS flag in the HDSplitCombineFlags member of the NDIS_HD_SPLIT_PARAMETERS structure is set, the miniport adapter must combine all split frames. If header-data split is enabled in the hardware, the miniport driver must combine the header and data before indicating the frame to NDIS. For more information about OID_GEN_HD_SPLIT_PARAMETERS and other administrative and configuration issues, see Header-Data Split Administration and Configuration.

This section includes:

Allocating the Header Buffer

Allocating Backfill for the Data Buffer

Setting NET_BUFFER_LIST Information