共用方式為


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

值,指出應該初始化 Context 結構的哪些部分。 此參數會影響初始化 Context 結構的大小。

附註CONTEXT_XSTATE 不屬於 CONTEXT_FULLCONTEXT_ALL。 如果需要 XState 內容,則必須另外指定它。
 

[out, optional] Context

變數的指標,這個變數會接收 Buffer內初始化 之 CONTEXT 結構的位址。

附註 由於 CONTEXT 結構的對齊需求,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 參數 所需的緩衝區大小。 設定足夠的空間給 緩衝區中的數據,然後再次呼叫 函式,以初始化 Context。 成功完成此例程時,ContextFlagsContext 結構的成員會初始化,但結構的其餘內容未定義。 ContextFlags 參數中指定的某些位可能不會 在 context中設定 - 如果系統不支援,>ContextFlags。 應用程式後續可能會移除,但絕對不能從 ContextFlagsCONTEXT的成員新增位。

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 內容

要求

要求 價值
最低支援的用戶端 Windows 7 SP1 [傳統型應用程式 |UWP 應用程式]
支援的最低伺服器 Windows Server 2008 R2 SP1 [傳統型應用程式 |UWP 應用程式]
目標平臺 窗戶
標頭 winbase.h (包括 Windows.h)
連結庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

CONTEXT

CopyContext

Intel AVX

使用 XState 內容