Window驱动开发
驱动开发 参考文章: Windbg+Vmware驱动调试
http://blog.csdn.net/xuepiaosong/article/details/8236702 驱动调试攻略(WinDbg)
http://blog.163.com/zhg_tao/blog/static/84116744200862424215/ VC6编译驱动的方法(含32和64位)
http://blog.csdn.net/wzsy/article/details/4053632 Win64 驱动签名 相关
http://blog.chinaunix.net/uid-27469481-id-3337843.html DebugView、DriverMonitor、IRPTrace、WinObj、DeviceTree、DiskView、EzDriverInstaller
http://download.csdn.net/detail/tao180/4881459 Windows virtual PC
http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=3702 VMware Workstation 10.0 下载 – 正版序列号+简体中文官方原版
https://download3.vmware.com/software/wkst/file/VMware-workstation-full-10.0.0-1295980.exe http://wenku.baidu.com/view/7f74b0e49b89680203d825f4.html 64位Windows Vista 和Windows 7系统下驱动签名指南
http://blog.csdn.net/linfei2707/article/details/6756325
http://www.willrey.com/support/digital_signatures_for_kernel.html 如何把NDIS Filter框架利用到日常的Windows驱动开发工作中
http://bbs.pediy.com/showthread.php?t=191434 VS2012 ddk驱动编译与虚拟机联机调试设置
http://blog.csdn.net/whatday/article/details/10730103 WINDOWS 7 配置驱动开发环境(wdk7.60)
http://www.cppblog.com/guojingjia2006/archive/2011/03/19/142211.html 内核驱动的编译环境
http://www.cnblogs.com/javawebsoa/archive/2013/05/20/3089346.html VMware+Windgb+Win7内核驱动调试
http://blog.csdn.net/cbh84663973/article/details/8122352 工具:
1、srvinstw.exe 安装.sys
http://www.onlinedown.net/soft/36059.htm
InstDrv软件更好用 2、DbgWiew.exe 查看内核模块的输出信息
net start 服务名、net stop 服务名
http://technet.microsoft.com/zh-cn/sysinternals/bb896647(en-us).aspx
https://technet.microsoft.com/en-us/sysinternals/bb896647.aspx 3、虚拟机
http://www.vmware.com/download/ws
http://www.microsoft.com/zh-CN/download/confirmation.aspx?id=8002 4、调试内核模块
http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
https://msdn.microsoft.com/zh-cn/windows/hardware/hh852365 5、WinDbg
http://www.microsoft.com/whdc/devtools/debugging/default.mspx 6、下载symbols:
http://msdl.microsoft.com/download/symbols(没下载下来)Symbol文件是从微软的网站上http://msdl.microsoft.com/download/symbols下载而来,这个网址是不可以用IE直接打开的,WinDbgà Fileà Symbol File Path...界面中选择Reload,WinDbg会自动帮你下载;
SRV*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols; //关键是勾选reload
https://msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx 7、WDK and WinDbg downloads
https://msdn.microsoft.com/en-us/windows/hardware/hh852365 问题: 1、编译错误 error MSB3030: 无法复制文件
解决方法:数字签名的问题 在 工程 属性 driver signing - general - sign mode 改为 off package也要改 2、
解决方法:右键Project---->Properties--->WPP Tracing--->【Run Wpp Tracing】选择No即可。 3、VS2012下的NDIS项目等报离奇错误,如:ctype.h中标识符未识别等。
解决方法:安装完WDK8.0,就不要再留(若已安装)WDK7.0。 4、虚拟机设置调试模式:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /debug /debugport=COM1 /baudrate=115200
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect 5、bcdedit“无法打开启动配置数据存储,系统找不到指定的文件”错误
解决方法:1、http://bbs.pcbeta.com/thread-588205-1-1.html
因为bcd文件所在的分区不是活动分区,用PartitionManager.9.0将C盘设置为活动分区,在运行一下bcdedit就好了 6、内核镜像文件签名:
方法一:1、启动Test Signing启动项属性:在控制台中运行Bcdedit /set testsiging true
1. 创建测试证书;2.用测试证书为驱动签名。微软提供了相关工具,包含在最新的SDK或DDK中。简单来讲,用户应该使用makecert.exe创建证书,再用signtool.exe进行镜像文件签名。
方法二:使用64Signer 7、主板默认没有开启虚拟化技术 一般方法是开机或重启时按Del键进入BIOS菜单,找到其中的主板{Chipest)设置,在找其中的虚拟化(Virtualizatio... 8、怎么将生产32位的sys改变设置生产64位的?
解决方法:1)修改两个lib路径:
/LIB/CRT/I386 改为: /LIB/CRT/amd64
/LIB/WNET/I386 改为: /lib/wnet/amd64
2).修改编译器路径:/BIN/X86 改为:bin/win64/x86/amd64 /BIN/X86 //这句也要存在
注释:VS按上面做出错,将/BIN/X86 改为:bin/amd64
设置Executable File: C:/2003DDK/BIN/X86//这就是编译器的路径
3)修改C/C++里的Preprocesser definitions为:
ReleaseAMD64下输入: _AMD64_,AMD64,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,NDEBUG DebugAMD64下输入: _AMD64_,AMD64,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,_DEBUG VS:_AMD64_=1,AMD64=1,STD_CALL=1,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,_DEBUG=1 4)需要修改link页里的Project Options,手动改一下:将/machine:IX86改为:/machine:amd64 5)理论上到这里设置就OK了,不过还是有一个链接错误unresolved external symbol __security_cookie ,只要在链接的lib里加入bufferoverflowK.lib (为什么是bufferoverflowK.lib?看这里:http://support.microsoft.com/kb/894573) 就可以了。 6)VS:DebugAMD64下设置活动解决方案平台为X64
9、未定义问题(测试)
#if !defined(_AMD64_)
#define _AMD64_
#endif
10、在64位WIN7系统中修改驱动的sys文件,主要在sys文件中修改一下提供商等信息
解决方法:eXeScope(可以编辑DLL文件的软件)、PEditor(修正SYS文件的“校验和”软件)
11、Windbg与虚拟机连接不上?
解决方法:1)如虚拟机中在添加新的串口前已经存在串口了,那么要把原有的串口Remove掉(特别是有些打印会占用串口),否则会导致windbg.exe与虚拟机连接不上。
12、虚拟系统中C盘下找不到boot.ini文件
解决方法是:打开电脑属性——高级——启动与故障恢复——在系统启动栏目下选择手动编辑,就打开boot.ini了。
13、在xp上 _asm int 3 中断正确,在64位Win7上报错?
解决方法:_asm int 3 改为 __debugbreak();
Window驱动开发的更多相关文章
- window 驱动开发
http://blog.csdn.net/chenyujing1234/article/category/1147469/5
- Windows驱动开发入门指引
1. 前言 因工作上项目的需要,笔者需要做驱动相关的开发,之前并没有接触过相关的知识,折腾一段时间下来,功能如需实现了,也积累了一些经验和看法,所以在此做番总结. 对于驱动开发的开发指引,微软 ...
- 【转】基于V4L2的视频驱动开发
编写基于V4L2视频驱动主要涉及到以下几个知识点:1> 摄像头方面的知识 要了解选用的摄像头的特性,包括访问控制方法.各种参数的配置方法.信号输出类型等.2> Camera解码器.控制器 ...
- 基本数据结构简介--ath9k网卡驱动开发总结(二)
ath9k驱动代码主要数据结构概览. (1)在ath9k的驱动中,几乎是最顶层的数据结构是ath_softc,这个数据结构几乎随处可见.ath_softc是硬件与MAC层进行交互的中间载体,很多有用的 ...
- (转)FS_S5PC100平台上Linux Camera驱动开发详解(一) .
平台linuxstructlinux内核videocam 说明: 理解摄像头驱动需要四个前提: 1)摄像头基本的工作原理和S5PC100集成的Camera控制器的工作原理 ...
- 基于V4L2的视频驱动开发【转】
转自:http://blog.chinaunix.net/uid-10747583-id-298573.html Tags:V4L2驱动框架.API.操作流程…… 原文地址:http://www.ee ...
- Win8.1+VS2013+WDK8.1+VirtualBox or VMware 驱动开发环境配置
https://blog.csdn.net/charlessimonyi/article/details/50904956 Win8.1+VS2013+WDK8.1+VirtualBox or VMw ...
- 使用IdleTest进行TDD单元测试驱动开发演练(3) 之 ASP.NET MVC
一.[前言] (1)本文将用到IOC框架Unity,可参照<Unity V3 初步使用 —— 为我的.NET项目从简单三层架构转到IOC做准备>(2)本文的解决方案是基于前述<使用I ...
- 使用IdleTest进行TDD单元测试驱动开发演练(2)
[前言] 1. 有关上篇请参见<使用IdleTest进行TDD单元测试驱动开发演练(1)>,有关本篇用到Entity Framework Code First请参见<使用NuGet助 ...
随机推荐
- 用仿ActionScript的语法来编写html5——终篇,LegendForHtml5Programming1.0开源库件
一,LegendForHtml5Programming1.0库件是什么?它是一个javascript库,它模仿了ActionScript的语法,用于html5的开发,目前实现的功能相对较少,还不能称之 ...
- Win7 OpenCV 3.0.0 VS2013 环境配置
参考资料:http://jingyan.baidu.com/article/75ab0bcbee4b47d6864db2fc.html 注: x86 x64 这些根据自己的系统以及需求而定, 这里就不 ...
- ADO.Net 数据库访问技术
1.在web.Config配置文件中设置连接字符串 <connectionStrings> <add name="connString" connectionSt ...
- java中的类和对象
Java中的类是一个模板,它用于描述一类对象的行为和状态. 对象则是类中的一个实例,对象有状态(属性)和行为(方法).例如一条狗就是一个对象,他的状态就是他的颜色,名字,品种:他的行为就是叫,摇尾巴, ...
- tomcat 6.0.44 “has failed to stop it. This is very likely to create a memory leak” 问题调查
1. 问题起因 我们项目中缓存模块某个实现采用了ehcache(2.4.3),当项目部署到tomcat中后,对tomcat做停止服务操作(点击eclipse的console红色的停止按钮,奇怪的是有小 ...
- Java NIO 开篇
一些很好的blog(待更新): 1.NIO入门 2.NIO.2 入门,第 1 部分: 异步通道 API I- 就是从硬盘到内存 O- 就是从内存到硬盘 一.阻塞IO 第一种方式:我从硬盘读取数据,然后 ...
- Lintcode: Nth to Last Node in List
Find the nth to last element of a singly linked list. The minimum number of nodes in list is n. Exam ...
- eclipse JAVA 类元素 快速添加set和get方法
鼠标在代码窗口,鼠标右键 然后选择如下图 然后在下面图中,选择需要个类的元素添加的set和get 选择好了点击OK,这样eclipse就自动生成get和set方法
- 数据库 CRUD
1.删除表 drop table +表名 2.修改表 alter table+表名+ add(添加)+列名+ int(类型) alter table+表名+ drop(删除)+column(列) ...
- python在window下的Nginx部署
Python版本3.21 安装nginx下载windows上的nginx最新版本,http://www.nginx.org/en/download.html.解压后即可.运行nginx.exe后本地打 ...