Поделиться через


Обзор сетевого интерфейса поставщика ядра (NDKPI)

Интерфейс поставщика сетевого ядра (NDKPI) — это расширение NDIS, которое позволяет IHV обеспечить поддержку удаленного прямого доступа к памяти (RDMA) в режиме ядра в сетевом адаптере (также называемом RNIC). Чтобы предоставить функциональность RDMA адаптера, IHV должен реализовать интерфейс NDKPI, как определено в справочнике по NDKPI.

NDKPI и RDMA

Поставщик сетевой карты реализует RDMA как сочетание программного обеспечения, встроенного ПО и оборудования. Часть оборудования и встроенного ПО — это сетевой адаптер, предоставляющий функциональные возможности NDK/RDMA. Этот тип адаптера также называется сетевой картой с поддержкой RDMA (RNIC). Программная часть — это драйвер мини-порта с поддержкой NDK, который реализует интерфейс NDKPI.

Реализация RDMA в Windows называется Network Direct (ND). Часть ядра называется сетевым ядром (NDK).

Поставщики NDK должны поддерживать прямое сетевое подключение через IPv4- и IPv6-адреса, назначенные адаптерам мини-портов с поддержкой NDK.

Дополнительные сведения о RDMA см. в разделе Фоновое чтение по RDMA.

Поставщик NDK

Поставщик NDK — это драйвер минипорта, реализующий интерфейс NDKPI.

Поставщик NDK загружается и инициализируется диспетчером PnP. Дополнительные сведения см. в разделах Инициализация драйвера NDK-Capable Miniport и Инициализация адаптера минипорта NDK.

После загрузки и инициализации поставщика NDK он готов к обработке запросов от потребителя NDK. Эти запросы поступают как вызовы функций поставщика.

При обработке запросов от потребителя NDK поставщик может вызывать функции обратного вызова NDK потребителя. Они описаны в разделе Функции обратного вызова потребителя NDKPI.

Поставщики NDK должны реализовывать все элементы интерфейса NDKPI, которые описаны в справочнике по NDKPI, за исключением функций обратного вызова потребителя NDKPI.

Потребитель NDK

Потребители NDK — это компоненты Windows в режиме ядра, такие как SMB-сервер и клиент.

Примечание В этой документации не рассматривается реализация потребителя NDK. Интерфейс драйвера устройства потребителя NDKPI (DDI) — это собственный внутренний интерфейс Windows.

Потребитель NDK вызывает функцию обратного вызова поставщика NdkOpenAdapter (OPEN_NDK_ADAPTER_HANDLER) для создания объекта адаптера и NdkCloseAdapter (NDK_FN_CLOSE_OBJECT), чтобы закрыть его. После того как поставщик создал объект адаптера, потребитель вызывает другие функции обратного вызова поставщика для создания дополнительных объектов NDK.

Потребители NDK реализуют функции обратного вызова потребителя NDKPI, которые вызываются поставщиками NDK.