데이터 패키징은 NDIS 6.0에서 다시 디자인되었습니다. NDIS_PACKET 구조를 기반으로 하는 송신 및 수신 아키텍처는 NET_BUFFER 및 NET_BUFFER_LIST 구조를 기반으로 하는 아키텍처로 대체되었습니다. NET_BUFFER 구조체는 NDIS_PACKET 구조체와 동일한 기능입니다. NET_BUFFER 구조는 네트워크 데이터에 대한 버퍼(MDL 체인)와 NDIS, 프로토콜 드라이버 및 미니포트 드라이버를 위한 예약된 공간을 지정합니다. NET_BUFFER 구조체는 NET_BUFFER_LIST 구조로 설명된 목록에서 함께 연결할 수 있습니다. 또한 NET_BUFFER_LIST 구조는 목록의 모든 NET_BUFFER 구조에 적용되는 OOB(대역 외) 데이터에 대한 스토리지를 제공합니다.
TCP/IP 전송 및 Winsock을 비롯한 Microsoft 차세대 네트워크 드라이버 스택의 모든 구성 요소는 NET_BUFFER 데이터 패키징을 사용합니다. 드라이버 스택 전체에서 균일한 데이터 패키징은 데이터를 다시 패키징할 필요가 없으며 데이터 처리를 간소화하며 함수 호출 수를 줄입니다.
NDIS_PACKET 구조를 사용하는 이전 드라이버를 수용하기 위해 NDIS 6.0은 NDIS_PACKET 구조를 NET_BUFFER 구조체로 변환하고 그 반대의 경우도 마찬가지입니다. 이 변환은 NDIS 드라이버에 투명합니다.
NDIS는 더 높은 수준의 드라이버에 드라이버의 데이터 백필 요구 사항을 전파합니다. 데이터를 보내기 위해 NET_BUFFER 및 NET_BUFFER_LIST 구조를 할당하는 경우 상위 수준 드라이버는 스택의 모든 하위 수준 드라이버를 수용할 수 있는 충분한 데이터 공간을 할당합니다. 따라서 하위 수준 드라이버는 레이어별 헤더를 수용하기 위해 추가 버퍼 공간을 할당할 필요가 없습니다. 대신 이 목적을 위해 미리 할당된 백필 공간을 사용할 수 있습니다.
NET_BUFFER 아키텍처에 대한 자세한 내용은 NET_BUFFER 아키텍처참조하세요.