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


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

The WriteLonglongToUserRelease function safely writes a LONGLONG value to user-mode memory with release semantics.

Syntax

VOID WriteLonglongToUserRelease(
  volatile LONGLONG *Destination,
  LONGLONG          Value
);

Parameters

Destination

[out] Указатель на расположение памяти в пользовательском режиме, где будет записано значение LONGLONG.

Value

[in] Значение LONGLONG для записи в расположение целевой памяти.

Return value

None

Remarks

Эта функция обеспечивает безопасный способ записи значения LONGLONG в память пользовательского режима. Он гарантирует, что указанный адрес является адресом пользовательского режима перед записью в него. The release semantics ensure that preceding memory operations can't be reordered after this write operation.

Эта функция не применяет выравнивание.

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

Эта функция никогда не будет оптимизирована компилятором, и компилятор не создаст дополнительные доступы к этому расположению памяти до вызова функции или после возврата функции (если исходный код явно не выполняет эти доступы). The memory access is performed with memory_order_release semantics.

Эта функция работает во всех версиях 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

WriteLonglongToUser

ReadLonglongFromUserAcquire