Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Инициализирует структуру CONTEXT внутри буфера с необходимым размером и выравниванием с параметром для указания маски сжатия XSTATE.
Синтаксис
BOOL InitializeContext2(
[out, optional] PVOID Buffer,
DWORD ContextFlags,
[out, optional] PCONTEXT *Context,
[in, out] PDWORD ContextLength,
ULONG64 XStateCompactionMask
);
Параметры
[out, optional] Buffer
Указатель на буфер, в котором инициализировать структуру CONTEXT . Этот параметр может иметь значение NULL , чтобы определить размер буфера, необходимый для хранения записи контекста с указанными ContextFlags.
ContextFlags
Значение, указывающее, какие части структуры контекста следует инициализировать. Этот параметр влияет на размер инициализированной структуры контекста .
[out, optional] Context
Указатель на переменную, которая получает адрес инициализированной структуры CONTEXT в буфере.
[in, out] ContextLength
При входных данных указывает длину буфера, на который указывает буфер, в байтах. Если буфер недостаточно велик, чтобы содержать указанные части КОНТЕКСТа, функция завершается ошибкой, GetLastError возвращает ERROR_INSUFFICIENT_BUFFER, а ContextLength — требуемый размер буфера. Если функция завершается ошибкой, отличной от ERROR_INSUFFICIENT_BUFFER, содержимое ContextLength не определено.
XStateCompactionMask
Предоставляет маску сжатия XState, которая будет использоваться при выделении структуры контекста . Этот параметр используется только в том случае, если CONTEXT_XSTATE предоставляется в ContextFlags , и система включает XState в режиме сжатия.
Возвращаемое значение
Эта функция возвращает значение TRUE в случае успешного выполнения, в противном случае — ЗНАЧЕНИЕ FALSE. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Замечания
InitializeContext можно использовать для инициализации структуры CONTEXT в буфере с необходимыми характеристиками размера и выравнивания. Эта подпрограмма требуется, если указан CONTEXT_XSTATEContextFlag , так как требуемый размер контекста и выравнивание может измениться в зависимости от того, какие функции процессора включены в системе.
Во-первых, вызовите эту функцию с параметром ContextFlags , заданным для максимального количества функций, которые вы будете использовать, и параметр buffer to NULL. Функция возвращает требуемый размер буфера в байтах в параметре ContextLength . Выделите достаточно места для данных в буфере и снова вызовите функцию, чтобы инициализировать контекст. После успешного завершения этой процедуры член ContextFlags структуры Контекста инициализируется, но оставшееся содержимое структуры не определено. Некоторые биты, указанные в параметре ContextFlags, могут не быть заданы в Context-ContextFlags>, если они не поддерживаются системой. Впоследствии приложения могут удаляться, но никогда не должны добавлять биты из элемента ContextFlags в 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 ".
Если XState включен в режиме сжатия, укажите XStateCompactionMask , содержащий только подмножество компонентов XState, может уменьшить размер буфера, необходимый для хранения контекста. Это особенно полезно, если в системе включено множество компонентов XState, но контекст будет использоваться только для влияния на небольшое количество компонентов XState. Полный набор компонентов XState можно получить путем вызова GetEnabledXStateFeatures. Эта функция копирует указанную маску сжатия XState в соответствующее расположение в заголовке XState.
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Сборка Windows 10 20348 |
| минимальный поддерживаемый сервер | Сборка Windows 10 20348 |
| Header | winbase.h |
| Library | kernel32. Lib |