2015年12月6日

驱动下的异常处理

摘要: try-except用法 try except是windows 系统独有的异常处理模型,windows的异常处理模式,称为SEH( structured exception handling ), SEH的异常处理模型主要由try-except语句来完成,与标准的try catch相似。与C++异常处理模型使用catch关键字来定义异常处理模块,而SEH是采用__except... 阅读全文

posted @ 2015-12-06 12:43 I_am 阅读(1726) 评论(0) 推荐(0) 编辑

头文件 .h 与源文件 .ccp 的区别

摘要: .h 文件一般是用来定义的,比如定义函数、类、结构体等; .cpp 文件则是对头文件的定义进行实现。 include .h文件,可以调用你声明的函数、类等。当然,比较简单的类、函数,你也可以直接在头文件里面实现。 一般来说,头文件提供接口,源文件提供实现。但是有些实现比较简单的,也可以直接写在头... 阅读全文

posted @ 2015-12-06 12:18 I_am 阅读(966) 评论(0) 推荐(0) 编辑

驱动程序进阶篇

摘要: 我们学习程序设计,都是从“Hello World”开始的,驱动程序也不例外,今天我就写一个驱动版的“Hello World”来热热身,目的希望大家能对驱动程序的基本框架有所了解。 驱动程序分为2类,一个是 Kernel(内核) 模式驱动,另一个是 Windows (用户窗口层)模式驱动,2种模式本质是相同,但细节不同,本文介绍的是内核模式驱动和驱动程序的安... 阅读全文

posted @ 2015-12-06 12:15 I_am 阅读(608) 评论(0) 推荐(0) 编辑

2015年12月5日

驱动中链表的使用

摘要: 链表是驱动开发中经常遇到的一个数据结构,主要是双向循环链表;要使用链表,需要用到一个LIST_ENTRY的结构,其定义如下:typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; // 指向下一个节点(后继) struct _LIST_ENTR... 阅读全文

posted @ 2015-12-05 20:29 I_am 阅读(2329) 评论(0) 推荐(0) 编辑

2015年12月4日

内存操作相关内核 API 的使用

摘要: 1、RtlCopyMemory 、RtlCopyBytes、RtlMoveMemory;2、RtlZeroMemory、RtlFillMemory;3、RtlEqualMemory;4、ExAllocatePool、ExFreePool;5、New(重载)、Delete操作符一、内存的复制与移动1、... 阅读全文

posted @ 2015-12-04 20:22 I_am 阅读(2497) 评论(0) 推荐(0) 编辑

2015年12月2日

链表的概念、建立、删除与插入

摘要: 我们知道,数组式计算机根据事先定义好的数组类型与长度自动为其分配一连续的存储单元,相同数组的 位置和距离都是固定的,也就是说,任何一个数组元素的地址都可一个简单的公式计算出来,因此这种结 构可以有效的对数组元素进行随机访问。但若对数组元素进行插入和删除操作, 则会引起大量数据的移动, 从而使简单的数... 阅读全文

posted @ 2015-12-02 17:05 I_am 阅读(2041) 评论(0) 推荐(0) 编辑

2015年11月30日

编写简单的 NT 式驱动程序的加载与卸载工具

摘要: 写驱动的加载需要用到五个函数:OpenSCManager()CreateService()OpenService()StartService()CloseServiceHandle()这五个函数的作用和用法,我在代码中会进行说明。正常加载驱动的步骤如下:1、调用 OpenSCManager 这个 W... 阅读全文

posted @ 2015-11-30 18:16 I_am 阅读(1253) 评论(0) 推荐(0) 编辑

2015年11月26日

驱动程序入门篇

摘要: 驱动程序分为两类: 一个是 Kernel(内核) 模式驱动,另一个是 Windows (用户窗口层)模式驱动。这两种模式本质是相同,但细节不同。本文介绍的是内核模式驱动和驱动程序的安装与使用。驱动程序同普通的 .exe,.dll 一样,都属于 PE 文件,而且都有一个入口函数。但 .exe 中,入口... 阅读全文

posted @ 2015-11-26 18:52 I_am 阅读(6846) 评论(0) 推荐(1) 编辑

2015年11月25日

c++ 指针的简单用法

摘要: 对于指针,其实只需要明白几点就可以。1.指针,是一个数值为地址的变量,这里尤其注意,指针变量的值是地址!就是例如40002这种像门牌号的地址值,其实就是内存中的一个编号。2.&,该符号的意思就是取地址,就是获取地址,得到地址值,其实就是那个编号。3.*,取地址的内容,你有了一个地址,那该地址里存的什... 阅读全文

posted @ 2015-11-25 18:10 I_am 阅读(547) 评论(0) 推荐(0) 编辑

2015年11月20日

CTL_CODE 宏 详解

摘要: CTL_CODE宏CTL_CODE:用于创建一个唯一的32位系统I/O控制代码,这个控制代码包括4部分组成:DeviceType(设备类型,高16位(16-31位)),Function(功能2-13 位),Method(I/O访问内存使用方式),Access(访问限制,14-15位)。这个宏创建一个... 阅读全文

posted @ 2015-11-20 20:46 I_am 阅读(6432) 评论(0) 推荐(1) 编辑

导航