Импорт 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 или Юникод, равно NTSTRSAFE_MAX_CCH. Максимальное число символов, которое может содержать структура UNICODE_STRING , равно NTSTRSAFE_UNICODE_STRING_MAX_CCH. Эти константы определены в ntstrsafe.h.
Драйвер может назначать меньшие значения NTSTRSAFE_MAX_CCH и NTSTRSAFE_UNICODE_STRING_MAX_CCH, включив следующие строки в код перед включением ntstrsafe.h.
#define NTSTRSAFE_MAX_CCH <new-value>
#define NTSTRSAFE_UNICODE_STRING_MAX_CCH <new-value>
Директивы в Ntstrsafe.h проверяют, что новые значения не превышают значения по умолчанию.