Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Geräteentfernung
Wenn ein nicht behebbarer Fehler auftritt, kann das DirectML-Gerät einen Zustand "gerät entfernt" eingeben. Nicht behebbare Fehler, die die Geräteentfernung verursachen, umfassen ungültige API-Verwendung (für Methoden, die kein HRESULT zurückgeben), Treiberfehler, Hardwarefehler oder OOM-Bedingungen (Out-of-Memory).
Wenn ein DirectML-Gerät entfernt wird, werden alle Methodenaufrufe für das Gerät und jedes von diesem Gerät erstellte Objekt zu No-ops. Bei Methoden, die ein HRESULT zurückgeben, wird ein DXGI_ERROR_DEVICE_REMOVED Fehlercode zurückgegeben. Mit der IDMLDevice::GetDeviceRemovedReason-Methode können Sie überprüfen, ob das DirectML-Gerät entfernt wurde, und einen detaillierteren Fehlercode abrufen.
Sie können das Entfernen des Geräts nicht rückgängig machen, nur indem Sie das betroffene Gerät und alle untergeordneten Elemente lösen und dann das DirectML-Gerät von Grund auf neu erstellen.
Das Entfernen des zugrunde liegenden Direct3D 12-Geräts bewirkt auch, dass das DirectML-Gerät entfernt wird. Umgekehrt ist dies jedoch nicht der Fall. Das Entfernen von DirectML-Geräten führt möglicherweise nicht unbedingt dazu, dass das zugrunde liegende Direct3D 12-Gerät entfernt wird.
Debuggen der DirectML-Geräteentfernung und anderer Fehler
Die häufigste Ursache für DirectML-Fehler ist die ungültige API-Verwendung. Ungültige API-Verwendung kann zu einem E_INVALIDARG HRESULT-Fehlercode führen, oder dies kann zu einer Geräteentfernung führen.
Es wird dringend empfohlen, die DirectML-Debugebene während der Entwicklung zu aktivieren, um solche Fehler abzufangen und zu debuggen. Die DirectML-Debugebene führt eine umfangreiche Validierung von Methodenparametern und API-Verwendung durch und gibt Debugausgabemeldungen aus, die Ihnen beim Debuggen helfen.