다음을 통해 공유


InitializeContext2 함수(winbase.h)

XSTATE 압축 마스크를 지정하는 옵션을 사용하여 필요한 크기와 맞춤을 사용하여 버퍼 내에서 CONTEXT 구조를 초기화합니다.

통사론

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

매개 변수

[out, optional] Buffer

CONTEXT 구조를 초기화할 버퍼에 대한 포인터입니다. 이 매개 변수는 지정된 ContextFlags를 사용하여 컨텍스트 레코드를 보유하는 데 필요한 버퍼 크기를 결정하는 NULL일 수 있습니다.

ContextFlags

컨텍스트 구조를 초기화해야 하는 부분을 나타내는 값입니다. 이 매개 변수는 초기화된 컨텍스트 구조의 크기에 영향을 줍니다.

CONTEXT_XSTATE CONTEXT_FULL또는CONTEXT_ALL 일부가 아닙니다. XState 컨텍스트가 필요한 경우 별도로 지정해야 합니다.
 

[out, optional] Context

버퍼 내에서 초기화된 CONTEXT 구조의 주소를 받는 변수에 대한 포인터입니다.

메모CONTEXT 구조의 맞춤 요구 사항으로 인해 Context 에서 반환된 값이 제공된 버퍼의 시작 부분에 없을 수 있습니다.
 

[in, out] ContextLength

입력에서 버퍼가 가리키는 버퍼의 길이(바이트)를 지정합니다. 버퍼가 CONTEXT의 지정된 부분을 포함할 만큼 크지 않으면 함수가 실패하고 GetLastErrorERROR_INSUFFICIENT_BUFFER 반환하고 ContextLength 가 버퍼의 필요한 크기로 설정됩니다. ERROR_INSUFFICIENT_BUFFER 이외의 오류로 함수가 실패하면 ContextLength의 내용이 정의되지 않습니다.

XStateCompactionMask

컨텍스트 구조를 할당할 때 사용할 XState 압축 마스크를 제공합니다. 이 매개 변수는 CONTEXT_XSTATEContextFlags 에 제공되고 시스템에서 압축 모드에서 XState를 사용하도록 설정된 경우에만 사용됩니다.

반환 값

이 함수는 성공하면 TRUE 를 반환하고, 그렇지 않으면 FALSE를 반환 합니다. 확장 오류 정보를 얻으려면 GetLastError호출합니다.

발언

InitializeContext 를 사용하여 필요한 크기 및 맞춤 특성을 사용하여 버퍼 내에서 CONTEXT 구조를 초기화할 수 있습니다. 시스템에서 사용하도록 설정된 프로세서 기능에 따라 필요한 컨텍스트 크기와 맞춤이 변경될 수 있으므로 CONTEXT_XSTATEContextFlag 를 지정하는 경우 이 루틴이 필요합니다.

먼저 사용할 최대 기능 수로 설정된 ContextFlags 매개 변수와 NULL대한 Buffer 매개 변수를 사용하여 이 함수를 호출합니다. 이 함수는 ContextLength 매개 변수에서 필요한 버퍼 크기를 바이트 단위로 반환합니다. 버퍼의 데이터에 충분한 공간을 할당하고 함수를 다시 호출하여 컨텍스트를 초기화합니다. 이 루틴이 성공적으로 완료되면 Context 구조의 ContextFlags 멤버가 초기화되지만 구조체의 나머지 내용은 정의되지 않습니다. ContextFlags 매개 변수에 지정된 일부 비트는 시스템에서 지원되지 않는 경우 Context-ContextFlags> 에서 설정되지 않을 수 있습니다. 애플리케이션은 이후에 CONTEXTContextFlags 멤버에서 비트를 제거하지만 추가해서는 안 됩니다.

WINDOWS 7 SP1 및 Windows Server 2008 R2 SP1 사용: AVX API는 SP1이 있는 Windows 7 및 WINDOWS Server 2008 R2 SP1에서 처음 구현됩니다. SP1에 대한 SDK가 없으므로 사용할 수 있는 헤더 및 라이브러리 파일이 없습니다. 이 경우 호출자는 이 설명서에서 필요한 함수를 선언하고 "Kernel32.dll"에서 GetModuleHandle 을 사용하여 해당 함수에 대한 포인터를 가져와야 하며, 그 다음에 GetProcAddress를 호출해야 합니다. 자세한 내용은 XState 컨텍스트 작업을 참조하세요.

압축 모드에서 XState를 사용하는 경우 활성화된 XState 구성 요소의 하위 집합만 포함하는 XStateCompactionMask 를 지정하면 컨텍스트를 저장하는 데 필요한 버퍼 크기를 줄일 수 있습니다. 이는 시스템에 많은 XState 구성 요소가 활성화되어 있지만 컨텍스트 는 소수의 XState 구성 요소에만 영향을 미치는 데만 사용되는 경우에 특히 유용합니다. GetEnabledXStateFeatures를 호출하여 활성화된 XState 구성 요소의 전체 집합을 가져올 수 있습니다. 이 함수는 지정된 XState 압축 마스크를 XState 헤더의 관련 위치에 복사합니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 10 빌드 20348
지원되는 최소 서버 Windows 10 빌드 20348
Header winbase.h
Library kernel32. Lib

참고 항목

CONTEXT

CopyContext

Intel AVX

XState 컨텍스트 작업