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 驱动发展基金会(九)内核函数相关推荐

  1. C++开发方向之windows驱动开发

    1.为什么要写这篇文章? 最近浏览招聘网站看到关于windows驱动开发的岗位,前几天一个C++客户端工作岗位,猎头也问我是否有了解windows内核. 所以,调研了一下C++的开发方向:window ...

  2. windows驱动开发-WDF编程

    文章目录 前言 WDF编程前的准备工作 WDF编程 创建驱动对象 创建设备对象 设备对象的回调函数 链表操作 驱动的测试代码 其他 前言 注:本文的完整代码见仓库 18-WDF-reflect 代码参 ...

  3. Windows驱动开发学习笔记(七)—— 多核同步内核重载

    Windows驱动开发学习笔记(七)-- 多核同步 基础知识 并发与同步 分析 InterlockedIncrement 原子操作相关API 内核文件 多核同步 临界区 示例一:错误的临界区 示例二: ...

  4. Windows驱动开发学习笔记(三)—— 内核空间内核模块

    Windows驱动开发学习笔记(三)-- 内核空间&内核模块 内核空间 实验 第一步:编译如下代码 第二步:将 .sys 文件拷贝到虚拟机中 第三步:部署 .sys 文件并运行 第四步:创建一 ...

  5. Windows驱动开发学习笔记(二)—— 驱动调试内核编程基础

    Windows驱动开发学习笔记(二)-- 驱动调试&内核编程基础 基础知识 驱动调试 PDB(Program Debug Database) WinDbg 加载 PDB 实验:调试 .sys ...

  6. windows 内核函数前缀解析

    <Windows内核情景分析–采用开源代码ReactOS(上.下册)>本书通过分析ReactOS的源代码介绍了Windows内核各个方面的结构.功能.算法与具体实现.本小节为大家介绍Win ...

  7. Apache 软件基金会欢庆20周年:由社区驱动发展的“Apache 之道”

    腾讯开源恭祝 Apache 软件基金会持续健康发展,愿 Apache 之道驱动中国开源企业形成以社区为基础的开放开发模式. 本文来源于:开源社 文章翻译:Ted Liu & 徐红伟 | 编辑: ...

  8. Windows内核函数的命名

    <Windows内核情景分析--采用开源代码ReactOS(上.下册)>本书通过分析ReactOS的源代码介绍了Windows内核各个方面的结构.功能.算法与具体实现.本小节为大家介绍Wi ...

  9. Windows内核函数

    字符串处理 在驱动中一般使用的是ANSI字符串和宽字节字符串,在驱动中我们仍然可以使用C中提供的字符串操作函数,但是在DDK中不提倡这样做,由于C函数容易导致缓冲区溢出漏洞,针对字符串的操作它提供了一 ...

最新文章

  1. 深度学习发展下的“摩尔困境”,人工智能又将如何破局?
  2. 如何把更改后的dll图标还原回来?
  3. vue项目-封装API接口
  4. 加密解密技术—对称算法加密
  5. zklib php,php 安装zookeeper扩展报错
  6. [费用流]Bzoj P1877 晨跑
  7. PHP 危矣?Zend Engine 团队宣布脱离 Rogue Wave
  8. Linux文件属性与权限
  9. ES6与ES2015、ES2016以及ECMAScript的区别
  10. qDebug用法详解
  11. 电脑桌面便签怎么编辑修改便签内容?
  12. 分享2020年第三方支付产品服务流程
  13. excel筛选查询函数
  14. html设置字号为五号,怎么将公式编辑器里面编辑的公式大小设置为5号宋体
  15. 李彦宏:我不是传奇(网络转载)
  16. c语言lr分析器的设计与实现_ShinyJson实践之路:词法分析器的设计与实现
  17. 装linux系统的工具箱,PE,Dos工具箱,自动安装linux的U盘制作
  18. 如何更简单的使用Polly
  19. NLP中遇到的各类Attention结构汇总以及代码复现
  20. 天天打骂孩子对孩子有什么影响

热门文章

  1. 关于Ajax 错误:'sys'未定义解决方法.
  2. pgsql 两个时间字段相减_如何在Excel做专业的时间序列分析
  3. 【错误记录】VMware 虚拟机报错 ( 向 VMWare 虚拟机中的 Ubuntu 系统拷贝文件时磁盘空间不足 ② | 删除交换空间 )
  4. 【设计模式】命令模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
  5. 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第5节 final关键字_1_final关键字概念与四种用法...
  6. python之运算符
  7. 2-51单片机ESP8266学习-AT指令(开发板51单片机自动冷启动下载原理)
  8. AngularJS 服务(Service)
  9. Docker入门 一 安装Docker
  10. C++ Primer 第9章 顺序容器 第一次学习笔记