- 博客(29)
- 资源 (24)
- 问答 (1)
- 收藏
- 关注
原创 Windows驱动开发入门
对于初学者,DbgView.exe和SRVINSTW.EXE是非常简单有用的两个工具,一定要装上。前者用于查看日志信息,后者用于加载驱动。一、驱动程序设计的必要性 在传统DOS系统下,每个应用程序都有权利读写硬件,读写I/O端口,控制系统中断,然而到了Windows系统中,为了保持良好的系统安全性,对应用程序的权限作出了限制,因为不适当的硬件读写会引发整个系统的崩溃。在Win
2016-08-30 10:28:03 2373
原创 linux内核编译 menuconfig详解
内核版本:2.6.32根据版本不同可能配置文件也稍微不同。[*]Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完成的代码与驱动.你应该选择它,因为有许多设备可能必需选择这个选项才能进行配置,实际上它是安全的。这个选项同样会让一些老的驱动的可用。如果你选了Y,你将会得到更多的阿尔法版本的驱动和代码的配置菜单
2016-08-26 10:50:43 1620
转载 windows内核编程之:内存操作
1) 内存间复制(非重叠)应用:比如将需要显示的内容,从缓冲区复制到内存先看等VOID RtlCopyMemory(IN VOID UNALLGNED* Destination,IN CONST VOID UNALLGNED *Source,IN SIZE_T Length);//表示要复制的内存长度,单位是字节注:RtlCopyBytes类似
2016-08-24 10:05:07 2250
转载 《Windows内核编程》---内核模式下字符串的基本操作
驱动程序中字符串操作涉及到ASCII字符串、宽字符串,还有DDK定义的ANSI_STRING数据结构和UNICODE_STRING数据结构。 1)ASCII字符串和宽字符串在应用程序中使用两种字符:一是char型字符串,负责记录ANSI字符集,它是指向一个char数组的指针,每个char型变量大小是一个字节,字符串是以0标志字符串结束的;一是wchar_t型的宽字符串,负责描述unic
2016-08-22 18:26:46 459
原创 关于程序直接操作地址
程序直接进行地址间赋值:虽然运行结果和预计的一样,但是程序挂掉了void liu(){ char st[12] = { "saming\n" }; char st1[12] = { "liushihao\n" }; char *i = (char *)malloc(64); memset(i, 0, 64); memcpy(i, st, 12); printf("%s
2016-08-22 17:38:16 436
原创 Windows驱动开发技术详解__派遣函数
派遣函数是Windows驱动程序中的重要概念。驱动程序的主要功能是负责处理I/O请求,其中大部分I/O请求是在派遣函数中处理的。用户模式下所有对驱动程序的I/O请求,全部由操作系统转换为一个叫做IRP数据结构,不同的IRP会被“派遣”到不同的派遣函数中。IRP与派遣函数IRP的处理机制类似于Windows应用程序中的“消息处理”,驱动程序接收到不同的IRP后,会
2016-08-08 14:40:19 1093
原创 嵌入式数据库sqlite
数据库1、分类: 大型 中型 小型ORACLE MYSQL SQLITE2、名词:DB 数据库DBMS 数据库管理系统MIS 管理信息系统OA 办公自动化3、嵌入式数据库:sqlite3 www.sqlite3.org特点:1、开源 C语言开发 2、代码量少 1万行左右,总大小10M以
2016-08-04 11:11:00 349
原创 网络协议分析:
网络协议分析:1、TCP 协议 ===>20 字节 第一 二 字节:源端口 ==》一般是随机端口可以用bind指定端口 第三 四 字节:目的端口==》一般是明确的在服务器端指定。 第 5 6 7 8 字节:请求序列号 第 9 10 11 12 字节:响应序列号 第13 字节: 前4bit位:协议内部偏移量
2016-08-04 11:09:32 412
原创 网络编程之 广播 组播 域内套接字
1、网络编程之 广播 组播 域内套接字2、网络编程之 协议分析1、广播=====》基于UDP协议形式的消息发送特点:必须要发送广播地址 ===》局域网中的网段最大地址必须要设置允许发送广播 ====》出现广播风暴2、框架流程:发送端:socket()===>setsockopt()==》sendto()==close()
2016-08-04 11:08:30 1368
原创 IO模型与TCP并发服务器
IO模型与TCP并发服务器IO模型1、阻塞IO2、非阻塞IO3、IO多路复用4、信号驱动IO1、阻塞IO ===》最常用 默认设置 IO: scanf()/printf() ====>默认的IO设备 fgetc()/fputc() ====》标准IO fgets()/fput
2016-08-04 11:06:37 861
原创 网络编程之 UDP
网络编程之 UDP1、特性: 无链接 不可靠 大数据2、框架: C/S模式 server:socket()===>bind()===>recvfrom()===>close() client:socket()===>bind()===>sendto() ===>close()注意:socket()的参数需要调整。 socket
2016-08-04 11:04:16 418
原创 网络编程之TCP
网络编程之TCP通信:1、模式 C/S 模式 ==》服务器/客户端模型server:socket()-->bind()--->listen()-->accept()-->recv()-->close()client:socket()-->bind()-->connect()-->send()-->close();服务器端:#include
2016-08-04 10:45:50 343
原创 网络编程基础知识
网络编程1、OSI 模型 ===》开放系统互联模型 ==》分为7层: 理想模型 ==》尚未实现 应用层 表示层 会话层 传输层 网路层 物理链路层 物理层 TCP/IP模型 ==》网际互联模型 ==》分为4层:
2016-08-04 10:34:21 241
原创 网络基础知识
www.rfc.org ==>网路协议tcp/ip 协议簇应用层: HTTP TFTP FTP DNS ...传输层: TCP UDP网络层: IP ICMP RIP OSFP ...物理层: ARP地址解析协议(ip->mac) RARP命令: arp -an TCP(传输控制协议): 有链接 可靠 实时==>手机通信
2016-08-04 10:28:17 323
原创 linux高级编程——编程中的内存管理
================ 内存管理 ===============1.从地地址到高地址依次为:代码区、数据区、堆区、栈区、命令行参数及环境变量区域2.局部变量:局部变量位于栈区栈区特点: 1.栈区当中变量未初始化之前都为随机值2.在变量作用域结束后,变量空间被操作系统收回全局变量:全局变量位于数据区数据区特点:1.数据区中变量
2016-08-03 19:51:49 256
原创 进程与线程的同步与互斥
进程间通信1、早期的古老通信模式: 管道 信号 ====》os都支持2、较新 IPC 对象: 消息队列 共享内存 信号量集 ===》system V POSIX3、BSD 系列: socket ====》网络管道:===》无名管道 有名管道无名管道 ===》管道 ====》通信管道1、只能用于具有亲
2016-08-03 19:39:34 587
原创 静态库与动态库
静态库: 第一步:完成功能函数的编写,例如:hello.c#include void hello(const char *name){ printf("hello %s !\n",name);}第二步:完成主调用函数的编写,例如:main.c#include int main(){
2016-08-03 19:28:25 324
原创 进程与线程
进程属性 进程的概念: 独立可调度的任务 ====》os 层面可调度的基本单位 进程和程序的区别: 进程是程序的一次执行过程 程序 是静态的 是指令的有序集合 进程 是动态的 有生命周期进程的唯一标示: PID 在系统中的合法身份说明分类: 交互式进程批处理进程守护进程位置:前台 直接启动后台
2016-08-03 19:27:48 437
原创 文件IO
文件IO 1、没有缓存区2、操作对象不同,是文件描述符。3、操作框架与标准IO相同,但函数名称没有f开头。文件描述符1、内核维护2、非负整数3、打开或者创建文件的返回值就是描述符4、幻数 0 1 2STDIN_FILENO STDOUT_FILENO STDERR_FIL
2016-08-03 19:25:49 282
原创 标准IO
标准 io IO:标准的I设备: 键盘 ====》硬件键盘标准的O设备: 显示器 ====》Linux 中的终端一切皆为文件 ===》普通文件 目录文件 字符设备文件 块设备文件 管道 套接字 符号连接文件流指针缓存机制作用: 提高效率 提高安全性库文件: stdio.h
2016-08-03 19:08:04 306
原创 linux高级编程六Makefile
================ 内存管理 ===============1.从地地址到高地址依次为:代码区、数据区、堆区、栈区、命令行参数及环境变量区域2.局部变量:局部变量位于栈区栈区特点: 1.栈区当中变量未初始化之前都为随机值2.在变量作用域结束后,变量空间被操作系统收回全局变量:全局变量位于数据区数据区特点:1.数据区中变量
2016-08-03 19:06:42 347
原创 linux高级编程五结构体
===================== 结构体 =================1. 结构体是构造的一种数据类型,结构体当中可以通过定义不同数据类型的成员变量保存不同含义的信息2.结构体的定义:1.有名结构体的定义struct 结构体名称{数据类型 成员变量1;数据类型 成员变量2;... //结构体当中没有规定成员个数的上限值};2.
2016-08-03 19:05:35 356
原创 linux高级编程四shell编程/指针
================= main 函数传参 ===================1.int main(int argc, const char *argv[])1.argc:给main函数传参字符串的个数argv[0]:执行文件的名字argv[1]:main函数传参中main函数后面的第一个字符串...=
2016-08-03 19:04:25 2085
原创 linux高级编程三网络以及网络配置
===================== 网络 ==================1.OSI模型:规范网络间的理想的传输协议应用层表示层会话层传输层 tcp(可靠传输)、udp(不可靠传输)数据段 数据片网络层 IP数据包 报文数据链路层 MAC帧 物理层 比特流数据流 2.TCP/IP模型:应用层传输
2016-08-03 19:01:12 354
原创 linux高级编程二基础知识
================== shell ==============一、shell命令1.shell是一种命令解释器2.shell的种类:1.bash 2.sh3.ksh4.csh5....3.查看当前的shell类型echo $SHELL4.查看系统能支持的shellvi /etc/shells5.command [-opt
2016-08-03 19:00:22 273
原创 linux基本操作
================= 相对路径、绝对路径 ==========绝对路径:通过根目录指向一个文件夹相对路径:没有通过根目录去指向一个文件================= vi编辑器 ===================1.vi编辑器是一款强大的文本编译器1.启动vi编辑器1.vi XXX.c XXX.txt2.vi -R
2016-08-03 18:58:48 269
转载 VMware+Windgb+Win7内核驱动调试
--------------------------------------------------------------转自http://yexin218.iteye.com/blog/545187VMware+Windgb+Win7内核驱动调试本人在此基础之上根据具体情况有所改动-------------------------------------------------
2016-08-01 09:59:13 875
树莓派下编译seafile文档
2018-05-14
IT职业发展路径
2018-04-28
安卓组建库
2016-01-18
set_bit函数的参数为BTN_0时是起到什么作用的,set_bit都有哪些参数,谢谢
2015-11-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人