Compartilhar via


Função 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] Um ponteiro para uma cadeia de caracteres largos 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 largos, 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 largos 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 largas 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 o torna essencial para a programação segura do kernel ao processar dados de cadeia de caracteres largos 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

WideStringLengthFromMode

StringLengthFromUser