структура NET_BUFFER_LIST_CONTEXT (ndis/nbl.h)
Структура NET_BUFFER_LIST_CONTEXT сохраняет сведения о контексте для структуры NET_BUFFER_LIST.
Синтаксис
typedef struct _NET_BUFFER_LIST_CONTEXT {
NET_BUFFER_LIST_CONTEXT *Next;
USHORT Size;
USHORT Offset;
UCHAR ContextData[];
} NET_BUFFER_LIST_CONTEXT, *PNET_BUFFER_LIST_CONTEXT;
Члены
Next
Указатель на следующую NET_BUFFER_LIST_CONTEXT структуру в связанном списке NET_BUFFER_LIST_CONTEXT структур.
Size
Размер в байтах всего пространства контекста в структуре NET_BUFFER_LIST_CONTEXT, включая используемое и неиспользуемое пространство контекста.
Offset
Смещение в байтах с начала буфера данных контекста до начала контекстных данных в структуре NET_BUFFER_LIST_CONTEXT. Элемент Offset также указывает размер в байтах неиспользуемого пространства контекста в структуре NET_BUFFER_LIST_CONTEXT.
ContextData
Буфер данных контекста. Данные контекста могут содержать любые сведения, необходимые драйверу.
Замечания
Каждая NET_BUFFER_LIST структура может включать предварительно размещенную NET_BUFFER_LIST_CONTEXT структуру. Поскольку структура NET_BUFFER_LIST перемещается по стеку драйверов, связанный список структур NET_BUFFER_LIST_CONTEXT может расшириться для размещения дополнительного пространства данных для каждого водителя.
Драйверы должны использовать следующие макросы и функции NDIS для доступа к элементам в NET_BUFFER_LIST_CONTEXT структуре и управления ими.
- NdisAllocateNetBufferListContext
- NdisFreeNetBufferListContext
- NET_BUFFER_LIST_CONTEXT_DATA_START
- NET_BUFFER_LIST_CONTEXT_DATA_SIZE
Драйверы NDIS вызывают функцию NdisAllocateNetBufferListContext для выделения непрерывного буферного пространства в структуре NET_BUFFER_LIST_CONTEXT. При необходимости NDIS выделяет новую структуру NET_BUFFER_LIST_CONTEXT с дополнительным пространством для выполнения запроса. Драйверы NDIS вызывают функцию NdisFreeNetBufferListContext, чтобы освободить буферное пространство.
Использование NET_BUFFER_LIST_CONTEXT_DATA_SIZE макрос для получения размера используемого пространства контекста. Использование NET_BUFFER_LIST_CONTEXT_DATA_START макрос, чтобы получить начальный адрес используемого пространства контекста.
Дополнительные сведения об использовании чистых буферов см. в разделе NET_BUFFER архитектура.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Поддерживается в NDIS 6.0 и более поздних версиях. |
заголовка | ndis/nbl.h (include ndis.h) |