导入内核模式安全字符串函数

从 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 中的指令验证新值是否不大于默认值。