Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
The ZeroModeMemory function fills a memory region with zeros, based on the specified processor mode.
Syntax
VOID ZeroModeMemory(
VOID *Destination,
SIZE_T Length,
KPROCESSOR_MODE Mode
);
Parameters
Destination
[out] Ein Zeiger auf die Startadresse des Speicherblocks auf Null.
Length
[in] Die Anzahl der Bytes bis 0.
Mode
[in] Der Prozessormodus, der bestimmt, wie der Speicherzugriff ausgeführt wird. 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
Diese Funktion bietet eine sichere Möglichkeit, einen Speicherbereich auf null zu stellen, wobei der vom angegebenen Prozessormodus festgelegte Mechanismus null ist. Dies ermöglicht flexible Speichervorgänge, die sich an verschiedene Ausführungskontexte anpassen können, während Speicherblöcke auf Null initialisiert werden.
When Mode is KernelMode:
The function performs a volatile zero operation using memory_order_relaxed semantics.
Die Funktion wird nicht als compilerintern erkannt, sodass der Compiler den Aufruf nie entfernt (entweder vollständig oder durch eine entsprechende Abfolge von Anweisungen ersetzen).
Wenn der Aufruf zurückgegeben wird, wurde der Puffer mit Nullen überschrieben. 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).
Die Funktion kann nicht ausgerichtete Speicherzugriffe ausführen, wenn die Plattform dies zulässt.
Die Funktion kann mehr als einmal im Rahmen des Null-Vorgangs auf Speicherspeicherorte zugreifen.
Die Funktion löst eine strukturierte Ausnahme aus, wenn der Nullvorgang fehlschlägt, z. B. wenn die Zieladresse für den angegebenen Modus ungültig ist oder nicht auf sie zugegriffen werden kann.
Diese Funktion wird niemals vom Compiler optimiert, oder der Compiler erstellt zusätzlichen Zugriff auf diesen Speicherspeicherort, bevor die Funktion aufgerufen wird oder nachdem die Funktion zurückgegeben wird (es sei denn, der Quellcode führt diese Zugriffe explizit aus).
Diese Funktion funktioniert auf allen Versionen von Windows, nicht nur auf dem neuesten. 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. Der resultierende Treiber wird jedoch in älteren Versionen von Windows einwandfrei ausgeführt.
Requirements
| Requirement | Value |
|---|---|
| Mindestens unterstützter Client | See Remarks |
| Header | usermode_accessors.h |
| Library | umaccess.lib |
| IRQL | Kleiner oder gleich APC_LEVEL |