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 |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk