驱动程序如何在Windows中运行?

时间:2012-11-15 12:47:28

标签: c windows driver

在Linux中,我们可以从关联的驱动程序文件对象读取/写入,并且这些函数调用将由驱动程序读/写函数承载。在Windows中它是一样的吗?

我们是否将文件与驱动程序关联,并通过读/写此文件来访问驱动程序函数?

(我一直在Linux下编写驱动程序,现在正试图理解“Windows方式”来实现它。)

1 个答案:

答案 0 :(得分:5)

Windows上的设备驱动程序与驱动程序在Linux上的工作方式不同。要快速了解Windows驱动程序的整体结构,可以查看MSDN。有几类驱动程序,但它们与Linux中的VFS无关,而是在tree of devices

中表示为节点

MSDN开始DriverEntry程序的目的是:

  
    

DriverObject参数为DriverEntry例程提供指向驱动程序驱动程序的指针     对象,由I / O管理器分配。 DriverEntry例程必须填写驱动程序     带有驱动程序标准例程入口点的对象。

  

这意味着I / O管理器将调用该过程,并使用指向驱动程序实现的过程的指针填充结构。您可以create individual device objects使用IoCreateDevice并将其存储在DRIVER_OBJECT结构中。

要创建块设备样式设备,我相信您要创建FILE_DEVICE_DISK类型设备。

Microsoft提供了一系列驱动程序创建教程,second one可能是一个很好的起点。