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 結構的緩衝區指標。 這個參數可以 NULL,以判斷保留具有指定之 contextFlags 之內容記錄所需的緩衝區大小。
ContextFlags
值,指出應該初始化 Context 結構的哪些部分。 此參數會影響初始化 Context 結構的大小。
[out, optional] Context
變數的指標,這個變數會接收 Buffer內初始化 之 CONTEXT 結構的位址。
[in, out] ContextLength
在輸入上,以位元組為單位指定 Buffer所指向的緩衝區長度。 如果緩衝區不夠大,無法包含 CONTEXT的指定部分,則函式會失敗,GetLastError 會傳回 ERROR_INSUFFICIENT_BUFFER,且 ContextLength 會設定為所需的緩衝區大小。 如果函式失敗,但 ERROR_INSUFFICIENT_BUFFER以外的錯誤,則未定義 ContextLength 的內容。
XStateCompactionMask
提供配置 Context 結構時要使用的 XState 壓縮遮罩。 只有在提供 CONTEXT_XSTATEContextFlags,且系統已在壓縮模式中啟用 XState 時,才會使用此參數。
傳回值
如果成功,此函式 會傳回 TRUE,否則 FALSE。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
言論
InitializeContext 可用來初始化緩衝區內具有所需大小和對齊特性的 CONTEXT 結構。 如果指定 CONTEXT_XSTATEContextFlag,此例程是必要的,因為所需的內容大小和對齊方式可能會根據系統上啟用的處理器功能而變更。
首先,使用 ContextFlags 參數來呼叫此函式,並將其設定為您將使用的最大功能數目,並使用 Buffer 參數來 NULL。 函式會以位元組為單位傳回contextLength 參數
Windows 7 SP1 和 Windows Server 2008 R2 SP1:AVX API 會先在 Windows 7 上實作 SP1 和 Windows Server 2008 R2 SP1 。 由於沒有適用於SP1的SDK,這表示沒有可用的標頭和連結庫檔案可供使用。 在此情況下,呼叫端必須從本檔宣告所需的函式,並使用 GetModuleHandle on “Kernel32.dll”,接著 呼叫 getProcAddress。 如需詳細資訊,請參閱 使用 XState 內容。
在壓縮模式中啟用 XState 時,指定 XStateCompactionMask 只包含已啟用 XState 元件的子集,可以減少儲存 Context所需的緩衝區大小。 如果系統已啟用許多 XState 元件,但這特別有用,但 Context 只會用來影響少數 XState 元件。 呼叫 getEnabledXStateFeatures ,即可取得已啟用 XState 元件的完整集合。 此函式會將指定的 XState 壓縮遮罩複製到 XState 標頭中的相關位置。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 組建 20348 |
支援的最低伺服器 | Windows 10 組建 20348 |
標頭 | winbase.h |