本科毕业设计是这方面的工作,所以想开几篇博客来介绍使用WDF开发PCI/PCIe接口卡的驱动程序方法。在上一篇简要介绍了WDF和开发环境搭建后,本篇将讲述几个WDF中的概念,对开发者了解WDF非常有帮助,属于“内功部分”;本篇文章结构将没那么清晰,当句句都是作者通过看书、看论文、看MSDN提炼出来的...
本科毕业设计是这方面的工作,所以想开几篇博客来介绍使用WDF开发PCI/PCIe接口卡的驱动程序方法。这个系列的博客将首先用一个篇幅为不懂Windows下PCI/PCIe驱动开发的介绍WDF和开发环境搭建,接下来几篇将直接讲述程序编写,看完这几篇后,希望能够帮助读者了解如何通过500行左右的代码实现...
最后的一点开发工作:跟踪驱动。
一、驱动跟踪
1. 包含TMH头文件
#include "step5.tmh"
2. 初始化跟踪
在DriverEntry中初始化。
WPP_INIT_TRACING( DriverObject, RegistryPath );
WDF_OBJECT_ATTRIBU...
在《Windows 驱动开发 - 5》我们所说的读写操作在本篇实现。
在WDF中实现此功能主要为:EvtIoRead和EvtIoWrite。
首先,在EvtDeviceAdd设置以上两个回调事件。
ioQueueConfig.EvtIoRead = EvtIoRead;
ioQueueConfig.EvtIoWrite = EvtIoWrite;
然后,在EvtDev...
在《Windows 驱动开发 - 5》我们所说的读写操作在本篇实现。
在WDF中实现此功能主要为:EvtIoRead和EvtIoWrite。首先,在EvtDeviceAdd设置以上两个回调事件。
ioQueueConfig.EvtIoRead = EvtIoRead;
ioQueueConfig.EvtIoWrite = EvtIoWrite;然后,在EvtDevicePrepareHardwa...
分类:
其他好文 时间:
2015-06-27 22:46:56
阅读次数:
205
上篇《Windows 驱动开发 - 5》我们设置了回调事件EvtIoDeviceControl,我们在此篇来实现他。
我们知道在进行读写之前我们要进行一定约定,比如同步。
在WDF中控制同步约定的方法为:WdfUsbTargetDeviceSendControlTransferSynchronously
NTSTATUS WdfUsbTargetDeviceSendContr...
上篇《Windows 驱动开发 - 4》我们已经完成了硬件准备。但是我们还没有具体的数据操作,例如接收读写操作。
在WDF中进行此类操作前需要进行设备的IO控制,已保持数据的完整性。
我们知道进行WDF开发主要是跟随IRPs的“脚步”。
I/O Request Delivery Mechanism
I/O request type...
上篇《Windows 驱动开发 - 3》我们使用了PnP,现在还差WMI。
WMI:Windows Management Interface
WMI 提供预装的类架构,允许使用脚本语言(VBS)、C#、VB .NET 或 C++ 编写的脚本或应用程序监视和配置计算机中的应用程序、系统或网络组件以及硬件。
一、WMI
虽然WDF帮你完成很多工作,但是你还必须自己触发事...
上一篇《Windows
驱动开发 - 1》我们已经实现一个WDF“骨架”。但是,他什么也没有干。。。
WDF对象分为3类:方法、事件和属性。
在上节中WDF_DRIVER_CONFIG_INIT(&config, EvtDeviceAdd);
WDF通知驱动程序执行EvtDeviceAdd事件。
接下来我们需要通知计算机准备硬...
上篇《Windows 驱动开发 - 基础2》已经介绍了windows大概的框架。那么使用WDF有那些的不同呢?
我们知道在WDF中,KMDF是必须的。而KMDF是架构在WDM之上的。
WDM驱动程序模型
在 WDM 驱动程序模型中,每个硬件设备至少有两个驱动程序。其中一个驱动程序我们称为功能(function)驱动程序,通常它就是你认为的那个硬件设备驱...