다음을 통해 공유


네트워크 인터페이스 카드 지원

이 항목에서는 NDIS 미니포트 드라이버가 관리할 수 있는 NIC(네트워크 인터페이스 카드) 유형과 다양한 종류의 NIC가 드라이버가 네트워크 데이터를 전송하는 방식에 미치는 영향에 대해 설명합니다.

NIC의 중간 형식을 NDIS에 보고

NIC에 대한 중간 형식을 보고하기 위해 미니포트 드라이버는 NdisMSetMiniportAttributes 함수의 MiniportAttributes 매개 변수에 있는 NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 구조체에 대한 포인터를 전달합니다. 미니포트 드라이버는 초기화 중에 MiniportInitializeEx 함수에서 NdisMSetMiniportAttributes를 호출합니다. 미니포트 드라이버는 NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 구조에서 등록 특성을 설정한 후 다른 특성을 설정하기 전에 MiniportAttributes 특성을 설정해야 합니다. MiniportAttributes 특성을 설정하는 것은 필수입니다. 드라이버는 MiniportAttributes 특성을 설정할 때 NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 구조체의 MediaType 멤버를 적절한 미디어 형식으로 설정합니다.

NDIS 프로토콜 드라이버가 NdisOpenAdapterEx 를 호출하여 지정된 미니포트 어댑터에 바인딩하는 경우 작동할 수 있는 중간 형식 목록을 제공합니다. NDIS는 미니포트 드라이버와 프로토콜 드라이버의 정보를 사용하여 바인딩을 설정합니다. 이 바인딩은 드라이버 스택을 위아래로 네트워크 데이터를 전송하는 경로를 제공합니다.

물리적 NIC

미니포트 어댑터를 초기화하고 네트워크 데이터를 보내고 받기 위해 미니포트 드라이버가 완료하는 단계는 다음과 같이 물리적 디바이스의 기능에 따라 달라질 수 있습니다.

  • NDIS-WDM NIC

    USB 기반 NIC와 같은 NDIS-WDM NIC를 사용하면 미니포트 드라이버가 DMA를 사용하여 메모리를 관리하는 방식은 NDIS에 중요하지 않으며 표시되지 않습니다.

  • 버스 master DMA NIC

    이러한 NIC는 호스트 CPU를 사용하지 않고 네트워크와 호스트 메모리 간의 데이터 전송을 관리하는 온보드 DMA 컨트롤러를 통해 호스트 메모리에 직접 액세스할 수 있습니다.

    보내기 위해 미니포트 드라이버는 나가는 버퍼를 매핑하도록 NIC를 설정합니다. 그런 다음 미니포트 드라이버로 인해 디바이스가 이 메모리에서 전송을 시작합니다. NIC DMA 컨트롤러는 공유 시스템 메모리의 데이터를 네트워크로 전송하고 전송이 완료되면 CPU를 중단합니다. 수신하기 위해 DMA 컨트롤러는 호스트에 인터럽트를 알리기 전에 들어오는 데이터를 호스트 메모리로 전송합니다.

    버스 master DMA NIC에는 일반적으로 미니포트 드라이버가 시스템 메모리의 버퍼 집합에 매핑하는 온보드 링 버퍼가 있습니다. 일반적으로 NIC는 여러 패킷을 효율적으로 처리하도록 프로그래밍할 수 있습니다. 이러한 NIC를 관리하는 미니포트 드라이버는 일반적으로 NIC가 여러 패킷을 효율적으로 처리하여 I/O 처리량을 향상시킬 수 있기 때문에 멀티패켓 송신 및 수신을 지원합니다.

  • 비버스마스터 DMA NIC

    현재 비버스마스터 DMA NIC에는 다음이 포함됩니다.

    • 시스템 DMA NIC

      이러한 NIC를 관리하는 미니포트 드라이버는 시스템 DMA 컨트롤러를 사용하여 네트워크 간 패킷 데이터 전송을 관리합니다. 데이터를 전송하려면 호스트 CPU의 협력이 필요합니다.

가상 NIC 및 미니포트

가상 머신에서 NDIS 미니포트 드라이버는 소프트웨어 전용 리소스를 가상 미니포트로 관리하거나 하드웨어 리소스를 나타내는 가상 NIC를 관리할 수 있습니다. 다음 표에서는 가상 미니포트와 가상 NIC 간의 차이점을 설명합니다.

attribute 가상 미니포트 가상 NIC
정의 소프트웨어 열거형 PnP 디바이스에 매핑되는 NDIS 미니포트 드라이버입니다. 호스트 OS 하이퍼바이저에서 관리하는 NIC입니다. 하이퍼바이저는 가상 머신에 하드웨어가 있다고 생각하게 만들지만 실제 세계에 실제로는 이러한 하드웨어가 존재하지 않습니다.
인터럽트 사용
DMA를 사용할 수 있습니다.
에 의해 생성되거나 제거됩니다... 게스트 OS 호스트 OS
게스트 VM 외부에서 연결할 수 있습니다.