Windows 2000 中的网络重定向程序设计

网络重定向器设计面临的一个重大挑战是,从用户启动的操作到低级别网络操作的相对复杂的转换,无论是在操作选择还是计时方面。 处理Windows I/O 系统、缓存管理器和内存管理器是一项相对复杂的任务。 在考虑可能适用于远程通信机制的各种缓冲模式(例如速度和可靠性可能有所不同的计算机网络)时,这尤其如此。 网络重定向器中这些缓冲操作的实现表示对功能进行大量投资,理想情况下,驱动程序可以共享和重复使用。

Windows 2000 引入了一个新的驱动程序模型, (通常称为微型重定向器体系结构,或基于分层或微型端口驱动程序方法的网络重定向器的 rdr2) 。 无需在每个驱动程序中重新实现用于缓冲和与 I/O 管理器和缓存管理器交互的复杂代码,而是提取了此大型代码块,并提供给所有潜在的网络重定向程序。 共享通用缓冲代码称为重定向驱动器缓冲子系统 (RDBSS) 。

下面显示了具有多个重定向器的此体系结构的模型。

diagram illustrating network redirector design in windows 2000.

此 RDBSS 设计更改提供以下几个优势:

  • 简化了为网络重定向程序编写内核驱动程序的过程,因为提供了处理 I/O 系统、缓存管理器和内存管理器所需的大量常见代码。

  • 根据为 Microsoft Networks 开发的缓冲算法和内核优化,向其他网络重定向程序驱动程序提供相当数量的性能改进。

  • 简化维护,因为只需开发和维护缓冲代码的一个副本。 在较旧的模型中,每个重定向器都需要一个副本。

  • 提供网络重定向程序特定于网络协议的组件的强封装,因此驱动程序开发人员可以专注于网络重定向器的这些方面,这些方面是唯一的,特定于其应用程序或产品。

  • 通过基于此分层方法提供分离,简化了网络重定向器的调试驱动程序。

RDBSS 模型已引入 Windows 2000。 此同一模型也用于 Windows Server 2003 和 Windows XP。