【发布时间】:2012-01-12 05:08:15
【问题描述】:
我正在编写一个 Windows 内核模式驱动程序,我必须在其中操作大量字符串。到处都建议使用“安全字符串”函数而不是普通的 C 函数。但是,许多字符串函数尚未实现,例如strchr, strstr.
我的问题是是否有任何函数可以用来在内核模式下搜索字符串中的字符串?
【问题讨论】:
标签: c visual-c++ driver kernel wdk
我正在编写一个 Windows 内核模式驱动程序,我必须在其中操作大量字符串。到处都建议使用“安全字符串”函数而不是普通的 C 函数。但是,许多字符串函数尚未实现,例如strchr, strstr.
我的问题是是否有任何函数可以用来在内核模式下搜索字符串中的字符串?
【问题讨论】:
标签: c visual-c++ driver kernel wdk
您可以在驱动程序中使用常规的 C 运行时函数,例如 strstr()。避免专注于寻找该功能的安全版本,不存在。没有 strchr() 或 strstr() 会无意中损坏内存的情况。他们只会读,不会写。如果输入字符串没有正确以零结尾,它们肯定会导致蓝屏,从而产生访问冲突。但这是其他地方的错误。
【讨论】:
UNICODE_STRING 版本。