网络直接内核提供程序接口 (NDKPI) 概述

网络直接内核提供程序接口 (NDKPI) 是 NDIS 的扩展,它允许 IHV 在网络适配器中提供内核模式远程直接内存访问 (RDMA) 支持, (也称为 RNIC) 。 若要公开适配器的 RDMA 功能,IHV 必须实现 NDKPI 参考中定义的 NDKPI 接口。

NDKPI 和 RDMA

NIC 供应商将 RDMA 实现为软件、固件和硬件的组合。 硬件和固件部分是提供 NDK/RDMA 功能的网络适配器。 这种类型的适配器也称为已启用 RDMA 的 NIC (RNIC) 。 软件部分是支持 NDK 的微型端口驱动程序,可实现 NDKPI 接口。

RDMA 的 Windows 实现称为网络直通 (ND) 。 内核部分称为网络直接内核 (NDK) 。

NDK 提供商必须通过分配给支持 NDK 的微型端口适配器的 IPv4 和 IPv6 地址支持网络直接连接。

有关 RDMA 的详细信息,请参阅 RDMA 上的后台读取

NDK 提供程序

NDK 提供程序是实现 NDKPI 接口的微型端口驱动程序。

NDK 提供程序由 PnP 管理器加载和初始化。 有关详细信息,请参阅 初始化NDK-Capable微型端口驱动程序初始化 NDK 微型端口适配器

加载并初始化 NDK 提供程序后,即可处理来自 NDK 使用者的请求。 这些请求作为对提供程序函数的调用到达。

处理来自 NDK 使用者的请求时,提供程序可以调用使用者的 NDK 回调函数。 这些记录在 NDKPI 使用者回调函数中。

NDK 提供程序必须实现 NDKPI 参考中记录的 NDKPI 接口的所有元素, NDKPI 使用者回调函数除外。

NDK 使用者

NDK 使用者是内核模式 Windows 组件,例如 SMB 服务器和客户端。

注意 本文档不讨论如何实现 NDK 使用者。 DDI) (NDKPI 使用者设备驱动程序接口是一个专有的 Windows 内部接口。

NDK 使用者调用提供程序的 NdkOpenAdapter (OPEN_NDK_ADAPTER_HANDLER) 回调函数来创建适配器对象, NdkCloseAdapter (NDK_FN_CLOSE_OBJECT) 将其关闭。 提供程序创建适配器对象后,使用者会调用其他提供程序回调函数来创建其他 NDK 对象。

NDK 使用者实现 由 NDK 提供程序调用的 NDKPI 使用者回调函数