다음을 통해 공유


네트워크 데이터 구조

네트워크 데이터는 네트워크를 통해 전송되거나 수신되는 데이터 패킷으로 구성됩니다. NDIS는 이러한 데이터를 설명하고 구성하는 데이터 구조를 제공합니다. NDIS 6.0 이상에 대한 기본 네트워크 데이터 구조는 다음과 같습니다.

다음 그림에서는 이러한 구조체 간의 관계를 보여 줍니다.

NET_BUFFER, NET_BUFFER_LIST 및 NET_BUFFER_LIST_CONTEXT 포함한 NDIS 6.0 네트워크 데이터 구조를 보여 주는 다이어그램

NDIS 6.0 이상에서 NET_BUFFER 네트워크 데이터를 패키징하기 위한 기본 구성 요소입니다. 각 NET_BUFFER 구조에는 MDL 체인이 있습니다. MDL은 데이터 버퍼의 주소를 NET_BUFFER 구조가 지정한 데이터 공간에 매핑합니다. 이 데이터 매핑은 NDIS 5의 MDL 체인과 동일합니다. x 및 이전 드라이버는 NDIS_PACKET 구조에서 사용합니다. NDIS는 MDL 체인을 조작하는 함수를 제공합니다.

여러 NET_BUFFER 구조체를 NET_BUFFER_LIST 구조체에 연결할 수 있습니다. NET_BUFFER 구조체는 NULL로 종료된 singly 연결된 목록으로 구성됩니다. NET_BUFFER_LIST 구조체 또는 NDIS를 시작하는 드라이버만 연결된 목록을 직접 수정하여 NET_BUFFER 구조를 삽입하고 삭제해야 합니다.

NET_BUFFER LIST 구조에는 목록에 연결된 모든 NET_BUFFER 구조를 설명하는 정보가 포함되어 있습니다. 드라이버에 컨텍스트 정보에 대한 추가 공간이 필요한 경우 드라이버는 이러한 정보를 NET_BUFFER_LIST_CONTEXT 구조에 저장할 수 있습니다. NDIS는 NET_BUFFER_LIST_CONTEXT 구조의 데이터를 할당, 해제 및 액세스하는 함수를 제공합니다.

여러 NET_BUFFER_LIST 구조체를 연결하여 NET_BUFFER_LIST 구조 목록을 만들 수 있습니다. NET_BUFFER_LIST 구조체는 NULL로 종료된 singly 연결된 목록으로 구성됩니다. 드라이버는 연결된 목록을 직접 수정하여 NET_BUFFER_LIST 구조를 삽입하고 삭제할 수 있습니다.

NET_BUFFER

NET_BUFFER 구조체

NET_BUFFER LIST

NET_BUFFER_LIST 구조체

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_CONTEXT 구조체