驱动程序是怎么操作硬件设备的

 我来答
正卫奔跑
2016-12-28 · TA获得超过838个赞
知道小有建树答主
回答量:656
采纳率:61%
帮助的人:120万
展开全部

这里以CreateFile API 为例,其他操作设备的API类似。首先应用程序调用CreateFile Api,这个API是由Win32子系统的三大模块中的Kernel32.dll实现的。CreateFile函数会
调用Ntdll.dll中的NtCreateFile函数,其中NtCreateFile是未文档化的函数,最好不要直接调用


NtCreateFile 的作用是穿越用户模式的边界,进入到内核模式,这个步骤是通过软中断实现的。进入内核模式后,会调用系统服务函数,这里会调用同名的系统服务NtCreateFile。(同名函数,一个位于用户模式,一个位于内核模式)


NtCreateFile 系统函数调用通过I/O管理器,创建IRP并传输到设备的驱动程序中。IRP(I/O Request Package)即输入输出请求包,是驱动程序开发中重要的数据结构。驱动程序的运行,完全靠IRP驱动的。


驱动程序根据IRP,进行相应的操作。这些操作一般对设备的直接操作,例如对端口的读操作。对端口的读操作根据不同硬件平台实现方法有所不同,Windows 根据不同的硬件平台,会有不同的HAL(硬件抽象层).



来自网络。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式