структура 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 (включая ndis.h) |