06 2007 档案

摘要: 上层和驱动通信用DeviceIoControl函数,这是一个Win32 API,在SDK中定义。这个函数都会产生一个IRP_MJ_DEVICE_CONTROL包,如果驱动中注册过相应的例程,那么这个包就会引发该例程的工作。如果是驱动和驱动间的通信,那么用IoBuildDeviceControlRequest函数,该函数在DDK中定义,会产生一个IRP_INTERNAL_DEVICE_CONTROL包,并引发相应的例程。这两个IRP包中都有一个非常重要的结构叫IOCTL(io control code),用于指定通信中的各类细节。该数据结构是一个32比特的数据块,有6个区域,每个区域包含一类信息。阅读全文
posted @ 2007-06-18 16:01 gussing 阅读(1511) | 评论 (3) 编辑
摘要: IRP基本上是NT驱动架构中最重要的一个数据结构了,哪儿都能看到它,哪儿都需要用到它阅读全文
posted @ 2007-06-15 16:53 gussing 阅读(1091) | 评论 (0) 编辑
摘要: 低技术含量软件赚钱生猛,高技术含量软件当白菜卖阅读全文
posted @ 2007-06-14 11:06 gussing 阅读(283) | 评论 (2) 编辑
摘要: 定义一个Filter的分发例程时,如有需要,可以指定DEFINE_KSFILTER_NODE_DESCRIPTORS以便在Filter里生成Node。阅读全文
posted @ 2007-06-13 08:21 gussing 阅读(1219) | 评论 (0) 编辑
摘要: BDA minidriver的职责:调制(tunning)信号,解调(demodulating)信号,获取(capture),分流(demultiplexing)。BDA是在AVStream上的扩展,Bdasup.lib提供了BDA的属性集和方法集。写BDA驱动的主要工作就是把Bdasup.lib中要求的属性集方法集的例程都注册一遍(需要的注册,确实不需要的也可以不管),提供自己的实现。阅读全文
posted @ 2007-06-12 10:36 gussing 阅读(1852) | 评论 (1) 编辑