Windows 驱动发展基金会(九)内核函数
Windows 驱动发展基金会系列,转载请注明出处:http://blog.csdn.net/ikerpeng/article/details/38849861
这里主要介绍3类Windows的内核函数:字符串处理函数,文件操作函数, 注冊表读写函数。
(这些函数都是执行时函数,所以都有Rtl字样)
1 字符串处理函数
首先驱动程序中,经常使用的字符串包含4种:CHAR (打印的时候注意小写%s), WCHAR(打印的时候注意大写%S), ANSI_STRING, UNICODE_STRING。后面两种使用的比較的多注意他们两都不是以0标志结束的。
使用前要都要进行初始化(就像C里面的变量声明和赋值)。
都有其对应的初始化函数:
RtlInitAnsiString(),RtlInitUnicodeString()。使用的样例:
ANSI_STRING ansiString;
CHAR* string = “Hello”;
RtlInitAnsiString(&ansiString, string);
同理我们还有对应的:复制:RtlCopyString()RtlCopyUnicodeString()比較:RtlCompareUnicodeString()RtlCompareString()转化为大写:RtlUpperString() RtlUpcaseUnicodeString()转化为整型:RtlUnicodeStringtoInteger()整型转化为Unicode RtlIntegertoUnicodeString()。
详细用到的时候查手冊就好。
2. 文件操作函数
文件的操作主要包含:文件的创建,打开,改动。读。写等的操作。
这个文件操作的基本公用代码是:
UNICODE_STRING string;
RtlInitUnicodeString(&string, L"\\??\\C:\\1.log");
OBJECT_ATTRIBUTES objattr;
InitializeObjectAttributes(&objattr, &string, OBJ_CASE_INSENSITIVE, NULL, NULL);
HANDLE hFile;
IO_STATUS_BLOCK iostatus;
以上就是对于函数要调用的一些參数的申明和定义。接下来就能够对创建的文件进行操作勒。
操作的函数主要有:
文件的创建: ZwCreativeFile()文件属性设置:ObjectAttributes()文件的打开:ZwOpenFile() 文件的信息获取 ZwSetInformationFile(),改动属性ZwQueryInformationFile()文件的读 ZwReadFile()文件的写 ZwWriteFile()。
3.注冊表
注冊表中存储的是对个的二元结构:键名--键值;同一时候一个注冊表项可能还存在他的子项。
其操作和文件的操作非常像。基本的函数有ZwCreatKey(),ZwOpenKey(),ZwSetValueKey()(键值)ZwQueryValueKey()ZwQueryKey()(键名的操作)等等。
本小节完。
參考文献
《 Windows 驱动开发技术详细说明 》
版权声明:本文博主原创文章。博客,未经同意不得转载。
Windows 驱动发展基金会(九)内核函数相关推荐
- C++开发方向之windows驱动开发
1.为什么要写这篇文章? 最近浏览招聘网站看到关于windows驱动开发的岗位,前几天一个C++客户端工作岗位,猎头也问我是否有了解windows内核. 所以,调研了一下C++的开发方向:window ...
- windows驱动开发-WDF编程
文章目录 前言 WDF编程前的准备工作 WDF编程 创建驱动对象 创建设备对象 设备对象的回调函数 链表操作 驱动的测试代码 其他 前言 注:本文的完整代码见仓库 18-WDF-reflect 代码参 ...
- Windows驱动开发学习笔记(七)—— 多核同步内核重载
Windows驱动开发学习笔记(七)-- 多核同步 基础知识 并发与同步 分析 InterlockedIncrement 原子操作相关API 内核文件 多核同步 临界区 示例一:错误的临界区 示例二: ...
- Windows驱动开发学习笔记(三)—— 内核空间内核模块
Windows驱动开发学习笔记(三)-- 内核空间&内核模块 内核空间 实验 第一步:编译如下代码 第二步:将 .sys 文件拷贝到虚拟机中 第三步:部署 .sys 文件并运行 第四步:创建一 ...
- Windows驱动开发学习笔记(二)—— 驱动调试内核编程基础
Windows驱动开发学习笔记(二)-- 驱动调试&内核编程基础 基础知识 驱动调试 PDB(Program Debug Database) WinDbg 加载 PDB 实验:调试 .sys ...
- windows 内核函数前缀解析
<Windows内核情景分析–采用开源代码ReactOS(上.下册)>本书通过分析ReactOS的源代码介绍了Windows内核各个方面的结构.功能.算法与具体实现.本小节为大家介绍Win ...
- Apache 软件基金会欢庆20周年:由社区驱动发展的“Apache 之道”
腾讯开源恭祝 Apache 软件基金会持续健康发展,愿 Apache 之道驱动中国开源企业形成以社区为基础的开放开发模式. 本文来源于:开源社 文章翻译:Ted Liu & 徐红伟 | 编辑: ...
- Windows内核函数的命名
<Windows内核情景分析--采用开源代码ReactOS(上.下册)>本书通过分析ReactOS的源代码介绍了Windows内核各个方面的结构.功能.算法与具体实现.本小节为大家介绍Wi ...
- Windows内核函数
字符串处理 在驱动中一般使用的是ANSI字符串和宽字节字符串,在驱动中我们仍然可以使用C中提供的字符串操作函数,但是在DDK中不提倡这样做,由于C函数容易导致缓冲区溢出漏洞,针对字符串的操作它提供了一 ...
最新文章
- 深度学习发展下的“摩尔困境”,人工智能又将如何破局?
- 如何把更改后的dll图标还原回来?
- vue项目-封装API接口
- 加密解密技术—对称算法加密
- zklib php,php 安装zookeeper扩展报错
- [费用流]Bzoj P1877 晨跑
- PHP 危矣?Zend Engine 团队宣布脱离 Rogue Wave
- Linux文件属性与权限
- ES6与ES2015、ES2016以及ECMAScript的区别
- qDebug用法详解
- 电脑桌面便签怎么编辑修改便签内容?
- 分享2020年第三方支付产品服务流程
- excel筛选查询函数
- html设置字号为五号,怎么将公式编辑器里面编辑的公式大小设置为5号宋体
- 李彦宏:我不是传奇(网络转载)
- c语言lr分析器的设计与实现_ShinyJson实践之路:词法分析器的设计与实现
- 装linux系统的工具箱,PE,Dos工具箱,自动安装linux的U盘制作
- 如何更简单的使用Polly
- NLP中遇到的各类Attention结构汇总以及代码复现
- 天天打骂孩子对孩子有什么影响
热门文章
- 关于Ajax 错误:'sys'未定义解决方法.
- pgsql 两个时间字段相减_如何在Excel做专业的时间序列分析
- 【错误记录】VMware 虚拟机报错 ( 向 VMWare 虚拟机中的 Ubuntu 系统拷贝文件时磁盘空间不足 ② | 删除交换空间 )
- 【设计模式】命令模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
- 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第5节 final关键字_1_final关键字概念与四种用法...
- python之运算符
- 2-51单片机ESP8266学习-AT指令(开发板51单片机自动冷启动下载原理)
- AngularJS 服务(Service)
- Docker入门 一 安装Docker
- C++ Primer 第9章 顺序容器 第一次学习笔记