Método ID3D12Device5::RemoveDevice (d3d12.h)
Você pode chamar RemoveDevice para indicar ao runtime do Direct3D 12 que o dispositivo gpu encontrou um problema e não pode mais ser usado. Isso fará com que todas as cercas monitoradas dos dispositivos sejam sinalizadas. Normalmente, seu aplicativo não precisa chamar explicitamente RemoveDevice.
Sintaxe
void RemoveDevice();
Valor de retorno
Nenhum
Observações
Como a remoção do dispositivo dispara todas as cercas a serem sinalizadas para UINT64_MAX
, você pode criar um retorno de chamada para a remoção do dispositivo usando um 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
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 10 Build 20348 |
servidor com suporte mínimo | Windows 10 Build 20348 |
da Plataforma de Destino | Windows |
cabeçalho | d3d12.h |