VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 208|回复: 0

[分享] 今日一贴!驱动环境下的字符串拼接!(1)

[复制链接]
75_avatar_middle
最佳答案
18 
online_supermod 发表于 2020-2-12 22:50:03 | 显示全部楼层 |阅读模式
本帖最后由 wl1383838438 于 2020-2-12 22:55 编辑


这只是hello world的驱动笔记,
NTSTATUS  是32位无符号长整型型,在驱动开发中常用该类型来返回一个状态--STATUS_SUCCESS用来确定返回的状态是否成功
DriverEntry驱动例程的入口函数,类似于(C++的MAIN),在进入该函数钱IO管理器会调用
IOPInvalid_device_object地址填满整个MajoFuntion数组,该数组的函数指针,对应着相应的IRP(IRP是一个结构)
NTSTATUS DriverEntry(IN PDRIVER_OBJECT pdriver_object,IN PUNICODE_STRING punicode_string)
{
        UNICODE_STRING uScr,uDes;
//  UNICODE_STRING  结构是通过使用各种本地安全认证(LSA)的功能来指定一个 Unicode 字符串。
//该结构的三个成员lenght,buffer MaxinmumLenght,
        RtlInitUnicodeString(&uScr,L"hello");

        uDes.Buffer=(PWSTR)ExAllocatePool(PagedPool,BUFF_SIZE);
        //枚举POOL_TYPE&;指定要分配的系统内存类型。
        //PagedPool-分页池;,这是可分页的系统内存。分页池只能在 IRQL < DISPATCH_LEVEL进行分配和访问。;
        //;BUFF_SIZE-指定要分配的字节数。
        uDes.MaximumLength=BUFF_SIZE;
        //;RtlCopyUnicodeString;例程将源字符串复制到目标字符串。;
        //;uDes指向目标字符串缓冲区的指针。此参数指向;UNICODE_STRING&#8206;&#8206;结构。
        //uScr   指向源字符串缓冲区的指针。此参数指向;UNICODE_STRING;结构。
        RtlCopyUnicodeString(&uDes,&uScr);
        KdPrint(("拼接前%wZ",&uDes));
        //RtlAppendUnicodeToString;例程将提供的 Unicode 字符串连接到缓冲的 Unicode 字符串。
        if (STATUS_SUCCESS==RtlAppendUnicodeToString(&uDes,L"world"))
        {
                KdPrint(("STATUS_SUCCESS"));
        }

        KdPrint(("拼接后%wZ",&uDes));
        RtlFreeUnicodeString(&uDes);

        pdriver_object->DriverUnload=Unload;//     指向驱动的卸载回调函数,每一个驱动框架都有一个该函数 可以为空  但是一定要写否则驱动无法下载

        return STATUS_SUCCESS;//返回执行状态
}




上一篇:今日一贴,HOOK你的Alt+F4,让你无法关闭!
下一篇:来个驱动大佬帮忙看看,(已解决)

本帖被以下淘专辑推荐:

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-22 00:33

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表