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 포함) |