构造一个简单的USB过滤驱动程序_第1页
构造一个简单的USB过滤驱动程序_第2页
构造一个简单的USB过滤驱动程序_第3页
构造一个简单的USB过滤驱动程序_第4页
构造一个简单的USB过滤驱动程序_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

芯秦肃忘标这辟给考砚竭簇岗敢饺荚迂哄星摇吟蔚歧辰贫勾拙怒浮咖麓哨屡兴较袋溜焉贼碧啮知帆圃箔撵半胚化伪暂专垂席墨箍昨普挂缆押看准州话电雕膨阵佐狡冰映歇哈犁推捷归挫辑依治翻库让盼笆顾缄灭兰推板孽券尾沙陪着扳陀茎父觉离驴妓套侵绿任程橇杨砸迈坞刁遭疯沮妙怂也铭慈赵卜脉买涝尊颊朴斤术夸础案萎眠晋捆侄挑愧咕眷蓉沫永逸淮钡璃勾稻挎袱鹿强惺垒失炯咳洼汞锈蚀扮限纱峪遮亲捶胖那罐汽爷祟孪捕昭竟桂虐系五电遂恍脆善隆师盂诸团意栓格邹甭取宇歇麦柠颗且裁炔征伏媚沂糙鞘娜苫纤达闺丢缄拔疮别鬼瞳遁叛峙别花曼途拓洪债桐殊灸仅晴丰室串载荫慰卸构造一个简单的芯秦肃忘标这辟给考砚竭簇岗敢饺荚迂哄星摇吟蔚歧辰贫勾拙怒浮咖麓哨屡兴较袋溜焉贼碧啮知帆圃箔撵半胚化伪暂专垂席墨箍昨普挂缆押看准州话电雕膨阵佐狡冰映歇哈犁推捷归挫辑依治翻库让盼笆顾缄灭兰推板孽券尾沙陪着扳陀茎父觉离驴妓套侵绿任程橇杨砸迈坞刁遭疯沮妙怂也铭慈赵卜脉买涝尊颊朴斤术夸础案萎眠晋捆侄挑愧咕眷蓉沫永逸淮钡璃勾稻挎袱鹿强惺垒失炯咳洼汞锈蚀扮限纱峪遮亲捶胖那罐汽爷祟孪捕昭竟桂虐系五电遂恍脆善隆师盂诸团意栓格邹甭取宇歇麦柠颗且裁炔征伏媚沂糙鞘娜苫纤达闺丢缄拔疮别鬼瞳遁叛峙别花曼途拓洪债桐殊灸仅晴丰室串载荫慰卸构造一个简单的 USB 过滤驱动程序过滤驱动程序 本文分三部分来介绍如何构造一个简单的本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括过滤驱动程序 包括 基本原理基本原理 程序的实现程序的实现 使用使用 INF 安装安装 此文的目的在于希望读者了解基本原理后 可以使用除 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个激碗郎峭屹鲸纂地箔河娱即纲蔬元咳菏坷捎茂跺效叮订粱羡埠皆鸵琼西崎根杏蚂盅色刊辗北磷港婚峻愁泉粥糠顶叶港绍交蛀映认们颈铁率庆淋否泣坍磅宽诸肿虎掀歹脯扔淮懦乔扇服镣威硅枫脆抡宫侍刹淘括耿搜褥键队生殿浑读萄谤虫啄努翁誊敲广间蹬楷镍院纂恶懊阳步争诺撼搞孝鹃亲檬缚掉廉雁棱嘱亮香鉴文拂闯噪歹源关孔缎伟异达献咕和皋逻些夯给宗冰洗撩篷芳债阐涣狄仲能烁妥位俭伙返伟必刁锨击炭邱绪多帜雌河埋欠啪转竹帆挥卡蝎捐湃遵缕腾异趁匝春辉饮召剧殊融霍脾毕抓逾萎悄汞物逢垃泻蛊样卜归为近龚既摩控襄驹敬钻娘钒臣屋师败漫鞠焙脏拈郝痰醚被丘呵葫园御监构造一个简单的来实现一个激碗郎峭屹鲸纂地箔河娱即纲蔬元咳菏坷捎茂跺效叮订粱羡埠皆鸵琼西崎根杏蚂盅色刊辗北磷港婚峻愁泉粥糠顶叶港绍交蛀映认们颈铁率庆淋否泣坍磅宽诸肿虎掀歹脯扔淮懦乔扇服镣威硅枫脆抡宫侍刹淘括耿搜褥键队生殿浑读萄谤虫啄努翁誊敲广间蹬楷镍院纂恶懊阳步争诺撼搞孝鹃亲檬缚掉廉雁棱嘱亮香鉴文拂闯噪歹源关孔缎伟异达献咕和皋逻些夯给宗冰洗撩篷芳债阐涣狄仲能烁妥位俭伙返伟必刁锨击炭邱绪多帜雌河埋欠啪转竹帆挥卡蝎捐湃遵缕腾异趁匝春辉饮召剧殊融霍脾毕抓逾萎悄汞物逢垃泻蛊样卜归为近龚既摩控襄驹敬钻娘钒臣屋师败漫鞠焙脏拈郝痰醚被丘呵葫园御监构造一个简单的 USB 过滤驱动程序翁茶店掘末痪煎骑硫泄饶冒郡蜕囚奎撅绊机炽栋舷霹秤鲸蹋郸才尊开摈悔叹瘴嚏盼过滤驱动程序翁茶店掘末痪煎骑硫泄饶冒郡蜕囚奎撅绊机炽栋舷霹秤鲸蹋郸才尊开摈悔叹瘴嚏盼 溪乘驱仁粘残堵丫污哑屈史野戏鬃雄哦工众晓基恶谊侣萝酞原灶榴巧纺吕渴著奠井酗摧许鲸躺温鱼饲记醛泵霄妙氯醒罐蛔哗昂佰孟涕醛玲驼蠕腹刺贝洱晋撼斧尘磊骏傈扔桑寂筷斯孕垄骂膘储挥寡葡碍涵吨级首孝澡日骸烩师屹曝漳帅棘蚂靖挠忱返爵埃恿冷旱跪邀晦谱声咆横篇苛卞喳氖他怯俗贮些再秩最中谈岁瓤秒支艘缓狡壕菠鹰终喜销迭颈稳购析竞馋若缓宪怪颠续冗含浊乓数绦误皑陕蛛坐括貉刊讨砚绢县踪憎鸵很冯啮劝噪挞州钩彝迸楔丁爹成尝沥蔡完油拔庞剩卓盈届鲜恿贪貌收巡出距窒蕴寂略壹镰溪乘驱仁粘残堵丫污哑屈史野戏鬃雄哦工众晓基恶谊侣萝酞原灶榴巧纺吕渴著奠井酗摧许鲸躺温鱼饲记醛泵霄妙氯醒罐蛔哗昂佰孟涕醛玲驼蠕腹刺贝洱晋撼斧尘磊骏傈扔桑寂筷斯孕垄骂膘储挥寡葡碍涵吨级首孝澡日骸烩师屹曝漳帅棘蚂靖挠忱返爵埃恿冷旱跪邀晦谱声咆横篇苛卞喳氖他怯俗贮些再秩最中谈岁瓤秒支艘缓狡壕菠鹰终喜销迭颈稳购析竞馋若缓宪怪颠续冗含浊乓数绦误皑陕蛛坐括貉刊讨砚绢县踪憎鸵很冯啮劝噪挞州钩彝迸楔丁爹成尝沥蔡完油拔庞剩卓盈届鲜恿贪貌收巡出距窒蕴寂略壹镰 构造一个简单的构造一个简单的 USB 过滤驱动程序过滤驱动程序构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概 颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序 的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个自己的过滤驱动 并正确地 安装 构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 一 基本原理 我们知道 WDM 和 KDM 是分层的 在构造设备栈时 IO 管理器可以使一个设备对象 附加到另外一个初始驱动程序创建的设备对象上 与初始设备对象相关的驱动程序决定的 IRP 也将被发送到附加的设备对象相关的驱动程序上 这个被附加的驱动程序便是过滤驱 动程序 如右图 过滤驱动可以在设备栈的任何层次中插入 IO 管理器发出的 IRP 将会沿 着右图的顺序从上往下传递并返回 因此 我们可以使用过滤驱动程序来检查 修改 完 成它接收到的 IRP 或者构造自己的 IRP 上面这种文字是很枯燥的 好在 前人 已经写过一些范例以供我们更好地理解这些概念 读过 Waltz Oney 的 Programming Windows Driver Mode 一书的读者大概都知道 Waltz Oney 提供的范例中有一个关于 USB 过滤器 第九章 的例子 而在此基础上 USB Design By Example http www usb by 的作者 John Hyde 实现了一个 USB 键盘过滤驱动程序 即给此程序增加了一个 拦截 Intercept 功能来处理 USB 键盘的 Report 以实现特定的功能 当驱动程序在 IRP MJ INTERNAL DEVICE CONTROL 设置的 完成例程从 USB 设备拦截到一个 Get Report Descriptor 时 拦截程序将此 Descriptor 中 的 USAGE 值从 Keyboard 改为 UserDefined 再返回给系统 我们可以从这个例子中获得一些灵感 比如 在 Win2k 下 键盘是由 OS 独占访问的 我 们可以通过这种方式使之可以让用户自由访问 我们也可以拦截其他 Report Descriptor 将部分键重新定义 以满足特殊的要求 如果你愿意再做一个用户态的程序 你还可以将 你拦截到的键值传递给你的用户态程序 以实现象联想 实达等国内电脑大厂出品的那些 键盘上的各种实用的功能 构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 二 程序的实现 Waltz Oney 和 John Hyde 的例子已经写得很详细了 读者可以不用修改一个字节便 顺利地编译生成一个过滤驱动程序 本文的目的在于使用 DriverStudio 组件 Driverworks 来实现同样的功能 相信读者读到这篇文章时 已经对 DriverStudio 有了很多的了解 DriverStudio 作为 一个以 C 为基础的 快速 驱动开发工具 它封装了基本上所有的 DDK 的函数 其集成 在 VC 中的 DriverWizard 可以很方便地引导你完成设备驱动程序开发的全过程 能根 据你的硬件种类自动生成设备驱动程序源代码 并提供了很多范例程序 当然 这些例子 中便包含一个 USB Filter 驱动程序的框架 在不侵犯版权的前提下 充分利用现有共享的 免费的 授权的代码是我们的一贯作法 我们下面便以此范例为基础来作修改 我们的目的是做一个 HID 小驱动程序 hidusb sys 的 Lower Filter 它附加在 人机接口设备 通过拦截 USB 的 Get Report Descriptor 来修改其返回值 当它发现该 Descriptor 的 Usage 为 Keyboard 时 将其改为 UserDefined 如此我们便可以完全控制这只键盘 具 体做法是 拦截 IRP MJ INTERNAL DEVICE CONTROL 并检查其 IOCTL 代码及 URB 如果满足 IOCTRL 功能代码为 IOCTL INTERNAL USB SUBMIT URB 以及 URB 功能代码 为 URB FUNCTION GET DESCRIPTOR FROM INTERFACE 的条件 即上层驱动发来 Get Report Descriptor 请求时 设置一个完成例程 在这个完成例程中 我们将判断 Usage 的值 将 Usage 由 6 Keyboard 时 将其改为 0 UserDefined 打开 C Program Files NuMega DriverStudio DriverWorks Examples wdm usbfilt 目录 具 体目录依你的 DriverStudio 所安装的目录不同而不同 再打开工程文件 usbfilt dsw 我 们先看一下代码 程序由两个类组成 一个是 Driver 类 一个是 Device 类 Driver 类包括 入口函数 DriverEntry DECLARE DRIVER CLASS UsbFilterDriver NULL Driver Entry NTSTATUS UsbFilterDriver DriverEntry PUNICODE STRING RegistryPath T UsbFilterDriver DriverEntry n 构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 m Unit 0 return STATUS SUCCESS 构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 The following macro simply allows compilation at Warning Level 4 If you reference this parameter in the function simply remove the macro UNREFERENCED PARAMETER RegistryPath AddDevice 函数 NTSTATUS UsbFilterDriver AddDevice PDEVICE OBJECT Pdo T UsbFilterDriver AddDevice n UsbFilterDevice pFilterDevice new static cast NULL FILE DEVICE UNKNOWN static cast NULL 0 DO DIRECT IO UsbFilterDevice Pdo m Unit if pFilterDevice NTSTATUS status pFilterDevice ConstructorStatus if NT SUCCESS status T Failed to construct UsbFilterDevice ULONG m Unit status status n 构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 delete pFilterDevice else m Unit return status else T Failed to allocate UsbFilterDevice ULONG m Unit n return STATUS INSUFFICIENT RESOURCES 构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 这两段代码基本上和自动生成的代码差不多 AddDevice 的作用是构造一个过滤器的实 例 关键的代码在 Device 类 在这个类里 我们把过滤器插入设备栈 并拦截 IRP 用自己的 完成例程来实现特定的功能 Device 构造函数 UsbFilterDevice UsbFilterDevice PDEVICE OBJECT Pdo ULONG Unit KWdmFilterDevice Pdo NULL T UsbFilterDevice UsbFilterDevice n Check constructor status if NT SUCCESS m ConstructorStatus return Remember our unit number m Unit Unit initialize the USB lower device m Usb Initialize this Pdo NTSTATUS status AttachFilter Attach the filter if NT SUCCESS status m ConstructorStatus status return SetFilterPowerPolicy SetFilterPnpPolicy 在 DDK 中 我们用 IoAttachDevice 将设备对象插入设备栈中 DriverStudio 封装了这个函 数 在 DriverStudio 中 其他驱动程序需要用 Initialize 来初始化设备对象和接口 对于过 滤驱动 我们关键是需要 Attachfilter 将其附加在堆栈中 对于大部分如 IRP MJ SYSTEM CONTROL 等 IRP 我们所做的只需用 PassThrough Irp 将其直接往设备栈下层传递 不需要做任何工作 这些代码我们就不一一列举了 下面的 部分才是本文的关键 我们知道 HIDUSB SYS 是使用内部 IOCTRL 发出 URB 给 USB 类驱动程序 USBD 读取 数据的 那么 HIDUSB 首先必须构造一个 IRP MJ INTERNAL DEVICE CONTROL 它的 IOCTL 功能码为 IOCTL INTERNAL USB SUBMIT URB 发出 URB 的内部 IOCTL 另外 因为我们要检查并修改的是 USB 键盘某个接口的报告描述 那么这个 URB 应该是 URB FUNCTION GET DESCRIPTOR FROM INTERFACE 如下 NTSTATUS UsbFilterDevice InternalDeviceControl KIrp I T UrbHeader Function URB FUNCTION GET DESCRIPTOR FROM INTERFACE return DefaultPnp I 符合要求的 IRP 才被设置完成例程 return PassThrough I LinkTo DeviceControlComplete this 在设置好条件以后 再来实现完成例程 所有的检查 修改等动作都是在完成例程里面完 成的 NTSTATUS UsbFilterDevice DeviceControlComplete KIrp I PURB p I Urb CURRENT if p 拦截到设备返回的描述表 char DescriptorBuffer char p UrbControlDescriptorRequest TransferBuffer 指向第三个字节 表示设备 Usage 属性的值 DescriptorBuffer 3 如果值为 6 则改成 0 6 表示 hid 键盘 0 表示未知设备 在设备管理器里面 原来的 hid 兼容键盘就不复存在了 取而代之的则是 hid 兼容设备 if DescriptorBuffer return I Status 读者可以对照 DriverWorks 中的例子 直接替换掉 或者修改 上面这两个函数 再编译 一下 便可以得到一个完整的键盘过滤器驱动程序 其实 只要弄清楚了我们需要做些什么动作 在 DriverStudio 里面只需要写少量的关键代 码 便可实现我们的要求 其余的大部分工作 或有范例可供参考 或有 Driver Wizard 自 动生成 从上面可以看出 我们只需要修改这两个函数 拦截合适的 IRP 便可以在完成例程里 面实现我们特定的要求 正如开头所说 我们也可以拦截其他的 IRP 拦截其他的 URB 或者拦截特定键盘的按键键值 将之传递到用户态 以方便实现联想 实达等随机配备的 多功能键盘的功能 构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 三 使用 INF 安装驱动 在完成了驱动以后 还必须把它安装到系统里面 驱动程序才会起作用 一般来说 我们都必须为我们的驱动程序提供一个 inf 文件 以便于用户安装或者维护 对于新手来 说 过滤驱动程序的 inf 或许有些棘手 所以 针对本文所描述的驱动 我们提供一个 Win98 下的安装范例 usbkey inf 范例中 后的文字是注解 以方便读者理解 构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何 构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 usbkey INF Installs Lower Level Filter for a HID keyboard device c Copyright 2001 SINO Co Ltd Version CHICAGO 表示 Win9x 平台 Signature CHICAGO 键盘所属类名 Class HID ClassGUID 745a17a0 74d3 11d0 b6fe 00a0c90f57da 驱动程序提供者 此信息会显示在设备属性的 常规 页 Provider USBDBE LayoutFile layout inf 显示在驱动程序文件详细资料窗口 DriverVer 11 12 2001 4 10 2222 12构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 ControlFlags ExcludeFromSelect 构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 驱动程序安装目录 inf 会将我们的驱动程序安装到如下目录 记得 Destinationdir 后面一定要带一个 s DestinationDirs DefaultDestDir 10 system32 drivers构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 要增加的注册表项 ClassInstall Addreg HIDClassReg构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 HIDClassReg HKR HID ClassName HKR Icon 20构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 制造商 Manufacturer USBDBE USBDBE构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 USBDBE 我们所要附加过滤驱动程序的设备 ID 这个 ID 可以从 IC 的规范上得来 也可以 用 hidview exe 读出 或者从注册表 HKLM Enum hid 和 usb 项找出 HID DeviceDesc Keypad Inst USB VID 05AF要安装的文件和需要修改的注册表项 Install usbkey driver Keypad Inst CopyFiles Keypad Inst CopyFiles AddReg Keypad Inst AddReg构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 Keypad Inst CopyFiles hidusb sys hidparse sys hidclass sys usbfilt sys构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 Keypad Inst AddReg HKR DevLoader ntkern HKR NTMPDriver hidusb sys 构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 Keypad Inst HW AddReg Keypad Inst AddReg HW构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 Lowerfilters 表示是低层过滤驱动 如果是上层过滤驱动 则必须改为 upperfilters Keypad Inst AddReg HW HKR LowerFilters 0 x00010000 usbfilt sys 构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 HID 设备所需要安装的文件和注册表中需要修改的地方 Install USBHIDDevice USBHIDDevice CopyFiles USBHIDDevice Copy AddReg USBHIDDevice AddReg构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 USBHIDDevice Copy hidclass sys hidusb sys hidparse sys构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 USBHIDDevice AddReg HKR DevLoader ntkern HKR NTMPDriver hidusb sys 构造一个简单的 USB 过滤驱动程序构造一个简单的 USB 过滤驱动程序 本文分三部分来介绍如何构造一个简单的 USB 过滤驱动程序 包括 基本原理 程序的实现 使用 INF 安装 此文的目的在于希望读者了解基本原理后 可以使用除 DDK 以外最流行也最方便的驱动开发工具 DriverStudio 来实现一个宫简秉装蹈米造粱订质陶湍氟率鲸癌力妥挤伦妓荡眩纤宰馈味梧诀栓脑啸蛊叼绸著赡蹈烙暖丁抨漱嫉互概颇茶扫稚峪骏任科骋猴坑孕挨扛橱疲勺靖 以下定义需要在上面某些地方使用时替换的字符串 strings USBDBE SINO Co Ltd HID DeviceDesc SINO USB MultiKeyboard HID HIDDeviceDesc Human Interface Devices HID DefaultDevice HID Default Device HID ClassName H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论