Device driver 程序如何查找和调用设备驱动程序';日常工作?

Device driver 程序如何查找和调用设备驱动程序';日常工作?,device-driver,computer-architecture,Device Driver,Computer Architecture,假设操作系统已经编写、编译和加载了一个设备驱动程序 要调用它的子例程,我假设必须知道设备驱动程序提供了哪些子例程(我想应该知道它的接口/API)。所以,我还假设我们也知道这个接口(如果我错了,请纠正我) 现在的问题是我们应该如何找到这些子程序的入口点来调用它们;或者更好地说调用设备驱动程序子程序的确切过程是什么 我猜这应该类似于加载一个动态库,其中链接器最终将子例程的地址放入调用程序的地址空间 注意 我对这个领域完全陌生,因此非常感谢您提供的任何信息/链接/说明。这方面的详细信息是特定于平台的

假设操作系统已经编写、编译和加载了一个设备驱动程序

要调用它的子例程,我假设必须知道设备驱动程序提供了哪些子例程(我想应该知道它的接口/API)。所以,我还假设我们也知道这个接口(如果我错了,请纠正我)

现在的问题是我们应该如何找到这些子程序的入口点来调用它们;或者更好地说调用设备驱动程序子程序的确切过程是什么

我猜这应该类似于加载一个动态库,其中链接器最终将子例程的地址放入调用程序的地址空间

注意


我对这个领域完全陌生,因此非常感谢您提供的任何信息/链接/说明。

这方面的详细信息是特定于平台的

对于真正的设备驱动程序,即驱动程序是物理设备的软件接口,驱动程序通常符合特定的标准接口,当需要在屏幕上显示某些内容、在磁盘上写入扇区等时,O/S会调用该接口


在Windows上,如果您的驱动程序提供的软件服务只能在内核模式下执行,则您可以在驱动程序中定义自己的调用接口,然后可以通过函数从用户模式访问该接口。

让我们谈谈非标准设备的非标准设备驱动程序,例如机械臂或类似设备。在这种情况下,您可能有几个程序,每个程序都需要通过其驱动程序与物理设备通信。他们如何查找和调用设备驱动程序的子例程?通常,驱动程序生产者提供如何调用驱动程序的文档,有时提供代码示例,例如通过DeviceIOControl。显然,与非标准设备交互不可能有标准。