我正在Windows中为UART编写串行驱动程序,只是为了学习目的。更具体地说,在 WDM 中。我将编写总线驱动程序和函数驱动程序。
目前我正在编写总线驱动程序。所以我的问题是我可以从哪里知道我的驱动程序中有多少个串行端口,以便我可以从我的总线驱动程序公开该数量的 PDO?以及分配给每个端口的资源。我是否必须检查某种注册表或窗口将提供某种结构。
请帮帮我!!提前致谢
假设您的UART是PC的一部分,已经有一个总线驱动程序可以枚举它们。 ACPI.SYS 从平台 BIOS 获取信息,其中包括内置组件(如 UART)的数量和资源分配。
如果要为附加多端口串行板编写驱动程序,则需要查看主板的文档以确定如何查找 UART 的数量。 这可能就像查看 PCI 产品 ID 并为您拥有的主板类型提供硬编码计数一样简单。
当 ACPI 枚举设备时,将调用驱动程序的 AddDevice 例程以在其上加载,并且在处理 PNP START 消息时,你将收到分配的资源。