Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Starting with Windows XP, the kernel-mode safe string library is available as a collection of inline functions that are defined in the Ntstrsafe.h header file.
To use the kernel-mode safe string functions
Include the header file, as shown.
#include <ntstrsafe.h>
You can make available only the byte-counted or only the character-counted safe string functions.
To allow only byte-counted functions
Include the following line in your code before including the Ntstrsafe.h header file.
#define NTSTRSAFE_NO_CCH_FUNCTIONS
To allow only character-counted functions
Include the following line in your code before including the Ntstrsafe.h header file.
#define NTSTRSAFE_NO_CB_FUNCTIONS
You can define either NTSTRSAFE_NO_CB_FUNCTIONS or NTSTRSAFE_NO_CCH_FUNCTIONS, but not both.
You can make the UNICODE_STRING structure functions unavailable.
To make UNICODE_STRING structure functions unavailable
Include the following line in your code before including the Ntstrsafe.h header file.
#define NTSTRSAFE_NO_UNICODE_STRING_FUNCTIONS
The maximum number of characters that any ANSI or Unicode string can contain is NTSTRSAFE_MAX_CCH. The maximum number of characters that a UNICODE_STRING structure can contain is NTSTRSAFE_UNICODE_STRING_MAX_CCH. These constants are defined in Ntstrsafe.h.
Your driver can assign smaller values to NTSTRSAFE_MAX_CCH and NTSTRSAFE_UNICODE_STRING_MAX_CCH by including the following lines in your code before including Ntstrsafe.h.
#define NTSTRSAFE_MAX_CCH <new-value>
#define NTSTRSAFE_UNICODE_STRING_MAX_CCH <new-value>
Directives in Ntstrsafe.h verify that your new values are not larger than the default values.