- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 Windows NT 设备驱动程序开发基础(8)
1.4 驱动程序的编译链接,调试、安装和启动。 Windows NT下编写驱动程序的环境被称为为DDK(Device Driver Kit) For Micro soft Windows NT,这是一个命令行下的工作环境。但是在安装DDK之前需要安装Win32 SDK(Software Development Kit)以及 Microsoft Visual C++。
2002-03-03 18:40:00 2043
原创 Windows NT 设备驱动程序开发基础(5)
1.3.6 缓冲的I/O与直接I/O 在驱动程序创建了一个设备后,可以通过设置DeviceObject的Flags域的值来将设备设 置成缓冲的I/O或直接的I/O。 如果该值被设为DO_BUFFERED_IO,每当I/O管理器收到一个读写请求,就在内存的非分 页区分配一块与用户区大小相同的区域,并将首指针存放于Irp对象的AssociatedIrp.S ystemBuffer中,驱
2002-03-03 09:21:00 1394
原创 Windows NT 设备驱动程序开发基础(6)
1.3.8 同步 如果驱动程序有可能在某时刻有多个部分在同时运行,比如有中断处理过程,或 存在多个设备等,对公共数据或代码的访问就需要同步。方法有 i) 自旋锁(SpinLock) 驱动程序可以在初始化时调用KeInitializeSpinLock创建该对象。在任何代码段 访问被保护的数据之前,先调用KeAcquireSpinLock试图获得该对象的所有
2002-03-03 09:21:00 1324
原创 Windows NT 设备驱动程序开发基础(7)
1.3.9 分层 I/O管理器一个有用的功能是允许把一个驱动程序堆在另一个驱动程序之上。这样在分 编写如网络驱动等有协议栈程序时,可以为各层编写相对独立的代码。当驱动程序需要 在不同的平台上移植时,只需重新编写最下层的硬件驱动程序即可。高层驱动程序的另 一个功能是可以对用户请求进行予处理,比如把较大的请求分割成较小的请求分多次传 给给下层的程序。 1.3.10 设备名及其符号连
2002-03-03 09:21:00 1640
原创 Windows NT 设备驱动程序开发基础(4)
1.3.4 查找硬件信息 i) 系统自动搜索到的设备 在系统启动时,组件NTDETECT会自动地搜索计算机上已有的硬件,包括串、并行 口,键盘,鼠标,以及大多数PCI和EISA设备。并将它们的信息,包括总线类型,总线号 ,用到的端口号及数量、中断向量号、DMA通道号、占用内存等按一定格式添入注册表的 /HKEY_LOCAL_MACHINE/Hardware/descri
2002-03-03 09:20:00 1520
原创 Windows NT 设备驱动程序开发基础(2)
1.2 Windows NT下内核模式设备驱动程序的结构和运行 一般来说,设备驱动程序的任务主要有二:第一,接受来自用户程序的读写请求,把 用户的数据传送给设备,或把从设备接收到的数据传送给用户;第二,轮询设备或处理 来自设备的中断请求,完成数据传输。 1.2.1 驱动程序与用户程序的通信 I/O管理器把每一个设备对上层都抽象成了文件,所以在Win32用户程序中只要通过以
2002-03-03 09:19:00 1550
原创 Windows NT 设备驱动程序开发基础(3)
1.3 实现细节 1.3.1 内核代码运行级别 Windows NT为它的内核模式的代码分配了不同的级别。在同一个CPU上,级别低的过程 可以被任何级别更大的过程中断。级别由低到高排列如下: 级别名称 运行于该级别的过程 PASSIVE_LEVEL DriverEntry, Unload, ShutDown, DispatchXxx。 APC_
2002-03-03 09:19:00 1395
原创 Windows NT 设备驱动程序开发基础(1)
一、背景介绍 1.1 Windows NT操作系统的组成 1.1.1 用户模式(User Mode)与内核模式(Kernel Mode) 从Intel 80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0 ~ring3从高到低四个不同的权限级,对数据也提供相应的四个保护级别。运行于较 低级别的代码不能随意调用高级别的代码和访问较高级别的数据,而且也只有ri
2002-03-03 09:18:00 2623 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人