自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (2)
  • 收藏
  • 关注

转载 wdk tips (5): 再谈IO_STACK_LOCATION:IoMarkIrpPending

<br />IO_STACK_LOCATION很重要,再多聊一点也无妨。上上回我们谈了IO_STACK_LOCATION和那几个重要的函数,当然,我的目的不是扫盲,而是记下一些容易犯错的地方(实际上都是工作中碰到过的钉子)以方便自己回顾。我的记性是如此的差以至于几月不看就会忘记。如果你对这东西没概念,我建议你先多查查WDK文档。<br />上回我们聊了IoCopyCurrentIrpStackLocationToNext和IoSkipCurrentIrpStackLocation的差别(你看我的记性是不是很

2011-05-19 17:24:00 728

转载 wdk tips (2): IO_STACK_LOCATION

<br />来源 http://www.cnblogs.com/gussing/archive/2011/01/19/1939095.html<br />如前文所述,nt内核的驱动模型没有完全使用函数调用栈,而是自己山寨出来一个IO_STACK_LOCATION,里面保存了驱动调用序列。我们知道函数调用栈的push和pop都是编译器帮忙弄的,你甚至都可以在完全不了解内幕的前提下写代码,但是驱动开发不一样,调用序列要你自己去关心,何时入栈,何时出栈,栈内保留的什么内容,全部都要照顾好,否则BSOD就在前方不远

2011-05-19 17:11:00 704

转载 堆和栈的区别 (转贴)

<br />非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别<br />一、预备知识—程序的内存分配<br />一个由c/C++编译的程序占用的内存分为以下几个部分<br />1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。<br />2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。<br />3、全局区(静

2011-05-17 19:26:00 396

转载 驱动程序与应用程序之间的通信

驱动程序必须与应用程序进行通信,才能最终达到应用程序控制设备的目的,不然驱动有QIU用。<br />要通信就涉及到3个方面: <br />1.应用程序与驱动程序通信<br />2.驱动程序与应用程序通信<br />3.数据传输<br />下面分别讨论<br />1。应用程序与驱动程序通信<br />1-1 应用程序实现与驱动通信的过程: <br />---用CreateFile打开设备,然后用DeviceIoControl和驱动通信,包括从驱动读数据和写数据2种情况<br />也可以使用ReadFile从驱

2011-05-16 14:05:00 958

原创 自己研究课题的第一部分终于完成了

<br />今天,算是把我做的系统的第一部分完成了,有点欣慰。一个半月时间,自己从一点都不懂,到现在把功能实现,学到很多。<br />各种钩子函数,各种消息机制,自己算是入门了。<br />虽然下面还有很多工作,也会遇到很多难点,但是相信自己一定可以一一化解的。

2011-05-10 22:06:00 502

转载 char LPSTR LPCSTR TCHAR string

2009-02-25 15:52在使用C++开发程序的时候,处理文本比较麻烦。主要是由于历史的原因。C++对于字符的标注类型是char.但是没有定义char的大小。默认为一个字节,这样就不能处理Unicode了。所以C++标准将这个问题留给了开发者。<br />微软在使用C/C++的时候,为了处理这个问题,就定义了几个typedef。那就是CHAR、WCHAR、TCHAR、LPSTR和LPCSTR,其中:<br />CHAR 表示一个字节的字符<br />WCHAR 表示两个字节的字符<br />TCHAR

2011-05-10 11:10:00 865

转载 如何获得另一个应用程序窗口中的文本

问题:    我想从一个程序获得另一个程序编辑框的文本。用GetWindowText试了一下,它总返回NULL。请问大虾有没有办法来获得另一个程序窗口中的文本?如果能,如何实现? 另外,在VC知识库的论坛中,也有人热烈地讨论过此问题,并且自己找到的解决方案。解答:    噢,我喜欢讨论垒球问题;它们使我看起来很睿智。要想获得另一个进程窗口的文本,只需直接发送WM_GETTEXT。CWnd* pWnd = GetOtherAppWindow();TCHAR buf[512];pWnd->SendMes

2011-05-09 20:11:00 3817

转载 PostMessage和SendMessage,SendMessageTimeout区别

2010-12-19 11:49<br />      PostMessage只负责将消息放到消息队列中,不确定何时及是否处理<br />      SendMessage要等到受到消息处理的返回码(DWord类型)后才继续<br />      PostMessage执行后马上返回<br />      SendMessage必须等到消息被处理后才会返回。<br /> <br />SendMessage发送消息后会等对方处理完这个消息后才会继续<br />PostMessage则将消息发送出去后就会继续<

2011-05-09 20:05:00 2954

转载 理解 Win32 "OutputDebugString"

坚定的 Win32 开发人员可能对 OutputDebugString() API 函数比较熟悉,它可以使你的程序和调试器进行交谈。它要比创建日志文件容易,而且所有“真正的”调试器都能使用它。应用程序和调试器交谈的机制相当简单,而本文将揭示整件事情是如何工作的。<br />本文首先是由以下事件促使的,我们观察到 OutputDebugString() 在管理员和非管理员用户试图一起工作或游戏时并不总是能可靠地工作(至少在 Win2000 上)。我们怀疑是一些相关的内核对象的权限问题,此间涉略了相当多不得不写

2011-05-07 21:59:00 960 2

原创 能在hook的回调函数里再hook吗?

自己在csdn问的一个问题,现在把它保存下来。http://topic.csdn.net/u/20110504/20/70829e9b-e3fe-4187-b29f-7792922e71ea.html一个exe程序,一个dll。我在exe里hook了WH_CBT,判断某一个窗口的创建。然后再回调函数里,一旦发现这个函数创建了,就想再hook鼠标的操作。都是hook全局的。部分代码if (lstrcmp(pCS->lpszName,"搜狗高速下载")==0){if (g_hmouse==NULL){Outpu

2011-05-07 21:00:00 941

原创 用WH_MOUSE做hook时,用调试语句OutputDebugString打印调试信息的时候出现的一个问题

直接上代码 //char buf1[50]={0}; //sprintf(buf1,"/nMouse Handle value is %d/n",g_hmouse); //OutputDebugString(buf1); if (nCode == HC_ACTION) { switch(wParam) { case WM_LBUTTONDOWN: OutputDebugString("/nMouse WM_LBUTTONDOWN /n"); break

2011-05-07 20:58:00 892

转载 chilewindowfrompoint函数解析

  Windows API 函数。  函数原型:HWND ChildWindowFromPoint (HWND hWnd, LONG xPoint, LONG yPoint);  函数功能:返回父窗口中包含了指定点的第一个子窗口的句柄。  函数参数:hWnd 父窗口的句柄  xPoint 点的X坐标,以像素为单位  yPoint 点的Y坐标,以像素为单位  返回值:发现包含了指定点的第一个子窗口的句柄。如未发现任何窗口,则返回hWnd(父窗口的句柄)。如指定点位于父窗口外部,则返回零。

2011-05-06 14:10:00 622

转载 VC获取鼠标所在位置窗口

<br /><br /> <br />编号:A3GS_TV20100122003<br /> <br />描述:<br /> <br />本文以实例代码的形式讲述了在VC中下实现鼠标所在位置窗口的获取。<br /> <br />例子代码:<br /> <br />请下载本文附带例子代码。<br /> <br />技术实现:<br /> <br />头文件:<br /> <br />#include<winuser.h><br /> <br />技术说明:<br /> <br />实现本功能主要就是一个Win

2011-05-06 13:25:00 7533

转载 SendMessage、PostMessage原理(1)

发表于:2010-3-23 13:48:38    文章分类:其它 <br />标签:C++   转载   <br />本文讲解SendMessage、PostMessage两个函数的实现原理,分为三个步骤进行讲解,分别适合初级、中级、高级程序员进行理解,三个步骤分别为:<br />1、SendMessage、PostMessage的运行机制。<br />2、SendMessage、PostMessage的运行内幕。<br />3、SendMessage、PostMessage的内部实现。<br />注

2011-05-04 11:12:00 632

湖南大学计算理论导引课件

湖南大学研究生计算理论导引课件,参考书目是经典的计算理论导引那本书

2009-10-06

空空如也

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

TA关注的人

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