ID3D11Device4::RegisterDeviceRemovedEvent 메서드(d3d11_4.h)
"디바이스 제거됨" 이벤트를 등록하고 비동기 알림 메커니즘을 사용하여 어떤 이유로든 Direct3D 디바이스가 제거된 시기를 나타냅니다.
구문
HRESULT RegisterDeviceRemovedEvent(
[in] HANDLE hEvent,
[out] DWORD *pdwCookie
);
매개 변수
[in] hEvent
형식: HANDLE
"디바이스 제거됨" 이벤트에 대한 핸들입니다.
[out] pdwCookie
형식: DWORD*
UnregisterDeviceRemoved에서 이벤트를 등록 취소하는 데 사용할 수 있는 "디바이스 제거됨" 이벤트에 대한 정보에 대한 포인터입니다.
반환 값
형식: HRESULT
설명
Present의 HRESULT가 아닌 비동기 알림 메커니즘을 사용하여 어떤 이유로든 Direct3D 디바이스가 제거된 시기를 나타냅니다. 발생 알림을 받은 후 ID3D11Device::GetDeviceRemovedReason 을 사용하여 디바이스 제거 이유를 검색할 수 있습니다.
애플리케이션은 특정 디바이스에 Win32 이벤트 핸들을 등록 및 등록 취소합니다. 디바이스가 제거되면 해당 이벤트 핸들에 신호가 전송됩니다. 디바이스의 ID3D11Device::GetDeviceRemovedReason 메서드에 대한 설문 조사는 디바이스가 제거되었음을 나타냅니다.
ISignalableNotifier 또는 SetThreadpoolWait 는 UWP 앱에서 사용할 수 있습니다.
그래픽 디바이스가 손실되면 앱 또는 타이틀이 그래픽 이벤트를 받게 되므로 앱 또는 타이틀은 해당 그래픽 디바이스가 더 이상 유효하지 않으며 앱 또는 타이틀이 DirectX 디바이스를 다시 만드는 것이 안전하다는 것을 알 수 있습니다. 이 이벤트에 대한 응답으로 앱 또는 타이틀은 렌더링 디바이스를 다시 만들고 컴퍼지션 그래픽 디바이스 개체의 SetRenderingDevice 호출에 전달해야 합니다.
이 새 렌더링 디바이스를 설정한 후 컴퍼지션 그래픽 디바이스의 OnRenderingDeviceReplaced 이벤트가 발생한 후 앱 또는 타이틀이 모든 기존 표면의 콘텐츠를 다시 그려야 합니다.
이 메서드는 디바이스 손실에 대한 컴퍼지션을 지원합니다.
다시 만드는 것이 가장 이상적인 경우 이벤트는 신호를 받지 않습니다. 따라서 어댑터 서수로 반복하고 성공할 첫 번째 서수는 만드는 것이 좋습니다.
애플리케이션은 디바이스에 이벤트를 등록할 수 있습니다. 디바이스가 제거되면 애플리케이션에 신호가 전송됩니다.
디바이스가 이미 제거된 경우 RegisterDeviceRemovedEvent 에 대한 호출은 이벤트를 즉시 신호로 보냅니다. RegisterDeviceRemovedEvent에서 디바이스 제거 오류 코드가 반환되지 않습니다.
각 "디바이스 제거" 이벤트는 신호를 받지 않거나 한 번만 신호를 보냅니다. 이러한 이벤트는 디바이스를 파괴하는 동안 신호를 받지 않습니다. 이러한 이벤트는 소멸 중에 등록 취소됩니다.
RegisterDeviceRemovedEvent의 의미 체계는 IDXGIFactory2::RegisterOcclusionStatusEvent와 유사합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | d3d11_4.h |
라이브러리 | D3d11.lib |