Dela via


Importera Kernel-Mode strängfunktioner med säkerhet

Från och med Windows XP är biblioteket för säker sträng i kernelläge tillgängligt som en samling inline-funktioner som definieras i headerfilen Ntstrsafe.h.

Så här använder du funktionerna för säker sträng i kernelläge

Ta med rubrikfilen, som du ser.

#include <ntstrsafe.h>

Du kan endast göra tillgängliga de byteberäkningsbara eller endast de teckenberäkningssäkra strängfunktionerna.

Så här tillåter du endast byteberäkningsfunktioner

Inkludera följande rad i koden innan du inkluderar huvudfilen Ntstrsafe.h.

#define NTSTRSAFE_NO_CCH_FUNCTIONS

Så här tillåter du endast teckenberäkningsfunktioner

Inkludera följande rad i koden innan du inkluderar huvudfilen Ntstrsafe.h.

#define NTSTRSAFE_NO_CB_FUNCTIONS

Du kan definiera antingen NTSTRSAFE_NO_CB_FUNCTIONS eller NTSTRSAFE_NO_CCH_FUNCTIONS, men inte båda.

Du kan göra UNICODE_STRING strukturfunktionerna otillgängliga.

Så här gör du UNICODE_STRING strukturfunktionerna otillgängliga

Inkludera följande rad i koden innan du inkluderar huvudfilen Ntstrsafe.h.

#define NTSTRSAFE_NO_UNICODE_STRING_FUNCTIONS

Det maximala antalet tecken som en ANSI- eller Unicode-sträng kan innehålla är NTSTRSAFE_MAX_CCH. Det maximala antalet tecken som en UNICODE_STRING struktur kan innehålla är NTSTRSAFE_UNICODE_STRING_MAX_CCH. Dessa konstanter definieras i Ntstrsafe.h.

Din drivrutin kan tilldela mindre värden till NTSTRSAFE_MAX_CCH och NTSTRSAFE_UNICODE_STRING_MAX_CCH genom att inkludera följande rader i koden innan man inkluderar Ntstrsafe.h.

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

Direktiv i Ntstrsafe.h kontrollerar att dina nya värden inte är större än standardvärdena.