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

Joh*_*ing 2 c windows driver

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

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

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

Wil*_*ill 5

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

MSDN,DriverEntry程序的目的是这样的:

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

这意味着I/O管理器将调用该过程,并使用指向驱动程序实现的过程的指针填充结构.您可以创建单独的设备对象IoCreateDevice和它们存储在你的DRIVER_OBJECT结构.

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

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