码迷,mamicode.com
首页 > Windows程序 > 详细

Windows 驱动开发基础(九)内核函数

时间:2014-08-26 19:46:06      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:驱动开发   windows 7   

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 驱动开发基础(九)内核函数

标签:驱动开发   windows 7   

原文地址:http://blog.csdn.net/ikerpeng/article/details/38849861

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!