Поделиться через


Функция LocateXStateFeature (winbase.h)

Извлекает указатель на состояние процессора для функции XState в структуре CONTEXT .

Определение битов признаков XState зависит от поставщика процессора. Дополнительные сведения о конкретной функции см. в справочных руководствах по соответствующему процессору.

Синтаксис

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

Параметры

[in] Context

Указатель на структуру CONTEXT , содержащую извлекаемое или устанавливаемое состояние. Этот CONTEXT должен быть инициализирован с помощью InitializeContext с флагом CONTEXT_XSTATE , установленным в параметре ContextFlags .

[in] FeatureId

Номер компонента, который необходимо найти в структуре CONTEXT .

[out, optional] Length

Указатель на переменную, которая получает длину области признаков в байтах. Содержимое этой переменной не определено, если эта функция возвращает значение NULL.

Возвращаемое значение

Если указанная функция поддерживается системой и указанная структура CONTEXT инициализирована флагом CONTEXT_XSTATE , эта функция возвращает указатель на область признаков для указанного компонента. Содержимое и макет этой области зависят от процессора.

Если флаг CONTEXT_XSTATE не задан в структуре CONTEXT или featureID не поддерживается системой, возвращается значение NULL. Дополнительные сведения об ошибке недоступны.

Комментарии

Функция LocateXStateFeature должна использоваться для поиска отдельного компонента XState в расширяемой структуре CONTEXT . Функции не обязательно являются непрерывными в памяти, и приложения не должны предполагать, что смещение между двумя последовательными функциями останется неизменным в будущем.

Параметр FeatureID функции соответствует биту в маске компонента. Например, FeatureId 2 соответствует компоненту FeatureMask 4 в SetXStateFeaturesMask. Значения FeatureID 0 и 1 соответствуют состоянию FPU X87 и состоянию SSE соответственно.

Если вы настраиваете XState в потоке с помощью API SetThreadContext или Wow64SetThreadContext , необходимо также вызвать Метод SetXStateFeaturesMask в структуре CONTEXT со значением маски заполненного компонента, чтобы пометить функцию как активную.

Windows 7 с пакетом обновления 1 (SP1) и Windows Server 2008 R2 с пакетом обновления 1 (SP1): API AVX впервые реализован в Windows 7 с пакетом обновления 1 (SP1) и Windows Server 2008 R2 с пакетом обновления 1 (SP1). Так как пакет SDK для с пакетом обновления 1 (SP1) отсутствует, это означает, что нет доступных заголовков и файлов библиотек для работы. В этом случае вызывающий объект должен объявить необходимые функции из этой документации и получить указатели на них с помощью GetModuleHandle на Kernel32.dll, а затем вызовы GetProcAddress. Дополнительные сведения см. в статье Работа с контекстом XState .

Требования

Требование Значение
Минимальная версия клиента Windows 7 с пакетом обновления 1 (SP1) [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2 с пакетом обновления 1 (SP1) [классические приложения | Приложения UWP]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

КОНТЕКСТЕ

Intel AVX

SetThreadContext

SetXStateFeaturesMask

Работа с контекстом XState

Wow64SetThreadContext