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 WriteUnicodeStringToMode function safely writes a UNICODE_STRING structure to memory based on the specified processor mode.
Syntax
VOID WriteUnicodeStringToMode(
UNICODE_STRING *Destination,
UNICODE_STRING Value,
KPROCESSOR_MODE Mode
);
Parameters
Destination
[out] A pointer to the memory location where the UNICODE_STRING structure will be written.
Value
[in] The UNICODE_STRING structure to write to the destination memory location.
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 write to the specified address with memory_order_relaxed semantics. Weitere Informationen finden Sie in den Hinweisen. |
| 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 write to the specified address with memory_order_relaxed semantics. Weitere Informationen finden Sie in den Hinweisen. |
Return value
None
Remarks
This function provides a safe way to write a UNICODE_STRING structure to memory, with extra safety checks when accessing user-mode memory. Es stellt sicher, dass die angegebene Adresse gültig und zugänglich ist, basierend auf dem angegebenen Prozessormodus.
Diese Funktion erzwingt keine Ausrichtung.
Es löst eine strukturierte Ausnahme aus, wenn der Speicherzugriff fehlschlägt, z. B. wenn auf die Zieladresse nicht zugegriffen werden kann oder für den angegebenen Modus ungültig ist.
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). The memory access is performed with memory_order_relaxed semantics.
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 |