Windows
ceabie
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
NDIS_PROTOCOL_BLOCK 结构
对于NDIS HOOK来说,NDIS_PROTOCOL_BLOCK 结构的准确定义是非常重要的。虽然网上有很多代码都是直接用指定的偏移量来计算的,但我还是比较喜欢有正确的结构定义在。Windows PC 平台上的DDK的NDIS.H中隐藏了很多的定义,但我发现在 Windows CE的DDK却都完全给出,十分奇怪。我经过多次测试,发现只有以下版本在XP以上才能正常使用: stru原创 2010-02-20 16:43:00 · 1991 阅读 · 0 评论 -
C++中 public和private派生类继承问题和访问权限问题
<br /><br />C++中 public和private派生类继承问题和访问权限问题<br /> <br />当一个子类从父类继承时,父类的所有成员成为子类的成员,此时对父类成员的访问状态由继承时使用的继承限定符决定。<br />1.如果子类从父类继承时使用的继承限定符是public,那么<br />(1)父类的public成员成为子类的public成员,允许类以外的代码访问这些成员;<br />(2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员;<br />(3转载 2010-12-28 17:02:00 · 1567 阅读 · 0 评论 -
windows消息机制[图]
<br /> <br />一 Windows中有一个系统消息队列,对于每一个正在执行的Windows应用程序,系统为其建立一个“消息队列”,即应用程序队列,用来存放该程序可能创建的各种窗口的消息。应用程序中含有一段称作“消息循环”的代码,用来从消息队列中检索这些消息并把它们分发到相应的窗口函数中。<br /> <br /><br /> <br />二 Windows为当前执行的每个Windows程序维护一个「消息队列」。在发生输入事件之后,Windows将事件转换为一个「消息」并将消息放入程序的消息队列中。转载 2010-12-26 18:03:00 · 781 阅读 · 0 评论 -
DLL和exe里的malloc和free不能混用的问题
<br /> <br />今天老玉米提了一个问题问为什么dll里malloc的内存如果在exe里free的话会出错,我分析了一下C库的原代码,得出结论如下:<br /> <br />刚看了一下malloc和free 的源代码,在这两个函数中都有对全局变量的引用,而malloc和free是C库函数,分别被静态链接到exe和dll里,这样他们引用的全局变量也会有两份各是各的,自然不能混用。<br /><br />GlobalAlloc之类的windows API函数应该行。<br /><br /><br /><转载 2010-12-26 11:17:00 · 1000 阅读 · 0 评论 -
Dll分配的内存块,应用释放的问题
写了个程序,在DLL中用malloc分配了一块内存,但是在exe程序中释放,结果程序crash,原因就是:其原因可能是堆被损坏,这也说明 TestMySticker.exe 中或它所加载的任何 DLL 中有 bug。想了半天以为是自己的写法有问题,后终于在google上找到了原因,汗。。。以下文字引用自 http://hi.baidu.com/huhe/blog/item/0b422edd1f1563d98c1029a3.html很感谢作者的分析一个模块一个堆,一个线程一个栈。dll里malloc的内存,在转载 2010-12-26 10:23:00 · 950 阅读 · 0 评论 -
Windows Mobile下WinInet的异步使用方法
codeproject上有一篇老美写的关于HTTP异步的文章:http://www.codeproject.com/KB/IP/asyncwininet.aspx。我做HTTP异步的时候,也是参考了这篇文章,受益匪浅。今天特地翻译出来,与大家共飨。WinInet HTTP的异步方式使用绪论如果你曾经深入MSDN研究过WinInet API,你会注意到可使用异步方式且该方式是被推崇的。当你决定使用该方式时,你却找不到如何使用异步的说明。网上也没有任何例子。研究了很长时间,也做了很多试验,我最终决定着手来填补一转载 2010-12-26 01:48:00 · 796 阅读 · 0 评论 -
HeapAlloc和GlobalAlloc以及VirtualAlloc三者之间的关系
<br /><br />VirtualAlloc<br />一次分配1PAGE以上的RAM。每次分配都是PAGE的整数倍。你不会想为了分配1个BYTE的空间而浪费剩下的4095字节. OK. 你可以自己写算法,多分 配几PAGE. 然后每次分配少量数据时就从那几PAGE中划分出来. 什么? 你笨到不会写分 配算法? 好巴 KERNEL32给你一个解决办法。用HeapAlloc/GlobalAlloc分配RAM。这样, KERNEL32帮你完成分配动作,并且尽量在减少用于跟踪空闲区域和已占用区域消耗的数 据结转载 2010-12-26 10:19:00 · 1102 阅读 · 0 评论 -
纳秒级时间的获取
<br />对关注性能的程序开发人员而言,一个好的计时部件既是益友,也是良师。计时器既可以作为程序组件帮助程序员精确的控制程序进程,又是一件有力的调试武器,在有经验的程序员手里可以尽快的确定程序的性能瓶颈,或者对不同的算法作出有说服力的性能比较。 在Windows平台下,常用的计时器有两种,一种是timeGetTime多媒体计时器,它可以提供毫秒级的计时。但这个精度对很多应用场合而言还是太粗糙了。另一种是QueryPerformanceCount计数器,随系统的不同可以提供微秒级转载 2010-12-08 10:55:00 · 13048 阅读 · 0 评论 -
#pragma 指令
<br /><br />在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作。<br />1. #pragma message 指令<br />message能够在编译消息输出窗口中输出相应的消息,这对于源代码信息的控制非常重要的。格式如下:<br />#pragma message(“消息文本”)<br />编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。当我们在程序中定义了许多宏来控制源代码版本的时候,我们自己有可能都会忘记有没有正确的设置这些转载 2010-09-21 20:20:00 · 714 阅读 · 0 评论 -
bstr_t 与 SysAllocString 的疑惑
我最近才开始接触 WMI,实际上到现在还是一知半解的。使用 WMI 主要还是为了增强 TinyRouter 用户端(RegHost)的兼容性。在此之前 RegHost曾使用过网上介绍原创 2010-09-07 22:19:00 · 2222 阅读 · 1 评论 -
内核编程笔记(一、内核字符串处理)
<br />原文:http://hi.baidu.com/hack_oldwolf/blog/item/03c2dba88fad05bcca130c47.html<br /> <br />1、使用字符串结构<br /><br />=================================================================<br />UNICODE_STRING<br />UNICODE_STRING结构体是用来定义UNICODE字符串的。<br /><br />转载 2010-09-10 00:19:00 · 1224 阅读 · 0 评论 -
局域网代理服务器 TinyRouter 正式版发布
经过近4个月断断续续的奋战,局域网代理服务器 TinyRouter 正式版终于问世了! TinyRouter使用了自己全新开发NAPT算法(好不好就不知道了,没有正式评估,不过对CPU的占用率可以忽略),高速、稳定、低限制地进行局域网的网络代理共享,完全没有使用IE代理产生的种种限制,对迅雷、网络电视、电驴等等网络资源高消耗的软件也能自由应付,完全不会出现“卡住”的情况,而CCProxy原创 2010-05-02 01:28:00 · 881 阅读 · 0 评论 -
Windows 临界区,内核事件,互斥量,信号量
Windows 临界区,内核事件,互斥量,信号量。 临界区,内核事件,互斥量,信号量,都能完成线程的同步,在这里把他们各自的函数调用,结构定义,以及适用情况做一个总结。临界区:适用范围:它只能同步一个进程中的线程,不能跨进程同步。一般用它来做单个进程内的代码快同步,效率比较高。相关结构:CRITICAL_SECTION _critical相关方法:/*初始化,最先转载 2010-03-19 11:24:00 · 831 阅读 · 0 评论 -
VC 应用XP(系统)风格
VC6中使用XP风格,除了在资源中添加 24 - 1这类风格文件外还要再添加一段代码,才能更好的支持XP风格: #define IDS_UTIL_UXTHEME "UxTheme.dll"#define IDS_UTIL_THEMETEXTURE "EnableThemeDialogTexture"void EnableThemeDialogTexture(HWN原创 2010-03-12 01:14:00 · 1912 阅读 · 0 评论 -
中断请求级(IRQL)
中断请求级Windows NT为每个硬件中断和少数软件事件赋予了一个优先级,即中断请求级(interrupt request level - IRQL)。IRQL为单CPU上的活动提供了同步方法,它基于下面规则:一旦某CPU执行在高于PASSIVE_LEVEL的IRQL上时,该CPU上的活动仅能被拥有更高IRQL的活动抢先。转载 2010-03-11 09:43:00 · 1745 阅读 · 0 评论 -
驱动开发网站
http://www.osronline.com,技术含量很高的Windows驱动开发站点,该站点的list基本上覆盖了所有Windows驱动开发的常见问题,强烈推荐;http://www.microsoft.com/whdc,微软的驱动开发资源主页,可以获取很多官方资料; http://www.wd-3.com/,该站点收集了一些比较好的Windows驱动开发方面的文章和示例代码; http://www.sysinternals.com/,Inside Windows 2000的作者之一创建的站点,有很多转载 2010-11-20 19:31:00 · 1168 阅读 · 0 评论
分享