Share via


NDIS_HD_SPLIT_ATTRIBUTES 구조체(ndis.h)

NDIS_HD_SPLIT_ATTRIBUTES 구조는 미니포트 어댑터와 연결된 헤더-데이터 분할 특성(있는 경우)을 정의합니다.

구문

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;

멤버

Header

공급자 특성 구조( NDIS_HD_SPLIT_ATTRIBUTES )에 대한 NDIS_OBJECT_HEADER 구조체입니다. 드라이버는 Header가 지정하는 구조체의 Type 멤버를 NDIS_OBJECT_TYPE_HD_SPLIT_ATTRIBUTES, Revision 멤버를 NDIS_OBJECT_HD_SPLIT_ATTRIBUTES_REVISION_1, Size 멤버를 NDIS_SIZEOF_HD_SPLIT_ATTRIBUTES_REVISION_1 설정합니다.

HardwareCapabilities

미니포트 어댑터가 지원하는 헤더 데이터 분할 하드웨어 기능입니다. 이러한 기능에는 현재 INF 파일 설정 또는 고급 속성 페이지를 통해 사용하지 않도록 설정된 기능이 포함되어야 합니다. HardwareCapabilities 값은 다음 플래그의 비트 OR입니다.

NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT

미니포트 어댑터는 헤더 및 데이터를 헤더-데이터 분할 지원 요구 사항을 충족하는 별도의 MDL로 분할할 수 있습니다.

NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV4_OPTIONS

미니포트 어댑터는 IPv4 옵션을 포함하는 IPv4 이더넷 프레임을 분할할 수 있습니다. 미니포트 어댑터는 일부 IPv4 옵션 분할을 지원하지만 다른 옵션은 분할하지 않을 수 있습니다.

참고 NIC는 지원되지 않는 IPv4 옵션을 포함하는 IPv4 프레임을 분할해서는 안 됩니다. IPv4 프레임이 분할된 경우 분할 프레임의 헤더 부분에는 전체 IPv4 헤더와 존재하는 모든 IPv4 옵션이 포함되어야 합니다.
 

NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV6_EXTENSION_HEADERS

미니포트 어댑터는 IPv6 확장 헤더를 포함하는 IPv6 이더넷 프레임을 분할할 수 있습니다. 미니포트 어댑터는 일부 IPv6 확장 헤더를 지원하지만 다른 헤더는 지원하지 않을 수 있습니다.

참고 NIC는 지원되지 않는 IPv6 확장 헤더를 포함하는 IPv6 프레임을 분할해서는 안 됩니다. IPv6 프레임이 분할된 경우 분할 프레임의 헤더 부분에는 전체 IPv6 헤더와 존재하는 모든 IPv6 확장 헤더가 포함되어야 합니다.
 

NDIS_HD_SPLIT_CAPS_SUPPORTS_TCP_OPTIONS

미니포트 어댑터는 타임스탬프 옵션 외에도 TCP 프레임을 다른 TCP 옵션과 분할할 수 있습니다. 미니포트 어댑터는 일부 TCP 옵션을 지원할 수 있으며 다른 옵션은 지원하지 않습니다.

참고 프레임의 유일한 TCP 옵션이 타임스탬프 옵션인 경우 데이터 분할 공급자는 프레임을 분할할 수 있어야 합니다.
 
참고 TCP 헤더에 지원되지 않는 TCP 옵션이 포함된 경우 NIC는 TCP 헤더의 시작 부분에서 프레임을 분할하거나 프레임을 분할해서는 안 됩니다.
 

CurrentCapabilities

미니포트 어댑터가 지원하는 현재 헤더-데이터 분할 기능입니다. 미니포트 드라이버는 HardwareCapabilities 멤버에 대해 정의된 것과 동일한 플래그를 사용합니다. 이 경우 플래그는 현재 구성 설정에 따라 달라지는 현재 기능을 나타내도록 설정됩니다.

HDSplitFlags

미니포트 어댑터에 대한 헤더 데이터 분할의 상태 제어하는 플래그 집합입니다. 미니포트 드라이버는 를 호출하기 전에 이 멤버를 0으로 설정해야 합니다. NdisMSetMiniportAttributes 함수입니다. NdisMSetMiniportAttributes가 성공적으로 반환되면 드라이버는 플래그를 검사 그에 따라 하드웨어를 구성해야 합니다. NDIS는 다음 플래그의 비트 OR로 이 멤버를 설정합니다.

NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT

이 플래그가 설정된 경우 미니포트 드라이버는 하드웨어에서 헤더 데이터 분할을 사용하도록 설정해야 합니다. 그렇지 않으면 헤더-데이터 분할을 사용할 수 없습니다. 컴퓨터에서 헤더 데이터 분할을 사용하고 미니포트 드라이버도 CurrentCapabilities 멤버에서 NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT 플래그를 설정하는 경우 NDIS는 NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT 설정합니다.

BackfillSize

분할 프레임의 데이터 부분에 대한 백필 크기(바이트)입니다. 미니포트 드라이버를 설정해야 합니다.
NdisMSetMiniportAttributes를 호출하기 전에 BackfillSize를 0으로 설정합니다. 미니포트 드라이버가 분할 프레임에 대한 데이터 부분에 백필 스토리지를 미리 할당해야 하는 경우 NDIS는 이 멤버를 설정합니다. NdisMSetMiniportAttributes가 성공적으로 반환되면 드라이버는 NDIS가 설정한 BackfillSize 값을 사용하여 데이터 버퍼를 미리 할당해야 합니다.

MaxHeaderSize

분할 프레임의 헤더 부분에 대한 최대 크기(바이트)입니다. 미니포트 드라이버는 NdisMSetMiniportAttributes를 호출하기 전에 MaxHeaderSize를 0으로 설정해야 합니다. NDIS는 이 멤버를 분할 프레임의 헤더 버퍼에 대한 최대 크기로 설정합니다. NdisMSetMiniportAttributes가 성공적으로 반환되면 드라이버는 NDIS에서 제공한 값을 사용해야 합니다.

참고 IPv4 옵션, IPSec 헤더 또는 IPv6 확장 헤더가 있어 헤더 길이가 MaxHeaderSize 를 초과하는 경우 프레임을 분할하면 안 됩니다. TCP 헤더, TCP 옵션 또는 UDP 헤더가 있기 때문에 TCP 또는 UDP 헤더를 포함하는 헤더가 MaxHeaderSize 를 초과하는 경우 NIC는 상층 프로토콜 헤더의 시작 부분에서 프레임을 분할하거나 프레임을 분할해서는 안 됩니다.
 

설명

헤더-데이터 분할을 지원하기 위해 미니포트 드라이버는 포인터를 에 전달합니다.MiniportAttributes 매개 변수에 구조 NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES NdisMSetMiniportAttributes 함수입니다. NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES HDSplitAttributes 멤버는 NDIS_HD_SPLIT_ATTRIBUTES 구조체에 대한 포인터를 포함합니다. 미니포트 드라이버는 초기화 중에 MiniportInitializeEx 함수에서 NdisMSetMiniportAttributes를 호출합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.1 이상에서 지원됩니다.
머리글 ndis.h(Ndis.h 포함)

추가 정보

MiniportInitializeEx

NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES

NDIS_OBJECT_HEADER

NdisMSetMiniportAttributes