Freigeben über


RtlInitString-Funktion (wdm.h)

Die RtlInitString-Routine initialisiert eine gezählte Zeichenfolge mit 8-Bit-Zeichen.

Syntax

NTSYSAPI VOID RtlInitString(
  [out]          PSTRING               DestinationString,
  [in, optional] __drv_aliasesMem PCSZ SourceString
);

Parameter

[out] DestinationString

Ein Zeiger auf die zu initialisierende STRING-Struktur . Die Ntdef.h-Headerdatei definiert diese Struktur so, dass sie mit der ANSI_STRING-Struktur identisch ist.

[in, optional] SourceString

Ein Zeiger auf eine Zeichenfolge mit NULL-Beendigung. Diese Zeichenfolge wird verwendet, um die gezählte Zeichenfolge zu initialisieren, auf die von DestinationString verwiesen wird.

Hinweise

Diese Routine initialisiert eine gezählte Zeichenfolge.

Die Routine kopiert den SourceString-Zeigerwert in das Pufferelement der STRING-Struktur , auf die von DestinationString verwiesen wird. Das Length-Element dieser Struktur ist auf die Länge (in Bytes) der Quellzeichenfolge festgelegt, wobei der beendende NULL-Wert ausgeschlossen ist. Das MaximumLength-Element der Struktur ist auf die Länge (in Bytes) der Quellzeichenfolge festgelegt, einschließlich des beendenden NULL. Wenn SourceStringNULL ist, werden Length und MaximumLength auf 0 festgelegt.

RtlInitString ändert nicht die Quellzeichenfolge, auf die von SourceString verwiesen wird.

Wenn die Quellzeichenfolge länger als MAXUSHORT - 1 Bytes ist, legt RtlInitString das Length-Element der STRING-Struktur , auf die von DestinationString verwiesen wird, auf MAXUSHORT - 1 fest und legt das MaximumLength-Element dieser Struktur auf MAXUSHORT fest. In diesem Fall stellen die Werte Length und MaximumLength die Länge der null-beendeten Quellzeichenfolge falsch dar, und die Abhängigkeit von der Genauigkeit dieser Werte ist potenziell gefährlich.

Aufrufer von RtlInitString können unter IRQL <= DISPATCH_LEVEL ausgeführt werden, wenn der DestinationString-Puffer nicht ausführbar ist. In der Regel werden Aufrufer mit IRQL = PASSIVE_LEVEL ausgeführt, da die meisten anderen RtlXxxString-Routinen nicht bei IRQL > PASSIVE_LEVEL aufgerufen werden können.

Das RTL_CONSTANT_STRING Makro erstellt eine Zeichenfolgen- oder Unicode-Zeichenfolgenstruktur, die eine gezählte Zeichenfolge enthält.

STRING RTL_CONSTANT_STRING(
  [in]  PCSZ SourceString
);

UNICODE_STRING RTL_CONSTANT_STRING(
  [in]  PCWSTR SourceString
);

RTL_CONSTANT_STRING gibt entweder eine Zeichenfolgenstruktur oder eine Unicode-Zeichenfolgenstruktur zurück.

Das RTL_CONSTANT_STRING Makro ersetzt die Routinen RtlInitAnsiString, RtlInitString und RtlInitUnicodeString beim Übergeben einer konstanten Zeichenfolge.

Sie können RTL_CONSTANT_STRING verwenden, um globale Variablen zu initialisieren.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.

Weitere Informationen

ANSI_STRING