프로토콜 드라이버 및 필터 드라이버에서 Header-Data 분할 지원
NDIS 6.0 이상 프로토콜 드라이버 및 필터 드라이버는 인접하지 않은 버퍼의 헤더 및 데이터를 사용하여 수신 표시를 지원해야 합니다.
NET_BUFFER 구조에 단일 MDL만 있다고 가정해서는 안 됩니다. 프로토콜 드라이버 및 필터 드라이버는 헤더 데이터 분할 등록을 지원하기 위해 특정 작업을 수행할 필요가 없습니다. 그러나 드라이버 수신 처리 코드는 MDL 체인에서 둘 이상의 MDL을 처리해야 하며 다음 NDIS MDL 매크로를 사용하여 MDL 체인에 액세스해야 합니다.
분할 버퍼를 사용하면 NET_BUFFER 구조(NET_BUFFER_DATA 구조의 DataLength 멤버)와 연결된 데이터 길이가 여러 MDL로 분할됩니다. 예를 들어 프로토콜 드라이버가 첫 번째 MDL에서 전체 데이터 버퍼에 액세스하려고 하면 드라이버가 잘못된 데이터에 액세스할 수 있습니다.
참고 수신 표시 호출이 미니포트 드라이버로 반환되면 미니포트 드라이버는 헤더 MDL을 회수할 수 있습니다. 수신 표시 호출이 미니포트 드라이버로 반환된 후에는 오버리싱 드라이버 또는 해당 클라이언트가 헤더 MDL에 액세스해서는 안 됩니다. 이 제한은 미니포트 드라이버가 수신된 데이터를 NDIS_RECEIVE_FLAGS_RESOURCES 상태 나타내지 않는 경우에도 적용됩니다.