首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >驱动程序在Windows中是如何工作的?

问驱动程序在Windows中是如何工作的?
EN

Stack Overflow用户
提问于 2012-11-15 20:47:28
回答 1查看 3.3K关注 0票数 2

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

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-15 20:55:51

Windows上的设备驱动程序与Linux上的驱动程序的工作方式不同。要快速了解Windows驱动程序的整体结构,可以查看MSDN。有几类驱动程序,但它们并不像在Linux中那样绑定到VFS,而是被表示为tree of devices中的节点。

在MSDN中,DriverEntry过程的目的如下:

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

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

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

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13397816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档