NET_BUFFER_DATA 구조체(ndis/nbl.h)

NET_BUFFER_DATA 구조에는 NET_BUFFER 구조에 연결된 데이터 버퍼를 관리하기 위한 정보가 포함되어 있으며 NET_BUFFER 구조 목록에서 다음 NET_BUFFER 구조를 식별합니다.

구문

typedef struct _NET_BUFFER_DATA {
  NET_BUFFER             *Next;
  MDL                    *CurrentMdl;
  ULONG                  CurrentMdlOffset;
  NET_BUFFER_DATA_LENGTH NbDataLength;
  MDL                    *MdlChain;
  ULONG                  DataOffset;
} NET_BUFFER_DATA, *PNET_BUFFER_DATA;

멤버

Next

연결된 NET_BUFFER 구조 목록의 다음 NET_BUFFER 구조체에 대한 포인터입니다. 이 구조체가 목록의 마지막 NET_BUFFER 구조체인 경우 이 멤버는 NULL입니다.

CurrentMdl

현재 드라이버에서 사용 중인 첫 번째 MDL에 대한 포인터입니다. 이 멤버는 현재 드라이버에서 사용하지 않는 MDL을 건너뛰어 성능을 향상시키는 최적화를 제공합니다.

CurrentMdlOffset

CurrentMdl 멤버에 의해 지정된 MDL에서 사용된 데이터 공간의 시작 부분에 대한 오프셋(바이트)입니다.

NbDataLength

MDL 체인에서 사용된 데이터 공간의 길이(바이트)입니다. 최대 길이는 0xFFFFFFFF 바이트입니다.

MdlChain

데이터 버퍼를 매핑하는 연결된 MDL 목록에 대한 포인터입니다. 데이터 버퍼는 네트워크 데이터를 저장합니다.

DataOffset

MDL 체인의 시작부터 MDL 체인의 네트워크 데이터 시작까지의 오프셋(바이트)입니다. 또한 이 오프셋은 사용되지 않는 데이터 공간의 크기(바이트)이기도 합니다.

설명

NET_BUFFER_HEADER 구조에는 NET_BUFFER 구조체에 대한 데이터를 정의하는 NET_BUFFER_DATA 구조체가 포함되어 있습니다. NET_BUFFER_DATA 멤버에 액세스하려면 NdisRetreatNetBufferDataStart NdisAdvanceNetBufferDataStart 함수 및 다음 매크로:

NET_BUFFER_NEXT_NB

NET_BUFFER_FIRST_MDL

NET_BUFFER_DATA_OFFSET

NET_BUFFER_DATA_LENGTH

NET_BUFFER_CURRENT_MDL

NET_BUFFER_CURRENT_MDL_OFFSET
참고 C 및 C++ 컴파일러에서는 이러한 매크로에 대해 서로 다른 정의를 사용합니다. 매크로를 사용하지 않으면 컴파일러를 전환할 때 문제가 발생할 수 있습니다.
 

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
머리글 ndis/nbl.h(ndis.h 포함)

추가 정보

NET_BUFFER

NET_BUFFER_CURRENT_MDL

NET_BUFFER_CURRENT_MDL_OFFSET

NET_BUFFER_DATA_LENGTH

NET_BUFFER_DATA_OFFSET

NET_BUFFER_FIRST_MDL

NET_BUFFER_HEADER

NET_BUFFER_NEXT_NB

NdisAdvanceNetBufferDataStart NdisRetreatNetBufferDataStart