Compartir a través de


Método ID3D12Device5::RemoveDevice (d3d12.h)

Puede llamar a RemoveDevice para indicar al entorno de ejecución de Direct3D 12 que el dispositivo gpu encontró un problema y ya no se puede usar. Si lo hace, se señalizarán todas las vallas supervisadas de todos los dispositivos. Normalmente, la aplicación no necesita llamar explícitamente a RemoveDevice.

Sintaxis

void RemoveDevice();

Valor devuelto

Ninguno

Observaciones

Dado que la eliminación de dispositivos desencadena todas las vallas que se van a indicar a UINT64_MAX, puede crear una devolución de llamada para la eliminación de dispositivos mediante 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
}

Requisitos

   
Cliente mínimo compatible Compilación 20348 de Windows 10
Servidor mínimo compatible Compilación 20348 de Windows 10
Plataforma de destino Windows
Encabezado d3d12.h