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 구조체의 버전을 지정하려면 드라이버가 Header의 Revision 멤버를 다음 값으로 설정해야 합니다.
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이고 fAllocateNetBuffer가 TRUE이면 NDIS는 데이터 버퍼가 아닌 NET_BUFFER 구조를 할당합니다.
NdisAllocateNetBufferListPool 함수의 Parameters 매개 변수에는 NET_BUFFER_LIST_POOL_PARAMETERS 구조체에 대한 포인터가 포함되어 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.0 이상에서 지원됩니다. |
머리글 | ndis/nblapi.h(ndis.h 포함) |