上篇《Windows 驱动开发 - 5》我们设置了回调事件EvtIoDeviceControl,我们在此篇来实现他。
我们知道在进行读写之前我们要进行一定约定,比如同步。
在WDF中控制同步约定的方法为:WdfUsbTargetDeviceSendControlTransferSynchronously
NTSTATUS WdfUsbTargetDeviceSendContr...
Dos的过程驱动与Windows的事件驱动在讲本程序的消息循环之前,我想先谈一下Dos与Windows驱动机制的区别:DOS程序主要使用顺序的,过程驱动的程序设计方法。顺序的,过程驱动的程序有一个明显的开始,明显的过程及一个明显的结束,因此程序能直接控制程序事件或过程的顺序。虽然在顺序的过程驱动的程...
NdisWrapper实际上是一个开源的驱动(从技术上讲,是内核的一个模块),它能够让Linux使用标准的Windows XP下的无线网络驱动.你可以认为NdisWrapper是Linux内核和Windows驱动之间的一个翻译层.Windows驱动可以通过 NdisWrapper的配置工具进行安装。...
分类:
移动开发 时间:
2015-06-17 19:47:17
阅读次数:
150
版权声明 本书是免费电子书。 作者保留一切权利。但在保证本书完整性(包括版权声明、前言、正文内容、后记、以及作者的信息),并不增删、改变其中任何文字内容的前提下,欢迎任何读者 以任何形式(包括各种格式的文档)复制和转载本书。同时不限制利用此书赢利的行为(如收费注册下载,或者出售光盘或打印版本)。不....
上篇《Windows 驱动开发 - 4》我们已经完成了硬件准备。但是我们还没有具体的数据操作,例如接收读写操作。
在WDF中进行此类操作前需要进行设备的IO控制,已保持数据的完整性。
我们知道进行WDF开发主要是跟随IRPs的“脚步”。
I/O Request Delivery Mechanism
I/O request type...
HelloWDM例子编译完成之后,在win7下安装显示查看setupapi.dev看到如下信息这个C:\MyDriver_Check目录完全不是我指定的,我放到c盘根目录下查看inf[SourceDisksFiles]HelloWDM.sys = 1,MyDriver_Check,把该字段修改为He...
上篇《Windows 驱动开发 - 3》我们使用了PnP,现在还差WMI。
WMI:Windows Management Interface
WMI 提供预装的类架构,允许使用脚本语言(VBS)、C#、VB .NET 或 C++ 编写的脚本或应用程序监视和配置计算机中的应用程序、系统或网络组件以及硬件。
一、WMI
虽然WDF帮你完成很多工作,但是你还必须自己触发事...
上篇《Windows 驱动开发 - 2》我们已经添加了EvtDevicePrepareHardware事件,但是我们还没有增加内容。
对于USB来说主要进行2步操作:
1. 建立USB目标
使用方法WdfUsbTargetDeviceCreate来建立USB设备。
NTSTATUS WdfUsbTargetDeviceCreate(
[in] WD...
上一篇《Windows
驱动开发 - 1》我们已经实现一个WDF“骨架”。但是,他什么也没有干。。。
WDF对象分为3类:方法、事件和属性。
在上节中WDF_DRIVER_CONFIG_INIT(&config, EvtDeviceAdd);
WDF通知驱动程序执行EvtDeviceAdd事件。
接下来我们需要通知计算机准备硬...
上篇《Windows 驱动开发 - 基础2》已经介绍了windows大概的框架。那么使用WDF有那些的不同呢?
我们知道在WDF中,KMDF是必须的。而KMDF是架构在WDM之上的。
WDM驱动程序模型
在 WDM 驱动程序模型中,每个硬件设备至少有两个驱动程序。其中一个驱动程序我们称为功能(function)驱动程序,通常它就是你认为的那个硬件设备驱...