Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
The ZeroModeMemory function fills a memory region with zeros, based on the specified processor mode.
Syntax
VOID ZeroModeMemory(
volatile VOID *Destination,
SIZE_T Length,
KPROCESSOR_MODE Mode
);
Parameters
Destination
[out] Указатель на начальный адрес блока памяти на ноль.
Length
[in] Число байтов до нуля.
Mode
[in] Режим процессора, определяющий, как выполняется доступ к памяти. Mode can be one of the following values.
| Value | Meaning |
|---|---|
| KernelMode | Destination points to kernel-mode memory. The function performs a direct memory zero operation with memory_order_relaxed semantics. |
| UserMode | Destination points to user-mode memory. The function raises an exception if Destination doesn't point to user-mode memory; otherwise it performs a zero operation at the specified address with memory_order_relaxed semantics. |
Return value
None
Remarks
Эта функция обеспечивает безопасный способ к нулю области памяти с нулевым механизмом, определенным заданным режимом процессора. Это позволяет выполнять гибкие операции памяти, которые могут адаптироваться к разным контекстам выполнения при инициализации блоков памяти до нуля.
When Mode is KernelMode:
The function performs a volatile zero operation using memory_order_relaxed semantics.
Функция не распознается как встроенный компилятор, поэтому компилятор никогда не оптимизирует вызов (полностью или замените вызов эквивалентной последовательностью инструкций).
При возвращении вызова буфер был перезаписан с нулями. This function's memory accesses to the Destination will only be performed within the function (for example, the compiler can't move memory accesses out of this function).
Функция может выполнять неуправляемый доступ к памяти, если платформа позволяет ей.
Функция может получить доступ к расположениям памяти более одного раза в рамках его нулевой операции.
Функция вызывает структурированное исключение при сбое нулевой операции, например, если целевой адрес недействителен для указанного режима или недоступен.
Эта функция никогда не будет оптимизирована компилятором, и компилятор не создаст дополнительные доступы к этому расположению памяти до вызова функции или после возврата функции (если исходный код явно не выполняет эти доступы).
Эта функция работает во всех версиях 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 |