Função RtlStringCbLengthA (ntstrsafe.h)
As funções RtlStringCbLengthW e RtlStringCbLengthA determinam o comprimento, em bytes, de uma cadeia de caracteres fornecida.
Sintaxe
NTSTRSAFEDDI RtlStringCbLengthA(
[in] STRSAFE_PCNZCH 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 |
---|---|
|
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. |
|
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 |