Função RtlUnicodeStringCbCatStringN (ntstrsafe.h)
A função RtlUnicodeStringCbCatStringN concatena duas cadeias de caracteres quando a cadeia de caracteres de destino está contida em uma estrutura UNICODE_STRING, limitando o tamanho da cadeia de caracteres acrescentada.
Sintaxe
NTSTRSAFEDDI RtlUnicodeStringCbCatStringN(
[in, out] PUNICODE_STRING DestinationString,
[in] NTSTRSAFE_PCWSTR pszSrc,
[in] size_t cbToAppend
);
Parâmetros
[in, out] DestinationString
Um ponteiro para uma estrutura UNICODE_STRING. Essa estrutura inclui um buffer que, na entrada, contém uma cadeia de caracteres de destino para a qual a cadeia de caracteres de origem será concatenada. Na saída, esse buffer é o buffer de destino que contém toda a cadeia de caracteres resultante. A cadeia de caracteres de origem (excluindo a terminação nula) é adicionada ao final da cadeia de caracteres de destino. O número máximo de bytes no buffer de cadeia de caracteres da estrutura é NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).
[in] pszSrc
Um ponteiro fornecido pelo chamador para uma cadeia de caracteres terminada em nulo. Essa cadeia de caracteres será concatenada até o final da cadeia de caracteres de destino que está contida na estrutura UNICODE_STRING à qual DestinationString aponta.
[in] cbToAppend
O número máximo de bytes a acrescentar à cadeia de caracteres que o parâmetro DestinationString descreve.
Valor de retorno
RtlUnicodeStringCbCatStringN retorna um dos seguintes valores NTSTATUS.
Código de retorno | Descrição |
---|---|
|
Esse êxito status significa que os dados de origem estavam presentes, as cadeias de caracteres foram concatenadas sem truncamento e o buffer de destino resultante foi encerrado em nulo. |
|
Esse aviso status significa que a operação de concatenação não foi concluída devido ao espaço em buffer insuficiente. O buffer de destino contém uma versão truncada e terminada em nulo do resultado pretendido. |
|
Esse erro status significa que a função recebeu um parâmetro de entrada inválido. Para obter mais informações, consulte a lista a seguir. |
RtlUnicodeStringCbCatStringN retorna o valor STATUS_INVALID_PARAMETER quando ocorre um destes procedimentos:
- O conteúdo da estrutura UNICODE_STRING é inválido.
- O buffer de destino já está cheio.
- Um ponteiro de buffer é NULL.
- O comprimento do buffer de destino é zero, mas uma cadeia de caracteres de origem de comprimento diferente de zero está presente.
- O valor do parâmetro cbToAppend é maior que NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).
Observações
A função RtlUnicodeStringCbCatStringN usa o tamanho do buffer de destino para garantir que a operação de concatenação não escreva após o final do buffer. A função não encerrar a cadeia de caracteres resultante com um valor de caractere nulo (ou seja, com zero).
Se as cadeias de caracteres de origem e destino se sobrepõem, o comportamento da função será indefinido.
Os ponteiros pszSrc e DestinationString não podem ser NULL. Se você precisar lidar com valores de ponteiro de NULL, use a função RtlUnicodeStringCbCatStringNEx.
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 |
---|---|
de cliente com suporte mínimo | Disponível no Windows XP com Service Pack 1 (SP1) e versões posteriores do Windows. |
da Plataforma de Destino | Área de trabalho |
cabeçalho | ntstrsafe.h (inclua Ntstrsafe.h) |
biblioteca | Ntstrsafe.lib |
IRQL | Se as cadeias de caracteres que estão sendo manipuladas estiverem sempre residentes na memória, caso contrário, PASSIVE_LEVEL |