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 구조를 초기화할 버퍼에 대한 포인터입니다. 이 매개 변수는 지정된 ContextFlags를 사용하여 컨텍스트 레코드를 보유하는 데 필요한 버퍼 크기를 결정하는 NULL일 수 있습니다.
[in] ContextFlags
컨텍스트 구조체를 초기화해야 하는 부분을 나타내는 값입니다. 이 매개 변수는 초기화된 컨텍스트 구조의 크기에 영향을 줍니다.
[out, optional] Context
버퍼 내에서 초기화된 CONTEXT 구조체의 주소를 수신하는 변수에 대한 포인터입니다.
[in, out] ContextLength
입력에서 는 버퍼가 가리키는 버퍼의 길이(바이트)를 지정합니다. 버퍼가 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> 에서 설정되지 않을 수 있습니다. 애플리케이션은 이후에 CONTEXT의 ContextFlags 멤버에서 비트를 제거하지만 추가해서는 안 됩니다.
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 컨텍스트 작업을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | WINDOWS 7 SP1 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2 SP1 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기