E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
内核编程
28、Windows
内核编程
,IRP的同步(2)
3、StartIo例程 1)系统处理的StartIo StartIo例程能够保证各个并行的IRP顺序执行,即串行化。 DDK提供一个内部队列,并将IRP用StartIo例程串行化处理。当设备由忙转入空闲状态时,从队列中抽取一个IRP进行处理,并将状态设为忙。一个新的IRP来时,如果设备为忙,则插入到队列当中,如果为空闲,则直接处理。 OS提供kdevice_queue来实现串行化,队列头保
·
2015-10-28 09:43
windows
android
内核编程
引用:http://blog.csdn.net/hmg25/article/details/6429493 1.内核编译完成后可以生成 arch/arm/boot/compressed/vmlinux, arch/arm/boot/Image, arch/arm/boot/zImage 其中vmlinux 是一个elf格式的文件,Image为内核映像文件,而zImage为内核的一种映像压缩文件
·
2015-10-23 09:39
android
编译并安装FUSE
FUSE是用户空间文件系统的简称,使用Fuse,您可以在用户空间创建功能完备的文件系统,而无需具备
内核编程
的知识。
·
2015-10-23 08:00
安装
《Linux内核设计与实现》读书笔记(1)--- Linux内核开发的特点
Linux内核开发的特点 相对于用户空间内的应用程序开发,内核开发存在很多的不同,最重要的差异包括以下几种: 1)
内核编程
时不能访问
·
2015-10-21 12:34
linux
Windows
内核编程
之注意事项
我们知道,在C语言中,入口函数是main。其实在main函数之前,系统还调用了其他的函数。而内核中的入口函数是DriverEntry。其原型如下:DRIVER_INITIALIZEDriverEntry; NTSTATUSDriverEntry( _In_struct_DRIVER_OBJECT*DriverObject, _In_PUNICODE_STRINGRegistryPath )
HK_5788
·
2015-09-11 22:00
Windows内核编程常见约束
windows
内核编程
基础篇之使用同步事件
内核中的事件是一个数据结构,这个结构的指针可以当作一个参数传入一个等待函数中。若这个事件不被“设置”,则这个等待函数不会返回。这个线程被阻塞,若这个事件被“设置”,则等待结束,可以继续下去。这个常常用于多线程之间的同步,若一个线程需要等待另外一个线程完成某事后才能做某事,则可以使用事件等待,另一个线程完成后设置事件即可。该数据结构是KEVENT,器被KeInitializeEvent函数初始化,K
PandaMohist
·
2015-09-11 21:29
windows驱动开发
windows
内核编程
基础篇之使用同步事件
内核中的事件是一个数据结构,这个结构的指针可以当作一个参数传入一个等待函数中。若这个事件不被“设置”,则这个等待函数不会返回。这个线程被阻塞,若这个事件被“设置”,则等待结束,可以继续下去。 这个常常用于多线程之间的同步,若一个线程需要等待另外一个线程完成某事后才能做某事,则可以使用事件等待,另一个线程完成后设置事件即可。 该数据结构是KEVENT,器被 KeInitializ
HK_5788
·
2015-09-11 21:00
使用同步事件
Windows内核编程基础篇
Windows
内核编程
基础篇之在线程中睡眠
我们在C语言中包含头文件:Windows.h。就能调用函数sleep()是程序停下一段时间。在驱动中也可以睡眠,用到的函数原型如下:NTSTATUSKeDelayExecutionThread(_In_KPROCESSOR_MODEWaitMode,_In_BOOLEANAlertable,_In_PLARGE_INTEGERInterval);传入参数说明:WaitMode直接填写KernelM
PandaMohist
·
2015-09-04 13:21
windows驱动开发
Windows
内核编程
基础篇之在线程中睡眠
我们在C语言中包含头文件:Windows.h。就能调用函数sleep()是程序停下一段时间。在驱动中也可以睡眠,用到的函数原型如下:NTSTATUSKeDelayExecutionThread( _In_KPROCESSOR_MODEWaitMode, _In_BOOLEANAlertable, _In_PLARGE_INTEGERInterval ); 传入参数说明:WaitMod
HK_5788
·
2015-09-04 13:00
Windows内核编程
在线程中睡眠
Windows
内核编程
基础篇之系统线程
在驱动中停止等待很容易是哼歌系统陷入"停顿",最后只能重启电脑,但是一个单独的线程长期等待,还不至于对系统造成致命的影响。有些任务是希望长期不断的执行,比如不断的写入日志,为此,启动一个特殊的线程来执行他们是最好的办法, 驱动中生成的线程一般是系统线程。系统线程所在的进程名:“System”,用到的内核API函数原型如下:NTSTATUSPsCreateSystemThread( _Out
HK_5788
·
2015-09-04 13:00
Windows内核编程基础篇
系统线程
Windows
内核编程
基础篇之定时器
驱动开发中,与SetTimer()对应的函数是KeSetTimer():BOOLEANKeSetTimer(_Inout_PKTIMERTimer,///---定时器_In_LARGE_INTEGERDueTime,///---延后执行的时间_In_opt_PKDPCDpc///---要执行的回调函数结构);定时器Timer和要执行的回调函数结构Dpc都必须先初始化,Timer的初始化比如向下面这
PandaMohist
·
2015-09-03 21:17
windows驱动开发
Windows
内核编程
基础篇之定时器
驱动开发中,与SetTimer()对应的函数是KeSetTimer():BOOLEANKeSetTimer( _Inout_PKTIMERTimer,///---定时器 _In_LARGE_INTEGERDueTime,///---延后执行的时间 _In_opt_PKDPCDpc///---要执行的回调函数结构 ); 定时器Timer和要执行的回调函数结构Dpc都必须先初始化,Timer的初
HK_5788
·
2015-09-03 21:00
window内核编程
使用定时器
Linux
内核编程
之文件系统 VFS中的目录项对象和文件对象 http://www.linuxidc.com/Linux/2011-02/32127p2.htm
Linux
内核编程
之文件系统VFS中的目录项对象和文件对象[日期:2011-02-10]来源:blog.csdn.net/tigerjb 作者:tiger-john[字体:大 中 小]一.VFS中的目录项对象
baidu_30399443
·
2015-09-03 20:00
Windows
内核编程
基础篇之获取当前系统时间
我们通常对时间的理解包括了,年,月,日,时,分,秒 这些元素。当然,我们在做驱动开发,不能使用类似CTime之类的函数。我们要是用与之对应的TIME_FIELDS,这个结构体中含有对应的时间要素。 给自己科普下,看看这个结构体:ypedefstruct_TIME_FIELDS { SHORTYear; SHORTMonth; SHORTDay; SHORTHour; SHORTMinute
HK_5788
·
2015-09-03 17:00
获取当前时间
Windows内核编程
Windows
内核编程
基础篇之获得当前滴答数
获得系统日期和时间往往是为了写日志,获得启动毫秒数则很适合用来做一个随机数的种子。有时也是用时间相关函数来寻找程序的性能瓶颈。比如API函数GetTickcountry(),这个函数返回系统自启动之后经历的毫秒数。在驱动开发中有一个对一个的函数KeQueryTickCount(),原型如下:VOIDKeQueryTickCount(_Out_PLARGE_INTEGERTickCount);调用该
PandaMohist
·
2015-09-03 16:50
windows驱动开发
Windows
内核编程
基础篇之获得当前滴答数
获得系统日期和时间往往是为了写日志,获得启动毫秒数则很适合用来做一个随机数的种子。有时也是用时间相关函数来寻找程序的性能瓶颈。 比如API函数GetTickcountry(),这个函数返回系统自启动之后经历的毫秒数。在驱动开发中有一个对一个的函数KeQueryTickCount(),原型如下:VOIDKeQueryTickCount( _Out_PLARGE_INTEGERTickCount
HK_5788
·
2015-09-03 16:00
获取当前滴答数
Windows内核编程
Windows
内核编程
基础篇之文件读/写操作
打开文件后,最重要是的操作在是对文件的读/写。读写的方法是对称的知识参数输入与输出方向不同。读取文件内容一般用ZwReadFile,写文件一般用ZwWriteFile。 先看看ZwReadFile结构吧:NTSTATUSZwReadFile( _In_HANDLEFileHandle, _In_opt_HANDLEEvent, _In_opt_PIO_APC_ROUTINEApcRou
HK_5788
·
2015-09-02 13:00
文件读写操作
Windows内核编程
Windows
内核编程
基础篇之文件操作(二)
打开和关闭文件下面的函数用于打开一个文件。函数原型:NTSTATUSZwCreateFile(_Out_PHANDLEFileHandle,_In_ACCESS_MASKDesiredAccess,_In_POBJECT_ATTRIBUTESObjectAttributes,_Out_PIO_STATUS_BLOCKIoStatusBlock,_In_opt_PLARGE_INTEGERAlloc
PandaMohist
·
2015-09-01 22:02
Windows
内核编程
基础篇之文件操作(二)
打开和关闭文件 下面的函数用于打开一个文件。 函数原型:NTSTATUSZwCreateFile( _Out_PHANDLEFileHandle, _In_ACCESS_MASKDesiredAccess, _In_POBJECT_ATTRIBUTESObjectAttributes, _Out_PIO_STATUS_BLOCKIoStatusBlock, _I
HK_5788
·
2015-09-01 22:00
Windows内核编程
文件打开与关闭
Windows
内核编程
基础篇之文件操作(一)
使用OBJECT_ATTRIBUTES 通常来讲,打开文件应该传入文件的路径。但是内核并不接受这一字符串,使用者必须填写一个OBJECT_ATTRIBUTES结构。这个结构是非透明的。但是这个结构体被函数InitializeObjectAttributes初始化。 下面是对InitializeObjectAttributes说明。函数原型:VOIDI
HK_5788
·
2015-09-01 21:00
文件操作
Windows内核编程
Windows
内核编程
基础篇之常见内核数据结构
1,驱动框架常见数据结构有驱动对象结构, 设备对象结构等。 A)驱动对象结构 (DRIVER_OBJECT) 每个驱动对象代表一个已加载的内核驱动程序,指向驱动对象结构的指针常常作为DriverEntry,AddDevice,Unload等函数的参数。驱动对象结构式半透明的。其中公开的域包括DeviceObject,DriverExtension,HardwareDatabas
HK_5788
·
2015-08-28 23:00
Windows内核编程
常见数据结构
Windows
内核编程
基础篇之使用自旋锁
链表之类的结构总是涉及多线程,这时候就要用到使用锁。当然在处理临界区的时候,这个是必须要考虑的呀。在驱动开发的代码中,大多是在于多线程执行环境的。下面将介绍使用简单的自旋锁。如下的代码将初始化一个自旋锁:KSPIN_my_Spin_Lock;KeInitializeSpinLock(&my_Spin_Lock);KeInitializeSpinLock函数没有返回值。在KeAccquireSpin
PandaMohist
·
2015-08-27 23:33
windows驱动开发
Windows
内核编程
基础篇之使用自旋锁
链表之类的结构总是涉及多线程,这时候就要用到使用锁。 当然在处理临界区的时候,这个是必须要考虑的呀。 在驱动开发的代码中,大多是在于多线程执行环境的。 下面将介绍使用简单的自旋锁。 如下的代码将初始化一个自旋锁:KSPIN_my_Spin_Lock; KeInitializeSpinLock(&my_Spin_Lock); KeInitializeSpinLock函数没有返回值。在
HK_5788
·
2015-08-27 23:00
Windows内核编程
使用自旋锁
Windows
内核编程
基础之使用长长整型数据
文件中的偏移量是一种常见的要使用64位数据的情况。同时,文件也是如此。32位数据无符号整型只能表示到4GB。在VC中,64位数据的类型为_int64。定义了如下写法:__int64file_offset;但是,实际上这个__int64在驱动开发中很少被使用,基本上被使用到的是一个共用体:LARGE_INTEGER。宏定义如下:C++语法:typedefunion_LARGE_INTEGER{
HK_5788
·
2015-08-27 19:00
Windows内核编程
长长整型数据
Windows
内核编程
基础之使用LIST_ENTRY
LIST_ENTRY是一个双向链表结构。它总是在使用的时候被插入到已有的数据结构中。Windows内核中使用LIST_ENTRY作为i链表,这个结构随处可见。 看看下面的代码,构建了一个链表,每个节点是又一个文件名和一个文件大小两个数据成员组成的结构。此外有一个FILE_OBJECT指针对象,在驱动中代表一个文件对象。该链表的作用是保存了文件的文件长度和文件名。typedefstruct{
HK_5788
·
2015-08-27 18:00
使用LIST_ENTRY
Windows内核编程
Windows
内核编程
基础之内存的分配与释放
内存泄漏是C语言中一个臭名昭著的问题。但是作为内核开发者,读者将有必要自己来面对它。在传统的C语言中,分配内存常常使用的函数是:malloc,这个函数的使用非常简单,传入长度参数就得到内存空间。在驱动中使用内存分配,这个函数不再有效。驱动中分配内存,最常用的是调用ExAllocatePoolWithTag,其他的方法在本章范围内全部忽略。回忆前一节关于字符串处理的情况。一个字符串被复制到另
HK_5788
·
2015-08-26 15:00
内存的分配与释放
Windows内核编程
Windows
内核编程
基础篇之字符串的打印
字符串的连接的另一种常见的情况是字符串和数字的组合。有时数字需要被转换为字符串,有时需要把若干数字和字符串混合组合起来。这往往用于打印日志的时候,日志中可能含有文件名,时间和行号,以及其他的信息。熟悉C远的读者会使用sprintf,这个函数的宽字符版本为swprintf。该函数在驱动开发中依然可以使用,但是不安全,微软建议使用RtlStringCbPrintfW 来带替它。RtlStringCbP
HK_5788
·
2015-08-26 14:00
Windows内核编程
字符串的打印
Windows
内核编程
基础篇之字符串的连接
UNICODE_STRING字符串不再是简单的字符串。操作这个数据结构往往需要更多的耐心。读者会常常碰到这样的需求:要把两个字符串连接到一起。简单地追加一个字符串并不困难。重要的依然是保证目标字符串的空间的大小。下面是范例:NTSTATUSstatus; UNICODE_STRINGdst;//--目标字符串 WCHARdst_buf[256];//我们现在还不会分配内存,所以先定义缓冲区。 UN
HK_5788
·
2015-08-25 19:00
Windows内核编程
字符串的连接
Windows
内核编程
基础篇之字符串的拷贝
因为字符串不再是空结束的,所以用wscpy来拷贝字符串是不行的。UNICODE_STRING可以用RtlCopyUnicodeString来进行拷贝,在进行这种拷贝的时候,最需要注意的一点是:拷贝目的字符串buffer必须有足够的空间。如果buffer的空间不足,字符串会考倍的不完全。这是一个比较隐蔽的错误。下面举个例子:UNICODE_STRINGdst;///--目的字符串 WCHARdst_
HK_5788
·
2015-08-25 19:00
Windows内核编程
内核字符串拷贝
windows
内核编程
基础篇之字符串的初始化
我们再看看这个UNICODE_STRING结构。typedefstruct_UNICODE_STRING{USHORTLength;//---字符串的长度(字节数)USHORTMaximumLength;//---字符串缓冲区的长度(字节数)PWSTRBuffer;//---字符串缓冲区。}ANSI_STRING,*PANSI_STRING;UNICODE_STRINGstr;读者应该注意到,这个
PandaMohist
·
2015-08-25 16:03
windows驱动开发
windows
内核编程
基础篇之字符串的初始化
我们再看看这个UNICODE_STRING结构。typedefstruct_UNICODE_STRING { USHORTLength;//---字符串的长度(字节数) USHORTMaximumLength;//---字符串缓冲区的长度(字节数) PWSTRBuffer;//---字符串缓冲区。 }ANSI_STRING,*PANSI_STRING; UNICODE_STRINGstr;读者应该
HK_5788
·
2015-08-25 16:00
windows
内核编程
基础篇之字符串的处理
1,使用字符串结构常常使用传统C语言的程序员比较喜欢用如下的方法定义和使用字符串:char*str={"myfirststring"};//ANSI字符串 wchar_t*wstr={L"myfirststring"};//UNICODE字符串 size_tlen=strlen(str);//求出ANSC字符长度 size_twLen=wcslen(wstr);//求出unicode字符串长度 p
HK_5788
·
2015-08-25 15:00
Windows字符串的处理
module_init的加载和释放
像你写C程序需要包含C库的头文件那样,Linux
内核编程
也需要包含Kernel头文件,大多的Linux驱动程序需要包含下面三个头文件:#include#include#include 其中,init.h
Blaider
·
2015-08-24 17:00
利用hardware watchdog debug kernel bug
在
内核编程
中,可以通过内核线程定时给watchdog的复位清零
Jesse_Yeh
·
2015-08-19 14:25
linux
Kernel
Panic
container_of()详解
原地址:http://radek.io/2012/11/10/magical-container_of-macro/当你开始
内核编程
的时候,你会随便看看代码,那么你可能很快就会碰到这个神奇的预处理代码结构
murphykwu
·
2015-08-12 15:58
Android开发
container_of()详解
原地址:http://radek.io/2012/11/10/magical-container_of-macro/当你开始
内核编程
的时候,你会随便看看代码,那么你可能很快就会碰到这个神奇的预处理代码结构
murphykwu
·
2015-08-12 15:00
Windows内核安全与驱动开发
Windows内核安全与驱动开发本书的前身是《天书夜读——从汇编语言到Windows
内核编程
》和《寒江独钓——Windows内核安全编程》。
李航421
·
2015-07-24 16:00
windows
驱动开发
内核安全
WINDOWS内核分析及编程方法
本文主要介绍Windows内核的基本结构,了解Windows的基本结构是进行
内核编程
的必不可少的内容。
zengxiangwei
·
2015-07-04 16:00
成为Linux内核高手的四个方法
我曾经问别人如何开始
内核编程
的学习,他们基本上都说:①如果你不需要了解内核是如何为你工作的,你为何要尝试呢?②你应该订阅Linux内核邮件列表,然后努力去理解。
ARESXIONG
·
2015-05-06 22:00
linux
linux内核
内核编程
WDK编程的一些特殊点
函数的多线程安全性在
内核编程
中比用户态应用程序的编程更常见。
·
2015-04-11 09:00
编程
windows
内核编程
之常用数据结构
1.返回状态 绝大部分的内核api返回值都是一个返回状态,也就是一个错误代码。这个类型为NTSTATUS.我们自己写的函数也大部分这样做。 NTSTATUS MyFunction() { NTSTATUS status; …. return status; } 如果碰到一个函数返回了奇特的NTSTATUS值,正确的方法是在WDK的头文件比如(NTSTATUS.h)中去
·
2015-04-11 09:00
windows
Linux内核开发的特点
Linux内核开发的特点 相对于用户空间内的应用程序开发,内核开发存在很多的不同,最重要的差异包括以下几种: 1)
内核编程
时不能访问C库。 2)
内核编程
时必须使用GNUC。
JK198310
·
2015-03-21 18:00
linux
内核编程
4部曲之一:linux内核编译(2.6.12版本)图文解说
原文地址:http://blog.chinaunix.net/uid-24782829-id-3211008.htmllinux
内核编程
4部曲之一:linux内核编译(2.6.12版本)图文解说linux
fhl13017599952
·
2015-03-16 14:00
linux
1,Linux入门
内核编程
http://ftp.gnu.org/gnu/www.gnu.orgwww.linux.orgwww.kernel.org
a379039233
·
2015-03-11 22:00
The kernel module programming primer(2)-Necessary Knowledge
模块编程属于
内核编程
,因此,除了对内核相关知识有所了解外,还需要了解与模块相关的知识。1.应用程序与内核模块的比较为了加深对内核模块的了解,表一给出应用程序与内核模块程序的比较。
tlaff
·
2015-03-04 09:00
24小时学通Linux内核--内核探索工具类
可以尽情的做自己喜欢的事情,专心待在实验室里燥起来了,因为大二的时候接触过Linux,只是关于内核方面确实是不好懂,所以十天的时间里还是希望能够补充一下Linux内核相关知识,接下来继续待在实验室里想总结一下Linux
内核编程
技术让梦想更伟大
·
2015-01-20 17:00
linux module_init
就像你写C程序需要包含C库的头文件那样,Linux
内核编程
也需要包含Kernel头文件,大多的Linux驱动程序需要包含下面三个头文件:#include#include#include其中,init.h
weiqifa0
·
2015-01-04 16:00
Linux内核: 分析coredump文件
Linux内核:分析coredump文件-内核代码崩溃 分类: Linux
内核编程
2013-10-2317:21 619人阅读 评论(0) 收藏
Finger旋律
·
2014-12-29 09:43
linux
信息
源文件
Linux
内核编程
:防御性编程学习
/* *Kernel : Linux2.6.32.63 *File : \scripts\mod\modpost.h \scripts\mod\modpost.c *Author : DavidLin *Date : 2014-12-25pm *Email :
[email protected]
or l
linpeng1577
·
2014-12-27 23:15
linux
kernel
Linux
内核编程
:从hello world 开始-(2)_Makefile文件编写
#/* # *File : Makefile # *Author : DavidLin # *Date : 2014-12-07pm # *Email :
[email protected]
or
[email protected]
# *world : the city of SZ, in China # *
linpeng1577
·
2014-12-27 23:35
linux
makefile
上一页
3
4
5
6
7
8
9
10
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他