求两个windows内核API函数的原型! NtReadVirtualMemory(); NtWriteVirtualMemory(); [问题点数:40分]

Bbs1
本版专家分:0
结帖率 0%
Bbs12
本版专家分:378790
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
Bbs1
本版专家分:0
Bbs9
本版专家分:64969
Blank
红花 2011年8月 C/C++大版内专家分月排行榜第一
2010年12月 C/C++大版内专家分月排行榜第一
Blank
黄花 2019年4月 扩充话题大版内专家分月排行榜第二
2019年3月 扩充话题大版内专家分月排行榜第二
2011年9月 C/C++大版内专家分月排行榜第二
2011年4月 C/C++大版内专家分月排行榜第二
2010年11月 C/C++大版内专家分月排行榜第二
Blank
蓝花 2011年6月 C/C++大版内专家分月排行榜第三
Bbs12
本版专家分:378790
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
Bbs1
本版专家分:0
Windows内核驱动API大全.pdf
Windows<em>内核</em>驱动API大约有两千多个,仅有<em>函数</em>名,没有<em>函数</em><em>原型</em>
编写求两个整数的最小公倍数的函数
编写求<em>两个</em>整数的最小公倍数的<em>函数</em>,<em>函数</em><em>原型</em>为:int maxb(int x,inty);并编写主<em>函数</em>,调用该<em>函数</em>求键盘输入的<em>两个</em>整数的最小公倍数,并在屏幕输出。
新编Windows API参考大全
描述Windows API的<em>函数</em><em>原型</em>,使用方法及注意事项。
实验3 系统调用
系统调用n实验目的nnn建立对系统调用接口的深入认识n掌握系统调用的基本过程n能完成系统调用的全面控制n为后续实验做准备n实验内容nnn此次实验的基本内容是:在Linux 0.11上添加<em>两个</em>系统调用,并编写<em>两个</em>简单的应用程序测试它们。nnniam()nnn第一个系统调用是iam(),其<em>原型</em>为:nnnint iam(const char * name);
N种内核注入DLL的思路及实现
<em>内核</em>注入,技术古老但很实用。现在部分RK趋向无进程,玩的是SYS+DLL,有的无文件,全部存在于内存中。可能有部分人会说:“都进<em>内核</em>了.什么不能干?”。是啊,要是<em>内核</em>中可以做包括R3上所有能做的事,软件开发商们也没必要做应用程序了。有时,我们确实需要R3程序去干驱动做起来很困难或者没必要驱动中去做的事,进程 /  DLL是不错的选择,但进程目标太大,所以更多的同学趋向于注DLL。     若
病毒分析。
病毒分析
一个邮件钓鱼木马的分析 (一)
已发表于本人专栏:  http://www.freebuf.com/column/142406.html 最近收到一个钓鱼木马邮件,内容形式如下:   邮件里有个链接,当点开链接后会下载一个doc文档,打开文档会发现有宏代码   经过一些列解密后悔执行shell执行宏命令,打印出这个信息出来后发现,原来执行了powershell命令   是从网
RING3下 内存清零法 杀进程
在一般任务管理器无法关闭进程时用到内存清零法 杀进程 原理分析1.先打开CSRSS.EXE系统进程,获得其句柄,几乎系统所有的HANDLE结构体中,里面的ProcessId都是指向csrss.exe的,利用它的PID来进行遍历进程实现过滤。2.分配好一块内存空间Buffer,用来存储SystemHandleInformation系统句柄信息3.通过ZwQuerySystemInformation<em>函数</em>来查询系统句柄信息并保存在
修改目标进程的父进程
 来源:http://pjf.blogone.net作者:pjf(jfpan20000@sina.com)  让小师弟测一下1.06的进程规则,他试了试问:“为什么里面有源进程和父进程两项?不就是指创建目标进程的那个进程,它们不是一个意思吗?”  因为很简单,略略回答了一下,因为好多天没在http://pjf.blogone.net上添东西了,敲下来充数,有点不好意思。   <em>windows</em>下的
