> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XAudio2CreateWithSharedContexts

> XAudio2CreateWithSharedContexts

# XAudio2CreateWithSharedContexts

新しい XAudio2 オブジェクトを作成し、その IXAudio2 インターフェイスへのポインターを返します。

## 構文

```cpp theme={null}
XAUDIO2_STDAPI XAudio2CreateWithSharedContexts(  
         IXAudio2** ppXAudio2,  
         UINT32 Flags,  
         XAUDIO2_PROCESSOR XAudio2Processor,  
         const PXAUDIO2_SHARED_SHAPE_CONTEXTS SharedShapeContexts  
)  
```

### パラメーター

*ppXAudio2*   \_Outptr\_\
型: IXAudio2\*\*

操作が成功した場合、IXAudio2 オブジェクトへのポインターを返します。

*Flags*   \_In\_\
型: UINT32

IXAudio2 オブジェクトの動作を指定するフラグ。

| フラグ                                      | 説明                                                                                                               |
| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| XAUDIO2\_DO\_NOT\_USE\_SHAPE             | エンジンまたはボイスが Scalable Hardware Audio Processing Engine (SHAPE) を使用することを防止するために使用します。XBOX Media Audio (XMA) を含みます。 |
| XAUDIO2\_DO\_NOT\_SHARE\_SHAPE\_CONTEXTS | 提供された SHAPE コンテキストを排他的に使用することを強制するために使用します。他のエンジン インスタンスはコンテキストを共有しません。                                          |

*XAudio2Processor*   \_In\_\
型: XAUDIO2\_PROCESSOR

使用する CPU を指定する XAUDIO2\_PROCESSOR 型の値。XAUDIO2\_USE\_DEFAULT\_PROCESSOR を渡すことで、XAudio2 が実行時に理想的なプロセッサーを選択できるようになります。

プロセッサーを指定すると、スケジューラーがスレッドをプロセッサー間で効果的にスケジュールする能力に干渉する可能性があります。代わりに XAUDIO2\_USE\_DEFAULT\_PROCESSOR 値を渡してください。

*SharedShapeContexts*   \_In\_\
型: PXAUDIO2\_SHARED\_SHAPE\_CONTEXTS

SHARED\_SHAPE\_CONTEXTS へのポインター。このパラメーターは XBOX One に固有のものであり、タイトルが SHAPE および XMA リソースを XAudio2 と共有できるようにします。既定値は NULL です。

### 戻り値

型: XAUDIO2\_STDAPI

関数が成功した場合、`S_OK` を返します。1 つ以上の引数が無効な場合、関数はエラー コードを返します。

## 解説

`XAudio2CreateWithSharedContexts` は `XAudio2Create` 関数と同じように動作します。XBOX One 上の Scalable Hardware Audio Processing Engine (SHAPE) の状態を複数の IXAudio2 インスタンス間で共有できるようにするため、追加のパラメーターを 1 つ受け取ります。`PXAUDIO2_SHARED_SHAPE_CONTEXTS` は共有状態へのポインターです。XAudio2 は XMA 再生に SHAPE コンテキストを使用します。機能としての XMA は XBOX 360 で導入されました。ゲームの XBOX 360 版で XMA オーディオを再生するために XAudio2 を使用する場合、または古い XBOX One Software Development Kit をベースとする XBOX One ゲームで XMA オーディオを再生する場合、Microsoft Game Development Kit (GDK) が引き続き XMA と SHAPE コンテキストをサポートしていることを知っておくことが重要です。

XMA 形式のオーディオを再生するのに、アプリで `XAudio2CreateWithSharedContexts` フラグを使用する必要はありません。XAudio2 インスタンスが独自の SHAPE コンテキストを作成するためです。`XAudio2CreateWithSharedContexts` は、複数の XAudio2 インスタンスを持つアプリ向けに最適化されています。これにより、アプリは SHAPE コンテキストの単一セットを割り当て、それをインスタンス間で効率的に共有できます。

