0.NDSPI接口-provider实例化

1. 版本2.0

NetworkDirect架构为应用程序开发人员提供了一套网络接口,利用这套接口可以完成应用程序之间的零拷贝数据传输,I/O内核旁路的发送生成和完成处理,以及单向的数据传输操作。NetworkDirect服务提供者接口(SPI)定义了NetworkDirect提供者(Provider)实现的接口,用于向应用程序暴露其硬件功能。

2. NDSPI模型

NetworkDirect客户端应用程序使用组件对象模型(COM)接口与提供商通信。NetworkDirect客户端应用程序只使用核心的COM编程模型,而不是COM运行时。
COM接口通过IUnknown::QueryInterface方法提供了灵活的可扩展性,允许提供者返回他们想要提供的任何其它接口,从而轻松地向外暴露特定的硬件特性。NetworkDirect提供商(Provider)不会在系统中注册他们的对象,因为他们不是真正的COM对象。

在NetworkDirect SPI体系结构中不支持封送(marshaling)处理,提供者公开的COM接口总是在进程内实例化。这个模型类似于Windows驱动程序框架-用户模式驱动程序框架(UMDF)所使用的驱动程序模型。
NDSPI框架定义了如下的接口:

  • IND2Provider
    表示一个服务提供者。IND2Adapter对象通过IND2Provider::OpenAdapter方法实例化。
  • IND2Overlapped
    用于执行重叠(overlapped)IO对象的基类。
  • IND2Adapter
    服务提供商(Provider)硬件适配器实例的接口。
  • IND2CompletionQueue

你可能感兴趣的:(windows,RDMA,网络,windows,c++)