Partager via


ID3D12Device5::RemoveDevice, méthode (d3d12.h)

Vous pouvez appeler RemoveDevice pour indiquer au runtime Direct3D 12 que l’appareil GPU a rencontré un problème et ne peut plus être utilisé. Ainsi, les clôtures surveillées de tous les appareils seront signalées. En général, votre application n’a pas besoin d’appeler explicitement RemoveDevice.

Syntaxe

void RemoveDevice();

Valeur de retour

None

Notes

Étant donné que la suppression de l’appareil déclenche la signalisation de toutes les clôtures à UINT64_MAX, vous pouvez créer un rappel pour la suppression d’appareil à l’aide d’un événement.

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
}

Spécifications

   
Client minimal pris en charge Windows 10 Build 20348
Serveur minimal pris en charge Windows 10 Build 20348
Plateforme cible Windows
En-tête d3d12.h