LocateXStateFeature 函数 (winbase.h)

检索指向 CONTEXT 结构中 XState 功能的处理器状态的指针。

XState 功能位的定义特定于处理器供应商。 有关特定功能的其他信息,请参阅相关处理器参考手册。

语法

PVOID LocateXStateFeature(
  [in]            PCONTEXT Context,
  [in]            DWORD    FeatureId,
  [out, optional] PDWORD   Length
);

参数

[in] Context

指向包含要检索或设置的状态的 CONTEXT 结构的指针。 此上下文应已使用 InitializeContext 进行初始化,并在 ContextFlags 参数中设置了CONTEXT_XSTATE标志。

[in] FeatureId

CONTEXT 结构中查找的功能编号。

[out, optional] Length

指向变量的指针,该变量接收特征区域的长度(以字节为单位)。 如果此函数返回 NULL,则此变量的内容未定义。

返回值

如果系统支持指定的功能,并且指定的 CONTEXT 结构已使用 CONTEXT_XSTATE 标志进行初始化,则此函数将返回指向指定特征的特征区域的指针。 此区域的内容和布局特定于处理器。

如果未在 CONTEXT 结构中设置CONTEXT_XSTATE标志,或者系统不支持 FeatureID,则返回值为 NULL。 没有其他错误信息可用。

注解

必须使用 LocateXStateFeature 函数在可扩展的 CONTEXT 结构中查找单个 XState 功能。 特征在内存中不一定是连续的,应用程序不应假定两个连续特征之间的偏移量将来保持不变。

函数的 FeatureID 参数对应于特征掩码中的一个位。 例如,FeatureId 2 对应于 SetXStateFeaturesMask 中的 FeatureMask 为 4。 FeatureID 值为 0 和 1 分别对应于 X87 FPU 状态和 SSE 状态。

如果要通过 SetThreadContextWow64SetThreadContext API 在线程上设置 XState,还必须使用填充功能的掩码值在 CONTEXT 结构上调用 SetXStateFeaturesMask,以将该功能标记为活动。

Windows 7 SP1 和 Windows Server 2008 R2 SP1: AVX API 首先在具有 SP1 的 Windows 7 和具有 SP1 的 Windows Server 2008 R2 上实现。 由于没有用于 SP1 的 SDK,这意味着没有可用的标头和库文件可供使用。 在这种情况下,调用方必须声明本文档中所需的函数,并使用“Kernel32.dll”上的 GetModuleHandle 获取指向它们的指针,然后调用 GetProcAddress。 有关详细信息 ,请参阅使用 XState 上下文

要求

要求
最低受支持的客户端 Windows 7 SP1 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2 SP1 [桌面应用 |UWP 应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

CONTEXT

Intel AVX

SetThreadContext

SetXStateFeaturesMask

使用 XState 上下文

Wow64SetThreadContext