2011-12-03 8 views
3

私はたくさんの文字列を操作する必要があるWindowsカーネルモードドライバを書いています。どこでも通常のC関数の代わりに "安全な文字列"関数を使用することが推奨されています。しかし、文字列関数の多くは実装されていない。 strchr、strstr。Windowsカーネルモードでstrstrに相当するものはありますか?

私の質問は、カーネルモードで文字列内の文字列を検索するために使用できる関数があるかどうかです。

答えて

5

ドライバでは、strstr()のような通常のCランタイム関数を使用できます。その機能の安全なバージョンを見つけることに集中しないでください。 strchr()またはstrstr()が意図せずにメモリを破壊するシナリオはありません。彼らは読むだけで、書くことはありません。入力文字列が正しくゼロ終端されず、アクセス違反が発生した場合、それらは確かにブルースクリーンを引き起こす可能性があります。しかし、それは他のバグでした。

+0

MSから何らかの種類の認証拒否(WHQL)が発生することはありませんか?それはルールの1つです - カーネルAPIのみを使用する – SomeWittyUsername

+0

実際に[安全なバージョンは存在します](https://msdn.microsoft.com/en-us/library/windows/hardware/ff563642(v=vs.85).aspx )可能であれば、 'UNICODE_STRING'バージョンを使用することをお勧めします。 – Mgetz

関連する問題