WDK驱动
God_s_apple
我奔跑,不像无定向的,我斗拳,不是抓空气。
展开
-
配置WDK7600+VS2010
LINK : fatal error LNK1220: “/NOASSEMBLY”需要“/DLL”规范。/NOASSEMBLY链接选项是取消创建 .NET Framework 程序集。可以参照http://msdn.microsoft.com/zh-cn/library/y0zzbyt4(v=vs.90).aspx链接。是因为在新建driver配置的时候,没有copy debug原创 2014-01-23 14:33:49 · 2012 阅读 · 0 评论 -
生成dll错误
1>------ 已启动生成: 项目: pcidll, 配置: Release Win32 ------1> 正在创建库 D:\work\dll\Release\pcidll.lib 和对象 D:\work\dll\Release\pcidll.exp1>pcidll.obj : error LNK2001: 无法解析的外部符号 __imp__SetupDiGetClassDevs原创 2016-05-06 17:01:25 · 1080 阅读 · 0 评论 -
编译测试dll的范例出错
RT1>------ 已启动生成: 项目: dlltest, 配置: Debug Win32 ------1> dlltest.cpp1>c:\program files (x86)\windows kits\8.0\include\um\winnt.h(1246): error C2143: 语法错误 : 缺少“;”(在“__stdcall”的前面)1>c:\program f原创 2016-05-12 09:09:11 · 534 阅读 · 0 评论 -
wdf dma 常见错误
1 Overrunning or underrunning theDMA memory buffer.可能由硬件或者驱动引起;2 多次释放了同样的 公用缓冲区,适配器通道,映射寄存器,sg链表等资源;3 分配公用缓冲区,适配器通道,映射寄存器,sg链表等资源 失败了;4 试图使用一个已经被释放掉不复存在的适配器;5 flush 失败;6 在一个可置换页面上DMA了;原创 2016-05-11 18:09:34 · 783 阅读 · 0 评论 -
WDF DMA 三要素
1 enable objectWDF_DMA_ENABLER_CONFIG dmaConfig; WdfDeviceSetAlignmentRequirement(DevExt->Device, PCI9656_DTE_ALIGNMENT_16 );WDF_DMA_ENABLER_CONFIG_INIT(&dmaConfig,原创 2016-05-11 14:10:56 · 2392 阅读 · 0 评论 -
win7 debugview 打印内核信息
1regedit:新建项HKLM\SYSTEM\CCS\Control\Session Manager\Debug Print Filter,新建DWORD修改Default值为0F,重启即可。2 以管理员模式运行。debugview中打印了如下信息:00000010.00000000 KTM: TmRollbackTransaction for tx 8原创 2016-04-28 16:44:21 · 1475 阅读 · 0 评论 -
WDF DMA一些概念(2)
SG list 原来是框架 使用系统提供的物理地址 建立的。 以前第一次接触这个表还以为要由驱动开发者提供呢。Each element of the list thus represents the physical memory address of either a data buffer fragment or a map register. 链表中的每个元素 含有要么一个dat原创 2016-05-10 18:06:03 · 1283 阅读 · 0 评论 -
WDF DMA 一些概念(一)
cache一致性On machines or bus configurations inwhich the hardware does not ensure cache coherence for DMA operations—such ascertain Intel Itanium systems—the standard Windows DMA implementation does th原创 2016-05-10 10:49:24 · 2663 阅读 · 0 评论 -
WDF驱动学习:驱动对象,设备对象(一)
在DriverEntry主要用于初始化IO管理器创建的驱动对象,和设置AddDevice例程。看看范例就知道了:PCI设备NTSTATUSDriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath )/*++Routine Description: Dr原创 2016-03-13 18:53:44 · 1482 阅读 · 0 评论 -
WDF驱动学习:驱动对象,设备对象(二)
DeviceAdd例程:PnP管理器调用AddDevice时框架调用。它要 创建设备对象,一个或多个IO队列和设备GUID接口等。驱动此时注册各种即插即用、电源管理例程以及各种回调函数。驱动此时可以查询任何接口或者获取总线驱动的配置空间信息,但是不能访问硬件的寄存器以及初始化设备。PCINTSTATUSPLxEvtDeviceAdd( IN WDFDRIVER Dr原创 2016-03-13 19:19:26 · 3092 阅读 · 0 评论 -
common buffer(连续DMA) DMA的副作用
基于数据包的DMA比较常见,比如大容量存储设备。基于common buffer的 设备和驱动会共享一些控制设备的数据结构(如一套数据缓冲区,一对循环链表等,一收一发)。比如智能网络适配卡。common buffer dma的驱动程序比较难写。因为需要深入理解 驱动和设备共享的数据结构。你需要知道1 驱动程序 与 common buffer的基地址的交互;2 存储在common bu原创 2016-05-09 19:20:38 · 965 阅读 · 0 评论