Функция WideStringLengthFromUser (usermode_accessors.h)

The WideStringLengthFromUser function safely calculates the length of a null-terminated wide character string in user-mode memory.

Syntax

SIZE_T WideStringLengthFromUser(
  const WCHAR *String
);

Parameters

String

[in] Указатель на строку, завершаемую значением NULL, в памяти пользовательского режима.

Return value

Функция возвращает длину строки в широких символах, не включая завершающийся символ NULL.

Remarks

Эта функция обеспечивает безопасный доступ для вычисления длины строки, завершаемой значением NULL, расположенной в памяти пользовательского режима. Он предназначен для использования в коде в режиме ядра, который должен определить длину широкой символьной строки, передаваемой из приложений пользовательского режима.

Функция гарантирует, что строковый адрес является допустимым адресом пользовательского режима перед выполнением вычисления длины. При сбое операции возникает структурированное исключение, например, если адрес строки не является допустимым адресом в пользовательском режиме или недоступен.

В отличие от стандартных строковых функций, эта функция включает проверку, чтобы предотвратить сбои ядра при доступе к потенциально недопустимым указателям в пользовательском режиме. Это делает его важным для безопасного программирования ядра при обработке данных строки строки символов в пользовательском режиме.

Эта функция работает во всех версиях Windows, а не только на последних версиях. You need to consume the latest WDK to get the function declaration from the usermode_accessors.h header. You also need the library (umaccess.lib) from the latest WDK. Однако результирующий драйвер будет работать в более ранних версиях Windows.

Requirements

Requirement Value
Минимальный поддерживаемый клиент See Remarks
Header usermode_accessors.h
Library umaccess.lib
IRQL Меньше или равно APC_LEVEL

See also

WideStringLengthFromMode

StringLengthFromUser