自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

World-wang

我们剩下的只有生存,还抱怨什么

  • 博客(82)
  • 资源 (7)
  • 收藏
  • 关注

原创 windows实体机调试虚拟机内的应用程序

工具:VS的SDK内有目录Remote Debugger,下面的msvsmon.exe(1)将此工具拷贝的到虚拟机上的windows系统中(2)直接运行,设置如下:(3)在实体机上vs设置:调试--->附件到进程:到此就完成了联调,下面就可以开始调试了。。

2015-03-20 14:52:56 640

原创 命名管道

服务端:客户端:

2014-11-21 16:52:56 684

原创 MFC调用atl简单对象

#import "../comTest/Debug/comTest.tlb"using namespace comTestLib;void CcallComDlg::OnBnClickedButton1(){ CoInitialize(NULL); ////////////////////////////////////////////////////////////////////

2014-10-30 10:10:46 1373

原创 GDI+ 常用的

Graphics类是GDI+的基础类,实现画圆形

2014-10-29 15:23:47 557

原创 解析NDIS包描述符和缓冲区描述符---发送与接收数据的获取和处理

解析NDIS包描述符和缓冲区描述符///////////////////////////////////////////////////////////////////////////////////////////////解析数据包:(1)获取包描述符信息VOID NdisGetFirstBufferFromPacket(  IN PNDIS_PACKET Packe

2014-09-11 17:18:16 632

原创 适配器模式

#pragma once#include #include using namespace std;/*//适配器模式定义:将一个类的接口转换成客户希望的另外的一个接口。使得原来不能在一起工作的类可以一起工作。应用:主要希望复用一些现存的类或第三方的插件库,但是接口又与复用环境要求不一致。两个类所做的事情相同或相似,但是具有不同的接口,并且在双方都不太容易修改的情况下再使用适配

2014-08-28 10:51:19 520

原创 命令模式和职责链模式

#include #include #include using namespace std;/*命令模式和职责链模式把这两个模式放在一起学习,因为觉得对比起来学习更有效果。前者是多个命令交付给一个指定的处理者去处理后者是将一个请求,按链式方式交付给多个执行者,找到其中适合执行的执行者去操作。命令模式中主要是处理多个命令,通过中间人对命令的整理与修改,最后将命令名单发送给执行

2014-08-26 15:22:46 723

原创 有关c/c++中位域的疑问

#include #include /*位域: 把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数(1)一个位域必须存储在同一个字节中,不能跨两个字节。如一个字节所剩空间不够存放另一位域时,应从下一单元起存放该位域。也可以有意使某位域从下一单元开始(2)由于位域不允许跨两个字节,因此位域的长度不能大于一个字节的长度,也就是说不能超过 8 位二进位。(3)位域可以无位域名,

2014-08-26 10:17:05 661

原创 桥接模式

#include "stdafx.h"#include using namespace std;/*桥接模式定义:将抽象部分与它的实现部分分离,使它都可以独立的变化解释(1):抽象与实现分离,并不是说,让抽象与其派生类分离,因为这没有任何意义。实际指的是抽象类和它的派生类用来实现自己的对象。解释(2):实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让

2014-08-25 13:28:54 508

原创 创建类模式总结-简单工厂、工厂、抽象工厂、建造、原型

#pragma once#include #include using namespace std;#define SAMPLE_FACTORY 0#define FACTORY_MODE 0#define ABSTRACT_FACTORY 0#define ABSTRACT_FACTORY_OPTIMAL 0#define BUILDER_MODE 1

2014-08-19 11:37:30 525

原创 观察者模式

#pragma once#include #include #include using namespace std;/*观察者模式(适合设计一个事件触发处理机制的功能)(1)定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。其实质是被观察者类中关联一下观察者类,并且在处理一些事情后,遍历观察者类的相关的方法。角色:(a)

2014-08-18 16:33:44 468

原创 建造者模式

#pragma once#include #include using namespace std;/*建造者模式要素:(1)构建产品类Product,产品类实现具体制作的产品的各个组件。一般会有比较多的代码量。产品类可以是一个具体的类,也可以是抽象类。(2)构建抽象建造者类IBuilder,是为了将建造的具体过程交与它的子类来实现。这样更容易扩展。一般至少会有两个抽象方法,一

