如何查找COM端口及其资源的数量?

时间:2014-01-01 12:46:23

标签: windows drivers windows-kernel

我正在Windows中为UART编写一个串行驱动程序,仅用于学习目的。更具体地说,在WDM中。 我将写出总线驱动程序和功能驱动程序。

目前我正在写公交车司机。所以我的问题是我可以在我的驱动程序中知道我的系统中有多少个串口,以便我可以从我的总线驱动程序中暴露出那么多PDO?并分配给每个端口的资源。我是否必须检查某种注册表或窗口将提供某种结构。

请帮帮我!!提前致谢

1 个答案:

答案 0 :(得分:1)

假设您的UART是PC的一部分,那么已经有一个总线驱动程序可以枚举它们。 ACPI.SYS从平台BIOS获取信息,其中包括UART等内置组件的数量和资源分配。

如果您正在为附加多端口串行板编写驱动程序,那么您需要查看该板的文档以确定如何找到UART的数量。它可能就像查看PCI产品ID一样简单,并且对于您所拥有的电路板类型具有硬编码计数。

当ACPI枚举设备时,将调用驱动程序的AddDevice例程以加载它,并且在处理PNP START消息时您将收到分配的资源。