Função RtlUnicodeStringVPrintf (ntstrsafe.h)
A função RtlUnicodeStringVPrintf cria uma cadeia de caracteres de texto, com formatação baseada em informações de formatação fornecidas, e armazena a cadeia de caracteres em uma estrutura UNICODE_STRING .
Sintaxe
NTSTRSAFEDDI RtlUnicodeStringVPrintf(
[out] PUNICODE_STRING DestinationString,
[in] NTSTRSAFE_PCWSTR pszFormat,
[in] va_list argList
);
Parâmetros
[out] DestinationString
Um ponteiro para uma estrutura UNICODE_STRING que recebe uma cadeia de caracteres formatada. RtlUnicodeStringVPrintf cria essa cadeia de caracteres com base na cadeia de caracteres de formatação que pszFormat especifica e na lista de argumentos da função. O número máximo de caracteres na cadeia de caracteres é NTSTRSAFE_UNICODE_STRING_MAX_CCH.
[in] pszFormat
Um ponteiro para uma cadeia de caracteres de texto terminada em nulo que contém diretivas de formatação com estilo printf.
[in] argList
Uma lista de argumentos com tipo va_list. Os argumentos nessa lista de argumentos serão interpretados usando a cadeia de caracteres de formatação especificada por pszFormat .
Retornar valor
RtlUnicodeStringVPrintf 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 o parágrafo a seguir. |
RtlUnicodeStringVPrintf retorna o valor STATUS_INVALID_PARAMETER quando ocorre um dos seguintes procedimentos:
- O conteúdo da estrutura UNICODE_STRING para a qual DestinationString aponta são inválidos.
- O buffer de destino já está cheio.
- Um ponteiro NULL está presente.
- 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 RtlUnicodeStringVPrintf usa o tamanho do buffer de destino para garantir que a operação de formatação de cadeia de caracteres não seja gravada após o final do buffer. A função não encerra a cadeia de caracteres resultante com um caractere nulo.
Se a cadeia de caracteres de formato e a cadeia de caracteres de destino se sobrepõem, o comportamento da função será indefinido.
Os ponteiros pszFormat e DestinationString não podem ser NULL. Se você precisar manipular valores de ponteiro NULL , use a função RtlUnicodeStringVPrintfEx .
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 as cadeias de caracteres que estão sendo manipuladas estiverem sempre residentes na memória, caso contrário, PASSIVE_LEVEL |