2014-08-18 11:14:23 455

原创 工程模式(一)简单工厂模式

#pragma once#include #include using namespace std;/*简单工程模式(1)创建产品抽象类(2)创建不同派生类继承产品抽象类(3)创建工厂类,在工厂类中添加创建产品的方法,并返回产品抽象类的对象指针(4)在该方法中根据不同的产品类别,实例化对应的产品对象,并返回创建的产品对象的指针*/enum{ PRODUCT_PRO1 =

2014-08-17 21:57:52 1070

原创 单例模式(懒汉模式)

#pragma once#include #include using namespace std;/*懒汉单例模式(1)私有化构造函数禁止实例化对象(2)私有化静态类成员指针禁止外部直接操作此指针(3)初始化静态类成员指针为NULL(4)创建共有成员静态方法,判断并初始化静态类成员指针*/class signal{private: signal(){}; stati

2014-08-17 21:44:39 553

原创 windbg调试基础

(1)每个命令都有各自的使用范围,不支持的指令会显示“No export XXX Found”(2)调试命令分为三种:基本命令、元命令、扩展命令。基本命令和元命令是调试器自带的。元命令总是以“.”开始,而扩展命令是外部加入的,总是以“!”开头。(3)基本命令的帮助指令为“?” ,元命令的帮助指令为“.help [/D] ”  ("/D"可以以DML的方式设置链接)(4)扩展命令从DLL

2014-08-15 10:37:53 1084

原创 基于Accept的IOCP简单模型

IOCP自学实例,看的再多不如自己一点一点的完成一次。

2014-08-13 17:08:09 858

转载 应用程序与驱动通信的若干方式

应用程序与驱动传递数据方法:1.   METHOD_BUFFERED 输入输出缓冲区都被映射到系统地址Irp->AssociatedIrp.SystemBuffer上 inBuf = Irp->AssociatedIrp.SystemBuffer   outBuf = Irp->AssociatedIrp.SystemBuffer   因此在你打算通过outBuf输出数据时

2014-08-08 16:19:39 1807

原创 wdf模型开发虚拟磁盘

主要搞清楚物理磁盘的结构整个物理磁盘的第一个扇区为MBR,BIOS加载完后将调用MBR。MBR中主引导程序负责从活动分区中装载和运行系统引导程序。MBR的引导程序后面是硬盘分区表(DPT),用占64字节,记录物理磁盘的每个逻辑分区的起始位置,从这个起始位置开始的部分成为DBR(系统引导记录)。DPT的后面是有效结束标志(0x55AA),没有这个标志,操作系统会认为磁盘没有初始化,无法正确加载磁

2014-08-04 16:36:15 1184

原创 LIST_ENTRY

