寒江独钓(2):串口的过滤
一、过滤的概念   “过滤”(filter)是极其重要的一个概念。过滤是在不影响上层和下层接口的情况下,在Windows系统内核中加入新的层,从而 不需要修改上层的软件或者下层的真实驱动程序,就加入了新的功能。 二、绑定设备的内核Api之一   通过编程可以生成一个虚拟的设备对象,并“绑定”(Attach)在一个真实的设备上。一旦绑定,则本来操作系统发送给真实设备 的请求,就会首先发送到这个虚拟设备。   在WDK中,有多个内核API能 实现绑定功能 。下面是其中一个函数的原型: NTSTATUSIoAttachDevice(IN PDEVICE_OBJECT SourceDevice,IN PUNICODE_STRING TargetDevice,OUT PDEVICE_OBJECT *AttachedDevice);   IoAttachDevice参数如下:      SourceDevice 是调用者生成的用来过滤的虚拟设备;      TargetDevice 是要被绑定的目标设备。请注意这里的 TargetDevice并不是一个PDEVICE_OBJECT(DEVICE_OBJECT   是设备对象的数据结构,以P开头的是其指针),而是一个字 符串(在驱动开发中字符串用UNICODE_STRING来表示)。实际上,   这个字符串是要被绑定的设备的名字