码迷,mamicode.com
首页 >  
搜索关键字:windows驱动开发    ( 65个结果
[Windows驱动开发](四)内存管理
一、内存管理概念 1. 物理内存概念(Physical Memory Address) PC上有三条总线,分别是数据总线、地址总线和控制总线。32位CPU的寻址能力为4GB(2的32次方)个字节。用户最多可以使用4GB的真实物理内存。PC中很多设备都提供了自己的设备内存。这部分内存会映射到PC的物理 ...
分类:Windows程序   时间:2016-06-22 14:09:37    阅读次数:359
《Windows驱动开发技术详解》之定时器
I/O定时器 I/O定时器是DDK提供的一种定时器。它每个1s钟系统会调用一次I/O定时器例程。I/O定时器例程运行在DISPATCH_LEVEL级别,因此在这个例程中不能使用分页内存,否则会引起页故障从而导致系统崩溃。另外I/O定时器是运行在任一线程的,不一定是IRP发起的线程中,因此不能直接使用 ...
分类:Windows程序   时间:2016-06-13 13:43:32    阅读次数:888
《Windows驱动开发技术详解》之IRP的同步
应用程序对设备的同步异步操作: 大部分IRP都是由应用程序的Win32 API函数发起的。这些Win32 API本身就支持同步和异步操作。例如,ReadFile、WriteFile和DeviceIoControl等,它们都有异步和同步两种操作方式。DeviceIoControl的同步操作如图所示: ...
分类:Windows程序   时间:2016-06-01 10:21:58    阅读次数:337
《Windows驱动开发技术详解》之读写操作
缓冲区方式读写操作 读写操作一般是由ReadFile和WriteFile函数引起的,这里先以WriteFile函数为例进行介绍。WriteFile要求用户提供一段缓冲区,并且说明缓冲区的大小,然后WriteFile将这段内存的数据传入到驱动程序中。这种方法,操作系统将应用程序提供缓冲区数据直接复制到 ...
分类:Windows程序   时间:2016-05-26 18:24:58    阅读次数:267
《Windows驱动开发技术详解》之Windows内存管理
虚拟内存地址 Windows所有的程序(Ring0和Ring3层)可以操作的都是虚拟内存。有一部分单元会和物理内存对应起来,但并非一一对应,多个虚拟内存页可以映射同一个物理内存页。还有一部分单元会被映射成磁盘上的文件,并标记为脏的。读取这段虚拟内存的时候,系统会发出一个异常,此时会出发异常处理函数, ...
分类:Windows程序   时间:2016-05-23 22:31:50    阅读次数:317
《Windows驱动开发技术详解》之编程加载NT式驱动
之前我们加载驱动都是利用INSTDRV这个应用,其原理是在注册表中写入相应的字段,这一节我们手动编写代码去加载驱动,其原理类似: 设备驱动程序的动态加载主要由服务控制管理程序(Service Control Manager,SCM)系统组件完成。加载和卸载NT驱动分为四个步骤: 为NT驱动创建新的服 ...
分类:Windows程序   时间:2016-05-21 10:10:43    阅读次数:343
《Windows驱动开发技术详解》之HelloDDK
编写如下代码: 运行会报错: 这里的原因是有没有引用到的形参,需要添加如下代码即可: 记得在系统启动时按F8禁用掉数字签名: 将编译好的驱动拖入虚拟机,以管理员身份运行DbgView捕捉内核态输出数据,以管理员身份运行InstDrv以加载驱动,我们就可以看到启动和停止时,DriverEntry和Dr ...
分类:Windows程序   时间:2016-05-19 23:11:06    阅读次数:492
Windows内核开发之串口过滤
学习了几个月的内核编程,现在对Windows驱动开发又了更加深入的认识,特别是对IRP的分层处理逻辑有了深入认识。 总结起来就几句话: 当irp下来的时候,你要根据实际情况,进行处理 1> 无处理,继续往下传 2> 处理之后 ,往下传 3> 处理之后, 往上传 4> 不做处理,直接丢弃 具体怎么理解,通过一个串口驱动过滤就可以深入理解。 一、串口过滤概念 串口过滤:平时我...
分类:Windows程序   时间:2016-04-16 19:16:57    阅读次数:290
extern "c"用法
在Windows驱动开发中,如果是使用C++开发的,那么必须在有些关键函数钱加extern c 的关键词,否则编译出来的函数,跟C语言编译的函数不同,导致驱动程序不能被有效识别。最关键的是DriverEntry函数,如果使用C++开发的cpp,那么,编译器编译出来的 函数会是_DriverEntry...
分类:其他好文   时间:2015-12-28 12:00:55    阅读次数:190
Windows驱动开发(中间层)
Windows驱动开发一、前言依据《Windows内核安全与驱动开发》及MSDN等网络质料进行学习开发。二、初步环境1、下载安装WDK7.1.0(WinDDK\7600.16385.1)地址:https://msdn.microsoft.com/en-us/windows/hardware/hh85...
分类:Windows程序   时间:2015-11-08 20:50:47    阅读次数:652
65条   上一页 1 2 3 4 5 ... 7 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!