<Note>アプリが特定のプロセッサーを選択するように設計されていない限り、システムが適切なプロセッサーを選択できるようにするため、`XAudio2Processor` パラメーターには `XAUDIO2_USE_DEFAULT_PROCESSOR` ポインターを使用してください。</Note>

`XAudio2Create` パラメーターと `XAudio2CreateWithSharedContexts` 関数は、XMA 形式のオーディオのみを再生するゲームに適用可能なフラグを使用します。`XAUDIO2_DO_NOT_USE_SHAPE` フラグが使用されている場合、アプリは XMA コンテンツの再生に失敗します。XBOX 360 では、XMA オーディオはソフトウェアまたはハードウェアでデコードされ、これには SHAPE コンテキストが必要です。Microsoft Game Development Kit (GDK) の新しいバージョンでは、XMA のハードウェア デコードをサポートしています。このフラグを指定すると、実質的に XMA 再生が壊れます。

関数が独自の SHAPE コンテキストを呼び出す場合、SHAPE コンテキストがこの XAudio2 インスタンスによって排他的に使用されることを指定するために `XAUDIO2_DO_NOT_SHARE_SHAPE_CONTEXTS` フラグを使用します。SHAPE コンテキストを提供していないとき (たとえば `XAudio2Create` を呼び出す場合) にこのフラグを指定することは推奨されません。XAudio2 が独自の SHAPE コンテキストを作成する場合、それらは共有されるためです。

`XAUDIO2_EXCLUDE_FROM_GAME_DVR_CAPTURE` フラグも使用できます。このフラグを設定すると、ゲーム DVR がマスタリング ボイスからのオーディオを録音することを防ぎます。

ヘッダーでは `AUDCLNT_STREAMFLAGS_EXCLUDE_FROM_GAME_DVR_CAPTURE` フラグも定義されています。このフラグを `IAudioClient::Initialize` に渡すと、その *IAudioClient* によって再生されるオーディオがゲーム DVR で録音されないようにできます。ゲームで XAudio2 を使用している場合は、同じ目的のために代わりに `XAUDIO2_EXCLUDE_FROM_GAME_DVR_CAPTURE` フラグを使用してください。

詳細については、[XAudio2 を使い始める](https://learn.microsoft.com/windows/win32/xaudio2/getting-started?redirectedfrom=MSDN) を参照してください。

## 要件

**ヘッダー:** xaudio2Xbox.h

**ライブラリ:** xaudio2.lib

**サポートされているプラットフォーム:** XBOX One ファミリー本体および XBOX Series 本体

## 概念ドキュメント

* [XBOX One Software Development Kit と Microsoft Game Development Kit (GDK) のオーディオ API の比較](/build/console-features/audio/overviews/comparison-of-xdk-and-gdk-audio-api)

## 関連項目

[XAudio2 の概要](/build/console-features/audio/overviews/xaudio2-overview)\
[XAudio2 の主要な概念](https://learn.microsoft.com/windows/win32/xaudio2/xaudio2-key-concepts)\
[xaudio2xbox](/reference/audio/xaudio2xbox/xaudio2xbox_members)


## Related topics

- [SHARED_SHAPE_CONTEXTS](/ja-jp/reference/audio/acphal/structs/shared_shape_contexts.md)
- [XDK と GDK のオーディオ API の比較](/ja-jp/build/console-features/audio/overviews/comparison-of-xdk-and-gdk-audio-api.md)
- [OpenSharedHandleByName](/ja-jp/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_opensharedhandlebyname_public.md)
- [XAudio2 を使用してサウンドを再生する](/ja-jp/build/console-features/audio/overviews/xaudio2-play-sound.md)
- [XAudio2XMAEncoder](/ja-jp/build/console-features/audio/tools/xma2encoder/methods/xaudio2xmaencoder-xmaencoder-xbox-microsoft-m.md)
