导入内核模式安全字符串函数
从 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 中的指令验证新值是否不大于默认值。