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


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

The ReadLong64FromUserAcquire function safely reads a LONG64 value from user-mode memory with acquire semantics.

Syntax

LONG64 ReadLong64FromUserAcquire(
  const volatile LONG64 *Source
);

Parameters

Source

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

Return value

ReadLong64FromUserAcquire returns the LONG64 value read from the specified user-mode memory address.

Remarks

Эта функция обеспечивает безопасный способ чтения значения LONG64 из памяти пользовательского режима. Он гарантирует, что указанный адрес является адресом пользовательского режима перед чтением. The acquire semantics ensure that subsequent memory operations can't be reordered before this read operation.

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

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

Эта функция никогда не будет оптимизирована компилятором, и компилятор не создаст дополнительные доступы к этому расположению памяти до вызова функции или после возврата функции (если исходный код явно не выполняет эти доступы). The memory access is performed with memory_order_acquire 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

ReadLong64FromUser

WriteLong64ToUserRelease