Freigeben über


ReadBooleanFromMode-Funktion (usermode_accessors.h)

The ReadBooleanFromMode function safely reads a BOOLEAN value from memory based on the specified processor mode.

Syntax

BOOLEAN ReadBooleanFromMode(
  const BOOLEAN   *Source,
  KPROCESSOR_MODE Mode
);

Parameters

Source

[in] Ein Zeiger auf den Speicherspeicherort, aus dem der BOOLESCHE Wert gelesen werden soll.

Mode

[in] Der Prozessormodus, der bestimmt, wie der Speicherzugriff ausgeführt wird. Mode can be one of the following values.

Value Meaning
KernelMode Source points to kernel-mode memory. The function performs a read from the specified address with memory_order_relaxed semantics. Weitere Informationen finden Sie in den Hinweisen.
UserMode Source points to user-mode memory. The function raises an exception if Source doesn't point to user-mode memory; otherwise it performs a read from the specified address with memory_order_relaxed semantics. Weitere Informationen finden Sie in den Hinweisen.

Return value

ReadBooleanFromMode returns the BOOLEAN value read from the specified memory address.

Remarks

Diese Funktion bietet eine sichere Möglichkeit, einen BOOLESCHEN Wert aus dem Arbeitsspeicher zu lesen, mit zusätzlichen Sicherheitsüberprüfungen beim Zugriff auf den Arbeitsspeicher im Benutzermodus. Es stellt sicher, dass die angegebene Adresse gültig und zugänglich ist, basierend auf dem angegebenen Prozessormodus.

Diese Funktion erzwingt keine Ausrichtung.

Es löst eine strukturierte Ausnahme aus, wenn der Speicherzugriff fehlschlägt, z. B. wenn die Quelladresse nicht gültig ist oder für den angegebenen Prozessormodus nicht zugänglich ist.

Diese Funktion wird niemals vom Compiler optimiert, oder der Compiler erstellt zusätzlichen Zugriff auf diesen Speicherspeicherort, bevor die Funktion aufgerufen wird oder nachdem die Funktion zurückgegeben wird (es sei denn, der Quellcode führt diese Zugriffe explizit aus). The memory access is performed with memory_order_relaxed semantics.

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

ReadBooleanFromUser

WriteBooleanToMode