连接引擎管理
在 RDBSS 中,连接引擎旨在尽可能贴近映射和模拟 TDI 规范。 这提供了一种有效的机制,可以充分利用网络微型重定向程序使用的基础 TDI 实现。
虽然 RDBSS 连接引擎会抽象化 TDI,但网络重定向程序也可以直接与 TDI 通信,而不是使用这些 RDBSS 连接引擎例程。 为 TDI 提供包装器的现有 RDBSS 连接引擎例程是为支持 Microsoft Networks 而开发的,因此它们非常以 Windows 为中心,可能不适用于其他网络控制器。 此外,RDBSS 中的连接引擎例程将从 Windows Server 2003 之后发布的 Windows 操作系统中删除。 将来,每个网络重定向程序将负责开发 (TDI 或其他一些传输) 所需的连接引擎例程。 例如,WebDAV 重定向程序可以与某些用户模式反射器进程通信,以 (标准 TCP/IP) 而不是 TDI 发送 HTTP 数据包。
RDBSS 连接引擎例程处理以下实体:
传输
传输地址
传输连接
连接上的虚拟线路
传输是对任何系统上各种传输服务提供程序的绑定。 传输地址是本地连接终结点。 这些连接是终结点之间的传输连接。 每个连接封装许多虚拟线路, (通常为一个) 。
以下重要数据结构由与 RDBSS 关联的各种连接引擎例程创建和操作:
RXCE_TRANSPORT -- 封装传输的所有参数
RXCE_ADDRESS -- 封装传输地址的所有参数
RXCE_CONNECTION - 封装传输连接的所有参数
RXCE_VC - 封装传输连接上虚拟线路的所有参数
网络微型重定向程序驱动程序可以使用这些数据结构,并调用为每种类型提供的例程来生成和拆解连接引擎部分。 这些例程不会分配或释放与这些结构关联的内存。 这为微型重定向程序驱动程序提供了一种灵活的机制,用于管理这些连接引擎数据结构的实例。
上述四种连接引擎类型在每个数据结构的开头都标记有一个特殊的RXCE_SIGNATURE签名,RDBSS 广泛使用该签名进行验证。
RDBSS 提供网络微型重定向程序驱动程序可以使用的以下连接引擎例程。
例程所返回的值 | 说明 |
---|---|
此例程分配供连接引擎使用的 IRP,并将 MDL 与 IRP 相关联。 此例程仅在 Windows XP 上可用。 |
|
此例程将传输地址与传输绑定相关联。 |
|
此例程在本地 RDBSS 连接地址和给定的远程地址之间建立连接。 应在系统工作线程的上下文中调用此例程。 |
|
此例程在本地 RDBSS 连接地址和给定的远程地址之间建立连接,并支持多种传输。 指定了一组本地地址,此例程尝试通过与本地地址关联的所有传输连接到目标服务器。 根据连接选项选择一个连接作为优胜者。 必须在系统工作线程的上下文中调用此例程。 |
|
此例程将 RDBSS 传输绑定到指定的传输名称。 |
|
此例程将虚拟线路添加到指定的连接。 |
|
此例程取消以前发出的连接请求。 请注意,此例程当前未实现。 |
|
此例程释放连接引擎使用的 IRP。 此例程仅在 Windows XP 上可用。 |
|
此例程在虚拟线路上启动断开连接。 必须在系统工作线程的上下文中调用此例程。 |
|
此例程返回给定传输的ADAPTER_STATUS结构。 |
|
此例程查询与连接相关的信息。 |
|
此例程返回有关给定传输的连接计数和服务质量的传输信息。 |
|
此例程沿虚拟线路上的指定连接发送 TSDU。 |
|
此例程将 TSDU 发送到指定的传输地址。 |
|
此例程从传输绑定中删除传输地址。 |
|
此例程会断开给定的连接。 |
|
此例程与指定的传输取消绑定。 |
|
此例程会断开虚拟连接。 |
注意 Windows Vista 之后的 Microsoft Windows 版本将不支持 TDI。 请改用 Windows 筛选平台 或 Winsock 内核 。