사용자 모드 NetAdapterCx

Windows 11 버전 24H2부터 NetAdapterCx를 사용하면 UMDF(사용자 모드 드라이버 프레임워크) 네트워크 어댑터 드라이버를 작성할 수 있습니다. NetAdapterCx의 UMDF API는 KMDF 버전과 일치하므로 코드를 거의 또는 전혀 변경하지 않고 KMDF 기반 클라이언트 드라이버를 UMDF로 변환할 수 있습니다.

사용자 모드 NetAdapterCx 드라이버의 이점

UMDF NetAdapterCx 드라이버를 만들면 다음과 같은 이점이 제공됩니다.

  1. 향상된 시스템 안정성: 사용자 모드 드라이버는 프로세스의 주소 공간에만 액세스할 수 있습니다. 충돌하는 경우 시스템에 영향을 주지 않습니다. 드라이버는 자동으로 다시 시작하여 연결을 신속하게 복원할 수 있습니다.

  2. 향상된 보안: 사용자 모드 애플리케이션은 중요한 시스템 리소스에 직접 액세스하거나 권한 있는 지침을 실행할 수 없습니다. 따라서 드라이버 보안 위반이 커널의 무결성을 손상시키지 않습니다.

  3. 간소화된 개발: 사용자 모드 드라이버는 개발자의 워크플로를 향상시킬 수 있습니다. 충돌 후 테스트 머신이 다시 부팅될 때까지 기다릴 필요가 없으며, 개발 및 테스트에 동일한 컴퓨터를 사용하여 배포가 더 빨라질 수 있습니다.

  4. 향상된 혁신 및 유연성: 커널 모드 드라이버 개발 제약 조건은 종종 혁신을 제한합니다. 사용자 모드 드라이버는 보다 유연한 환경을 제공하므로 개발자는 커널 모드에서 구현하기 어려울 수 있는 고급 기능 및 도구를 사용할 수 있습니다.

사용자 모드 NetAdapterCx의 제한 사항

다음 기능은 현재 KMDF 기반 NetAdapterCx 드라이버에서만 사용할 수 있습니다.

DMA(직접 메모리 액세스)

DMA는 아직 사용자 모드에서 사용할 수 없습니다.

UMDF 드라이버는 NET_ADAPTER_RX_CAPABILITIES DmaCapabilities 멤버를 설정하고 NET_ADAPTER_TX_CAPABILITIES NULL설정해야 합니다.

클라이언트 쪽 버퍼 할당

클라이언트 쪽 네트워크 데이터 버퍼 관리는 사용자 모드에서 사용할 수 없습니다. UMDF NetAdapterCx 드라이버는 전송 및 수신 데이터 경로에 대한 데이터 버퍼를 할당하기 위해 시스템에 의존해야 합니다.

UMDF 드라이버가 NET_ADAPTER_RX_CAPABILITIES 구조를 사용하여 하드웨어 데이터 버퍼 기능을 보급하는 경우 다음을 수행해야 합니다.

KMDF NetAdapterCx 드라이버를 UMDF로 변환

사용자 모드에서 작동하려면 클라이언트 드라이버는 UMDF의 일부인 핵심 WDF API만 사용해야 합니다. 예를 들어 클라이언트 드라이버는 KMDF 드라이버 전용 API를 사용하면 안됩니다.

KMDF NetAdapterCx 드라이버를 UMDF로 변환하려면 KMDF 드라이버를 UMDF 2 드라이버로 변환하는 방법의 단계를 따릅니다.

NetAdapterCx의 UMDF 및 KMDF 버전은 동일한 주 버전 번호를 공유합니다.