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) |