Поделиться через


структура 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 , драйвер должен задать для элемента Revision элемента Header следующее значение:

NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1

Исходная версия для NDIS 6.0.

Задайте для элемента Размер значение NDIS_SIZEOF_NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1.

ProtocolId

Тип вызывающего объекта. Драйверы miniport, filter и intermediate устанавливают для этого поля нулевое значение (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

Размер в байтах предварительно выделенного NET_BUFFER_LIST_CONTEXT данных структуры, которые должны быть предоставлены NDIS для NET_BUFFER_LIST структур в этом пуле. ContextSize должен быть кратным значению, определенному MEMORY_ALLOCATION_ALIGNMENT.

PoolTag

Тег пула ядра, который вызывающий объект использует при выделении NET_BUFFER_LIST структур из этого пула. Тег — это строка, разделенная одиночными кавычками и длиной до четырех символов, обычно указанная в обратном порядке. Тег пула ядра помогает 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 должен иметь нулевое значение.

Если dataSize не равно нулю, fAllocateNetBuffer должно иметь значение TRUE. Это приводит к тому, что NDIS выделяет структуру NET_BUFFER с буфером данных указанного размера.

Если DataSize равно нулю, а fAllocateNetBuffer имеет значение TRUE, NDIS выделяет структуру NET_BUFFER , но не буфер данных.

Параметр Parameters функции NdisAllocateNetBufferListPool содержит указатель на структуру NET_BUFFER_LIST_POOL_PARAMETERS .

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Верхняя часть ndis/nblapi.h (включая ndis.h)

См. также раздел

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_DATA

NdisAllocateNetBufferListPool