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


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

The ReadSizeTFromUserAcquire function safely reads a SIZE_T value from user-mode memory with acquire semantics.

Syntax

SIZE_T ReadSizeTFromUserAcquire(
  const volatile SIZE_T *Source
);

Parameters

Source

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

Return value

ReadSizeTFromUserAcquire returns the SIZE_T value read from the specified user-mode memory address.

Remarks

Эта функция обеспечивает безопасный способ чтения значения SIZE_T из памяти пользовательского режима. Он гарантирует, что указанный адрес является адресом пользовательского режима перед чтением. 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

ReadSizeTFromUser

WriteSizeTToUserRelease