Condividi tramite


Metodo ID3D12Device5::RemoveDevice (d3d12.h)

È possibile chiamare RemoveDevice per indicare al runtime Direct3D 12 che il dispositivo GPU ha riscontrato un problema e non può più essere usato. In questo modo, tutte le recinzioni monitorate dai dispositivi verranno segnalate. L'applicazione in genere non deve chiamare in modo esplicito RemoveDevice.

Sintassi

void RemoveDevice();

Valore restituito

nessuno

Osservazioni

Poiché la rimozione del dispositivo attiva tutte le recinzioni da segnalare a UINT64_MAX, è possibile creare un callback per la rimozione del dispositivo usando un evento.

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
}

Requisiti

   
Client minimo supportato Windows 10 Build 20348
Server minimo supportato Windows 10 Build 20348
Piattaforma di destinazione Windows
Intestazione d3d12.h