2011-12-03 18 views
3

我正在写一个Windows内核模式驱动程序,其中我将不得不操纵大量的字符串。在任何地方建议使用“安全字符串”功能而不是普通的C函数。然而,许多字符串函数尚未实现,例如strchr,strstr。Windows内核模式下strstr的任何等价物?

我的问题是,是否有任何函数可以用来在内核模式下搜索字符串内的字符串?

回答

5

您可以在驱动程序中使用常规的C运行时功能,如strstr()。避免专注于找到该功能的安全版本,则不存在。 strchr()或strstr()不会无意中破坏内存。他们只读,他们不写。如果输入字符串没有正确的零终止,它们肯定会导致蓝屏,导致访问冲突。但那是其他地方的一个错误。

+0

它不能导致来自MS的某种认证拒绝(WHQL)吗?这是规则之一 - 仅使用内核API – SomeWittyUsername

+0

实际上[安全版本存在](https://msdn.microsoft.com/en-us/library/windows/hardware/ff563642(v = vs.85).aspx ),但如果可能的话,我会推荐使用'UNICODE_STRING'版本。 – Mgetz

相关问题