Freigeben über


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_MAXkö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