Compartir a través de


Función RtlInitAnsiString (wdm.h)

La rutina RtlInitAnsiString inicializa una cadena contada de caracteres ANSI.

Sintaxis

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

Parámetros

[out] DestinationString

Puntero a la estructura ANSI_STRING que se va a inicializar.

[in, optional] SourceString

Un puntero a una cadena de caracteres terminada en null. Esta cadena se usa para inicializar la cadena contada a la que apunta DestinationString.

Valor devuelto

None

Observaciones

Esta rutina inicializa una cadena de caracteres con recuento.

La rutina copia el valor del puntero SourceString al miembro Buffer de la estructura ANSI_STRING a la que apunta DestinationString. El miembro Length de esta estructura se establece en la longitud, en bytes, de la cadena de origen, excluyendo el valor NULL de terminación. El miembro MaximumLength de la estructura se establece en la longitud, en bytes, de la cadena de origen, incluida la terminación null. Si SourceString es NULL, Length y MaximumLength se establecen en cero.

RtlInitAnsiString no modifica la cadena de origen a la que apunta SourceString.

Si la cadena de origen es mayor que MAXUSHORT : 1 bytes, RtlInitAnsiString establece el miembro Length de la estructura de ANSI_STRING a la que apunta DestinationString a MAXUSHORT - 1 y establece el miembro MaximumLength de esta estructura en MAXUSHORT. En este caso, los valores Length y MaximumLength mal representan la longitud de la cadena de origen terminada en null y dependen de la precisión de estos valores es potencialmente peligroso.

Los autores de llamadas de RtlInitAnsiString se pueden ejecutar en IRQL <= DISPATCH_LEVEL si el búfer DestinationString no se puede paginar. Normalmente, los autores de llamadas se ejecutan en IRQL = PASSIVE_LEVEL porque la mayoría de las demás rutinas rtlXxxString no se pueden llamar en IRQL > PASSIVE_LEVEL.

La macro RTL_CONSTANT_STRING crea una cadena o una estructura de cadena Unicode para contener una cadena contada.

STRING RTL_CONSTANT_STRING(
  [in]  PCSZ SourceString
);

UNICODE_STRING RTL_CONSTANT_STRING(
  [in]  PCWSTR SourceString
);

RTL_CONSTANT_STRING devuelve una estructura de cadena o una estructura de cadena Unicode.

La macro RTL_CONSTANT_STRING reemplaza las rutinas RtlInitAnsiString, RtlInitString y RtlInitUnicodeString al pasar una cadena constante.

Puede usar RTL_CONSTANT_STRING para inicializar variables globales.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL Cualquier nivel (consulte la sección Comentarios)

Consulte también

ANSI_STRING