NDIS VMQ 실시간 마이그레이션 지원
실시간 마이그레이션을 지원하기 위해 어떤 명령이나 보류 중인 I/O 경계에서 VM(가상 머신)을 일시 중지할 수 있습니다. 즉, VM이 보류 중인 수신 요청을 완료하지 못할 수 있습니다. 따라서 네트워크 VSP(가상 서비스 공급자)는 수신된 모든 패킷을 VM이 반환하지 않은 기본 네트워크 어댑터에 반환합니다.
참고 Hyper-V에서 자식 파티션을 VM이라고도 합니다.
VM이 다른 호스트에서 다시 시작되면 새 호스트의 네트워크 VSP는 다시 시작된 VM이 반환하는 수신 패킷을 처리하고 미니포트 드라이버의 새 기본으로 전달하지 않습니다. 마이그레이션이 완료되면 VM과 연결된 수신 큐가 해제되고 다른 VM에 다시 사용할 수 있습니다.
참고 새 네트워크 어댑터가 VMQ를 지원하지 않을 수 있습니다.
NDIS가 VMQ 수신 큐를 해제하도록 미니포트 드라이버를 요청하는 경우 다음 단계를 수행합니다.
네트워크 어댑터는 수신 큐와 연결된 버퍼를 수신하기 위해 데이터의 DMA 전송을 중지하고, 그 후에는 큐가 DMA 중지됨 상태로 전환되어야 합니다. 네트워크 어댑터가 수신 큐에서 마지막 집합 필터를 지우는 OID_RECEIVE_FILTER_CLEAR_FILTER OID 요청을 받았을 때 DMA 작업을 중지했을 수 있습니다.
미니포트 드라이버는 DMA 전송이 중지되었음을 NDIS에 알리기 위해 NdisReceiveQueueOperationalStateDmaStopped로 설정된 NDIS_RECEIVE_QUEUE_STATE 구조의 QueueState 멤버를 사용하여 NDIS_STATUS_RECEIVE_QUEUE_STATE 상태 표시를 생성합니다.
미니포트 드라이버는 해당 큐가 미니포트 드라이버로 반환될 때까지 표시된 모든 수신 패킷을 기다립니다.
미니포트 드라이버는 NdisFreeSharedMemory를 호출하여 큐와 연결된 네트워크 어댑터의 수신 버퍼에 할당된 모든 공유 메모리를 해제합니다.
미니포트 드라이버는 OID_RECEIVE_FILTER_FREE_QUEUE OID 요청을 완료하여 수신 큐를 해제합니다.
큐 상태에 대한 자세한 내용은 NDIS VM 큐 상태를 참조하세요.