ID3D12Device5::RemoveDevice method (d3d12.h)

Anda dapat memanggil RemoveDevice untuk menunjukkan ke runtime Direct3D 12 bahwa perangkat GPU mengalami masalah, dan tidak dapat lagi digunakan. Melakukannya akan menyebabkan semua pagar yang dipantau perangkat akan disinyalir. Aplikasi Anda biasanya tidak perlu secara eksplisit memanggil RemoveDevice.

Sintaks

void RemoveDevice();

Mengembalikan nilai

Tidak ada

Keterangan

Karena penghapusan perangkat memicu semua pagar untuk diberi sinyal ke UINT64_MAX, Anda dapat membuat panggilan balik untuk penghapusan perangkat menggunakan peristiwa.

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
}

Persyaratan

   
Klien minimum yang didukung Windows 10 Build 20348
Server minimum yang didukung Windows 10 Build 20348
Target Platform Windows
Header d3d12.h