Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
The ReadInt16FromMode function safely reads an INT16 value from memory based on the specified processor mode.
Syntax
INT16 ReadInt16FromMode(
const volatile INT16 *Source,
KPROCESSOR_MODE Mode
);
Parameters
Source
[in] Указатель на расположение памяти, из которого следует считывать значение INT16.
Mode
[in] Режим процессора, определяющий, как выполняется доступ к памяти. Mode can be one of the following values.
| Value | Meaning |
|---|---|
| KernelMode | Source points to kernel-mode memory. The function performs a read from the specified address with memory_order_relaxed semantics. Дополнительные сведения см. в примечаниях. |
| UserMode | Source points to user-mode memory. The function raises an exception if Source doesn't point to user-mode memory; otherwise it performs a read from the specified address with memory_order_relaxed semantics. Дополнительные сведения см. в примечаниях. |
Return value
ReadInt16FromMode returns the INT16 value read from the specified memory address.
Remarks
Эта функция обеспечивает безопасный способ чтения значения INT16 из памяти с дополнительными проверками безопасности при доступе к памяти в пользовательском режиме. Он гарантирует, что указанный адрес действителен и доступен на основе указанного режима процессора.
Эта функция не применяет выравнивание.
Он вызывает структурированное исключение, если доступ к памяти завершается сбоем, например, если исходный адрес недоступен или недопустим для указанного режима.
Эта функция никогда не будет оптимизирована компилятором, и компилятор не создаст дополнительные доступы к этому расположению памяти до вызова функции или после возврата функции (если исходный код явно не выполняет эти доступы). The memory access is performed with memory_order_relaxed 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 |