Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Eszköz eltávolítása
Ha helyreállíthatatlan hiba történik, a DirectML-eszköz "eszköz által eltávolított" állapotba léphet. Az eszközeltávolítást okozó helyreállíthatatlan hibák közé tartozik az ÉRVÉNYTELEN API-használat (olyan metódusok esetében, amelyek nem adnak vissza HRESULT-t), illesztőprogram-hiba, hardverhiba vagy memóriahiányos (OOM) feltételek.
Ha eltávolít egy DirectML-eszközt, minden metódushívás az eszközön, és az eszköz által létrehozott összes objektum nem hajt végre műveletet. A HRESULT-t vissza adó metódusok esetében a rendszer egy DXGI_ERROR_DEVICE_REMOVED hibakódot ad vissza. Az IDMLDevice::GetDeviceRemovedReason metódussal ellenőrizheti, hogy a DirectML-eszköz el lett-e távolítva, és részletesebb hibakódot kérhet le.
Az eszköz eltávolítása után csak akkor lehet helyreállítani, ha felszabadítja az érintett eszközt és annak összes gyermekét, majd újra létrehozza a DirectML-eszközt a semmiből.
Az alapul szolgáló Direct3D 12-eszköz eszközeltávolítása a DirectML-eszköz eltávolítását is eredményezi. Az ellenkezője azonban nem igaz. Előfordulhat, hogy a DirectML-eszköz eltávolítása nem feltétlenül okozza a mögöttes Direct3D 12-eszköz eltávolítását.
DirectML-eszköz eltávolításának hibakeresése és egyéb hibák
A DirectML-hibák leggyakoribb oka az érvénytelen API-használat. Az API érvénytelen használata E_INVALIDARG HRESULT hibakódot eredményezhet, vagy eszközeltávolítást eredményezhet.
Határozottan javasoljuk, hogy a fejlesztés során engedélyezze a DirectML hibakeresési rétegét az ilyen hibák észlelése és hibakeresése érdekében. A DirectML hibakeresési réteg a metódusparaméterek és az API-használat átfogó ellenőrzését végzi, és hibakeresési kimeneti üzeneteket bocsát ki a hibakereséshez.