dragon@bupt

导航

寒江独钓——win内核编程读书笔记-1

从学长那里知道这本书,是系列的第二本,更具体的介绍了实时扫描的防毒软件、虚拟磁盘、硬盘加密等软件的内核模块实现的编程教程。

由于是资深技术编写,就少了学院气息,从应用的角度介绍问题,就比较亲切。

从x86到x64,所有的指针从4个字节变成了8个字节。

当某个函数返回了奇特的ntstatus值,去wdk头文件找答案。

在内核中,大部分的“消息”通过请求(IRP)方式传递。IRP也是一个内核数据结构,它非常复杂,因为要表示无数的实际请求。请求可以通过IRP的主功能号区分。

从KDM到WDM到WDF一脉相传,KDM——win NT上的驱动程序,win98-2000出现的新模式WDM,WDF在已有的内核API和数据结构基础上,封装一套更简单、更实用的一wdf开头的一组API。

在用户状态下,没有中断级的概念,他们都在同一中断级。

win代码都在规范的中断级,任意的中断级都会导致系统不可预见的后果。

串口在win中最简单的设备。

应用程序是不能直接根据设备名字打开设备的,一般都通过符号连接名打开。一个按键需要两个扫描吗,一个表示按下,一个弹起。无论如何按键(所谓同时按下),信息的传递都是一次一个字节发生的。键盘的中断号是0x93,端口为0x60。

使用未公开的数据结构和技术是病毒、木马常见的行为。

真正的硬件中断一般称为IRQ,每一个中断号都在IDT(中断描述符表)中有个记录。

IOAPIC重定位中断处理函数(具体见《82093AA I/O Advanced Programmable Interrupt Controller》)可以用于多个核心CPU的新型中断控制器,也可以认为是新的可编程硬件。目前的CPU都有该机制。IOAPIC标示了每个IRQ被重定位到哪个中断处理函数,该表一共有24项。

(前4章的浏览笔记)

posted on 2011-10-23 12:43  dragon@bupt  阅读(346)  评论(0)    收藏  举报