连接引擎管理

在 RDBSS 中,连接引擎旨在尽可能接近地映射和模拟 TDI 规范。 该机制提供了一种有效的方式,可以充分利用底层 TDI 实现供网络小型重定向器使用。

虽然 RDBSS 连接引擎执行抽象 TDI,但网络重定向程序也可以直接与 TDI 通信,而不是使用这些 RDBSS 连接引擎例程。 为 TDI 提供封装器的现有 RDBSS 连接引擎例程已开发为支持 Microsoft Networks,因此它们非常以 Windows 为中心,可能不适合其他网络管理程序。 此外,RDBSS 中的连接引擎例程将从 Windows Server 2003 之后发布的 Windows作系统中删除。 将来,每个网络重定向程序将负责开发所需的连接引擎例程(到 TDI 或其他一些传输)。 例如,WebDAV 重定向程序可以与某些用户模式反射器进程通信,以发送 HTTP 数据包(标准 TCP/IP),而不是 TDI。

RDBSS 连接引擎例程处理以下实体:

  • 运输工具

  • 传输地址

  • 传输连接

  • 连接上的虚拟线路

传输与任何系统上的各种传输服务提供商绑定。 传输地址是本地连接终结点。 连接是终结点之间的传输连接。 每个连接封装了许多虚拟线路(通常为一条)。

以下重要数据结构由与 RDBSS 关联的各种连接引擎例程创建和操作:

  • RXCE_TRANSPORT封装了传输的所有参数

  • RXCE_ADDRESS封装传输地址的所有参数

  • RXCE_CONNECTION封装所有传输连接参数

  • RXCE_VC封装了传输连接中虚拟电路的所有参数

网络微型重定向程序驱动程序可以使用这些数据结构,并调用为每个类型提供的例程来生成和拆除连接引擎部分。 这些例程不分配或释放与这些结构关联的内存。 这为微型重定向程序驱动程序提供了一种灵活的机制,用于管理这些连接引擎数据结构的实例。

上面所述的四种连接引擎类型在每个数据结构的开头都会标记一个特殊的 RXCE_SIGNATURE 签名,该签名被 RDBSS 广泛用于验证。

RDBSS 提供以下连接引擎例程,可供网络微型重定向程序驱动程序使用。

Routine DESCRIPTION

RxCeAllocateIrpWithMDL

此例程分配 IRP 供连接引擎使用,并将 MDL 与 IRP 相关联。

此例程仅在 Windows XP 上可用。

RxCeBuildAddress

此例程将传输地址与传输绑定相关联。

RxCeBuildConnection

此例程在本地 RDBSS 连接地址和给定的远程地址之间建立连接。 应在系统工作线程的上下文中调用此例程。

RxCe通过多重传输建立连接

此例程在本地 RDBSS 连接地址与给定的远程地址之间建立连接,并支持多个传输。 指定了一组本地地址,此例程尝试通过与本地地址关联的所有传输连接到目标服务器。 根据连接选项,选择一个连接作为优胜者。 必须在系统工作线程的上下文中调用此例程。

RxCeBuildTransport

此例程将 RDBSS 传输绑定到指定的传输名称。

RxCeBuildVC

此例程将虚拟线路添加到指定的连接。

RxCeCancelConnectRequest

此例程取消以前颁发的连接请求。

请注意,此例程当前未实现。

RxCeFreeIrp

此例程释放连接引擎使用的 IRP。

此例程仅在 Windows XP 上可用。

RxCeInitiateVCDisconnect

此例程在虚拟线路上启动断开连接。 必须在系统工作线程的上下文中调用此例程。

RxCeQueryAdapterStatus

此例程返回给定传输的ADAPTER_STATUS结构。

RxCeQueryInformation

此例程查询与连接相关的信息。

RxCeQueryTransportInformation

此例程返回有关给定传输的连接计数和服务质量的传输信息。

RxCeSend

此例程沿虚拟线路上的指定连接发送 TSDU。

RxCeSendDatagram

此例程将 TSDU 发送到指定的传输地址。

RxCeTearDownAddress

此例程从传输绑定中删除传输地址。

RxCeTearDownConnection

此例程将断开给定的连接。

RxCeTearDownTransport

此例程从指定的传输中取消绑定。

RxCeTearDownVC

此例程会拆毁虚拟连接。

注意,在 Windows Vista 之后,Microsoft Windows 版本中不支持 TDI。 请改用 Windows 筛选平台Winsock 内核