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