Freigeben über


ReadUInt32FromUserAcquire-Funktion (usermode_accessors.h)

The ReadUInt32FromUserAcquire function safely reads a UINT32 value from user-mode memory with acquire semantics.

Syntax

UINT32 ReadUInt32FromUserAcquire(
  const volatile UINT32 *Source
);

Parameters

Source

[in] Ein Zeiger auf den Speicherort des Benutzermodusspeichers, aus dem der UINT32-Wert gelesen werden soll.

Return value

ReadUInt32FromUserAcquire returns the UINT32 value read from the specified user-mode memory address.

Remarks

Diese Funktion bietet eine sichere Möglichkeit, einen UINT32-Wert aus dem Arbeitsspeicher des Benutzermodus zu lesen. Sie stellt sicher, dass es sich bei der angegebenen Adresse um eine Benutzermodusadresse handelt, bevor sie gelesen wird. The acquire semantics ensure that subsequent memory operations can't be reordered before this read operation.

Diese Funktion erzwingt keine Ausrichtung.

Es löst eine strukturierte Ausnahme aus, wenn der Speicherzugriff fehlschlägt, z. B. wenn die Quelladresse keine Benutzermodusadresse ist oder nicht darauf zugegriffen werden kann.

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

ReadUInt32FromUser

WriteUInt32ToUserRelease