Função RtlInitAnsiString (wdm.h)

A rotina RtlInitAnsiString inicializa uma cadeia de caracteres ANSI contada.

Sintaxe

NTSYSAPI VOID RtlInitAnsiString(
  [out]          PANSI_STRING          DestinationString,
  [in, optional] __drv_aliasesMem PCSZ SourceString
);

Parâmetros

[out] DestinationString

Um ponteiro para a estrutura ANSI_STRING a ser inicializada.

[in, optional] SourceString

Um ponteiro para uma cadeia de caracteres terminada em nulo. Essa cadeia de caracteres é usada para inicializar a cadeia de caracteres contada apontada por DestinationString.

Retornar valor

Nenhum

Comentários

Essa rotina inicializa uma cadeia de caracteres contada.

A rotina copia o valor do ponteiro SourceString para o membro Buffer da estrutura ANSI_STRING apontada por DestinationString. O membro Length dessa estrutura é definido como o comprimento, em bytes, da cadeia de caracteres de origem, excluindo o nulo de terminação. O membro MaximumLength da estrutura é definido como o comprimento, em bytes, da cadeia de caracteres de origem, incluindo o nulo de terminação. Se SourceString for NULL, Length e MaximumLength serão definidos como zero.

RtlInitAnsiString não altera a cadeia de caracteres de origem apontada por SourceString.

Se a cadeia de caracteres de origem for maior que MAXUSHORT - 1 bytes, RtlInitAnsiString definirá o membro Length da estrutura de ANSI_STRING apontada por DestinationString para MAXUSHORT - 1 e definirá o membro MaximumLength dessa estrutura como MAXUSHORT. Nesse caso, os valores Length e MaximumLength deturpam o comprimento da cadeia de caracteres de origem terminada em nulo e confiar na precisão desses valores é potencialmente perigoso.

Os chamadores de RtlInitAnsiString podem estar em execução em IRQL <= DISPATCH_LEVEL se o buffer DestinationString não for pageable. Normalmente, os chamadores são executados em IRQL = PASSIVE_LEVEL porque a maioria das outras rotinas rtlxxxstring não podem ser chamadas no IRQL > PASSIVE_LEVEL.

A macro RTL_CONSTANT_STRING cria uma cadeia de caracteres ou uma estrutura de cadeia de caracteres Unicode para manter uma cadeia de caracteres contada.

STRING RTL_CONSTANT_STRING(
  [in]  PCSZ SourceString
);

UNICODE_STRING RTL_CONSTANT_STRING(
  [in]  PCWSTR SourceString
);

RTL_CONSTANT_STRING retorna uma estrutura de cadeia de caracteres ou uma estrutura de cadeia de caracteres Unicode.

A macro RTL_CONSTANT_STRING substitui as rotinas RtlInitAnsiString, RtlInitString e RtlInitUnicodeString ao passar uma cadeia de caracteres constante.

Você pode usar RTL_CONSTANT_STRING para inicializar variáveis globais.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Qualquer nível (consulte a seção Comentários)

Confira também

ANSI_STRING