Freigeben über


InterlockedAndToUser-Funktion (usermode_accessors.h)

The InterlockedAndToUser function performs an atomic AND operation on a 32-bit value in user-mode memory.

Syntax

LONG InterlockedAndToUser(
  LONG volatile *Destination,
  LONG          Value
);

Parameters

Destination

[in, out] Ein Zeiger auf den Speicherort des Benutzermodus, der den ersten Operanden enthält. Dieser Wert wird durch das Ergebnis des Vorgangs ersetzt. The pointer must be naturally aligned for the data type; that is, the memory location must be 4-byte aligned since Destination points to a 4-byte type.

Value

[in] Der zweite Operand.

Return value

The function returns the original value of the Destination parameter.

Remarks

Die verriegelten Funktionen bieten einen einfachen Mechanismus zum Synchronisieren des Zugriffs auf eine Variable, die von mehreren Threads gemeinsam genutzt wird. Diese Funktion ist atomar in Bezug auf Aufrufe anderer verzahnter Funktionen. Es generiert eine vollständige Speicherbarriere, um sicherzustellen, dass Speichervorgänge in der Reihenfolge abgeschlossen werden.

This function provides atomic access to a 32-bit value in user-mode memory, performing a bitwise AND operation between the value at Destination and Value.

Die Funktion löst eine strukturierte Ausnahme aus, wenn der Vorgang fehlschlägt, z. B. wenn die Zieladresse keine gültige Benutzermodusadresse ist oder nicht auf sie zugegriffen werden kann.

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

InterlockedAndToMode

InterlockedAnd64ToUser

InterlockedOrToUser