链表是驱动开发中经常遇到的一个数据结构,主要是双向循环链表;要使用链表,需要用到一个LIST_ENTRY的结构,其定义如下:typedef struct _LIST_ENTRY {    struct _LIST_ENTRY  *Flink;    // 指向下一个节点    struct _LIST_ENTRY  *Blink;    // 指向前一个节点} LIST_E

2014-07-25 17:04:51 602

原创 NDIS驱动(一)协议驱动

NDIS网络驱动分类协议驱动:上层直接提供应用层socket使用的数据传输接口,下层绑定小端口驱动用于发送和接收以太网包、小端口驱动:直接针对网卡,给协议驱动提供接收和发生数据的能力中间层驱动:以一种特殊的方式插入到协议驱动和小端口驱动之间,作为过滤驱动的最佳选择。协议驱动使用wdk下的ndisport工程,不提供传输层接口,只是只有ReadFile、WriteFile

2014-07-25 15:31:19 4691

原创 8086寄存器

8086寄存器:概念:CPU访问内存(物理地址): 物理地址 = 基地址+偏移地址基地址是由端地址左移4位生成的,然后在寄存中和偏移地址在地址加法器中相加构成真正的物理地址。段:在编程时,将一段连续的内存单元看成是一个段,通过将一个段地址左移4位形成基地址(段起始地址),再通过偏移地址定位到段中的内存单元。段的起始地址肯定是16的整倍数(段地址左移4位),一个段

2014-07-24 09:35:14 921 1

转载 使用Softice调试驱动程序

近日使用Softice的一些心得,主要是一些网上看到的相关资料,遇到的问题,自己探索的解决方法。 我使用softice的环境:操作系统XP( SP2 ),Softice是Driverstudio3.2自带的版本。   初级篇 1、不要使用USB的键盘和鼠标,这个Softice不支持。已试过。   2、显卡驱动很关键,要不会出现花屏现象。为了支持"Universal Vide

2014-07-22 14:14:33 1271 1

原创 vs2012+wdk8.0 搭建wdf驱动开发环境

开发环境搭建:系统:win7 x64工具:vs2012 + WDK8.0插件:wdfcoinstaller.msi(1)先安装vs2012,再安装wdk8.0,这样在打开vs2012时可以创建windows drivers类型的工程。注:vs2012不能安装wdk8.1,wdk8.1必须安装在vs2013上下载链接:http://msdn.microsoft.com/zh-

2014-07-15 16:18:38 2050

原创 WDF模型驱动-初稿

WDF特点:(1)系统兼容,内部磨合了系统、平台间的差异,对外提供了统一的DDI接口(2)基于对象的框架。 有一个最基本的对象,其他对象都是在这个对象上进行扩展。对象:驱动对象,设备对象,IO对象,队列对象和目标对象。(3)框架管着所有对象的声明周期。通过引用计数和父子层级关系来维护这个工作。(4)对框架对象所设计的一套设施,如:上下文空间、同步锁等。使得框架对象容易操作,又有安全

2014-07-10 16:39:23 2447

原创 Windows系统-----USB 设备驱动

注:Windows总线协议:对于每一台PC来说,都有一个或多个称为Host控制器的设备,该Host控制器和一个根Hub作为一个整体。每个hub可以级联多级的hub。Host控制器:就是一个PCI设备,挂载在PCI总线上。Host可能有多种驱动,分别为1.0 2.0 3.0 分别对用usb协议的1.0 2.0 3.0 USB Hub:每个Host控制器都会

2014-07-07 16:19:26 1084

原创 PCI设备驱动

PCI总线一种将系统外部设备连接起来的总线标准。如ISA、USB总线都挂载在PCI总线上。开发PCI设备驱动,需要获取PCI配置空间的各个数据。基础PCI局部总线与主处理器相连接的Host/PCI称为北桥基础PCI总线与中断控制器、IDE控制器、USB控制器、DMA控制器和ISA总线的 称为南桥。PCI配置空间:PCI三个相互独立的物理地址空间:设备存储器地址空间、

2014-07-04 15:55:11 1107

原创 通过驱动使应用程序直接操作IO口,通过端口终止PC喇叭发声

在NT内核的windows系统上,应用层无法直接操作IO端口,

2014-07-04 11:13:48 1244

原创 wdm驱动,通过IRP_MN_QUERY_CAPABILITIES实现设备通过任务栏的绿色箭头弹出

电源事件相关的IRP包括 IRP_MJ_POWER和IRP_MN_QUERY_CAPABILITIES 此处关于IRP_MN_QUERY_CAPABILITIES的使用FDO通过向底层PDO请求此IRP,会得到DEVICE_CAPABILITIES结构体数据,此结构体会指明驱动程序支持的电源特新。驱动代码:

2014-07-03 15:05:50 2081

原创 将一个wdm模型驱动挂载到一个物理设备上,获取物理设备资源信息并打印

在wMware xp系统上挂载到PCI总线上,

2014-07-03 11:34:07 802

原创 WDM模式驱动简单例子

代码:///////////////////////////////////////////////////////////////////////////////////// Copyright (c) 2014 - ////// Original filename: HelloWdm.cpp/// Project : HelloWdm/// Date of c

2014-07-02 17:23:11 1144

原创 写点理解的东西-想到哪我就写到哪

Windows驱动编程,就目前涉及到的模型为NT和WDM模型(WDF还没学到^-^!),NT式的驱动是比较老一点的,WDM的最大更新便是支持的设备的即插即用(PNP),实现此功能是一个非常复杂的过程,先略。^0^....两者比较:NT式驱动,是在DriverEntry函数内创建驱动自己的设备,或者进行设备绑定等操作,并在函数内初始化各个IRP类型的派遣函数WDM式驱动,程序入口函数仍为

2014-07-02 08:39:42 570

原创 DO_DIRECT_IO方式 完成例程分解IRP

DriverA被挂载驱动,DO_DIRECT_IO方式NTSTATUS ReadDispath(PDEVICE_OBJECT pDevObj,PIRP pIrp){ KdPrint(("DriverA ReadDispath Enter....")); NTSTATUS status = STATUS_UNSUCCESSFUL; PIO_STACK_LOCATION pStack

2014-07-02 08:35:05 1204

原创 写点理解的东西-想到哪我就写到哪

Windows驱动编程,就目前涉及到的模型为

2014-07-01 15:40:13 97

转载 IRP完成例程解惑

1.最高层驱动总是运行在发起该请求的程序所处的线程中。DriverEntry总是处在系统线程中,系统线程的空间不涉及到线性地址 0 - 2G。APC 是处在任意上下文中,它所在的线程取决于系统运行APC之前最后被挂起的那个线程。2. 所有不返回 STATUS_MORE_PROCESSING_REQUIRED的完成回调例程,需要使用下面的代码:NTSTATUS MyCompletionRou

2014-06-30 13:37:42 1027

原创 私有ini文件操作类

#pragma onceclass CMIniOp{public: CMIniOp(void){}; ~CMIniOp(void){};private: CString m_csIniPath; CString m_csNode;public: void setFilepath(const CString& csIniPaht){m_csIniPath = csIniPa

2014-06-30 11:00:18 550

原创 IRP_完成例程(二)-返回STATUS_MORE_PROCESSING_REQUIRED

当IRP被IoCompleteRequest完成时,就开始

2014-06-27 16:50:47 2800

原创 IRP_完成例程(一)-返回status_success

事例使用IRP_MJ_READ派遣函数演示完成例程

2014-06-27 15:33:07 3442

原创 通过驱动名称枚举驱动下设备和挂载设备的信息

说明:exe程序通达

2014-06-26 15:33:43 1660

原创 驱动分层-挂载设备对象示例

(一)需要一个标准驱动,

2014-06-26 09:32:21 569

原创 创建IRP实现驱动之间通讯

被调用源码不变,windows驱动之间同步调用实例

2014-06-25 10:08:00 1414

通过驱动名称枚举驱动下设备和挂载设备的信息

通过驱动名称枚举驱动下设备和挂载设备的信息

2014-06-26

ListCtrl_Redraw_Class

MFC listCtrl控件重绘类,方便快速开发,可搭配简单的学习教程快速上手。 教程:http://blog.csdn.net/wsgxiaomianao/article/details/12972291

2013-10-23

file operation

实现 文件的移动 拷贝 ,剪贴, 与大家分享 ,希望对你有帮助

2011-11-24

ip mac hostname 之间相互获取方法

主要是通过vc++内的mfc的Api实现,接口函数主要是:getnameinfo getaddrinfo函数显示

2011-08-15

GPRS模块 sim300开发注意事项

模块的串口通讯 Sim300采用的是全串口工作方式,其中的CTS 和RTS 如果不连接无法发送接收数据,电路设计中是连接到单片机的管脚上,用单片机来模拟全串口,不过在调试过程中,从网上搜索资料,直接将模块的RTS和CTS直接连接,实现了数据的发送和接收。 SIM300这块的设计在无线伴侣第一版中txd ,rxd管脚方向弄反。这种涉及到发送接收的设备原理图上一定要标出IO口方向。

2011-06-07

2410学习板 protels DXP设计

课程设计 所有的所需都在里面 都是做好的 还有设计说明书。、估计对大家有用。主要是2410开发板的绘制,最后生成模拟电子板的所有过程及结果!

2011-01-13

基于VHDL的三层电梯控制器设计

控制器的功能模块,包括主控制模块、译码器模块、状态显示器模块和楼层显示器模块。乘客在电梯中选择所要到达的楼层,通过主控制模块的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。

2011-01-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除