Метод 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 |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по