NDIS_HD_SPLIT_ATTRIBUTES structure (ndis.h)
The NDIS_HD_SPLIT_ATTRIBUTES structure defines header-data split attributes, if any, that are associated with a miniport adapter.
Syntax
typedef struct _NDIS_HD_SPLIT_ATTRIBUTES {
NDIS_OBJECT_HEADER Header;
ULONG HardwareCapabilities;
ULONG CurrentCapabilities;
ULONG HDSplitFlags;
ULONG BackfillSize;
ULONG MaxHeaderSize;
} NDIS_HD_SPLIT_ATTRIBUTES, *PNDIS_HD_SPLIT_ATTRIBUTES;
Members
Header
The NDIS_OBJECT_HEADER structure for the provider characteristics structure (NDIS_HD_SPLIT_ATTRIBUTES). The driver sets the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_HD_SPLIT_ATTRIBUTES, the Revision member to NDIS_OBJECT_HD_SPLIT_ATTRIBUTES_REVISION_1, and the Size member to NDIS_SIZEOF_HD_SPLIT_ATTRIBUTES_REVISION_1.
HardwareCapabilities
The header-data split hardware capabilities that the miniport adapter supports. These capabilities should include capabilities that are currently disabled by INF file settings or through the Advanced properties page. The value of HardwareCapabilities is a bitwise OR of the following flags:
NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT
The miniport adapter can split the header and data into separate MDLs that meet the requirements for header-data split support.
NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV4_OPTIONS
The miniport adapter can split IPv4 Ethernet frames that include IPv4 options. The miniport adapter can support splitting some IPv4 options while not splitting others.
NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV6_EXTENSION_HEADERS
The miniport adapter can split IPv6 Ethernet frames that include IPv6 extension headers. The miniport adapter can support some IPv6 extension headers while not supporting others.
NDIS_HD_SPLIT_CAPS_SUPPORTS_TCP_OPTIONS
The miniport adapter can split TCP frames with other TCP options in addition to the timestamp option. The miniport adapter can support some TCP options and not support others.
CurrentCapabilities
The current header-data split capabilities that the miniport adapter supports. The miniport driver uses the same flags that are defined for the HardwareCapabilities member. In this case, the flags are set to indicate the current capabilities that depend on the current configuration settings.
HDSplitFlags
A set of flags that control the status of header-data split for a miniport adapter. The miniport driver should set this member to zero before calling the NdisMSetMiniportAttributes function. After NdisMSetMiniportAttributes successfully returns, the driver must check the flags and configure the hardware accordingly. NDIS sets this member with a bitwise OR of the following flags:
NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT
If this flag is set, the miniport driver should enable header-data split in the hardware. Otherwise, header-data split is disabled. If the computer uses header-data split and the miniport driver also set the NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT flag in the CurrentCapabilities member, NDIS sets NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT.
BackfillSize
The backfill size, in bytes, for the data portion of a split frame. The miniport driver should set
BackfillSize to zero before calling
NdisMSetMiniportAttributes. NDIS sets this member if the miniport driver must pre-allocate
backfill storage in the data portion for split frames. After
NdisMSetMiniportAttributes successfully returns, the driver must use the
BackfillSize value that NDIS set to pre-allocate the data buffers.
MaxHeaderSize
The maximum size, in bytes, for the header portion of a split frame. The miniport driver should set MaxHeaderSize to zero before calling NdisMSetMiniportAttributes. NDIS sets this member to the maximum size for the header buffer for split frames. After NdisMSetMiniportAttributes successfully returns, the driver must use the value that NDIS provided.
Remarks
To support header-data split, a miniport driver passes a pointer to an NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES structure in the MiniportAttributes parameter of the NdisMSetMiniportAttributes function. The HDSplitAttributes member of NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES contains a pointer to the NDIS_HD_SPLIT_ATTRIBUTES structure. A miniport driver calls NdisMSetMiniportAttributes from its MiniportInitializeEx function during initialization.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Supported in NDIS 6.1 and later. |
Header | ndis.h (include Ndis.h) |