Partilhar via


Função StringLengthFromUser (usermode_accessors.h)

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] Um ponteiro para uma cadeia de caracteres terminada em nulo na memória do modo de usuário.

Return value

A função retorna o comprimento da cadeia de caracteres em caracteres, não incluindo o caractere nulo de terminação.

Remarks

Essa função fornece acesso seguro para calcular o comprimento de uma cadeia de caracteres terminada em nulo localizada na memória do modo de usuário. Ele foi projetado para uso pelo código do modo kernel que precisa determinar o comprimento das cadeias de caracteres passadas de aplicativos de modo de usuário.

A função garante que o endereço da cadeia de caracteres seja um endereço válido no modo de usuário antes de executar o cálculo de comprimento. Ele gerará uma exceção estruturada se a operação falhar, como quando o endereço da cadeia de caracteres não for um endereço válido no modo de usuário ou estiver inacessível.

Ao contrário das funções de cadeia de caracteres padrão, essa função inclui a validação para evitar falhas no kernel ao acessar ponteiros de modo de usuário potencialmente inválidos. Isso torna essencial para a programação segura do kernel ao processar dados de cadeia de caracteres no modo de usuário.

Essa função funciona em todas as versões do Windows, não apenas nas mais recentes. 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. No entanto, o driver resultante será executado bem em versões mais antigas do Windows.

Requirements

Requirement Value
Cliente mínimo suportado See Remarks
Header usermode_accessors.h
Library umaccess.lib
IRQL Menor ou igual a APC_LEVEL

See also

StringLengthFromMode

WideStringLengthFromUser