"">写两种权限。设备驱动程序的设计者必须决定设备可处理的i/o请求所需的是读权限还是写权限,或者是二者的组合。修改系统的api service table肯定要进行写操作,所以此时客户端要求获取一个有写权限的句柄则是理所当然的了。
列表5-20中,剩余的大多数代码都很容易读懂。不过下面的特性值得重点说一下:
l spy_io_hook_read函数以行模式进行操作,这是由列表5-20中的循环开始时调用的spyhookread()函数的第二个参数决定的。
l 应用程序的用户可以通过命令行提供一系列的模式字符串(通过嵌入的通配符*和?)。辅助函数patternmatcher()顺序的使用这些模式串和每一行协议数据中的函数名进行比较,列表5-21给出了该函数。如果没有可以匹配模式的函数名,那么该行协议数据将被忽略。要查看未过滤得协议数据,请使用命令行:w2k_hook *