匯入安全字串函式Kernel-Mode
從 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 中的指示詞會確認您的新值不大於預設值。