摘要: 内核线程在驱动中生成的线程一般是系统线程。系统线程所在的进程名为“System”。NTSTATUSPsCreateSystemThread(OUT PHANDLE ThreadHandle,IN ULONG DesiredAccess,IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,IN HANDLE ProcessHandle OPTIONAL,OUT PCLIENT_ID ClientId OPTIONAL,IN PKSTART_ROUTINE StartRoutine,IN PVOID StartContext);线程的结束应该在线程中自己 阅读全文
posted @ 2010-10-13 23:58 浪里飞 阅读(1204) 评论(0) 推荐(1) 编辑
摘要: Function Recursion function factorial { if [ $1 -eq 1 ] then echo 1 else local temp=$[ $1 - 1 ] local result=`factorial $temp` echo $[ $result * $1 ] fi } Creating a Library Just as with environment v... 阅读全文
posted @ 2010-10-13 23:21 浪里飞 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 1、重定向很多数据,用echo就不方便了。我们用exec命令。如exec 1>testoutShell 中最多可以有9个打开的文件描述符。2、重定向exec 3>&1 //脚本将文件描述符3重定向到文件exec 3<>testfile //exec使命令将文件描述符3分配给文件testfile的输入输出操作重定向到特殊符号&-来关闭文件描述符。列向所有文件描述符:lsof。/dev/null将输出同时发送到监视器和日志文件,用tee命令。Mktemp 来创建临时文件和昨时目录。在同一步物理介质的文件间只能创建一个硬链接。3、函数Function name 阅读全文
posted @ 2010-10-13 23:10 浪里飞 阅读(2811) 评论(0) 推荐(0) 编辑
摘要: 汇编部分1、call 的本质相当于push+jmp,ret的本质相当于pop+jmp。2、Windows中,不管哪种调用方式都是返回值放在eax中,然后返回。外部从eax中得到值。3、Ebp总是被我们用来保存这个函数执行之前的esp的值。4、把局部变量区域初始化成全0cccccccch,0cch实际是int 3 指令的机器码,这是一个断点中断指令。5、任何一段中间不加任何跳转,连续的mov和加减乘... 阅读全文
posted @ 2010-10-12 20:20 浪里飞 阅读(3948) 评论(1) 推荐(0) 编辑
摘要: 1、从变量读取列表 List = "apple tree book" List = $List" hello" 则此时,List 为"apple tree book hello"这是一种将文本添加到一个存在的,存储在一个变量中的文本字符串的常用方法。 2、改变字段分隔符 默认是:空格 制表符 换行符 IFS = $'\n' 另外一种安全的做法 IFS.OLD = $IFS IFS = $'\n' ... 阅读全文
posted @ 2010-10-11 21:27 浪里飞 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 1、(Microsoft Specific)__stdcall主要指明了恢复堆栈的规则:在主调用函数中负责压栈,在被调用函数中负责弹出堆栈中的参数,并且负责恢复堆栈。 The __stdcall calling convention is used to call Win32 API functions. The callee(被调用者) cleans the stack, so the comp... 阅读全文
posted @ 2010-09-27 23:03 浪里飞 阅读(580) 评论(0) 推荐(0) 编辑
摘要: 预处理宏预处理器(Preprocessor)定义了读取源代码、对代码预先翻译以及编写供编译器读取的新代码的过程。预处理先于编译器对源代码进行处理。C/C++ 语言没有内置工具在编译时间包含其他源文件、宏定义,或根据条件包含或排除一些代码行的编译时指令。预处理器提供了这些能力。虽然当前大多数编译器内部集成了预处理器,人们还是认为预处理独立于编译器的过程。预处理器读取源代码,查找预处理指令语句和宏调用... 阅读全文
posted @ 2010-09-27 21:53 浪里飞 阅读(644) 评论(0) 推荐(0) 编辑
摘要: MFC中自定义消息消息映射、循环机制是Windows程序运行的基本方式。VC++ MFC 中有许多现成的消息句柄,可当我们需要完成其它的任务,需要自定义消息,就遇到了一些困难。在MFC ClassWizard中不允许添加用户自定义消息,所以我们必须手动在程序中添加相应代码,以便可以象处理其它消息一样处理自定义消息。自定义消息的步骤如下(举个例子):(1)建立Single Document的MFC ... 阅读全文
posted @ 2010-09-27 20:59 浪里飞 阅读(6758) 评论(0) 推荐(0) 编辑
摘要: #,## 1、在一个预处理器宏中的参数前面使用一个#,预处理器会把这个参数转换为一个字符数组。(原文:When you put a # before an argument in a preprocessor macro, the preprocessor turns that argument into a character array. This, combined with the f... 阅读全文
posted @ 2010-09-25 23:37 浪里飞 阅读(15510) 评论(4) 推荐(0) 编辑
摘要: 1、宏不可以出现在递归中。预处理指示#define,#ifdefine,#endif#defineFLAG//...#ifdefFLAG//...#endif//FLAG#define的反意是#undef#ifdef的反意是#ifndef对于包含结构的每个头文件,应当首先首先检查这个头文件是否已经包含在特定的CPP文件中了。通过测试预处理器的标记来检查。#ifndefHEADER_FLAG#def... 阅读全文
posted @ 2010-09-25 23:13 浪里飞 阅读(1234) 评论(0) 推荐(0) 编辑