ID3D11Device4::RegisterDeviceRemovedEvent メソッド (d3d11_4.h)
"デバイスが削除されました" イベントを登録し、非同期通知メカニズムを使用して、何らかの理由で Direct3D デバイスがいつ削除されたかを示します。
構文
HRESULT RegisterDeviceRemovedEvent(
[in] HANDLE hEvent,
[out] DWORD *pdwCookie
);
パラメーター
[in] hEvent
型: HANDLE
"デバイスが削除されました" イベントへのハンドル。
[out] pdwCookie
種類: DWORD*
"デバイスが削除されました" イベントに関する情報へのポインター。 UnregisterDeviceRemoved で使用してイベントの登録を解除できます。
戻り値
種類: HRESULT
「Direct3D 11 リターン コード」を参照してください。
注釈
Direct3D デバイスが何らかの理由で削除されたタイミングを示します。現在の HRESULT としてではなく、非同期通知メカニズムを使用 します。 デバイスの削除の理由は、発生の通知を受けた後、 ID3D11Device::GetDeviceRemovedReason を使用して取得できます。
アプリケーションは、Win32 イベント ハンドルを特定のデバイスに登録して登録解除します。 そのイベント ハンドルは、デバイスが削除されると通知されます。 デバイスの ID3D11Device::GetDeviceRemovedReason メソッドへのポーリングは、デバイスが削除されたことを示します。
ISignalableNotifier または SetThreadpoolWait は、UWP アプリで使用できます。
グラフィックス デバイスが失われると、アプリまたはタイトルはグラフィックス イベントを受け取ります。そのため、アプリまたはタイトルは、そのグラフィックス デバイスが無効になり、アプリまたはタイトルが DirectX デバイスを再作成しても安全であることを認識します。 このイベントに応答して、アプリまたはタイトルはレンダリング デバイスを再作成し、コンポジション グラフィックス デバイス オブジェクトの SetRenderingDevice 呼び出しに渡す必要があります。
この新しいレンダリング デバイスを設定した後、アプリまたはタイトルは、コンポジション グラフィックス デバイスの OnRenderingDeviceReplaced イベントが発生した後、既存のすべてのサーフェスのコンテンツを再描画する必要があります。
この方法では、デバイス損失のコンポジションがサポートされます。
イベントは、再作成が最も理想的な場合には通知されません。 そのため、代わりに、アダプターの序数を反復処理し、成功する最初の序数を作成することをお勧めします。
アプリケーションは、デバイスにイベントを登録できます。 デバイスが削除されると、アプリケーションが通知されます。
デバイスが既に削除されている場合、 RegisterDeviceRemovedEvent を呼び出すと、イベントがすぐに通知されます。 RegisterDeviceRemovedEvent からデバイスから削除されたエラー コードは返されません。
各 "デバイスが削除されました" イベントは通知されないか、1 回だけ通知されます。 これらのイベントは、デバイスの破棄中に通知されません。 これらのイベントは破棄中に登録解除されます。
RegisterDeviceRemovedEvent のセマンティクスは、IDXGIFactory2::RegisterOcclusionStatusEvent と似ています。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3d11_4.h |
Library | D3d11.lib |