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
變數的指標,該變數會接收 Buffer 中初始化之 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 參數中所需的緩衝區大小,以位元組為單位。 為 Buffer 中的數據配置足夠的空間,並再次呼叫 函式來初始化 Context。 成功完成此例程時,會初始化 Context 結構的 ContextFlags 成員,但結構的其餘內容是未定義的。 如果系統不支援 ContextFlags 參數中指定的某些位,可能無法在 Context-ContextFlags> 中設定。 應用程式後續可能會移除,但絕不會從 CONTEXTFlags 成員新增位。
Windows 7 SP1 和 Windows Server 2008 R2 SP1: AVX API 會先在 Windows 7 上實作 SP1 和 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 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應