次の方法で共有


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 構造体のサイズに影響します。

メモ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 内容は未定義になります。

XStateCompactionMask

コンテキスト 構造体を割り当てるときに使用する XState 圧縮マスクを提供します。 このパラメーターは、ContextFlagsCONTEXT_XSTATE が指定され、システムで圧縮モードで XState が有効になっている場合にのみ使用されます。

戻り値

この関数は、成功した場合 TRUE を返し、それ以外の場合は FALSE返します。 拡張エラー情報を取得するには、GetLastError呼び出します。

備考

InitializeContext を使用して、必要なサイズとアラインメント特性を持つバッファー内の CONTEXT 構造体を初期化できます。 このルーチンは、CONTEXT_XSTATEContextFlag が指定されている場合に必要です。これは、必要なコンテキスト サイズとアラインメントが、システムで有効になっているプロセッサ機能によって変わる可能性があるためです。

まず、使用する機能の最大数に ContextFlags パラメーターを設定し、nullを する Buffer パラメーターを指定して、この関数を呼び出します。 この関数は、ContextLength パラメーターで必要なバッファー サイズをバイト単位で返します。 Buffer 内のデータに十分な領域を割り当て、関数をもう一度呼び出して、コンテキストを初期化します。 このルーチンが正常に完了すると、ContextFlagsContext 構造体のメンバーが初期化されますが、構造体の残りの内容は未定義になります。 ContextFlags パラメーターで指定された一部のビットは、Contextで設定できない可能性があります。システムでサポートされていない場合は、ContextFlags をします。 アプリケーションは、その後、CONTEXTのメンバー 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 コンテキスト の操作」を参照してください。

XState が圧縮モードで有効になっている場合、有効な XState コンポーネントのサブセットのみを含む XStateCompactionMask を指定すると、コンテキストを格納するために必要なバッファー サイズを小さくできます。 これは、システムで多数の XState コンポーネントが有効になっているが、コンテキスト が少数の XState コンポーネントに影響を与えるためだけに使用される場合に特に便利です。 有効な XState コンポーネントの完全なセットは、getEnabledXStateFeatures呼び出すことによって取得できます。 この関数は、指定された XState 圧縮マスクを XState ヘッダー内の関連する場所にコピーします。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 ビルド 20348
サポートされる最小サーバー Windows 10 ビルド 20348
ヘッダー winbase.h

関連項目

CONTEXT

CopyContext

Intel AVX

XState コンテキスト の操作