
项目14:驱动程序的加载(1) 本节课程主要知识点 驱动程序与动态链接库 驱动程序的加载 驱动程序的测试
项目14:驱动程序的加载(1) 本节课程主要知识点 ◼ 驱动程序与动态链接库 ◼ 驱动程序的加载 ◼ 驱动程序的测试

重点和难点 重点 ■驱动程序的加载 难点 ■驱动程序的加载
重点和难点 重点 ◼ 驱动程序的加载 难点 ◼ 驱动程序的加载

驱动程序与动态链接库
驱动程序与动态链接库

驱动程序与DL 在Windows CE下,所有的驱动程序都是 以用户态下的动态链接库来加载的。 驱动程序的加载过程与一般的DLL加载 过程完全相同。 驱动程序的加载是由Device.exe动态加载 到内存中的
驱动程序与DLL ◼ 在Windows CE下,所有的驱动程序都是 以用户态下的动态链接库来加载的。 ◼ 驱动程序的加载过程与一般的DLL加载 过程完全相同。 ◼ 驱动程序的加载是由Device.exe动态加载 到内存中的

驱动程序为什么是用户态的DLL? 驱动程序作为用户态的DLL来实现有其 特殊的考虑 这样的实现为操作系统和驱动程序的设 计带来的灵活性。操作系统可在运行时 动态地加载所需要的驱动程序,这样可 以轻松地实现外设的即插即用
驱动程序为什么是用户态的DLL? ◼ 驱动程序作为用户态的DLL来实现有其 特殊的考虑。 ◼ 这样的实现为操作系统和驱动程序的设 计带来的灵活性。操作系统可在运行时 动态地加载所需要的驱动程序,这样可 以轻松地实现外设的即插即用

用户态的DLL可增强系统的稳定性 把驱动程序放在操作系统的内核态来执 行,可方便地对外部设备资源进行访问 又不会增加系统的额外开销。这样做会 对操作系统的稳定带来隐患 。 在内核模式下,驱动程序的崩溃会导致 整个操作系统的崩溃 驱动程序放在用户地址空间,就不会对 操作系统内核造成威胁了
用户态的DLL可增强系统的稳定性 ◼ 把驱动程序放在操作系统的内核态来执 行,可方便地对外部设备资源进行访问 又不会增加系统的额外开销。这样做会 对操作系统的稳定带来隐患。 ◼ 在内核模式下,驱动程序的崩溃会导致 整个操作系统的崩溃。 ◼ 驱动程序放在用户地址空间,就不会对 操作系统内核造成威胁了

用户态的DLL可提供更多便利 将驱动程序编写成一个用户态的DLL, 调试过程也就更为简单 驱动程序的编写可以使用应用程序使用 的所有资源,可以使用C的运行时库,也 可以使用Win32API甚至是MFC的函数
用户态的DLL可提供更多便利 ◼ 将驱动程序编写成一个用户态的DLL, 调试过程也就更为简单。 ◼ 驱动程序的编写可以使用应用程序使用 的所有资源,可以使用C的运行时库,也 可以使用Win32 API甚至是MFC的函数

驱动程序的宿主 驱动程序是一个个的DLL文件,DLL是 无法单独加载运行的,需要有一个EXE 进程把该DLL加载到自己的地址空间, 然后才可执行DLL中的代码。这个进程 称为驱动程序的宿主。 在Windows CE中,有三个系统的进程会 加载和执行驱动程序的DLL。分别是 Device.exe、GWES.exe和FileSys.exeo
驱动程序的宿主 ◼ 驱动程序是一个个的DLL文件,DLL是 无法单独加载运行的,需要有一个EXE 进程把该DLL加载到自己的地址空间, 然后才可执行DLL中的代码。这个进程 称为驱动程序的宿主。 ◼ 在Windows CE中,有三个系统的进程会 加载和执行驱动程序的DLL。分别是 Device.exe、GWES.exe和FileSys.exe

Device.exe ■Device.exe称为设备管理器,它负责加载 和管理Windows CE下的绝大多数设备驱 动程序。 这些驱动程序包括网卡驱动、电池驱动、 声卡驱动、串口驱动、U$B设备驱动及 PCMCIA驱动等
Device.exe ◼ Device.exe称为设备管理器,它负责加载 和管理Windows CE下的绝大多数设备驱 动程序。 ◼ 这些驱动程序包括网卡驱动、电池驱动、 声卡驱动、串口驱动、USB设备驱动及 PCMCIA驱动等

GWES.exe GWES.exe只加载GWES进程使用到的驱 动程序,这些驱动程序通常是一些与图 形界面相关的1/O设备驱动。 ·这些驱动包括鼠标键盘驱动、显卡驱动、 打印机驱动及触摸屏驱动等
GWES.exe ◼ GWES.exe只加载GWES进程使用到的驱 动程序,这些驱动程序通常是一些与图 形界面相关的I/O设备驱动。 ◼ 这些驱动包括鼠标键盘驱动、显卡驱动、 打印机驱动及触摸屏驱动等