【Window内核驱动开发】——内存映射的基本使用
【我的】Window驱动开发——内存映射的基本使用rn作者:zcr214 时间:2016/5/18rn rn内存映射文件可以用于3个不同的目的。rn•系统使用内存映射文件,以便加载和执行. exe和DLL文件。这可以大大节省页文件空间和应用程序启动运行所需的时间。rn•可以使用内存映射文件来访问磁盘上的数据文件。这使你可以不必对文件执行I/O操作,并且可以不必对文件内容进行缓存。rn•可以使用内存
Windows API大全
Windows API大全 pdf扫描版,共上下册<em>两个</em>文档,包含详尽的Windows API<em>函数</em><em>原型</em>、参数、返回值、特点和用法解释。
内核常用API
1. ffsnffs()<em>函数</em>用于查找一个整数中的第一个置位值(也就是bit为1的位)。nn
关于windows驱动层调用未公开API
一般驱动层开发都会调用到ntoskrnl,ntdll导出的API,如果直接使用的话,会报identifier not found的错误。其实API已经实现了,我们的驱动是有<em>内核</em>负责加载的,应该就可以读取到,所以加个声明,如:rn如果是ntoskrnl导出的rn声明API前加NTKERNELAPIrn如果是ntdll导出的rn声明前加NTSYSAPIrnrnrn如:rnNTKERNELAPIrnNT
pipe函数内核实现
pipe源码分析rnrnrnrn本文基于linuxrn kernel 4.13 分析,与通用的2.6差距较大。请读者自行甄别本文的特性,是否符合自己当前环境。rnrnrnrn本文要解决的问题rnrn1:pipe源码分析rn2:pipe大小限制rn3:如果没有读(写)端了,那么我写(读)操作会发生什么。rnrnrnrnrnrn父子进程之间通信,首先想到的是pipe<em>函数</em>,pipe<em>函数</em>返回2个fd。通常
2.一元多项式相乘
题目说明: n  要求采用链表形式,求<em>两个</em>一元多项式的乘积:h3 = h1*h2。<em>函数</em><em>原型</em>为:void multiplication( NODE * h1, NODE * h2, NODE * h3 )。 n输入: n  输入数据为两行,分别表示<em>两个</em>一元多项式。每个一元多项式以指数递增的顺序输入多项式各项的系数(整数)、指数(整数)。 n  例如:1+2x+x2表示为:&amp;lt;1,0&amp;gt;,&amp;l...
Windows数据类型与API函数(MessageBox函数 和 ReadFile函数
所有的Windows数据类型都是大写的rn所有的Windows API<em>函数</em> 大量地使用了Windows数据类型rnrnrn这里以这<em>两个</em><em>函数</em>为例,它们的返回值和参数都大量地使用了Windows数据类型rn所有的Windows API<em>函数</em>都有W版和A版(后面会学到)rn先来看MessageBoxW<em>函数</em>rn四个参数:rn1. 表示Message窗口的所有者 , 如果填 NULL 就代表它的所有者是桌面r
求两数的和,差,积(指针函数作为形参)
n#include&amp;lt;stdio.h&amp;gt;nint f(int a,int b)n{n int c;n c=a+b;n return c;n}nint g(int a,int b)n{n int c;n c=a*b;n return c;n}nint h(int a,int b)n{n int c;n c=a-b;n return c;n}nint main()n{n int x,y,z,j...
Windows内核函数的前缀
Winodws操作系统采用的是“client-server”设计模式,在用户层和<em>内核</em>层提供不同的系统<em>函数</em>,供程序员使用。其结构如下:nnnnn         如上图,Win32子系统将Win32 API转为Native API,故以Nt前缀开头的都是Native API,它还是属于用户层。通过Native API,建立与<em>内核</em>层的联系。nnn        在C盘的Windows文
如何调用内核未导出的函数
如何获取<em>内核</em>未导出的<em>函数</em>地址从Linux<em>内核</em>的2.6某个版本开始,<em>内核</em>引入了导出符号的机制。只有在<em>内核</em>中使用EXPORT_SYMBOL或EXPORT_SYMBOL_GPL导出的符号才能在<em>内核</em>模块中直接使用。然而,<em>内核</em>并没有导出所有的符号。当我们写驱动时,如果想调用一个并未导出的<em>函数</em>时,我们可以使用如下办法:以get_request<em>函数</em>为例,该<em>函数</em><em>原型</em>为:static struct request *
Windows 内核API 函数 说明大全
Windows <em>内核</em>API <em>函数</em> 说明大全,驱动开发可以看。。。。。
windows内核API(windows7)
<em>windows</em><em>内核</em>API(<em>windows</em>7)
WDM驱动程序的基本结构
Windows<em>内核</em>输出的<em>内核</em>API<em>函数</em>; DDK提供的运行时间库 其它驱动程序提供的服务
一元多项式相乘
成绩rnrn10rnrn开启时间rnrn2017年09月27日 星期三 14:00rnrnrnrn折扣rnrn0.8rnrn折扣时间rnrn2017年10月20日 星期五 23:55rnrnrnrn允许迟交rnrn否rnrn关闭时间rnrn2018年01月8日 星期一 23:55rnrnrnrnrnrnrnrnrn题目说明:rn  要求采用链表形式,求<em>两个</em>一元多项式的乘积:h3 = h1*h2。函
Problem B: 编写函数:求最大公约数gcd()和最小公倍数lcm() (Append Code)
Home Web Board ProblemSet Standing Status StatisticsrnProblem B: 编写<em>函数</em>:求最大公约数gcd()和最小公倍数lcm() (Append Code)rnTime Limit: 1 Sec Memory Limit: 2 MBrnSubmit: 10604 Solved: 4505rn[Submit][Status][Web Bo...
C++中的sort()函数的原形
1、sor(a,a+n,compare){   //前<em>两个</em>是参数是待排序的数组首地址和尾地址//最后一个参数是compare表示的比较类型//可调用functional<em>函数</em>的less()和greater()<em>函数</em>比较大小}...
Windows API 函数 for Windows API 函数.exe
Windows API <em>函数</em> for Windows API <em>函数</em> Windows API <em>函数</em> for Windows API <em>函数</em> Windows API <em>函数</em> for Windows API <em>函数</em>
通过内核HOOK处理某个进程对SetCursorPos的调用
最近打开一个游戏,发现该游戏不断调用SetCursorPos这个<em>函数</em>,所以想着在<em>内核</em>中PASS掉它,经过两周断断续续的研究,终于在今晚成功PASS掉它。rn经过两周断断续续的查资料,看视频,分析,终于达到目的。rn关于鼠标的处理:rn获得鼠标的位置<em>函数</em>GetCursorPos,设置鼠标的位置SetCursorPosrn获得暂且不分析,这里只说SetCursorPos,其实这<em>两个</em>也是异曲同工。rnS
Windows内核编程基础篇之在线程中睡眠
我们在C语言中 包含头文件: Windows.h。就能调用<em>函数</em>sleep() 是程序停下一段时间。在驱动中也可以睡眠,用到的<em>函数</em><em>原型</em>如下:rnNTSTATUS KeDelayExecutionThread(n _In_ KPROCESSOR_MODE WaitMode,n _In_ BOOLEAN Alertable,n _In_ PLARGE_INTEGER Interv
内核同步机制 - 读写锁 read_lock()/write_lock
读写锁的基本原理类似自旋锁,它区分读取和写入场景,允许多个读线程同时访问共享数据,而保持读-写和写-写互斥,适用频繁读取数据,而修改相对较少的场景;
写出memcpy的原型函数
写出memcpy的<em>原型</em><em>函数</em>rnvoid *memcpy(void*dest, const void *src, size_tn);nvoid* memcpy(char *strDest, const char *strSrc, int Count)n{nif(strDest == NULL || strSrc == NULL || Count<= 0) n{nreturn NULL;n}n
【问题不重犯】使用到的接口必须要有原型声明
        如果使用的接口在外部有定义。那么在使用的时候,如果没有包含该接口声明所在的头文件,必须要在使用的文件中进行声明(extern)。       因为,如果不进行声明,则编译器默认将所有的参数和返回值都默认为int类型。有可能原来的参数或返回值类型不是int,而是其他的,比如指针类型。在64位机子上,数据就相当于被截断,然后再进行扩展,从而导致异常问题。...
C++第七周mooc在线测评—指针、变量和函数
//1编写<em>函数</em>重置<em>两个</em>变量的值(20分)n//题目内容:n//编写<em>函数</em>重置<em>两个</em>变量的值,该<em>函数</em>的<em>原型</em>为 void reset(int *a, int *b);n//<em>函数</em>内部将<em>两个</em>值重置为<em>两个</em>变量原值的平均数(出现小数则四舍五入)。n//n//输入格式 :n//<em>两个</em>待重置的值n//n//输出格式:n//重置后的<em>两个</em>值n//n//输入样例:n//7 14n//n//输出样例:n//11 11n//时
驱动中全局hook应用层API函数
extern "C" NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)n{nn DbgBreakPoint();n DriverObject->DriverUnload = DriverUnload;n NTSTATUS status;n PEPROCESS Process =
Windows核心编程笔记(一) 错误处理
在Windows编程中我们调用各种Windows API<em>函数</em>来使用系统提供的各种基础支持,这些API<em>函数</em>并不是总是都能够预期完成所规定的工作的,有些时候会因为各种原因导致<em>函数</em>调用失败,比如传给<em>函数</em>的参数不正确,调用<em>函数</em>的权限不够,请求的资源系统暂时分配不了等等。n   大多时候根据<em>函数</em>的返回值,可以判断<em>函数</em>是否失败nnnnn    Windows除了使用返回值标识<em>函数</em>执行情况,外还引入
windows核心编程-获得环境变量的方法
一:使用_environ获得环境变量#includen#includenint main()n{n char** p = _environ;//这是一个指向字符串数组的指针n while (*p != NULL)n {n printf("%s\n", *p);n p++;n }nn getchar();rnn return 0;n}rn二:在控制台中使用宽字节的方式rn#includen#in
Windows API函数参考大全
作为Microsoft 32位平台的应用程序编程接口,Win32 API是从事Windows应用程序开发所必备的。本书提供众多API<em>函数</em>的<em>原型</em>。
标准C函数库头文件、POSIX标准库头文件和Windows API函数库头文件说明
1. 标准C<em>函数</em>库头文件nnnnn名字n源自n描述nnnnn&lt;assert.h&gt;nn包含断言宏,被用来在程序的调试版本中帮助检测逻辑错误以及其他类型的bug。nnn&lt;complex.h&gt;nC99n一组操作复数的<em>函数</em>。nnn&lt;ctype.h&gt;nn定义了一组<em>函数</em>,用来根据类型来给字符分类,或者进行大小写转换,而不关心所使用的字符集(通常是ASCII或其扩展字符集,也...
Windows API 函数详解
Windows API <em>函数</em>详解 CFile 的打开模式及实例绝对详细,有<em>函数</em><em>原型</em>不可多得
原型两个作用
<em>原型</em>的作用一:数据共享,节省空间nn在<em>函数</em>作为构造<em>函数</em>时,在构造<em>函数</em>内部用this.method 初始化对象方法会使得每一个实例化出来的对象都有一个相同的但是占用不同内存的方法nnfunction Person(){n this.say = function(){n console.log('Hi');n }n}nn当我们去实例化对象时,每一个对象都有一个say方法,虽然...
Windows内核模式的线程同步之事件(Event)
HANDLE hEvent = CreateEvent(PSECURITE_ATTRIBUTES psa, BOOL bManualReset, BOOL bInitialState, PCSTR pszName);rn上面是创建一个事件对象,psa是该<em>内核</em>对象的安全属性, bManualReset是用来告诉系统创建一个手动重置事件(TRUE),还是创建一个自动重置事件(FALSE),bIniti
【Windows原理】线程同步-原子锁
#include &quot;stdafx.h&quot;n#include &amp;lt;wtypes.h&amp;gt;nint g_n;nDWORD WINAPI ThreadPro1(LPVOID lpThreadParameter)n{n for (int i = 0; i &amp;lt; 100000;i++)n {n // <em>两个</em>线程必须都锁住,不锁的不受影响n Interlocked...
Windows api函数大全
Windows <em>api</em><em>函数</em>大全 Windows <em>api</em><em>函数</em>大全 Windows <em>api</em><em>函数</em>大全 Windows <em>api</em><em>函数</em>大全
windows API函数
<em>windows</em> API<em>函数</em> <em>windows</em> API<em>函数</em> <em>windows</em> API<em>函数</em> <em>windows</em> API<em>函数</em>
windows API 函数大全
<em>windows</em> API <em>函数</em>大全 <em>windows</em> API <em>函数</em>大全 <em>windows</em> API <em>函数</em>大全 <em>windows</em> API <em>函数</em>大全
内核打印函数printk
printk<em>函数</em>以及<em>内核</em>打印级别介绍
两个正整数的最大公约数
基本要求:从键盘输入<em>两个</em>整数,输出<em>两个</em>整数的最大公约数。用C或C++语言实现程序解决问题。n1.      程序风格良好(使用自定义注释模板)n2.      使用三种算法解决问题n3.      提供友好的输入输出,并进行输入数据的正确性验证n方法一:穷举法n穷举法,顾名思义,就是一个一个试,即遍历<em>两个</em>整数中较小的数到零的所有数,如果能够同时被<em>两个</em>整数整除,则这个数就为这<em>两个</em>数的最大公
内核函数时间获得
struct timespec {n        long       tv_sec; 秒数n        long       tv_nsec; 纳秒数n};nnstruct timeval {n    __kernel_time_t        tv_sec;        秒数n    __kernel_suseconds_t    tv_usec; 微妙n};nnstruct rtc...
字符串操作strlen,strcpy,strcat的函数原型
闲来无聊,写一写字符串操作<em>函数</em>strlen,strcpy, strcat的<em>函数</em><em>原型</em>,听说之前微软还面试过strcpy这个<em>函数</em>的<em>函数</em><em>原型</em>。看起来简单,但是暗藏玄机~~~~~。rn首先,strlen()(先这么写着吧)<em>函数</em>,求字符串的长度。rn既然是长度,那返回类型肯定是整型。但是既然长度不能为负,那就定义一个无符号型unsigned int。rn当然还要传参,参数类型为char* 指针类型。但是为了
linux内核中的list
本文详细分析了 3.4.112 <em>内核</em>中链表结构的实现,并通过图像和实例进行了详尽的讲解。
操作系统实验三:实现作业控制语言.
这个是在操作系统课上的实验,本实验的任务是将<em>原型</em>操作系统分离为引导程序和<em>内核</em>,由引导程序加载<em>内核</em>;<em>内核</em>由汇编语言文件和c语言文件共同生成;利用C语言实现作业控制语言。
bind函数
nthis.x = 9; nvar module = {n x: 81,n getX: function() { return this.x; }n};nnmodule.getX(); // 返回 81nnvar retrieveX = module.getX;nretrieveX(); // 返回 9, 在这种情况下,&quot;this&quot;指向全局作用域nn// 创建一个新<em>函数</em>,将&quot;this&quot;绑定到m...
系统API函数大全(原型介绍)
VCAPI<em>函数</em>大全 ,打包了各种API<em>函数</em><em>原型</em>介绍
1159: 最大的两个数(指针专题)
Descriptionrnrnrnrnrnrnrnrn求n个整数中的最大的<em>两个</em>元素。要求定义一个<em>函数</em>LargestTow(),求数组a的最大的<em>两个</em>元素,分别存入形参指针pfirst和psecond所指存储单元,<em>函数</em><em>原型</em>如下:rnvoid LargestTow(int a[],int n,int *pfirst,int *psecond) rn{ rn/*数组a有n个元素,将数组中的最大值存入形参指
Java 求两个日期之间天数(DateApi)
package DateApi;nnimport java.text.DateFormat;nimport java.text.ParseException;nimport java.text.SimpleDateFormat;nimport java.util.Date;nn/*n * 练习:n * "2012-3-17"到"2012-4-6"n * 中间有多少天n * 思路:n * <em>两个</em>日期相
【c语言】(宏定义)定义一个带有三个参数的宏MAX,求三个参数中的最大值
题目:nn定义一个带有三个参数的宏MAX,求三个参数中的最大值nn思路分析:n主要是要用一个<em>函数</em>,求三个参数中的最大值n需要用到(x) &amp;amp;amp;gt; (y)? (x) : (y)的多重嵌套n注意每个元素外都要加()n代码实现:n#include&amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;n#define Max(a, b, c) (a) &amp;amp;amp;gt; (b)? ((a) &amp;amp;amp;gt; (c)? (a) : (c))
浅析open、close函数
在了解open<em>函数</em>之前想看看系统调用和文件描述符的概念;rn系统调用:系统调用是操作系统为用户态运行的进程与硬件设备(CPU,磁盘,打印机等)进行交互提供的一组接口<em>函数</em>。rn文件描述符:对于<em>内核</em>而言,所有打开的设备,文件,网络socket都是通过文件描述符引用,文件描述符是一个非负整数。当打开一个现有文件或者创建一个新文件时,<em>内核</em>向进程返回一个文件描述符。当读写一个文件时,使用open或creat
Windows 之等待函数
WaitForSingleObject<em>函数</em>用来等待一个<em>内核</em>对象变为有信号状态:DWORD WaitForSingleObject(HANDLE hObject, //指明一个<em>内核</em>对象的句柄DWORD dwMilliseconds); //等待时间(ms,可以指定为无限大,如果为0 表示<em>函数</em>根据测试同步对象的状态并立即返回)返回值:WAIT_OBJECT_0:<em>内核</em>状态处于已通...
C++ 编写函数重置两个变量的值
题目内容:编写<em>函数</em>重置<em>两个</em>变量的值,该<em>函数</em>的<em>原型</em>为  void reset(int *a, int *b);<em>函数</em>内部将<em>两个</em>值重置为<em>两个</em>变量原值的平均数(出现小数则四舍五入)。输入格式:<em>两个</em>待重置的值输出格式:重置后的<em>两个</em>值输入样例:7 14输出样例:11 11#include&amp;lt;iostream&amp;gt;nusing namespace std;nvoid reset(int *a, int *...
C语言实现求两个正整数的最大公约数
/*rn * 文件名:commonDiviser.crn * 功能描述:求<em>两个</em>正整数的最大公约数rn * 编辑人:王廷云rn * 编辑日期:2017-1-10rn*/rn#include &amp;amp;lt;stdio.h&amp;amp;gt;rnrnint main(void)rn{rn int a, b;rnrn fprintf(stdout, &amp;quot;请输入<em>两个</em>正整数:&amp;quot;);rnrn /* 获取并检查用户输入 */rn whil...
Linux内核API查询手册(html格式)
找了好久都没找到一个像样的查询Linux<em>内核</em>的方法 网站上下的好多都是假的 不能用的 本来放弃了 不经意间发现 <em>内核</em>原来可以自己生成查询文档 在源码目录下 执行:make htmldocs就可以生成查询文档了 虽然简陋点 凑合着够用了 有时间的可以自己生成 不用下的 自己生成 要装个xmlto软件 400多M 所以传上来给嫌麻烦的同志们用 在Linux<em>内核</em>API kernel <em>api</em>目录下有个index html是大部分<em>内核</em><em>函数</em>的索引 一般查询就找他 其他的 如file operations这样的结构居然找不到 还是要结合网上资源 ">找了好久都没找到一个像样的查询Linux<em>内核</em>的方法 网站上下的好多都是假的 不能用的 本来放弃了 不经意间发现 <em>内核</em>原来可以自己生成查询文档 在源码目录下 执行:make htmldocs就可以生成查询文档了 虽然简陋点 [更多]
几个实用的Javascript数组实用的原型扩展方法(唯一|交集|合并|去重)
 rn/*--数组扩展方法--*/rn/*rn*去除数组中的重复项rn*/rnArray.prototype.unique = function()rn{rn var a = []; var l = this.length; rn for (var i = 0; i &amp;lt; l; i++) rn { rn for (var j = i + 1; j &amp;lt; l; j++)rn ...
一些基本的内核函数
snprintf(),<em>函数</em><em>原型</em>为int snprintf(char *str, size_t size, const char *format, …) n将可变个参数(…)按照format格式化成字符串,然后将其复制到str中 n(1) 如果格式化后的字符串长度 &amp;amp;lt; size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符(‘\0’); n(2) 如果格式化后的字符串长度 &amp;amp;g...
操作系统实验之系统调用
操作系统实验之系统调用
Linux内核API完全参考手册(第2版).邱铁(带详细书签).pdf
经过十年多的Linux操作系统教学与Linux<em>内核</em>实践开发,目前很难找到一本能够详细讲解Linux<em>内核</em>API的参考书。目前出版的Linux方面很多图书相似度很大,基本上可以分为以下三种:1. Linux<em>内核</em>分析。这类书一般都很老,版本陈旧。与当前最新的<em>内核</em>差别很大。2. Linux操作系统。以原理为主,以实例为辅,一般都设计成操作系统课上的常用实例。3. Linux上层应用<em>函数</em>库。这些图书不便于<em>内核</em>开发,因为<em>内核</em>开发所需要的API恰恰很少提及。因此计划编写一本适合最新的Linux<em>内核</em>3.0版本,指导思想是基于PC机完成所有代码分析与实例练习,增强其通用性。 在近五年的教学与大学生创新实践开发中,在已经积累经验的基础上编写Linux<em>内核</em>API,以“Linux<em>内核</em>模块式API开发与实例验证”为主线,以阶梯式前进的方式,使读者能够低起点、高效率的学习理论、深入实践,从而为LINUX<em>内核</em>开发打下一定的基础。全书共分10章,书定稿后约90万字,约500页,并配有实例代码。 作者简介 邱铁 博士,拥有超过10年的Linux使用和开发经验。从高中时代起就对嵌入式电子及控制技术产生了浓厚的兴趣,并且具有多项发明创造。大学毕业后开始涉足精彩的开源世界,特别是在Linux开放源码系统方面,做了大量的工作。他创立了飞翔电子工作室,专门进行嵌入式与开放源代码开发。2009年参加中国嵌入式系统课件大赛并获得一等奖。著作有《ARM嵌入式系统结构与编程》《Linux应用与开发典型实例精讲》《Linux环境下Qt4图形界面与MySQL编程》。 周玉 硕士,飞翔电子工作室主要成员,主要从事ARM、Linux方面的工作,曾参加全国大学生嵌入式设计大赛,参与完成的“基于S3C6410的全智能物联网自组织与智能车导航设计”获得大赛特等奖,熟悉Linux驱动、<em>内核</em>编程及应用开发,参与编写《Linux环境下Qt4图形界面与MySQL编程》。 本书特色 全面介绍Linux<em>内核</em>API开发与编程的手册; 对Linux<em>内核</em>系统知识进行精心策划,以<em>内核</em>模块方式对<em>内核</em>API进行系统分析; 基于系统功能模块内部,<em>内核</em>API以<em>函数</em>名称排序,方便快速检索; 立足于基础,高效学习理论配合<em>内核</em>API经典实例,深入Linux编程实践; 为Linux<em>内核</em>开发与编程提供高效指导与参考。 本书范例源代码可以到华章网站(www.hzbook.com)下载。 图书前言 进入21世纪以来,IT技术以前所未有的速度向前发展。Linux作为源码开放的操作系统,在众多的爱好者和网络黑客的共同努力下,不断成长并趋于完善。由于GNU计划所开发的各种组件和系统发行版所必备的软件可以运行于Linux<em>内核</em>之上,整个<em>内核</em>符合GNU通用公共许可证(GNU General Public License),使得Linux在PC、服务器以及嵌入式系统开发等领域得到了广泛的应用。 作者在长期的Linux<em>内核</em>开发中发现,当前介绍<em>内核</em>API方面的书籍很少。目前市面的关于Linux<em>内核</em>编程开发方面的书可以分为三类:第一类,Linux<em>内核</em>分析,所分析的<em>内核</em>源代码版本一般相对较早,而对于最新版本的<em>内核</em>源代码很少提及;第二类,Linux编程类,主要是以用户层面上的编程为主,一般涉及用户API;第三类,嵌入式Linux开发,相对于特定的硬件平台,只对所用到的特定<em>内核</em>API进行简要说明。对于Linux<em>内核</em>编程开发,需要全面了解<em>内核</em>API,而目前市面上找不到一本能够全面介绍最新的Linux<em>内核</em>API的图书,这也正是本书写作的目的所在。 本书的编写工作从2015年6月开始,所有的<em>内核</em>API验证实例基于最新的Linux<em>内核</em>源代码3.19.3版本。经过近十一个月的源代码分析、编程实践与实例验证,对常用的<em>内核</em>API进行系统归纳,并编写了典型验证程序,使理论分析与实际编程实现统一。分析的<em>内核</em>API模块包括:<em>内核</em>模块机制API、进程管理<em>内核</em>API、进程调度<em>内核</em>API、中断机制<em>内核</em>API、时间与定时机制<em>内核</em>API、内存管理<em>内核</em>API、<em>内核</em>同步机制API、文件系统<em>内核</em>API和设备驱动及设备管理模块<em>内核</em>API。 在实例编写过程中,感谢邓莹莹参与了部分实例的验证,以及机械工业出版社华章公司编辑为本书的出版所做的工作。另外,笔者听取了同事、同行专家意见和建议,并参阅了大量中文、外文文献和网络论坛的精华资料,特别是活跃在开放源代码社区的Linux爱好者,在此向他们表示感谢。 由于Linux更新速度较快,再加上编者所具备知识的广度和深度所限,书中存在的错误与不当之处请各位同仁批评指正。对于书中的问题,读者可以发送到E-mail:qiutie@ieee.org,能够及时与笔者交流,以便再版时更正与完善。 编者 2016年5月1日于大连 本书特色 全面介绍Linux<em>内核</em>API开发与编程的手册; 对Linux<em>内核</em>系统知识进行精心策划,以<em>内核</em>模块方式对<em>内核</em>API进行系统分析; 基于系统功能模块内部,<em>内核</em>API以<em>函数</em>名称排序,方便快速检索; 立足于基础,高效学习理论配合<em>内核</em>API经典实例,深入Linux编程实践; 为Linux<em>内核</em>开发与编程提供高效指导与参考。 本书主要内容 Linux<em>内核</em>模块机制API Linux进程管理<em>内核</em>API Linux进程调度<em>内核</em>API Linux中断机制<em>内核</em>API Linux内存管理<em>内核</em>API Linux<em>内核</em>定时机制API Linux<em>内核</em>同步机制API Linux文件系统<em>内核</em>API Linux设备驱动与设备管理API 本书范例源代码可以到华章网站(www.hzbook.com)下载。 作者简介 邱铁 周玉 编著:邱 铁 博士,拥有超过10年的Linux使用和开发经验。从高中时代起就对嵌入式电子及控制技术产生了浓厚的兴趣,并且具有多项发明创造。大学毕业后开始涉足精彩的开源世界,特别是在Linux开放源码系统方面,做了大量的工作。他创立了飞翔电子工作室,专门进行嵌入式与开放源代码开发。2009年参加中国嵌入式系统课件大赛并获得一等奖。著作有《ARM嵌入式系统结构与编程》《Linux应用与开发典型实例精讲》《Linux环境下Qt4图形界面与MySQL编程》。 周 玉 硕士,飞翔电子工作室主要成员,主要从事ARM、Linux方面的工作,曾参加全国大学生嵌入式设计大赛,参与完成的“基于S3C6410的全智能物联网自组织与智能车导航设计”获得大赛特等奖,熟悉Linux驱动、<em>内核</em>编程及应用开发,参与编写《Linux环境下Qt4图形界面与MySQL编程》。 前言 第1章 Linux<em>内核</em>API分析必备知识 1 1.1 Linux<em>内核</em>编程注意事项 1 1.2 本书中模块编译Makefile模板 2 1.3 <em>内核</em>调试<em>函数</em>printk 3 1.4 <em>内核</em>编译与定制 5 1.4.1 获得Linux<em>内核</em>与补丁 5 1.4.2 准备编译需要的工具 5 1.4.3 解压<em>内核</em> 6 1.4.4 给<em>内核</em>打补丁 6 1.4.5 设定编译选项 7 1.4.6 编译与安装<em>内核</em> 9 1.4.7 创建initramfs 10 1.4.8 设置grub 11 1.4.9 启动选项 12 1.5 温馨提示 12 本章参考文献 13 第2章 <em>内核</em>模块机制API 14 2.1 <em>函数</em>:__module_address( ) 14 2.2 <em>函数</em>:__module_text_address( ) 16 2.3 <em>函数</em>:__print_symbol( ) 19 2.4 <em>函数</em>:__symbol_get( ) 22 2.5 <em>函数</em>:__symbol_put( ) 25 2.6 <em>函数</em>:find_module( ) 27 2.7 <em>函数</em>:find_symbol( ) 31 2.8 <em>函数</em>:module_is_live( ) 36 2.9 <em>函数</em>:module_put( ) 38 2.10 <em>函数</em>:module_refcount( ) 40 2.11 <em>函数</em>:sprint_symbol( ) 42 2.12 <em>函数</em>:symbol_put_addr( ) 45 2.13 <em>函数</em>:try_module_get( ) 48 本章参考文献 50 第3章 Linux进程管理<em>内核</em>API 51 3.1 <em>函数</em>:__task_pid_nr_ns( ) 51 3.2 <em>函数</em>:find_get_pid( ) 54 3.3 <em>函数</em>:find_pid_ns( ) 56 3.4 <em>函数</em>:find_vpid( ) 58 3.5 <em>函数</em>:get_pid( ) 60 3.6 <em>函数</em>:get_task_mm( ) 62 3.7 <em>函数</em>:mmput( ) 66 3.8 <em>函数</em>:ns_of_pid( ) 68 3.9 <em>函数</em>:pid_nr( ) 70 3.10 <em>函数</em>:pid_task( ) 72 3.11 <em>函数</em>:pid_vnr( ) 74 3.12 <em>函数</em>:put_pid( ) 76 3.13 <em>函数</em>:task_active_pid_ns( ) 78 3.14 <em>函数</em>:task_tgid_nr_ns( ) 80 本章参考文献 82 第4章 Linux 进程调度<em>内核</em>API 83 4.1 <em>函数</em>:__wake_up( ) 83 4.2 <em>函数</em>:__wake_up_sync( ) 88 4.3 <em>函数</em>:__wake_up_sync_key( ) 91 4.4 <em>函数</em>:abort_exclusive_wait( ) 94 4.5 <em>函数</em>:add_wait_queue( ) 99 4.6 <em>函数</em>:add_wait_queue_exclusive( ) 102 4.7 <em>函数</em>:autoremove_wake_function( ) 105 4.8 <em>函数</em>:complete( ) 109 4.9 <em>函数</em>:complete_all( ) 112 4.10 <em>函数</em>:completion_done( ) 115 4.11 <em>函数</em>:current_thread_info( ) 118 4.12 <em>函数</em>:default_wake_function( ) 121 4.13 <em>函数</em>:do_exit( ) 124 4.14 <em>函数</em>:finish_wait( ) 126 4.15 <em>函数</em>:init_waitqueue_entry( ) 130 4.16 <em>函数</em>:init_waitqueue_head( ) 132 4.17 <em>函数</em>:kthread_create_on_node( ) 134 4.18 <em>函数</em>:kthread_stop( ) 136 4.19 <em>函数</em>:prepare_to_wait( ) 138 4.20 <em>函数</em>:prepare_to_wait_exclusive( ) 142 4.21 <em>函数</em>:remove_wait_queue( ) 147 4.22 <em>函数</em>:sched_setscheduler( ) 150 4.23 <em>函数</em>:set_cpus_allowed_ptr( ) 154 4.24 <em>函数</em>:set_user_nice( ) 157 4.25 <em>函数</em>:task_nice( ) 160 4.26 <em>函数</em>:try_wait_for_completion( ) 162 4.27 <em>函数</em>:wait_for_completion( ) 166 4.28 <em>函数</em>:wait_for_completion_interruptible_timeout( ) 169 4.29 <em>函数</em>:wait_for_completion_killable( ) 173 4.30 <em>函数</em>:wait_for_completion_timeout( ) 177 4.31 <em>函数</em>:wake_up_process( ) 180 4.32 <em>函数</em>:yield( ) 183 本章参考文献 185 第5章 Linux中断机制<em>内核</em>API 187 5.1 <em>函数</em>:__tasklet_hi_schedule( ) 187 5.2 <em>函数</em>:__tasklet_schedule( ) 190 5.3 <em>函数</em>:disable_irq( ) 193 5.4 <em>函数</em>:disable_irq_nosync( ) 193 5.5 <em>函数</em>:disable_irq_wake( ) 196 5.6 <em>函数</em>:enable_irq( ) 199 5.7 <em>函数</em>:enable_irq_wake( ) 201 5.8 <em>函数</em>:free_irq( ) 204 5.9 <em>函数</em>:irq_set_chip( ) 205 5.10 <em>函数</em>:irq_set_chip_data( ) 209 5.11 <em>函数</em>:irq_set_irq_type( ) 212 5.12 <em>函数</em>:irq_set_irq_wake( ) 214 5.13 <em>函数</em>:remove_irq( ) 217 5.14 <em>函数</em>:request_irq( ) 221 5.15 <em>函数</em>:request_threaded_irq( ) 225 5.16 <em>函数</em>:setup_irq( ) 229 5.17 <em>函数</em>:tasklet_disable( ) 232 5.18 <em>函数</em>:tasklet_disable_nosync( ) 234 5.19 <em>函数</em>:tasklet_enable( ) 236 5.20 <em>函数</em>:tasklet_hi_schedule( ) 237 5.21 <em>函数</em>:tasklet_init( ) 241 5.22 <em>函数</em>:tasklet_kill( ) 243 5.23 <em>函数</em>:tasklet_schedule( ) 245 5.24 <em>函数</em>:tasklet_trylock( ) 247 5.25 <em>函数</em>:tasklet_unlock( ) 248 本章参考文献 251 第6章 Linux内存管理<em>内核</em>API 252 6.1 <em>函数</em>:__free_pages( ) 252 6.2 <em>函数</em>:__get_free_pages( ) 253 6.3 <em>函数</em>:__get_vm_area( ) 255 6.4 <em>函数</em>:__krealloc( ) 258 6.5 <em>函数</em>:alloc_pages( ) 261 6.6 <em>函数</em>:alloc_pages_exact( ) 264 6.7 <em>函数</em>:find_vma( ) 266 6.8 <em>函数</em>:find_vma_intersection( ) 270 6.9 <em>函数</em>:free_pages( ) 272 6.10 <em>函数</em>:free_pages_exact( ) 273 6.11 <em>函数</em>:get_unmapped_area( ) 274 6.12 <em>函数</em>:get_zeroed_page( ) 276 6.13 <em>函数</em>:kcalloc( ) 278 6.14 <em>函数</em>:kfree( ) 280 6.15 <em>函数</em>:kmalloc( ) 281 6.16 <em>函数</em>:kmem_cache_alloc( ) 283 6.17 <em>函数</em>:kmem_cache_create( ) 285 6.18 <em>函数</em>:kmem_cache_destroy( ) 288 6.19 <em>函数</em>:kmem_cache_free( ) 289 6.20 <em>函数</em>:kmem_cache_zalloc( ) 290 6.21 <em>函数</em>:kmemdup( ) 292 6.22 <em>函数</em>:ksize( ) 295 6.23 <em>函数</em>:kstrdup( ) 298 6.24 <em>函数</em>:kstrndup( ) 299 6.25 <em>函数</em>:kzalloc( ) 301 6.26 <em>函数</em>:memdup_user( ) 303 6.27 <em>函数</em>:mempool_alloc( ) 306 6.28 <em>函数</em>:mempool_alloc_pages( ) 308 6.29 <em>函数</em>:mempool_alloc_slab( ) 311 6.30 <em>函数</em>:mempool_create( ) 313 6.31 <em>函数</em>:mempool_destroy( ) 316 6.32 <em>函数</em>:mempool_free( ) 317 6.33 <em>函数</em>:mempool_free_pages( ) 318 6.34 <em>函数</em>:mempool_free_slab( ) 318 6.35 <em>函数</em>:mempool_kfree( ) 319 6.36 <em>函数</em>:mempool_kmalloc( ) 320 6.37 <em>函数</em>:mempool_resize( ) 322 6.38 <em>函数</em>:nr_free_buffer_pages( ) 325 6.39 宏:page_address( ) 326 6.40 宏:page_cache_get( ) 328 6.41 宏:page_cache_release( ) 330 6.42 <em>函数</em>:page_zone( ) 331 6.43 宏:probe_kernel_address( ) 334 6.44 <em>函数</em>:probe_kernel_read( ) 336 6.45 <em>函数</em>:vfree( ) 338 6.46 <em>函数</em>:vma_pages( ) 339 6.47 <em>函数</em>:vmalloc( ) 341 6.48 <em>函数</em>:vmalloc_to_page( ) 343 6.49 <em>函数</em>:vmalloc_to_pfn( ) 345 6.50 <em>函数</em>:vmalloc_user( ) 347 本章参考文献 349 第7章 Linux<em>内核</em>定时机制API 350 7.1 <em>函数</em>:__round_jiffies( ) 350 7.2 <em>函数</em>:__round_jiffies_relative( ) 352 7.3 <em>函数</em>:__round_jiffies_up( ) 354 7.4 <em>函数</em>:__round_jiffies_up_relative( ) 356 7.5 <em>函数</em>:add_timer( ) 358 7.6 <em>函数</em>:current_kernel_time( ) 359 7.7 <em>函数</em>:del_timer( ) 361 7.8 <em>函数</em>:del_timer_sync( ) 364 7.9 <em>函数</em>:do_gettimeofday( ) 367 7.10 <em>函数</em>:do_settimeofday( ) 369 7.11 <em>函数</em>:get_seconds( ) 372 7.12 <em>函数</em>:getnstimeofday( ) 374 7.13 <em>函数</em>:init_timer( ) 376 7.14 <em>函数</em>:init_timer_deferrable( ) 378 7.15 <em>函数</em>:init_timer_key( ) 380 7.16 <em>函数</em>:init_timer_on_stack( ) 382 7.17 <em>函数</em>:init_timer_on_stack_key( ) 385 7.18 <em>函数</em>:mktime( ) 387 7.19 <em>函数</em>:mod_timer( ) 389 7.20 <em>函数</em>:mod_timer_pending( ) 392 7.21 <em>函数</em>:ns_to_timespec( ) 394 7.22 <em>函数</em>:ns_to_timeval&#40; &#41; 396 7.23 <em>函数</em>:round_jiffies( ) 398 7.24 <em>函数</em>:round_jiffies_relative( ) 401 7.25 <em>函数</em>:round_jiffies_up( ) 404 7.26 <em>函数</em>:round_jiffies_up_relative( ) 406 7.27 <em>函数</em>:set_normalized_timespec( ) 409 7.28 <em>函数</em>:setup_timer( ) 411 7.29 <em>函数</em>:setup_timer_on_stack( ) 413 7.30 <em>函数</em>:timer_pending( ) 415 7.31 <em>函数</em>:timespec_add_ns( ) 417 7.32 <em>函数</em>:timespec_compare( ) 420 7.33 <em>函数</em>:timespec_equal( ) 422 7.34 <em>函数</em>:timespec_sub( ) 424 7.35 <em>函数</em>:timespec_to_ns( ) 426 7.36 <em>函数</em>:timeval_compare( ) 428 7.37 <em>函数</em>:timeval_to_ns( ) 431 7.38 <em>函数</em>:try_to_del_timer_sync( ) 433 本章参考文献 435 第8章 Linux<em>内核</em>同步机制API 436 8.1 <em>函数</em>:atomic_add( ) 436 8.2 <em>函数</em>:atomic_add_negative( ) 438 8.3 <em>函数</em>:atomic_add_return( ) 440 8.4 <em>函数</em>:atomic_add_unless( ) 442 8.5 <em>函数</em>:atomic_cmpxchg( ) 444 8.6 <em>函数</em>:atomic_dec( ) 446 8.7 <em>函数</em>:atomic_dec_and_test( ) 448 8.8 <em>函数</em>:atomic_inc( ) 449 8.9 <em>函数</em>:atomic_inc_and_test( ) 451 8.10 <em>函数</em>:atomic_read( ) 453 8.11 <em>函数</em>:atomic_set( ) 453 8.12 <em>函数</em>:atomic_sub( ) 455 8.13 <em>函数</em>:atomic_sub_and_test( ) 457 8.14 <em>函数</em>:atomic_sub_return( ) 459 8.15 <em>函数</em>:down( ) 461 8.16 <em>函数</em>:down_interruptible( ) 463 8.17 <em>函数</em>:down_killable( ) 465 8.18 <em>函数</em>:down_read( ) 468 8.19 <em>函数</em>:down_read_trylock( ) 470 8.20 <em>函数</em>:down_timeout( ) 472 8.21 <em>函数</em>:down_trylock( ) 474 8.22 <em>函数</em>:down_write( ) 476 8.23 <em>函数</em>:down_write_trylock( ) 479 8.24 <em>函数</em>:downgrade_write( ) 481 8.25 宏:init_rwsem( ) 483 8.26 <em>函数</em>:read_seqbegin( ) 486 8.27 <em>函数</em>:read_seqretry( ) 488 8.28 <em>函数</em>:sema_init( ) 490 8.29 宏:seqlock_init( ) 492 8.30 <em>函数</em>:up( ) 494 8.31 <em>函数</em>:up_read( ) 496 8.32 <em>函数</em>:up_write( ) 497 8.33 <em>函数</em>:write_seqlock( ) 498 8.34 <em>函数</em>:write_sequnlock( ) 498 本章参考文献 499 第9章 Linux文件系统<em>内核</em>API 500 9.1 <em>函数</em>:__mnt_is_readonly( ) 500 9.2 <em>函数</em>:current_umask( ) 502 9.3 <em>函数</em>:d_alloc( ) 504 9.4 <em>函数</em>:d_find_alias( ) 507 9.5 <em>函数</em>:dput( ) 510 9.6 <em>函数</em>:fget( ) 512 9.7 <em>函数</em>:generic_fillattr( ) 515 9.8 <em>函数</em>:get_fs_type( ) 517 9.9 <em>函数</em>:get_max_files( ) 520 9.10 <em>函数</em>:get_super( ) 522 9.11 <em>函数</em>:have_submounts( ) 525 9.12 <em>函数</em>:I_BDEV( ) 527 9.13 <em>函数</em>:inode_add_bytes( ) 529 9.14 <em>函数</em>:inode_get_bytes( ) 531 9.15 <em>函数</em>:inode_set_bytes( ) 533 9.16 <em>函数</em>:inode_sub_bytes( ) 535 9.17 <em>函数</em>:is_bad_inode( ) 537 9.18 <em>函数</em>:make_bad_inode( ) 538 9.19 <em>函数</em>:may_umount( ) 540 9.20 <em>函数</em>:may_umount_tree( ) 542 9.21 <em>函数</em>:mnt_want_write( ) 544 9.22 <em>函数</em>:notify_change( ) 545 9.23 <em>函数</em>:put_unused_fd( ) 547 9.24 <em>函数</em>:unshare_fs_struct( ) 549 9.25 <em>函数</em>:vfs_fstat( ) 551 9.26 <em>函数</em>:vfs_getattr( ) 553 9.27 <em>函数</em>:vfs_statfs( ) 556 本章参考文献 559 第10章 Linux 设备驱动及设备管理API 560 10.1 <em>函数</em>:__class_create( ) 560 10.2 <em>函数</em>:__class_register( ) 562 10.3 <em>函数</em>:cdev_add( ) 563 10.4 <em>函数</em>:cdev_alloc( ) 564 10.5 <em>函数</em>:cdev_del( ) 566 10.6 <em>函数</em>:cdev_init( ) 572 10.7 宏:class_create( ) 577 10.8 <em>函数</em>:class_destroy( ) 578 10.9 宏:class_register( ) 581 10.10 <em>函数</em>:class_unregister( ) 582 10.11 <em>函数</em>:device_add( ) 589 10.12 <em>函数</em>:device_create( ) 589 10.13 <em>函数</em>:device_del( ) 592 10.14 <em>函数</em>:device_destroy( ) 592 10.15 <em>函数</em>:device_initialize( ) 599 10.16 <em>函数</em>:device_register( ) 606 10.17 <em>函数</em>:device_rename( ) 607 10.18 <em>函数</em>:device_unregister( ) 613 10.19 <em>函数</em>:get_device( ) 620 10.20 <em>函数</em>:put_device( ) 621 10.21 <em>函数</em>:register_chrdev( ) 625 10.22 <em>函数</em>:unregister_chrdev( ) 626 10.23 部分相关<em>函数</em>说明 634 本章参考文献 635 附录 Linux<em>内核</em>API快速检索表 636
Windows 原生API函数Beep() 弹奏音乐
一次偶然之中发现了这个<em>函数</em>(Beep())并且自己折腾了一波,看了看网上的代码,边发现了这个东西的表白,装逼的价值。nn我们先来看一看他的<em>函数</em><em>原型</em>:nnnnBOOL Beep(n DWORD dwFreq; //指定发出的频率n DWORD dwDuration; //指定发声的时常 毫秒为单位n); nn我们通常看到的乐谱有几种,我们需要的是简谱这里面就有 do re mi fa...
自写FindWindow函数
模拟FindWindow<em>函数</em>,绕过所有用户层HOOKnnnnnn分析API<em>函数</em>原理nFindWindowA最外层流程:nnnnnn进入CALL USER32.77D28242:nnnnnn进入CALL USER32.77D2C7AC (NtUserFindWindow):nn nnnnnnnnnn进入CALL ntdll.KiFastSystemCall:nnnnnnnnnnnnnn自写FindW...
windows api函数大全
<em>windows</em> <em>api</em><em>函数</em>大全 <em>windows</em> <em>api</em><em>函数</em>大全 <em>windows</em> <em>api</em><em>函数</em>大全
汇编 api windows 函数 中文
汇编 <em>api</em> <em>windows</em> <em>函数</em> 中文 汇编 <em>api</em> <em>windows</em> <em>函数</em> 中文 汇编 <em>api</em> <em>windows</em> <em>函数</em> 中文
《Windows核心编程》读书笔记十四 探索虚拟内存
第十四章  探索虚拟内存nnn本章内容n14.1 系统信息n14.2 虚拟内存状态n14.3 NUMA机器中的内存管理n14.4 确定地址空间的状态nnn本章通过分析一些<em>windows</em><em>函数</em>来了解与系统内存管理和进程中虚拟地址空间相关的信息。nnn14.1 系统信息n操作系统有许多值是由运行主机决定的。如页面大小和分配粒度。不应该将这些参数写死(硬编码到代码中)而是应该在
Windows驱动开发(3) - 内核模式下的字符串操作
Windows驱动开发(3) - <em>内核</em>模式下的字符串操作1、ASCII字符串和宽字符串  char型,记录ansi字符集。每个字符一个字节。以0标志结束。在KdPrint中用%s输出。 n  宽字符型,wchar_t,描述unicode字符集的字符串,每个字符<em>两个</em>字节,以0标志结束。通过L来体现。在KdPrint中用%S输出。CHAR *string = "Hello";nWCHAR *string
WIN64位驱动 InLine_HOOK框架
Win64 和 Win32 都可用的<em>内核</em> InLineHook 框架,网上找的感觉都很麻烦, 这个感觉比较清晰明了, 但也有不足之处 就是修改<em>函数</em>头部时 不够完美;但是日常使用感觉足够了.
求最大公约数和最小公倍数
2.编写<em>两个</em><em>函数</em>,分别求<em>两个</em>整数的最大公约数和最小公倍数
windows api编程
<em>windows</em> <em>api</em>编程 <em>windows</em> <em>api</em>编程一个迷宫的程序,全用<em>windows</em> <em>api</em>编写,不用类库,可以看出<em>windows</em>的<em>原型</em>!@
Windows驱动编程和Windows_API_参考大全资料包
此资料包里面包括了Windows驱动编程和Windows_API_参考资料,对于想在Windows系统底层进行开发和研究的同学,此资料包是个不错的选择
Windows等待唤醒机制
临界区nn并发是指多个线程在同时执行: n单核(是分时执行,不是真正的同时) n多核(在某一个时刻,会同时有多个线程再执行) n同步则是保证在并发执行的环境中各个线程可以有序的执行 nnnn临界区:一次只允许一个线程进入直到离开nnnnDWORD dwFlag = 0; //实现临界区的方式就是加锁n //锁:全局变量 进去加一 出去减一nnif(dwFlag ==...
windows下的内联hook实现
HOOK技术正如其名,就像是代码中放下的一个“钩子”,它在静静地等待捕获系统中的某个消息或动作。在编程技术中,钩子技术在DOS时代就已经存在了。在<em>windows</em>下,钩子按照实现技术的不同和挂钩位置的不同,其种类也是越来越多,但是设置钩子的本质却是始终不变的。n那么钩子究竟有什么用?它能干的事非常多,例如输入监控、API拦截、消息捕获、改变程序执行流程等。杀毒软件会用HOOK技术钩住一些API<em>函数</em>
内核编程之SSDTHook(1)原理
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:n说驱动开发这么长时间了,也玩玩<em>内核</em>钩子,钩子(Hook)技术是一种截获对某一对象访问的技术,不仅在Windows平台,Linux平台上也有Hook技术。Hook技术种类繁多,实现细节也不同,还可以灵活使用。n我之前写过两篇Ring3下的API Inline Hook的博文,这
7.4.采用穷举法,用函数编程实现计算两个正整数的最小公倍数的函数,在主函数中调用该函数计算并输出从键盘任意输入的两个数的最小公倍数。
includenint LCm(int n,int m);nint main()n{n int a,b;n printf("输入a,b:");n scanf("%d,%d",&a,&b);n printf("%d\n",LCM(a,b));n return 0;n}nint LCM(int n,int m)n{n int x;n int
(C语言)写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2)
写一个<em>函数</em>,实现<em>两个</em>字符串的比较, 即自己写一个strcmp<em>函数</em>,<em>函数</em><em>原型</em>为int strcmp(const char* p1, const char* p2);设p1指向字符串s1,p2指向字符串s2.要求当s1=s2时返回值为0;若s1!=s2,返回它们二者第一个不同字符的ASCII码差值
Linux 内核 SPI驱动收发函数API
发送字符串nnnnstatic int spi_write_bytes(struct spi_device *spi, unsigned char *txbuf, int txlen)n{n int ret = 0;n struct spi_message msg;n struct spi_transfer xfer = {n .len = txlen,n ...
中断处理程序与内核函数的区别在哪里
在linux中,中断处理程序看起来就是普通的C<em>函数</em>,只不过这些<em>函数</em>必须按照特定的类型声明,以便<em>内核</em>能够以标准的方式传递处理程序的信息,在其他方面,他们与一般的<em>函数</em>看起来别无不同。n 那么终端处理程序与其他<em>内核</em><em>函数</em>的区别主要是在哪里呢? 中断处理<em>函数</em>是被<em>内核</em>启用起来响应终端的,而他们运行与我们称之为中断上下文的特殊上下文中。n 中断处理程序是管理硬件的驱动程序的组成部分。n 中断处理程序通
Windows核心编程之共享内存
Windows共享数据和信息的机制:RPC、COM、OLE、DDE、窗口消息、剪贴板、邮箱、管道、套接字以及内存映射文件。nn内存映射:通过让<em>两个</em>或多个进程映射同一个文件。(在进程空间中保留一个地址空间区域,将物理存储器提交给该区域)nn内存映射文件的物理存储器(用来作为虚拟内存)来自一个位于磁盘驱动器上的数据文件。一旦该文件被映射,就可以访问它,就像文件已经加载内存一样。(操作系统使得内存能够将...
WindowsAPI关机、重启
#include "Windows.h"rnrnrnrn//强制关闭计算机rnbool systemShutDown()rn{rn    HANDLE hToken;rnrn    TOKEN_PRIVILEGES tkp;rnrnrn    //获取进程标志rn    if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEG
Linux内核API完全参考手册.pdf
Linux<em>内核</em>API完全参考手册.pdf Linux<em>内核</em>API可复制 目录索引 检索 福昕阅读器打开直接显示目录,完整版
驱动开发(4)内核中的内存分配和错误码
在驱动开发中,我们不应该使用C/C++运行时<em>函数</em>中的malloc或者calloc<em>函数</em>分配内存,更不应该使用new关键字,因为<em>内核</em>中的内存分配需要特殊处理。n在应用程序中,每个应用都有2G的虚拟内存,因此内存并不紧张,而所有的驱动程序共用<em>内核</em>模式的2G虚拟内存,因此<em>内核</em>中的资源非常宝贵,应该尽量节省。n更可怕的是内存泄露,应用程序即使发生了内存泄露,在其结束时操作系统可以通过进程上下文中的虚拟内
Linux内核API完全参考手册(第2版) PDF带书签
Linux<em>内核</em>API完全参考手册(第2版)基于最新的Linux<em>内核</em>源代码3.19.3版本,对常用的<em>内核</em>API作了系统归纳,并编写了典型验证程序,使理论分析与实际编程做到了统一。分析的<em>内核</em>API模块包括:模块机制<em>内核</em>API、进程管理<em>内核</em>API、进程调度<em>内核</em>API、中断与异常机制<em>内核</em>API、时间与定时机制<em>内核</em>API、内存管理<em>内核</em>API、<em>内核</em>同步机制API、文件系统<em>内核</em>API和设备驱动与设备管理模块<em>内核</em>API。 目录 第1章 Linux<em>内核</em>API分析必备知识 1 第2章 <em>内核</em>模块机制API 14 第3章 Linux进程管理<em>内核</em>API 51 第4章 Linux 进程调度<em>内核</em>API 83 第5章 Linux中断机制<em>内核</em>API 187 第6章 Linux内存管理<em>内核</em>API 252 第7章 Linux<em>内核</em>定时机制API 350 第8章 Linux<em>内核</em>同步机制API 436 第9章 Linux文件系统<em>内核</em>API 500 第10章 Linux 设备驱动及设备管理API 560
两个正整数的最大公约数 C语言 源代码 调试测试
题目:求<em>两个</em>正整数的最大公约数和最小公倍数。 n基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出。 n提高要求:1.三种以上算法解决<em>两个</em>正整数最大公约数问题。 n 2.求3个正整数的最大公约数和最小公倍数。nn一、辗转相除法 n源代码:nnnn#include&amp;lt;stdio.h&amp;gt;n#include&amp;lt;stdlib....
api函数实现读取硬盘序列号
利用<em>api</em><em>函数</em>读取硬盘序列号的代码,调用方法:astr=GetDiskVolumeId("c:")
如何离线查看Windows API和网上查询Windows API
找了一天,被网上的信息弄得晕头转向,挺累的,不过终于搞定了。。。rn  由于前天在看孙鑫老师的C++教学视频,老师使用MSDN查找Windows API很方便。于是我在网上搜索MSDN下载和安装,结果网上的信息真实把我坑了一次次。下载下来的十几个G的东西结果根本不是,果断Shift+Delete。在失败多次之后,我才找到一条有效的途径,输入的关键字是MSDN Library。一下是下载MSDN L
Windows并发&异步编程(2)原子操作Interlocked
阅读过《操作系统》一书的人都知道“原子操作”这一概念。在计算机中,原子操作又称为原语,操作系统保证:“原子操作是不可分割的,在执行完毕之前不会被任何其它任务或事件中断。”。原子操作可以是一个步骤,也可以是多个操作步骤,但是其执行期间不会有任何线程调度。
windows核心编程之线程暂停和恢复
每个线程都有一个线程<em>内核</em>对象,<em>内核</em>对象里包含各种信息 n该对象里有一个暂停计数,当暂停计数大于0的时候,线程暂停 nDWORD SuspendThread( n HANDLE hThread //线程句柄 n);//这个<em>函数</em>可以暂停线程,使得暂停计数加1 nDWORD ResumeThread( n HANDLE hThread // 线程句柄 n);//这个<em>函数</em>使得线程的暂停计数减1,
Windows应用层(R3)API调用流程
n n n 应用层(R3)和<em>内核</em>层(R0)是如何通讯的;R3在调用一个<em>函数</em>的时候究竟发生了那些事情?比如说在R3调用一个creatFile()<em>函数</em>时,发生了那些事情.下(qing)回(kan)分(xia)解(tu)nnnnnAPI调用流程nCreateFile()这个<em>函数</em>是R3的API,API通过系统中的kernel.dll或者user32.dll导出,然后进一步向下...
函数计算两个正整数的最小公倍数
“`include “stdio.h”int fun(int m,int n) n{ nint a,b,c; a=m; b=n; c=a%b; while(c!=0) {a=b;b=c;c=a%b;} return m*n/b; n}void main() n{ nint m,n,i,t; nprintf(“Enter m,n :\n”); nscanf(“%d,%d”,&m,&n); nif(m
上传下载的p2p技术C语言源码下载
上传下载的p2p技术C语言源码,非常值得借鉴 相关下载链接:[url=//download.csdn.net/download/liuyanhong2004/2104758?utm_source=bbsseo]//download.csdn.net/download/liuyanhong2004/2104758?utm_source=bbsseo[/url]
2010完美过360免杀下载
2010完美过360免杀2010完美过360免杀2010完美过360免杀 相关下载链接:[url=//download.csdn.net/download/xb158533630/2598812?utm_source=bbsseo]//download.csdn.net/download/xb158533630/2598812?utm_source=bbsseo[/url]
javaweb_JSP.rar下载
javaweb_JSP.rarjavaweb_JSP.rarjavaweb_JSP.rarjavaweb_JSP.rar 相关下载链接:[url=//download.csdn.net/download/staricqxyz/2858544?utm_source=bbsseo]//download.csdn.net/download/staricqxyz/2858544?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 产品经理原型教程 web原型教程
我们是很有底线的