Sdílet prostřednictvím


Importování bezpečných funkcí řetězců Kernel-Mode

Počínaje systémem Windows XP je bezpečná knihovna řetězců v režimu jádra k dispozici jako kolekce vložených funkcí, které jsou definovány v souboru hlavičky Ntstrsafe.h.

Použití bezpečných řetězcových funkcí v režimu jádra

Zahrňte soubor záhlaví, jak je znázorněno.

#include <ntstrsafe.h>

Můžete zpřístupnit pouze funkce bezpečných řetězců počítané dle bajtů nebo pouze ty počítané dle znaků.

Povolit pouze funkce omezené počtem bajtů

Před zahrnutím souboru hlavičky Ntstrsafe.h do kódu vložte následující řádek.

#define NTSTRSAFE_NO_CCH_FUNCTIONS

Povolit pouze funkce, které počítají znaky

Před zahrnutím souboru hlavičky Ntstrsafe.h do kódu vložte následující řádek.

#define NTSTRSAFE_NO_CB_FUNCTIONS

Můžete definovat NTSTRSAFE_NO_CB_FUNCTIONS nebo NTSTRSAFE_NO_CCH_FUNCTIONS, ale ne obojí.

Funkce struktury UNICODE_STRING můžete znepřístupnit.

Udělat funkce struktury UNICODE_STRING nedostupnými

Před zahrnutím souboru hlavičky Ntstrsafe.h do kódu vložte následující řádek.

#define NTSTRSAFE_NO_UNICODE_STRING_FUNCTIONS

Maximální počet znaků, které může obsahovat libovolný řetězec ANSI nebo Unicode, je NTSTRSAFE_MAX_CCH. Maximální počet znaků, které může struktura UNICODE_STRING obsahovat, je NTSTRSAFE_UNICODE_STRING_MAX_CCH. Tyto konstanty jsou definovány v ntstrsafe.h.

Ovladač může přiřadit menší hodnoty NTSTRSAFE_MAX_CCH a NTSTRSAFE_UNICODE_STRING_MAX_CCH zahrnutím následujících řádků do kódu před zahrnutím ntstrsafe.h.

#define NTSTRSAFE_MAX_CCH  <new-value>
#define NTSTRSAFE_UNICODE_STRING_MAX_CCH  <new-value>

Direktivy v ntstrsafe.h ověřují, že nové hodnoty nejsou větší než výchozí hodnoty.