Поделиться через


Метод 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 от Present. Причину удаления устройства можно получить с помощью ID3D11Device::GetDeviceRemovedReason после получения уведомления о вхождлении.

Приложения регистрируют и отменяют регистрацию дескриптора событий Win32 на определенном устройстве. Этот дескриптор события будет сигнализировать при удалении устройства. Опрос метода ID3D11Device::GetDeviceRemovedReason показывает, что устройство удалено.

Приложения UWP могут использовать ISignalableNotifier или SetThreadpoolWait .

При потере графического устройства приложение или заголовок получит графическое событие, чтобы приложение или заголовок знали, что его графическое устройство больше недействителен, и приложение или заголовок смогут повторно создать свои устройства DirectX. В ответ на это событие приложение или заголовок необходимо повторно создать свое устройство отрисовки и передать его в вызов SetRenderingDevice для объектов графического устройства композиции.

После настройки этого нового устройства отрисовки приложение или заголовок должны перерисовывать содержимое всех существующих поверхностей после запуска события OnRenderingDeviceReplaced графического устройства композиции.

Этот метод поддерживает композицию при потере устройства.

Событие не сообщается, когда его лучше всего создать повторно. Поэтому вместо этого рекомендуется выполнить итерацию по порядковой номеру адаптера и создать первый порядковый номер, который будет успешным.

Приложение может зарегистрировать событие на устройстве. Приложение получит сигнал при удалении устройства.

Если устройство уже удалено, вызовы RegisterDeviceRemovedEvent будут немедленно сигнализировать о событии. Код ошибки, удаленный устройством, не будет возвращен из RegisterDeviceRemovedEvent.

Каждое событие "устройство удалено" никогда не сигнализируется или сигнализируется только один раз. Эти события не сигналируются во время уничтожения устройства. Эти события отменяются при уничтожении.

Семантика RegisterDeviceRemovedEvent аналогична IDXGIFactory2::RegisterOcclusionStatusEvent.

Требования

Требование Значение
Целевая платформа Windows
Header d3d11_4.h
Библиотека D3d11.lib

См. также раздел

ID3D11Device4

UnregisterDeviceRemoved