`
文章列表
反思一个问题的解决过程:多思考 今天来了后我就一直在调试驱动中没有在创建进程前向上层通知的问题,中间经历了几个过程,现在回想一下,如果是当时看代码的时候如果能够深入一些,应该就会一次解决问题的,会节约很多时间。   一、问题的来源 我们目前在做的一个软件中有一个功能是监视系统的进程创建,在进程创建前后创建后需要通知上层或者用户做出相应的反应。昨天我测试了进程通知的功能,发现以前的代码实际上完成的是进程创建后的通知,而我们现在需要的是进程创建前的通知。   在代码中发现有进程创建函数 HOOK 的功能,其中进程创建函数 hook 的功能被注释掉了 ...
  FltRegisterFilter 调用失败的处理  今天准备调试昨天的一个mini filter 的时候,突然系统蓝屏了,感觉很奇怪,因为在以前是没有问题,而且这几天也没有改过代码,怎么突然有问题了呢?于是启动 windDBG 进行调试。 ...
  在开发过程,出现了一类功能或者bug,处理它的开发人员给不出完成的时间估计,或者时间估计相当不准确。这样的问题的数目如果在项目中很多,那么项目的风险就很高。    这个问题可能是管理的问题,也有可能是技术的问题。
  在命令行中输入下面的代码:     1. 增加“新建C++ source”   reg add HKCR\.cpp\ShellNew /v nullfile /f reg add HKCR\cppfile /ve /d C++文件 /f      2. 增加“新建C/C++ Header”   reg add HKCR\.h\ShellNew /v nullfile /f reg add HKCR\hfile /ve /d C++头文件 /f
正确使用线程 一、             概述 正确使用线程 = 隔离 + 异步消息   二、             使用方式 1 . 数据之间相互隔离,线程的数据尽可能私有。注意这并不是意味使用一些特殊的方式比如线程局部存储( TLS ),只是说不要通过暴露数据的指针或者引用来共享线程的私有数据。 2 .线程之间使用异步消息通信。用异步消息的方式使线程之间的运行是相互独立的,除非是确实需要等待一个结果。 3 .通过消息泵机制来组织线程的工作。大多数的线程都是把时间花在处理收到 ...
  在安装驱动的时候,一般是使用inf文件进行安装。  在inf文件中有一个version节,对驱动的安装是至关重要的。它位于inf文件之首,其下有一个字段DriverPackageType是确定驱动安装包的类型。格式如下:       [Version]       …       DriverPackageType=PackageType   上面的PackageType就是驱动包的类型,它可能的取值在如下: ClassFilter         Class filter driver FileSystem         File system driver Fil ...
判断 Windows 是否处于安全模式 一、前言      在开发驱动的时候,在有的情况下需要查看操作系统是不是运行在安全模式下。比如我们如果判断出系统正处于安全模式下,就不让驱动程序加载成功。 二、原理          微软以及估计到了开发中有这样的需求,在 Windows 操作系统核心中导出了一个指针变量,它保存了一个声明为 ULONG 类型的数据,这个指针变量被命名成 InitSafeBootMode 。这个变量保存着现在操作系统的安全模式情况的值。在设备驱动中,可以检查这个变量的值来判断 Windows ...
编译错误C3163:_vsprintf的属性声明不兼容 问题 在昨天用 VS2008 和最新的 V7.1SDK 编译程序的 ZLIB 时候,出现了一个错误: 38> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(358) : error C3163: '_vsnprintf': attributes inconsistent with previous declaration 38>        C:\Program Files\Microsoft Visual Stud ...
从版本宏定义谈 Windos 的版本(一)    你想知道 Windows 有哪些版本号码?如果你是开发人员,可以从微软的 SDK 中可以看出一些:   // // _WIN32_WINNT version constants // #define _WIN32_WINNT_NT4 0x0400 #define _WIN32_WINNT_WIN2K 0x0500 #define _WIN32_WINNT_WINXP 0x0 ...
在编译器预处理过程中,有些宏是C或者C++标准预先定义的,有些是编译器自身预先定义的。 在Windows上开发程序的时候,大多数时候用的是微软的C/C++编译器,_MSC_VER就是其中一个比较常见的宏。 定义 _MSC_VER是微软的C/C++编译器预先定义的一个宏,它包含了编译器的主要和次要版本号。 编译器的版本号是用冒号分开的,如15.00.20706.01,分隔开的第一部分就是编译器的主要版本号,第二部分就是编译器的次要版本号。如上面版本号的编译器,在进行预处理的时候,_MSC_VER评估取值后得到的数据就是1500。   各种编译器下的取值  VC 2010 ...
    安装完系统后默认的是ibus这个输入法框架,里边带的几个输入法特别不好使,感觉不是给中国人用的,尤其是使用简体中文的人,里边的几个输入法在每次输入后的可选字列表里都是一些不常见的字,另外还有一个我没法适应的输入法习惯是不能使用空格来确认第一个选择,非得输入数字1后才行,而我以前在windows下使用的输入法都不是这样的,可以用空格选择。     想起以前玩freebsd的时候用过scim的输入法框架,感觉不错,费了半天劲,终于装上了,用了它里边的一个“智能拼音”,找到了在windows下使用输入法的感觉。遗憾是它的候选字列表的窗口就是不在要输入字符地方的光标下,总是跑到屏幕左上角去, ...
gvim --remote-wait-silent +$(CurLine)  $(ItemPath)
  在密码学领域,RC4( 又名ARC4 或者ARCFOUR )是应用最广泛的流加密算法,应用在安全套接字层(SSL)(用来保护网络上传输的数据)和WEP(无线网络数据保护)上。虽然它的最大亮点是算法的简单性和运行速度,但是因为它存在的弱点,在新的系统中使用时是有所争论的。the beginning of the output keystream  is not discarded(使用起始的输出keystream),使用非随机的或者相关性的keys,一个keysteream连续两次使用,这些使用方法都能使RC4加密方法显得特别脆弱,比如在WEP中RC4的一些使用方式就导致了非常不安 ...
1. 浏览器某一个页面,比如http://www.flickr.com/photos/stone_steen/3614206665/in/set-72157619584982140/,我们觉得还不错,想把这个人的所有图片下载下来   2. 获取对于的用户ID     调用flickr.urls.lookupUser获取页面对应的用户ID,参数url为http://www.flickr.com/photos/stone_steen/3614206665/in/set-72157619584982140,得到的结果是:   <rsp stat="ok"> ...
近来研究FLASH的视频格式,了解了一些网站。 http://groups.google.com/group/macromedia.flash/topics?lnk http://www.flashcomguru.com/ http://osflash.org/red5 http://www.streamingmedia.com/ http://broadcast.oreilly.com/2009/04/adobes-real-time-media-flow-pr.html 这是说明关于Adobe的RTMPFP的协议的文章。   Adobe准备 ...
Global site tag (gtag.js) - Google Analytics