ID3D12Device5::RemoveDevice-Methode (d3d12.h)
Sie können RemoveDevice aufrufen, um der Direct3D 12-Runtime mitzuteilen, dass auf dem GPU-Gerät ein Problem aufgetreten ist und nicht mehr verwendet werden kann. Dies führt dazu, dass die überwachten Zäune aller Geräte signalisiert werden. Ihre Anwendung muss RemoveDevice in der Regel nicht explizit aufrufen.
Syntax
void RemoveDevice();
Rückgabewert
Keine
Bemerkungen
Da beim Entfernen des Geräts alle Zäune signalisiert werden, UINT64_MAX
können Sie mithilfe eines Ereignisses einen Rückruf für die Geräteentfernung erstellen.
HANDLE deviceRemovedEvent = CreateEventW(NULL, FALSE, FALSE, NULL);
assert(deviceRemovedEvent != NULL);
_deviceFence->SetEventOnCompletion(UINT64_MAX, deviceRemoved);
HANDLE waitHandle;
RegisterWaitForSingleObject(
&waitHandle,
deviceRemovedEvent,
OnDeviceRemoved,
_device.Get(), // Pass the device as our context
INFINITE, // No timeout
0 // No flags
);
void OnDeviceRemoved(PVOID context, BOOLEAN)
{
ID3D12Device* removedDevice = (ID3D12Device*)context;
HRESULT removedReason = removedDevice->GetDeviceRemovedReason();
// Perform app-specific device removed operation, such as logging or inspecting DRED output
}
Anforderungen
Unterstützte Mindestversion (Client) | Windows 10 Build 20348 |
Unterstützte Mindestversion (Server) | Windows 10 Build 20348 |
Zielplattform | Windows |
Kopfzeile | d3d12.h |