- 博客(27)
- 资源 (1)
- 收藏
- 关注
转载 如何用程序实现“rescan windows device manager"
本文主要介绍两种”检测硬件设备“的方法,即”rescan windows device manager“。一、调Windows DDK的API实现 先用CM_Locate_DevNode得到设备管理树的根结点,然后用CM_Reenumerate_DevNode以这个根结点为参数刷新它就搞定!在MSDN里面可以查到这两个函数的用法,相关的知识里面也有。(该方法转自点击打开链接,
2016-04-28 16:56:28 2495
原创 介绍一个windows设备操作工具——devcon.exe
Windows操作系统对设备的管理,可以通过设备管理器查看。在cmd窗口键入”devmgmt.msc“,即可打开设备管理器。本文要介绍的是微软提供的一个操作设备的工具软件——devcon.exe(Windows Device Console)
2016-04-27 17:30:50 17005
转载 VC++文件操作之”获取文件大小“和”读文件“
本文分别转载自以下两篇博客:C++读文件详解windows获取文件大小的4种方法 在此主要讲一下纯c++获取文件大小和读二进制文件:在二进制文件中,使用>,以及函数(如getline)来操作符输入和输出数据,没有什么实际意义,虽然它们是符合语法的。文件流包括两个为顺序读写数据特殊设计的成员函数:write 和 read。第一个函数 (write) 是o
2016-04-27 17:00:19 1979
转载 CString、TCHAR*、char*互转
原文:点击打开链接/* *********************************************************************** * 函数: TransCStringToTCHAR * 描述:将CString 转换为 TCHAR* * 日期:*****************************************************
2016-04-27 10:30:39 456
原创 KMDF工程新增source文件出现的"TraceEvents未定义”编译错误
问题引入:在windows驱动开发过程中,我们一般会用VS2015+WDK10,新建一个KMDF工程(非empty)。该过程可参考我的另一篇博客:点击打开链接。这个工程新建好了,并能编译通过,但有时我们需要在该工程中新增source文件。通过在VS中“添加现有项"或”新增加项“的方式添加一个或几个新的源文件到工程中。然后再编译,会报错”error C4013: “TraceEvents”未定义
2016-04-26 14:40:38 3226
原创 win10下使用VS2015+WDK10生成win7 X64的设备驱动的过程
本文主要介绍“win10下使用VS2015+WDK10生成win7 X64的设备驱动”的过程,并在win7 X64下安装的过程。具体如下:1,在win10下,使用VS2015+WDK10新建一个KMDF工程,命名为“MyKMDF”,注意要选择那个“非empty”的KDMF,它会生成如下几个文件:2,查看它的“public.h”文件,有如下的GUID定义://// Define
2016-04-25 10:59:18 10755
原创 32位的整型数拆分为两个浮点数的方法
在数字信号处理领域,常常需要将基带采集的AD数据传送到PC,并进行相应的处理和数据可视化。在基带,特别是FPGA中,一般不采用浮点运算,故基带会用一个unsigned long来表示一对IQ数据,其中高16位表示I路,低16位表示Q路。基带将这样的一堆usigned long传递给上位机后,上位机需要将它们拆分位两个浮点型的数组来存储。这个拆分可以用如下的一个函数来完成:void ULONG2
2016-04-23 09:19:46 2440
原创 Qwt快速部署的方法
本文主要介绍一种快速在已安装了Qt的PC上,快速部署Qwt的方法。其中略去了Qwt的编译等过程。步骤如下:1,编译Qwt源码,并拷贝到如下文件夹下。参考我之前的博客:点击打开链接其中,designer目录里面还有两层,“designer->plugins->designer”,然后里面放置的是“libqwt_designer_plugin.a”和“qwt_designer_plugin
2016-04-21 15:27:01 741
原创 Windows驱动开发之日志打印
在WDF框架中,有一个“trace.h”头文件,在驱动的入口函数中,会用到 // // Initialize WDF WPP tracing. // WPP_INIT_TRACING( DriverObject, RegistryPath ); // // TraceEvents function is mapped to DoTraceMess
2016-04-21 08:58:19 9858
原创 WinDriver打开设备失败“source overlap”
问题描述:新安装的操作系统,插上PCIE设备,并安装WinDriver,打开WinDriver可以发现设备,但打开该设备时,报错“source overlap”。打开其他设备,没有问题。此时,再安装自定义驱动,也有问题。 问题解决:先用WinDriver对该设备生成一个INF文件,然后对该设备安装该INF文件,即可用WinDriver打开该设备。后续,卸载该设备再安装自定义驱动,
2016-04-19 19:34:46 1751
转载 PCI Vendor and Device IDs
对于PCI设备,当PC启动并检测到该设备存在时,它首先读取该设备的配置空间,然后根据配置空间中的Vendor ID & Device ID查找相应的驱动程序。 此时,在设备管理器中,右键相应设备,也可以在详细信息中查看到设备的“硬件ID”。 在利用.inf文件安装PCI设备的驱动程序时,.inf文件中应该包含相应的信息,系统将匹配设备配置空间和INF文件中的信息,并写入注册表
2016-04-19 09:11:03 4254
原创 多个设备同一个驱动
近日,看了博客:多个设备对象(同一个驱动),它创建了多个设备对象,对应不同的设备,但是采用该博文介绍的方法创建的设备对象是垂直关系的。有没有多个设备对象呈水平关系的方法呢?下面将以微软发布的“PLX9x5x设备驱动示例”进行讲解。 多个设备,同一个驱动,主要是配置inf文件。 该示例的Inf文件既包含了两个设备——“9056”和“9656”。但是这两个设
2016-04-18 18:36:54 5361
转载 VS2015应用Github扩展
微软推出Visual Studio的Github扩展,现在可以直接将VS的工程托管到Github。具体怎么使用,可以参考下面的两篇博客:博客1:点击打开链接博客2:点击打开链接注:1,除了在安装VS的时候选择安装Github扩展,也可以在安装好的VS2015的工具菜单中,选择“扩展和更新”,在其中找到github扩展,进行下载。2,需要配合应用浏览器登录github。
2016-04-16 22:16:37 1182
原创 一个简单的PCIE驱动到设备的通信协议
本文主要介绍一个简单的单一设备PCIE驱动程序和设备的通信协议,从上到下大致分为三层:应用层、驱动层和设备层。其中,应用层和驱动层通过系统总线(win32 API调用)实现通信,驱动层和设备层通过PCI总线(地址空间映射)进行通信。一、Driver和Device的数据交互方式 Driver和Device的通信主要是通过地址空间映射来实现。操作系统将Device的物理地
2016-04-15 09:38:13 12105
原创 C++打印日志功能设计
我之前用Qt框架下,设计了一个“打印日志”的功能(点击打开链接),利用了Qt框架的一些机制,并调用了一些的Qt框架函数。现在,我需要编写一个纯C++的“日志打印”功能。(事实上,还是调用了一些windows系统函数)一、日志打印函数 我设计的是一个全局函数,而不是一个全局变量来实现log文件管理和输出。全局变量会导致“不可重入”,在多线程环境下,会概率性打印出错。
2016-04-14 19:20:49 2210
原创 Qt程序调试“QWidget : Must construct a Qapplication before a Qwidget"BUG分析
近日,我在Debug Qt程序时,遇到了如下的运行时错误。经过几番分析,终于解决,现记录下来,并分享给大家。一、调试环境1,开发工具VS2013+QT5.4插件2,程序结构Qt EXE调用QT DLL3,问题描述使用F5启动Qt程序,在运行EXE部分时,运行正常,显示EXE中的GUI界面,跳转到DLL时,出现上述错误。二、问题跟踪
2016-04-14 10:56:38 3001
原创 驱动工程中添加新文件后出现的“cannot open source file '***.tmh'"编译错误
在VS2015+WDK10的开发环境下,开发KMDF驱动工程——sample.sln。当我往该工程添加一个”devicecontrol.c“文件后,在该文件中的”#include "devicecontrol.tmh“”语句编译报错:“cannot open source file devicecontrol.tmh”。 我添加文件的方法同普通的VS工程,在“解决方案资源管理器”
2016-04-12 11:15:36 9223
原创 Windows DMA驱动调试
本文记录我调试微软官方提供的一个PCI驱动sample程序的过程。一、开发环境和资源下载1,在win10 X64操作系统下,安装VS2015+WDK10。(参考我前面的驱动开发入门篇)2,使用TI6655 DSP开发板,点击打开链接。3,下载微软官方发布在github上的驱动samples,点击打开链接,选择其中的“General/PLX9x5x”这个工程。4,参考微软关于wi
2016-04-09 17:39:18 4528
原创 Win10驱动数字签名的解决办法
方法一:采用高级重启的方式,点击打开链接方法二:下载“EASYBCD”软件;方法三:1,系统启动时,按“delete”进BIOS;2,在BIOS中,关闭“默认系统”,这样就可以在每次开机时进“Windows启动管理器”;另外,也可参考如下方法进“Windows启动管理器”(点击打开链接)3,在“Windows启动管理器”中,按F8进高级设置页面,再选“禁用数
2016-04-07 19:48:44 30685
转载 一个简单的Linux驱动示例
本文参考百度文库“linux驱动开发入门”点击打开链接和转载博文:点击打开链接。一、基本知识 Linux设备驱动分为:字符设备、块设备和网络设备。原理图如下:二、示例示例主要转载自博客园的博客,见上。只是我采用的的Linux内核版本比那篇博文的新,有小许改动,粘贴代码如下:内核版本:ry@ubuntu:/$ uname
2016-04-05 19:55:27 10107 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人