关于驱动程序转换小写的问题
来源:互联网 发布:网络音乐产品黑名单 编辑:程序博客网 时间:2024/04/29 21:22
Windows 7 Ultimate + Windows DDK 3790.1830 + Microsoft VS2010
今天测试一个转化小写的函数:
RtlDowncaseUnicodeString
配置好DDK命令行编译之后提示: error C4013: 'RtlDowncaseUnicodeString' undefined; assuming extern returning int
打开用SDK工具包中一个depends.exe打开NTOSKRNL.EXE,检查函数导出,结果发现这个函数真有定义。
就是DDK头文件中没定义所以不识别。
调用驱动函数专用函数不通,还是要靠自己动手写的。
解决方案:
按照unsigned short 方式遍历UNICODE_STRING.Buffer成员的每个项,检查数值范围,若在65到90(均十进制),则将位6(第7位)通过位或运算置1。
如下函数模拟RtlDowncaseUnicodeString,但参数有所不同
// 注意:该函数并不检查目的地址是否有效// 特别是是否可写、是否越界// 上一调用级应确保其合法性。// 否则, 蓝屏死机(BSOD)NTSTATUS DowncaseUnicodeString( PUNICODE_STRING pDes, PUNICODE_STRING pSrc ){ int index = 0; const int limit = ( pSrc->Length) / 2 ; // UNICODE String Counted by bytes. USHORT *pusSrc = (USHORT *) pSrc->Buffer; USHORT *pusDes = (USHORT *) pDes->Buffer; for ( ; index < limit; ++index ) { USHORT temp = pusSrc[index]; if ( temp >= 65 && temp <= 90 ) { temp |= 0x20; } pusDes[index] = temp; } return STATUS_SUCCESS;}
0 0
- 关于驱动程序转换小写的问题
- 第七章大写字母小写字母的转换问题
- 关于thinkphp APP_DEBUG开启后url变成小写的问题
- 关于驱动程序开发的步骤问题
- 人民币小写转化为大写转换(解决中间多个0的问题)
- 数字小写到英文大写的转换
- 字符串转换为小写的函数
- 小写字母到大写字母的转换
- 关于嵌入式linux下的驱动程序编译问题
- 关于通过驱动程序读取usb接口数据的问题?
- 关于中文转换的问题
- 关于不能转换的问题
- 关于汇编的基本小程序——将输入字符串中的小写字母转换成大写字母并输出
- 编驱动程序的问题
- (C语言)大写字母转换成小写字母问题
- 关于驱动程序的头文件
- 关于驱动程序编译的makefile
- 大写转换成小写
- 2015 Top10 最成功的网页设计趋势(业界主流设计思想)
- PowerDesigner实体模型CDM中关于建立Entity之间关系的备忘
- Qt:解决使用png图片时,报错libpng warning: iCCP: known incorrect sRGB profile的问题
- python文件读写模式解析
- hdu 4548(美素数)
- 关于驱动程序转换小写的问题
- 读书笔记之计算机系统(6)
- hdu 2669 Romantic 扩展欧几里德
- bzoj 3223: Tyvj 1729 文艺平衡树
- 动画的方法
- iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等
- SPOJ4491. Primes in GCD Table(gcd(a,b)=d素数,(1<=a<=n,1<=b<=m))加强版
- 在Windows8.1下配置Hadoop2.7.0的源代码阅读环境
- julia/pyplot 画图添加标签和标题