ReadStructFromMode 宏 (usermode_accessors.h)

ReadStructFromMode 宏基于指定的处理器模式安全地从内存中读取结构。

Syntax

void ReadStructFromMode(
  Destination,
  Source,
  Mode
);

Parameters

Destination

[out]指向从内存中读取的数据的结构的指针。

Source

[in]指向从中读取结构的内存位置的指针。

Mode

[in]确定内存访问的执行方式的处理器模式。 模式 可以是以下值之一。

Value Meaning
KernelMode 指向内核模式内存。 该宏使用 memory_order_relaxed语义从指定地址执行读取。 有关更多详细信息,请参阅“备注”。
UserMode 指向用户模式内存。 如果 不指向用户模式内存,则宏将引发异常;否则,它会使用 memory_order_relaxed语义从指定地址执行读取。 有关更多详细信息,请参阅“备注”。

Return value

None

Remarks

此宏提供了从内存中读取结构的安全方法,并在访问用户模式内存时进行额外的安全检查。 它确保提供的地址有效且基于指定的处理器模式可访问。

该宏验证 目标 是否指向兼容类型,并自动确定复制作的结构大小。

此宏不强制对齐。

如果内存访问失败(例如源地址无效或对于指定的处理器模式无法访问),则会引发结构化异常。

编译器永远不会优化此宏,也不会在调用宏或宏返回之后(除非源代码显式执行这些访问)之前创建对此内存位置的其他访问权限。 内存访问是使用 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

ReadStructFromModeHelper

ReadStructFromUser

WriteStructToMode