Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
The StringLengthFromUser function safely calculates the length of a null-terminated string in user-mode memory.
Syntax
SIZE_T StringLengthFromUser(
const CHAR *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 |