Windows内核函数 - ASCII字符串和宽字符串

news2024/11/23 16:52:02

        本章介绍了Windows内核中字符串处理函数、文件读写函数、注册表读写函数。这些函数是DDK提供的运行时函数,他们比标准C语言的运行时函数功能更丰富。普通的C语言运行时库是不能在内核模式下使用的,必须使用DDK提供的运行时函数。

        和应用程序一样,驱动程序需要经常和字符串打交道。其中包括ASCII字符串、宽字符串,还有DDK定义的ANSI_STRING数据结构和UNICODE_STRING数据结构。

        在应用程序中,往往使用两种字符:一种是char型的字符串,负责记录ANSI字符集,它是指向一个char数组的指针,每个char型变量的大小为一个字节,字符串是以0标志字符串结束。还有一种是wchar_t型的字符串,负责描述unicode字符集的字符串。它是指向一个wchar_t数组的指针,wchar_t字符大小为两个字节,字符串以0标志字符串结束。ANSI字符的构造如下:

        char* str1 = "abc";

        str1指针指向的内容是 61 626 300。

        UNICODE字符的构造如下:

        wchar_t *str2 = L"abc";

        str2指针指向的内容是6100 620 063 000 000 。在构造字符串的时候使用一个关键字“L”。编译器会自动生成所需要的宽字符。

        在驱动程序开发中,DDK将char和wchar_t类别,替换成CHAR和WCHAR类别。对于这两类的字符串,DDK提供了相应的字符串操作函数,例如,strcpy、sprintf、strcat、strlen等。但DDK的帮助文档中,不会查到这些函数的使用方法。微软公司不鼓励直接使用这些函数,取而代之的使用同样功能的宏。我们可以用Depends工具查看NTOSKRSL.EXE导出的函数。如下图所示:

        

图1.1 Depends查看NTOSKRSL.EXE导出表

        驱动程序可以用KdPrint打印ASCII字符串和宽字符串。KdPrint类似于C语言的printf函数。例如,打印一个ASCII字符串:

CHAR *str1 = "Hello";
KdPrint(("%s\n", str1)); // 注意是小写%s

打印一段宽字符时需要:

WCHAR *str2 = L"Hello";
KdPrint(("%S\n", str2)); // 注意是大写%S


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1680404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

四川景源畅信:如何更好的为抖音小店做引流?

在数字化营销的浪潮中,抖音小店作为新兴的电商形态,正以其独特的社交属性和流量优势吸引着众多商家的目光。如何为抖音小店引流,成为许多店主心中的疑问。本文将深入探讨有效提升店铺流量的策略,助你在抖音平台上快速崛起。 一、内…

云飞云共享云桌面如何降低电脑投入成本?

云飞云共享云桌面作为一种创新的云计算解决方案,以其独特的优势在业界赢得了众多认可。其中,它极大地降低了电脑投入成本,为企业和个人用户带来了实实在在的经济效益。那么,云飞云共享云桌面是如何实现这一点的呢? 设…

pytest教程-46-钩子函数-pytest_sessionstart

领取资料,咨询答疑,请➕wei: June__Go 上一小节我们学习了pytest_report_testitemFinished钩子函数的使用方法,本小节我们讲解一下pytest_sessionstart钩子函数的使用方法。 pytest_sessionstart 是 Pytest 提供的一个钩子函数&#xff0c…

MaxKB创建本地知识库

上节已经可以通过MaxKB创建简单的问答系统了,这节开始做自己的知识库,实际上就是把一些本地文件上传到大模型中,让大模型学会这些文件内容,你在问他问题的时候可以通过此文件的内容来回答你,尤其是在针对特定场景或者特…

第9章.Keil5-MDK软件简介

目录 0. 《STM32单片机自学教程》专栏 9.1 主界面 9.2 文本格式编辑 9.3 代码提示&语法检测&代码模版 9.4 其他小技巧 9.4.1 TAB 键的妙用 9.4.2 快速定位函数/变量被定义的地方 9.4.3 快速注释与快速消注释 9.4.4 快速打开头文件 9.4.5 查找替换…

C++基础——继承(下)

