共用方式為


WriteStructToMode 巨集 (usermode_accessors.h)

WriteStructToMode 巨集會根據指定的處理器模式安全地將結構寫入記憶體。

Syntax

void WriteStructToMode(
  Destination,
  Source,
  Mode
);

Parameters

Destination

[out]將寫入結構之內存位置的指標。

Source

[in]要寫入目的地記憶體位置之 結構的指標。

Mode

[in]決定記憶體存取的執行方式的處理器模式。 模式 可以是下列其中一個值。

Value Meaning
KernelMode 目的地 指向內核模式記憶體。 巨集會使用 memory_order_relaxed語意,對指定的位址執行寫入。 如需詳細資訊,請參閱。
UserMode 目的地 會指向使用者模式記憶體。 如果 Destination 未指向使用者模式記憶體,巨集就會引發例外狀況;否則,它會使用 memory_order_relaxed語意執行指定位址的寫入。 如需詳細資訊,請參閱。

Return value

None

Remarks

此巨集提供安全的方式,將結構寫入記憶體,以及存取使用者模式記憶體時的額外安全性檢查。 它可確保提供的位址是有效的,並根據指定的處理器模式存取。

巨集會驗證 SourceDestination 指向相容的類型,並自動判斷複製作業的結構大小。

此巨集不會強制對齊。

如果記憶體存取失敗,就會引發結構化例外狀況,例如當目的地位址無效或無法存取指定的處理器模式時。

編譯程式永遠不會優化此巨集,編譯程式也不會在呼叫巨集之前或巨集傳回之後建立此記憶體位置的額外存取權(除非原始程式碼明確執行這些存取權)。 記憶體存取是使用 memory_order_relaxed語意來執行。

此巨集適用於所有版本的 Windows,而不只是最新版本。 您必須取用最新的 WDK,才能從 usermode_accessors.h 標頭取得巨集宣告。 您也需要最新 WDK 的連結庫 (umaccess.lib)。 不過,產生的驅動程式將會在舊版 Windows 上正常執行。

Requirements

Requirement Value
最低支援的用戶端 See Remarks
Header usermode_accessors.h
Library umaccess.lib
IRQL 小於或等於APC_LEVEL

See also

WriteStructToModeHelper

WriteStructToUser

ReadStructFromMode