三大兵器在手 驱动从此无忧进阶(原著——吕汀栎)

标签:
电脑inf文件设备驱动程序吕汀栎 |
分类: Windows相关 |
进阶:
-----------------------------------------------------------------------
技术难度:Windows高阶原理
适用人群:Windows高级用户,系统管理员。
适用系统:Microsoft Windows Client
-----------------------------------------------------------------------
原理篇:
设备驱动程序(简称:驱动程序、驱动,英文为:device driver)可谓是计算机在操作系统的基础上软硬件交互的桥梁,硬件的软“神经中枢”。设备驱动程序通常为某种设备提供I/O接口。设备驱动程序接收I/O管理器传送供来的指令,并将这些指令翻译成具体的命令,控制它所管理的设备。设备完成这些命令后,再通过驱动程序通知I/O管理器。一般,一个驱动程序只为一种特定的设备提供服务。如显卡驱动程序只负责显卡的工作,令显卡向显示器输出显示信号;声卡驱动程序只负责声卡的功能,提供音频信号的输入,输出。
从Windows操作系统组成的角度,从Intel80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0~ring3从高到低四个不同的权限级,对数据也提供相应的四个保护级别。运行于较低级别的代码不能随意调用高级别的代码和访问较高级别的数据,而且也只有运行在ring0层的代码可以直接对物理硬件进行访问。由于WindowsNT是一个支持多平台的操作系统,为了与其他平台兼容,它只利用了CPU的两个运行级别。一个被称为内核模式,对应80x86的ring0层,是操作系统的核心部分,设备驱动程序就是运行在该模式下;另一个被称为用户模式,对应80x86的ring3层,操作系统的用户接口部分(就是我们通常所说的win32 API)以及所有的用户应用程序都运行在该级别。
于是便出现了问题,应用程序工作在用户模式下是无法直接对物理硬件进行访问的,那应用程序如果想对物理硬件进行访问,该如何处理呢?答案就是借助于在内核模式下运行的设备驱动程序。对于用户模式与内核模式是如何交互的问题,以及windows7中可运行于用户模式下的驱动程序问题。超出了我们本次讨论的范畴,我们在此不做讲解。
文件篇:
明白了原理的同时,我们便明白了驱动程序的重要性。既然驱动程序是如此的重要。我们应该具体怎样去理性的认识驱动程序呢?
任何驱动基本上都包含以下几个文件的:扩展名通常为.SYS、.DLL等的驱动程序的主文件;.CAT文件一般是微软对驱动程序的数字签名文件;.inf描述设备安装信息的文件。
在安装驱动程序时,Windows一般要把驱动程序的主文件复制到C:\WINNT\system32\drivers文件夹里,将.inf文件拷贝一份到“Win-dows\Inf”或“Windows\Inf\Other”目录下,以备将来使用。Inf目录下除了有.inf文件外,还有两个特殊文件Drvdata.bin和Drvidx.bin,以及一些.pnf文件,它们都是Windows为了加快处理速度而自动生成的二进制文件。
延伸:
1,
2,
硬件ID篇:
什么是硬件ID?
如何获得硬件ID?
我们便得知我的网卡的设备号为VEN_1317&DEV_0985.
我顺利找到了我的网卡的硬件ID“VEN_1317&DEV_0985”,这说明这款驱动与我的网卡是完全对应的。从而我们便能够确定这就是我网卡的驱动。