ReadULargeIntegerFromUser 函数 (usermode_accessors.h)

The ReadULargeIntegerFromUser function safely reads a ULARGE_INTEGER value from user-mode memory.

Syntax

ULARGE_INTEGER ReadULargeIntegerFromUser(
  const volatile ULARGE_INTEGER *Source
);

Parameters

Source

[in]指向从中读取ULARGE_INTEGER值的用户模式内存位置的指针。

Return value

ReadULargeIntegerFromUser returns the ULARGE_INTEGER value read from the specified user-mode memory address.

Remarks

此函数提供了从用户模式内存中读取ULARGE_INTEGER值的安全方法。 在读取地址之前,它可确保提供的地址是用户模式地址。

此函数不强制对齐。

如果内存访问失败(例如源地址不是用户模式地址或不可访问),则会引发结构化异常。

编译器永远不会优化此函数,也不会在调用函数或函数返回后(除非源代码显式执行这些访问)之前创建对此内存位置的其他访问权限。 The memory access is performed with memory_order_relaxed semantics.

此函数适用于所有版本的 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

See also

ReadULargeIntegerFromMode

WriteULargeIntegerToUser