Compartilhar via


Função InitializeContext2 (winbase.h)

Inicializa uma estrutura CONTEXT dentro de um buffer com o tamanho e o alinhamento necessários, com a opção de especificar uma máscara de compactação XSTATE.

Sintaxe

BOOL InitializeContext2(
  [out, optional] PVOID    Buffer,
                  DWORD    ContextFlags,
  [out, optional] PCONTEXT *Context,
  [in, out]       PDWORD   ContextLength,
                  ULONG64  XStateCompactionMask
);

Parâmetros

[out, optional] Buffer

Um ponteiro para um buffer no qual inicializar uma estrutura CONTEXT . Esse parâmetro pode ser NULL para determinar o tamanho do buffer necessário para manter um registro de contexto com o ContextFlags especificado.

ContextFlags

Um valor que indica quais partes da estrutura contextual devem ser inicializadas. Esse parâmetro influencia o tamanho da estrutura de contexto inicializada.

ObserveCONTEXT_XSTATE não faz parte de CONTEXT_FULL ou CONTEXT_ALL. Ele deve ser especificado separadamente se um contexto XState for desejado.
 

[out, optional] Context

Um ponteiro para uma variável que recebe o endereço da estrutura CONTEXT inicializada dentro do Buffer.

Nota Devido aos requisitos de alinhamento das estruturas CONTEXT , o valor retornado no Contexto pode não estar no início do buffer fornecido.
 

[in, out] ContextLength

Na entrada, especifica o comprimento do buffer apontado pelo Buffer, em bytes. Se o buffer não for grande o suficiente para conter as partes especificadas do CONTEXT, a função falhará, GetLastError retornará ERROR_INSUFFICIENT_BUFFER e ContextLength será definido como o tamanho necessário do buffer. Se a função falhar com um erro diferente de ERROR_INSUFFICIENT_BUFFER, o conteúdo de ContextLength será indefinido.

XStateCompactionMask

Fornece a máscara de compactação XState a ser usada ao alocar a estrutura contextual . Esse parâmetro só é usado quando CONTEXT_XSTATE é fornecido ao ContextFlags e o sistema tem o XState habilitado no modo de compactação.

Valor de retorno

Essa função retornará TRUE se tiver êxito, caso contrário, FALSE. Para obter informações de erro estendidas, chame GetLastError.

Observações

InitializeContext pode ser usado para inicializar uma estrutura CONTEXT em um buffer com as características de tamanho e alinhamento necessárias. Essa rotina será necessária se o CONTEXT_XSTATEContextFlag for especificado, pois o tamanho e o alinhamento de contexto necessários podem mudar dependendo de quais recursos de processador estão habilitados no sistema.

Primeiro, chame essa função com o parâmetro ContextFlags definido como o número máximo de recursos que você usará e o parâmetro Buffer como NULL. A função retorna o tamanho do buffer necessário em bytes no parâmetro ContextLength . Aloque espaço suficiente para os dados no Buffer e chame a função novamente para inicializar o Contexto. Após a conclusão bem-sucedida dessa rotina, o membro ContextFlags da estrutura contextual é inicializado, mas o conteúdo restante da estrutura é indefinido. Alguns bits especificados no parâmetro ContextFlags poderão não ser definidos em Context-ContextFlags> se não tiverem suporte do sistema. Os aplicativos podem remover, mas nunca devem adicionar, bits do membro ContextFlags do CONTEXT.

Windows 7 com SP1 e Windows Server 2008 R2 com SP1: A API AVX é implementada pela primeira vez no Windows 7 com SP1 e Windows Server 2008 R2 com SP1. Como não há nenhum SDK para SP1, isso significa que não há cabeçalhos e arquivos de biblioteca disponíveis para trabalhar. Nessa situação, um chamador deve declarar as funções necessárias desta documentação e obter ponteiros para elas usando GetModuleHandle em "Kernel32.dll", seguido de chamadas para GetProcAddress. Consulte Como trabalhar com o contexto XState para obter detalhes.

Quando xState está habilitado no modo de compactação, especificar um XStateCompactionMask que contém apenas um subconjunto dos componentes XState habilitados pode diminuir o tamanho do buffer necessário para armazenar o Contexto. Isso é particularmente útil se o sistema tiver muitos componentes XState habilitados, mas o Contexto só será usado para afetar um pequeno número de componentes XState. O conjunto completo de componentes XState habilitados pode ser obtido chamando GetEnabledXStateFeatures. Essa função copia a máscara de compactação XState especificada para o local relevante no cabeçalho XState.

Requisitos

Requisito Valor
Cliente mínimo suportado Windows 10 Build 20348
Servidor mínimo compatível Windows 10 Build 20348
Header winbase.h
Library kernel32. Lib

Consulte também

CONTEXT

CopyContext

Intel AVX

Trabalhando com o contexto XState