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


Обзор интерфейса поставщика ядра Network Direct (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 и инициализацииадаптера минипорта 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.