一、继承与静态成员 基类定义了static 静态成员,则整个继承体系里面只有一个这样的成员。无论派生出多少个子 类,都只有一个 static 成员实例 。 class person { public:person(const char* name "lisi"):_name(name){} public:string _name;…

【网站项目】SpringBoot796水产养殖系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

结合多模态 AI 谷歌展示 AR 眼镜原型机;Meta 被曝开发带摄像头的 AI 耳机丨 RTE 开发者日报 Vol.204

开发者朋友们大家好: 这里是 「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

数据可视化的艺术:使用Matplotlib和Seaborn揭示数据故事

引言 数据可视化是数据分析中的关键一环,它帮助我们理解数据模式、趋势和异常。在Python中,Matplotlib和Seaborn是两个流行的数据可视化库,它们提供了丰富的图表和图形选项,使数据的可视化变得简单而强大。 Matplotlib&#xff…

16.ABA问题

文章目录 ABA问题1.什么是ABA问题?2.ABA问题解决方案2.1.使用AtomicStampedReference解决ABA问题2.2.使用AtomicMarkableReference解决ABA问题 ABA问题 因为CAS操作的原子性能高,在JUC中广泛被应用,但是如果使用的不合理,CAS操作就…

创新方便的在线评审软件——原理图设计的利器

概述 在当今数字化时代,原理图设计已成为许多领域中不可或缺的一环。然而,对于设计师们来说,如何高效地进行评审却是一个挑战。 传统的评审方式往往需要多人齐聚一堂,耗时耗力。设计师们需要亲自填写评审意见,这不仅…

表现层设计模式_1.MVC模式

1.MVC模式三个核心模块 MVC是一种目前广泛流行的软件设计模式。近年来,随着Java EE的成熟,MVC成为了Java EE平台上推荐的一种设计模式。MVC强制性地把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离,形成了控制器…

算法学习(7)-树

目录 开启“树”之旅 二叉树 堆--优先队列 并查集 开启“树”之旅 是不是很像一棵倒挂的树?也就是说它是根朝上, 而叶子朝下的。不像?哈哈,来看看下面的图你就会觉得像啦。 你可能会间: 树和图有什么区别&#xff…

Hive的排序

order by 全局排序,因此只有一个reducer,设置了多个reducer也不起作用.-- 设置reducer的个数为2 set mapred.reduce.tasks2; -- 查询 select * from user_install_status_limit order by uptime limit 10;order by 在hive.mapred.mode strict 模式下,必须指定 limit,否则执行…

东莞酷得电子方案 遥控水弹坦克车

首先遥控小车是一种能够通过无线遥控器进行远程操控的小型机器人。遥控小车应用了哪些软硬件技术呢?本文将从以下几个方面进行详细介绍。 遥控小车应用了多种软硬件技术,涉及底盘结构、动力系统、传感器、控制器等多个方面。 底盘结构:遥控…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷5(私有云)

#需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包…

prompt工程策略(三:使用 LLM 防护围栏创建系统提示)

原文:我是如何赢得GPT-4提示工程大赛冠军的 原文的原文: How I Won Singapore’s GPT-4 Prompt Engineering Competition !!本内容仅适用于具有 System Prompt(系统提示)功能的 LLM。具有这一功能的最著名 …

vue-pure-admin项目内复制文字粘贴到word中之后存在边框问题

vue-pure-admin项目内复制文字粘贴到word中之后存在黑色边框是由于reset.scss文件内设置了通配符的border样式 修改前 代码 *, ::before, ::after {box-sizing: border-box;// 添加这个样式会导致复制的文字粘贴到word中带有边框问题border-color: currentColor;border-styl…

优秀博士学位论文分享:复杂场景下高精度有向目标检测的研究

优秀博士学位论文代表了各学科领域博士研究生研究成果的最高水平,本公众号近期将推出“优秀博士学位论文分享”系列文章,对人工智能领域2023年优秀博士学位论文进行介绍和分享,方便广大读者了解人工智能领域最前沿的研究进展。 “博士学位论…

华为Pura独立?或将成立全新子品牌

近日,华为官方公布了P系列将正式升级为“Pura”系列的消息,并且有可能演变成为一个全新的子品牌。多年以来,P系列一直以影像功能与颇具时尚感的设计而闻名。而这次品牌升级似乎并不局限于智能手机,经营范围似乎覆盖了手表、珠宝等…