Freigeben über


StringLengthFromUser-Funktion (usermode_accessors.h)

The StringLengthFromUser function safely calculates the length of a null-terminated string in user-mode memory.

Syntax

SIZE_T StringLengthFromUser(
  const CHAR *String
);

Parameters

String

[in] Ein Zeiger auf eine mit Null beendete Zeichenfolge im Benutzermodusspeicher.

Return value

Die Funktion gibt die Länge der Zeichenfolge in Zeichen zurück, nicht einschließlich des endenden NULL-Zeichens.

Remarks

Diese Funktion bietet einen sicheren Zugriff, um die Länge einer null-beendeten Zeichenfolge zu berechnen, die sich im Arbeitsspeicher des Benutzermodus befindet. Sie wurde für die Verwendung durch Kernelmoduscode entwickelt, der die Länge der von Benutzermodusanwendungen übergebenen Zeichenfolgen bestimmen muss.

Die Funktion stellt sicher, dass die Zeichenfolgenadresse eine gültige Benutzermodusadresse ist, bevor Sie die Längenberechnung ausführen. Es löst eine strukturierte Ausnahme aus, wenn der Vorgang fehlschlägt, z. B. wenn die Zeichenfolgenadresse keine gültige Benutzermodusadresse ist oder nicht darauf zugegriffen werden kann.

Im Gegensatz zu Standardzeichenfolgenfunktionen umfasst diese Funktion die Überprüfung, um Kernelabstürzen beim Zugriff auf potenziell ungültige Benutzermoduszeiger zu verhindern. Dies macht es für die sichere Kernelprogrammierung bei der Verarbeitung von Zeichenfolgendaten im Benutzermodus unerlässlich.

Diese Funktion funktioniert auf allen Versionen von Windows, nicht nur auf dem neuesten. You need to consume the latest WDK to get the function declaration from the usermode_accessors.h header. You also need the library (umaccess.lib) from the latest WDK. Der resultierende Treiber wird jedoch in älteren Versionen von Windows einwandfrei ausgeführt.

Requirements

Requirement Value
Mindestens unterstützter Client See Remarks
Header usermode_accessors.h
Library umaccess.lib
IRQL Kleiner oder gleich APC_LEVEL

See also

StringLengthFromMode

WideStringLengthFromUser