다음을 통해 공유


VMQ 전송 경로

전송 요청의 경우 오버리싱 드라이버는 NET_BUFFER_LIST_RECEIVE_QUEUE_ID 매크로를 사용하여 NetBufferListFilteringInfo OOB 정보를 사용하여 나가는 데이터에서 나가는 큐의 큐 식별자를 설정합니다. NetBufferListFilteringInfo 정보는 NDIS_NET_BUFFER_LIST_FILTERING_INFO 구조에 지정됩니다.

NDIS 드라이버는 NET_BUFFER_LIST_RECEIVE_QUEUE_ID 매크로를 사용하여 NET_BUFFER_LIST 구조의 큐 식별자를 설정하거나 가져올 수 있습니다. 큐 그룹에 둘 이상의 VM 큐가 포함된 경우 전송 패킷의 큐 식별자는 그룹에 있는 VM 큐의 큐 식별자로 설정될 수 있습니다.

프로토콜 드라이버는 NdisSendNetBufferLists 함수의 SendFlags 매개 변수에 NDIS_SEND_FLAGS_SINGLE_QUEUE 비트를 설정하여 호출의 모든 전송 NET_BUFFER_LIST 구조가 동일한 전송 큐에 대한 것임을 나타냅니다.

미니포트 드라이버는 NdisMSendNetBufferListsComplete 함수의 SendCompleteFlags 매개 변수에 NDIS_SEND_COMPLETE_FLAGS_SINGLE_QUEUE 비트를 설정하여 호출의 모든 NET_BUFFER_LISTs 동일한 전송 큐에 전송되었음을 나타냅니다.

필터 테스트에 대한 자세한 내용은 VMQ 필터 작업을 참조하세요.

참고 VMQ가 삭제되면(예: VM 실시간 마이그레이션 중) 미니포트 드라이버가 잘못된 QueueId 값이 포함된 NBL을 받을 수 있습니다. 이 경우 미니포트는 잘못된 큐 ID를 무시하고 대신 0(기본 큐)을 사용해야 합니다. QueueId는 NBL의 OOB 데이터의 NetBufferListFilteringInfo 부분에 있으며 NET_BUFFER_LIST_RECEIVE_QUEUE_ID 매크로를 사용하여 검색됩니다.