Função RtlStringCbCopyUnicodeString (ntstrsafe.h)
A função RtlStringCbCopyUnicodeString copia o conteúdo de uma estrutura UNICODE_STRING para um destino especificado.
Sintaxe
NTSTRSAFEDDI RtlStringCbCopyUnicodeString(
[out] NTSTRSAFE_PWSTR pszDest,
[in] size_t cbDest,
[in] PCUNICODE_STRING SourceString
);
Parâmetros
[out] pszDest
Um ponteiro para um buffer que recebe a cadeia de caracteres copiada. A cadeia de caracteres para a qual a estrutura UNICODE_STRING do parâmetro SourceString aponta é copiada para o buffer em pszDest e terminada com um caractere nulo.
[in] cbDest
O tamanho, em bytes, do buffer de destino para o qual pszDest aponta. O buffer deve ser grande o suficiente para conter a cadeia de caracteres e o caractere nulo de terminação. O número máximo de bytes no buffer é NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).
[in] SourceString
Um ponteiro para uma estrutura UNICODE_STRING que contém a cadeia de caracteres a ser copiada. O número máximo de bytes na cadeia de caracteres é NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).
Retornar valor
RtlStringCbCopyUnicodeString retorna um dos seguintes valores NTSTATUS.
Código de retorno | Descrição |
---|---|
|
Esse êxito status significa que os dados de origem estavam presentes, a cadeia de caracteres foi copiada sem truncamento e o buffer de destino resultante foi encerrado em nulo. |
|
Esse aviso status significa que a operação de cópia não foi concluída devido a 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. |
RtlStringCbCopyUnicodeString retorna o valor STATUS_INVALID_PARAMETER quando ocorre um dos seguintes:
- O conteúdo da estrutura UNICODE_STRING é inválido.
- O valor em cbDest é maior que o tamanho máximo do buffer.
- O buffer de destino (para o qual pszDest aponta) 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.
Comentários
A função RtlStringCbCopyUnicodeString usa o tamanho do buffer de destino (que o parâmetro cbDest especifica) para garantir que a operação de cópia não seja gravada após o final do buffer.
Se as cadeias de caracteres de origem e destino se sobrepõem, o comportamento da função será indefinido.
Os ponteiros SourceString e pszDest não podem ser NULL. Se você precisar manipular valores de ponteiro NULL , use a função RtlStringCbCopyUnicodeStringEx .
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 a partir do Windows XP com Service Pack 1 (SP1). |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | ntstrsafe.h (inclua Ntstrsafe.h) |
Biblioteca | Ntstrsafe.lib |
IRQL | Qualquer se as cadeias de caracteres que estão sendo manipuladas estiverem sempre residentes na memória, caso contrário, PASSIVE_LEVEL |