Поделиться через


Функция InterlockedOr64ToUser (usermode_accessors.h)

The InterlockedOr64ToUser function performs an atomic OR operation on a 64-bit value in user-mode memory.

Syntax

LONG64 InterlockedOr64ToUser(
  LONG64 volatile *Destination,
  LONG64          Value
);

Parameters

Destination

[in, out] Указатель на расположение памяти в пользовательском режиме, содержащее первый операнд. Это значение будет заменено результатом операции. The pointer must be naturally aligned for the data type; that is, the memory location must be 8-byte aligned since Destination points to an 8-byte type.

Value

[in] Второй операнд.

Return value

The function returns the original value of the Destination parameter.

Remarks

Межблокированные функции предоставляют простой механизм синхронизации доступа к переменной, к которой используется несколько потоков. Эта функция атомарна относительно вызовов других взаимоблокируемых функций. Он создает полный барьер памяти, чтобы обеспечить выполнение операций памяти в порядке.

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

Функция вызывает структурированное исключение, если операция завершается ошибкой, например если целевой адрес не является допустимым адресом пользовательского режима или недоступен.

Эта функция работает во всех версиях Windows, а не только на последних версиях. 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. Однако результирующий драйвер будет работать в более ранних версиях Windows.

Requirements

Requirement Value
Минимальный поддерживаемый клиент See Remarks
Header usermode_accessors.h
Library umaccess.lib
IRQL Меньше или равно APC_LEVEL

See also

InterlockedOr64ToMode

InterlockedOrToUser

InterlockedAnd64ToUser