Compartilhar via


Função RtlStringCbLengthW (ntstrsafe.h)

As funções RtlStringCbLengthW e RtlStringCbLengthA determinam o comprimento, em bytes, de uma cadeia de caracteres fornecida.

Sintaxe

NTSTRSAFEDDI RtlStringCbLengthW(
  [in] STRSAFE_PCNZWCH psz,
  [in] size_t          cbMax,
       size_t          *pcbLength
);

Parâmetros

[in] psz

Um ponteiro para um buffer que contém uma cadeia de caracteres terminada em nulo, cujo comprimento será verificado.

[in] cbMax

O número máximo de bytes permitidos no buffer apontado por psz, incluindo o caractere nulo de terminação.

Para cadeias de caracteres Unicode, o número máximo de bytes é NTSTRSAFE_MAX_CCH * sizeof(WCHAR).

Para cadeias de caracteres ANSI, o número máximo de bytes é NTSTRSAFE_MAX_CCH * sizeof(char).

pcbLength

Se o chamador fornecer um ponteiro de endereço não NULL , a função carregará o endereço com o comprimento, em bytes, da cadeia de caracteres contida no buffer. O comprimento não inclui o caractere nulo de terminação da cadeia de caracteres.

Retornar valor

A função retorna um dos valores NTSTATUS listados na tabela a seguir. Para obter informações sobre como testar valores NTSTATUS, consulte Usando valores NTSTATUS.

Código de retorno Descrição
STATUS_SUCCESS
Esse sucesso status significa que a cadeia de caracteres em psz não era NULL e o comprimento da cadeia de caracteres (incluindo o caractere nulo de terminação) é menor ou igual a caracteres cbMax.
STATUS_INVALID_PARAMETER
Esse erro status significa que o valor em psz é NULL, cbMax é maior que NTSTRSAFE_MAX_CCH * sizeof(TCHAR) ou psz é maior que cbMax.

Comentários

RtlStringCbLengthW e RtlStringCbLengthA devem ser usados em vez de strlen. Use essas funções para garantir que uma cadeia de caracteres não seja maior do que um determinado comprimento, em bytes. Se essa condição for atendida, RtlStringCbLengthW e RtlStringCbLengthA retornarão o comprimento atual da cadeia de caracteres em bytes, sem incluir os bytes usados para o caractere nulo de terminação.

Use RtlStringCbLengthW para manipular cadeias de caracteres Unicode e RtlStringCbLengthA para manipular cadeias de caracteres ANSI. O formulário usado depende de seus dados, conforme mostrado na tabela a seguir.

Tipos de dados de cadeia de caracteres Cadeia de caracteres literal Função
WCHAR L"string" RtlStringCbLengthW
char “cadeia de caracteres” RtlStringCbLengthA
 

Para obter mais informações sobre as funções de cadeia de caracteres seguras, consulte Usando funções de cadeia de caracteres seguras.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows XP com Service Pack 1 (SP1) e versões posteriores do Windows.
Plataforma de Destino Área de Trabalho
Cabeçalho ntstrsafe.h (inclua Ntstrsafe.h)
Biblioteca Ntstrsafe.lib
IRQL Qualquer se cadeias de caracteres que estão sendo manipuladas estiverem sempre residentes na memória, caso contrário, PASSIVE_LEVEL

Confira também

RtlStringCchLength