カーネルモード セーフ文字列関数のインポート
Windows XP 以降、カーネル モードのセーフ文字列ライブラリは、Ntstrsafe.h ヘッダー ファイルで定義されているインライン関数のコレクションとして使用できます。
カーネル モードのセーフ文字列関数を使用するには
次に示すように、ヘッダー ファイルを含めます。
#include <ntstrsafe.h>
バイトカウント関数のみ、または文字カウント セーフ文字列関数のみを使用可能にできます。
バイトカウント関数のみ許可するには
Ntstrsafe.h ヘッダー ファイルを含める前に、以下の行をコードに含めます。
#define NTSTRSAFE_NO_CCH_FUNCTIONS
文字カウント関数のみ許可するには
Ntstrsafe.h ヘッダー ファイルを含める前に、以下の行をコードに含めます。
#define NTSTRSAFE_NO_CB_FUNCTIONS
NTSTRSAFE_NO_CB_FUNCTIONS または NTSTRSAFE_NO_CCH_FUNCTIONS を定義できますが、両方を定義することはできません。
UNICODE_STRING 構造関数は使用不可にできます。
UNICODE_STRING 構造関数を使用不可にするには
Ntstrsafe.h ヘッダー ファイルを含める前に、以下の行をコードに含めます。
#define NTSTRSAFE_NO_UNICODE_STRING_FUNCTIONS
ANSI または Unicode 文字列に含めることができる最大文字数は NTSTRSAFE_MAX_CCH です。 UNICODE_STRING 構造に含めることができる最大文字数は NTSTRSAFE_UNICODE_STRING_MAX_CCH です。 これらの定数は、Ntstrsafe.h で定義されています。
ドライバーは、Ntstrsafe.h を含める前にコードに以下の行を含めることにより、NTSTRSAFE_MAX_CCH と NTSTRSAFE_UNICODE_STRING_MAX_CCH に小さい値を割り当てることができます。
#define NTSTRSAFE_MAX_CCH <new-value>
#define NTSTRSAFE_UNICODE_STRING_MAX_CCH <new-value>
Ntstrsafe.h のディレクティブは、新しい値が既定値より大きくないことを確認します。