Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Начиная с версии 24H2 Windows 11, NetAdapterCx позволяет писать драйвер сетевого адаптера для User-Mode Driver Framework (UMDF). API UMDF в NetAdapterCx соответствуют версиям KMDF, что позволяет преобразовать драйвер клиента на основе KMDF в UMDF без изменений кода.
Преимущества драйверов NetAdapterCx в пользовательском режиме
Создание драйвера UMDF NetAdapterCx обеспечивает следующие преимущества:
улучшенная стабильность системы: драйвер пользовательского режима может получить доступ только к адресной области своего процесса. Если происходит сбой, это не влияет на систему. Драйвер может перезапускаться автоматически, быстро восстанавливая подключение.
улучшенная безопасность: приложения пользовательского режима не могут напрямую обращаться к критически важным системным ресурсам или выполнять привилегированные инструкции. Таким образом, любые нарушения безопасности драйверов не скомпрометруют целостность ядра.
упрощенной разработки: драйверы пользовательского режима могут улучшить рабочий процесс разработчика. Нет необходимости ждать перезагрузки тестовых компьютеров после сбоя, и развертывание может быть быстрее с помощью того же компьютера для разработки и тестирования.
повышение инноваций и гибкости: ограничения разработки драйверов в режиме ядра часто ограничивают инновации. Драйверы пользовательского режима предоставляют более гибкую среду, позволяя разработчикам использовать расширенные функции и средства, которые могут быть несовместимы или сложны для реализации в режиме ядра.
Ограничения пользовательского режима NetAdapterCx
Следующие функции в настоящее время доступны только для драйверов NetAdapterCx на основе KMDF.
Прямой доступ к памяти (DMA)
DMA еще не доступна в пользовательском режиме.
Драйверы UMDF должны задать значение NULLдля члена DmaCapabilities в NET_ADAPTER_RX_CAPABILITIES и NET_ADAPTER_TX_CAPABILITIES.
Выделение буфера на стороне клиента
Управление буфером сетевых данных на стороне клиента недоступно в пользовательском режиме. Драйверы UMDF NetAdapterCx должны полагаться на систему, чтобы выделить буферы данных для путей передачи и получения данных.
Когда драйвер UMDF рекламирует возможности буфера аппаратных данных с помощью структуры NET_ADAPTER_RX_CAPABILITIES, он должен:
- Установите NET_RX_FRAGMENT_BUFFER_ALLOCATION_MODE на NetRxFragmentBufferAllocationModeSystem.
- Установите значение NET_RX_FRAGMENT_BUFFER_ATTACHMENT_MODE на NetRxFragmentBufferAttachmentModeSystem.
- Задайте для NET_MEMORY_MAPPING_REQUIREMENTзначение NetMemoryMappingRequirementNone.
Преобразование драйвера KMDF NetAdapterCx в UMDF
Чтобы работать в пользовательском режиме, драйвер клиента должен использовать только основные API WDF, которые являются частью UMDF. Например, драйвер клиента не должен использовать интерфейсы API , эксклюзивные для драйверов KMDF.
Чтобы преобразовать драйвер KMDF NetAdapterCx в UMDF, выполните действия, описанные в как преобразовать драйвер KMDF в драйвер UMDF 2.
Версии UMDF и KMDF NetAdapterCx имеют одинаковый основной номер версии .