在Linux中,我们可以从关联的驱动程序文件对象读取/写入,并且这些函数调用将由驱动程序读/写函数承载.在Windows中它是一样的吗?
我们是否将文件与驱动程序关联并通过读/写此文件来访问驱动程序函数?
(我一直在Linux下编写驱动程序,现在我正试图理解"Windows方式"来实现它.)
Windows上的设备驱动程序与驱动程序在Linux上的工作方式不同.要快速了解Windows驱动程序的整体结构,可以查看MSDN.有几类驱动程序,但它们与Linux中的VFS无关,而是表示为设备树中的节点
从MSDN,DriverEntry程序的目的是这样的:
DriverObject参数为DriverEntry例程提供指向驱动程序驱动程序对象的指针,该指针由I/O管理器分配.DriverEntry例程必须使用驱动程序标准例程的入口点填充驱动程序对象.
这意味着I/O管理器将调用该过程,并使用指向驱动程序实现的过程的指针填充结构.您可以创建单独的设备对象与IoCreateDevice和它们存储在你的DRIVER_OBJECT结构.
要创建块设备样式设备,我相信您要创建一个FILE_DEVICE_DISK类型设备.
Microsoft提供了一系列驱动程序创建教程,第二个可能是一个很好的起点.