NET_BUFFER_LIST_POOL_PARAMETERS 구조체(ndis/nblapi.h)

NET_BUFFER_LIST_POOL_PARAMETERS 구조체는 NET_BUFFER_LIST 구조체 풀에 대한 매개 변수를 정의합니다.

구문

typedef struct _NET_BUFFER_LIST_POOL_PARAMETERS {
  NDIS_OBJECT_HEADER Header;
  UCHAR              ProtocolId;
  BOOLEAN            fAllocateNetBuffer;
  USHORT             ContextSize;
  ULONG              PoolTag;
  ULONG              DataSize;
  ULONG              Flags;
} NET_BUFFER_LIST_POOL_PARAMETERS, *PNET_BUFFER_LIST_POOL_PARAMETERS;

멤버

Header

NET_BUFFER_LIST_POOL_PARAMETERS 구조체의 형식, 수정 버전 및 크기입니다. 이 멤버는 NDIS_OBJECT_HEADER 구조체로 형식이 지정됩니다.

미니포트 드라이버는 헤더Type 멤버를 NDIS_OBJECT_TYPE_DEFAULT 설정해야 합니다. NET_BUFFER_LIST_POOL_PARAMETERS 구조체의 버전을 지정하려면 드라이버가 HeaderRevision 멤버를 다음 값으로 설정해야 합니다.

NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1

NDIS 6.0의 원래 버전입니다.

Size 멤버를 NDIS_SIZEOF_NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1 설정합니다.

ProtocolId

호출자의 유형입니다. 미니포트, 필터 및 중간 드라이버는 이 필드를 0(NDIS_PROTOCOL_ID_DEFAULT)으로 설정합니다. 프로토콜 드라이버는 다음 값 중 하나를 사용합니다.

NDIS_PROTOCOL_ID_DEFAULT

기본 프로토콜 드라이버 식별자를 지정합니다.

NDIS_PROTOCOL_ID_TCP_IP

TCP/IP 프로토콜을 지정합니다.

NDIS_PROTOCOL_ID_IPX

IPX 프로토콜을 지정합니다.

NDIS_PROTOCOL_ID_NBF

NetBEUI 프로토콜을 지정합니다.

fAllocateNetBuffer

이 멤버가 TRUE로 설정된 경우 NDIS는 NET_BUFFER_LIST 구조의 풀을 할당합니다. 할당된 각 NET_BUFFER_LIST 구조체는 하나의 NET_BUFFER 구조체로 초기화됩니다.

이 멤버가 FALSE로 설정된 경우 NDIS는 NET_BUFFER_LIST 구조의 풀을 할당합니다. 할당된 각 NET_BUFFER_LIST 구조체는 NET_BUFFER 구조를 포함하도록 초기화되지 않습니다.

자세한 내용은 주의 섹션을 참조하세요.

ContextSize

NDIS가 이 풀의 NET_BUFFER_LIST 구조에 제공해야 하는 미리 할당된 NET_BUFFER_LIST_CONTEXT 구조 데이터의 크기(바이트)입니다. ContextSize는 MEMORY_ALLOCATION_ALIGNMENT 정의한 값의 배수여야 합니다.

PoolTag

호출자가 이 풀에서 NET_BUFFER_LIST 구조를 할당할 때 사용하는 커널 풀 태그입니다. 태그는 작은따옴표로 구분된 문자열이며, 일반적으로 역순으로 지정된 최대 4자입니다. 커널 풀 태그는 NDIS가 이 풀에서 할당된 NET_BUFFER_LIST 구조체의 소유자를 식별하는 데 도움이 됩니다.

DataSize

NET_BUFFER_LIST 풀과 연결된 데이터 버퍼의 기본 데이터 크기(바이트)입니다(있는 경우). NDIS는 이 값을 사용하여 연결된 NET_BUFFER 구조에 할당하는 모든 데이터 버퍼의 크기를 설정합니다.

자세한 내용은 주의 섹션을 참조하세요.

Flags

다음 플래그가 정의됩니다.

NET_BUFFER_LIST_POOL_FLAG_VERIFY 0x00000001

이 플래그가 설정된 경우 NDIS는 이 풀의 NET_BUFFER_LISTs 즉시 다시 사용하지 않습니다. 대신 할당은 해제될 때 액세스 권한 없음으로 표시되므로 드라이버가 사용 후 무료 버그를 검색할 수 있습니다.

설명

fAllocateNetBuffer가 FALSE로 설정된 경우 NDIS는 NET_BUFFER 구조를 할당하지 않으며 DataSize를 0으로 설정해야 합니다.

DataSize가 0이 아니면 fAllocateNetBuffer를 TRUE로 설정해야 합니다. 이로 인해 NDIS는 지정된 크기의 데이터 버퍼를 사용하여 NET_BUFFER 구조를 할당합니다.

DataSize가 0이고 fAllocateNetBufferTRUE이면 NDIS는 데이터 버퍼가 아닌 NET_BUFFER 구조를 할당합니다.

NdisAllocateNetBufferListPool 함수의 Parameters 매개 변수에는 NET_BUFFER_LIST_POOL_PARAMETERS 구조체에 대한 포인터가 포함되어 있습니다.

요구 사항

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

추가 정보

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_DATA

NdisAllocateNetBufferListPool