飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3591|回复: 5

驱动学习笔记

[复制链接]
  • TA的每日心情
    慵懒
    2019-3-12 17:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-10-15 17:58:58 | 显示全部楼层 |阅读模式
    驱动学习笔记。

    1.数据类型变了(参考ntdef.h文件头):
    ULONG
    UCHAR 对应c中的unsigned char
    UINT
    VOID 对应c中的void
    PUNLONG
    PUCHAR
    等等,大家自行参考文件头吧。

    2.字符串也变了(参考ntddk.h文件头)
    对于字符串来说,安全真的很重要。所以弄得这么麻烦,大家看看函数吧:
    RtlCopyUnicodeString   字符串拷贝函数
    RtlAppendUnicodeStringToString 字符串连接函数


    例子1:
    UNICODE_STRING dst;      //目标字符串
    WCHAR dst_buf[256];      //缓冲区
    UNICODE_STRING src;      //源字符串
    RtlInitUniocdeString(&src,L”unicodestring”);
    RtlInitEmptyUnicodeString(&dst,dst_buf,256*sizeof(WCHAAR)); //把目标字符串初始化为缓冲区长度为256双字的UNICODE_STRING结构
    RtlCopyUnicodeString(&dst,&src);   //字符串拷贝


    例子2:
    WCHAR buf[256];
    UNICODE_STRING dst,src;
    RtlInitEmptyUnicodeString(&dst,buf,256*sizeof(WCHAR));
    RtlInitUnicodeString(&src,L"myunicode");
    RtlCopyUnicodeString(&dst,&src);
    RtlInitUnicodeString(&src,L"string");
    RtlAppendUnicodeStringToString(&dst,&src);
    KdPrint(("%wZ",&dst));

    其实还有很多,大家自己看吧。



    3.说说字符串打印(参考ntstrsafe.h文件头):
    其实你可以使用sprintf或者wsprintf但是还是使用头文件中的RtlStringCbPrintf比较安全。
    例子:
    int const arraysize = 30;
    WCHAR pszDest[arraysize];
    size_t cbDest = arraysize * sizeof(WCHAR);
    LPCWSTR pszFormat = L"%s %d + %d = %d.";
    WCHAR* pszTxt = L"The answer is";
    NTSTATUS status = RtlStringCbPrintfW(pszDest, cbDest, pszFormat, pszTxt, 1, 2, 3);

    4.打印函数DbgPrint、KdPrint(参考ntddk.h文件头)
    我只是说一下格式控制符(比较像C中的printf):
    %C, %S, %lc, %ls, %wc, %ws, and %wZ
    都是代表字符串你用那个都可以的(有些控制字符不安全,推荐使用%wZ)。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    昨天 07:25
  • 签到天数: 1069 天

    [LV.10]以坛为家III

    发表于 2010-10-15 18:51:35 | 显示全部楼层
    好**,期待能看懂/:011
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-1-19 21:44
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2010-10-16 00:29:11 | 显示全部楼层
    哎、看不懂。。。。
    PYG19周年生日快乐!
  • TA的每日心情

    2020-10-13 22:53
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    发表于 2010-10-16 20:48:29 | 显示全部楼层
    新手 看不懂
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-11-1 14:59:57 | 显示全部楼层
    驱动,底层权限最高
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2016-5-16 19:11
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2016-5-16 21:57:54 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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