Функция InitializeContext (winbase.h)
Инициализирует структуру CONTEXT внутри буфера с необходимым размером и выравниванием.
Синтаксис
BOOL InitializeContext(
[out, optional] PVOID Buffer,
[in] DWORD ContextFlags,
[out, optional] PCONTEXT *Context,
[in, out] PDWORD ContextLength
);
Параметры
[out, optional] Buffer
Указатель на буфер, в котором инициализируется структура CONTEXT . Этот параметр может иметь значение NULL , чтобы определить размер буфера, необходимый для хранения записи контекста с указанными contextFlags.
[in] ContextFlags
Значение , указывающее, какие части структуры контекста следует инициализировать. Этот параметр влияет на размер инициализированной структуры контекста .
[out, optional] Context
Указатель на переменную, которая получает адрес инициализированной структуры CONTEXT в буфере.
[in, out] ContextLength
На входных данных указывает длину буфера, на который указывает buffer, в байтах. Если буфер недостаточно велик для хранения указанных частей CONTEXT, функция завершается ошибкой, GetLastError возвращает ERROR_INSUFFICIENT_BUFFER, а параметру ContextLength присваивается требуемый размер буфера. Если функция завершается сбоем с ошибкой, отличной от ERROR_INSUFFICIENT_BUFFER, содержимое ContextLength не определено.
Возвращаемое значение
Эта функция возвращает значение TRUE в случае успешного выполнения, в противном случае — FALSE. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
InitializeContext можно использовать для инициализации структуры CONTEXT в буфере с требуемыми характеристиками размера и выравнивания. Эта подпрограмма является обязательной, если указан CONTEXT_XSTATEContextFlag , так как требуемый размер контекста и выравнивание могут изменяться в зависимости от того, какие функции процессора включены в системе.
Сначала вызовите эту функцию с параметром ContextFlags , равным максимальному количеству функций, которые вы будете использовать, а для параметра Buffer задано значение NULL. Функция возвращает требуемый размер буфера в байтах в параметре ContextLength . Выделите достаточно места для данных в буфере и вызовите функцию еще раз, чтобы инициализировать контекст. После успешного выполнения этой подпрограммы член ContextFlags структуры Контекста инициализируется, но оставшееся содержимое структуры не определено. Некоторые биты, указанные в параметре ContextFlags, могут не быть заданы в Context-ContextFlags>, если они не поддерживаются системой. Впоследствии приложения могут удалять, но никогда не должны добавлять биты из элемента ContextFlagscontext.
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 |
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по