Fehlerkonstanten
Windows Portable Devices-Methoden können eine Vielzahl von HRESULT-Fehlercodes zurückgeben. Einige sind spezifisch für tragbare Windows-Geräte, während andere durch andere SDKs oder Portierungskits definiert sind, die zum Erstellen eines Geräts verwendet werden. In diesem Abschnitt werden die verschiedenen Fehlercodes beschrieben, die zurückgegeben werden können, geordnet nach Ursprung.
WPD definiert die folgenden Fehlerkonstanten.
Konstante/Wert | Beschreibung |
---|---|
|
Die Geräteverbindung wurde bereits durch einen vorherigen Aufruf von IPortableDevice::Open geöffnet. |
|
Das Gerät reagiert nicht mehr auf Eingaben. |
|
Die Geräteverbindung wurde noch nicht durch einen Aufruf von IPortableDevice::Open geöffnet. |
|
Das Schnittstellenobjekt wurde bereits an die Geräteschnittstelle angefügt. |
|
Das Schnittstellenobjekt wurde bereits an die IPortableDeviceService-Schnittstelle angefügt. |
|
Das Schnittstellenobjekt wurde nicht an das Gerät angefügt. |
|
Das Schnittstellenobjekt wurde nicht an die IPortableDeviceService-Schnittstelle angefügt. In der Regel wird dies zurückgegeben, wenn die Anwendung versucht, auf Methoden einer angefügten Schnittstelle zuzugreifen, z. B. IPortableDeviceServiceCapabilities, nachdem IPortableDevice::Close aufgerufen wurde. |
|
IStream::Commit wurde nie aufgerufen, wenn ein Objekt mit Daten auf einem Gerät erstellt wurde. |
|
Die Dienstverbindung wurde bereits durch einen vorherigen Aufruf von IPortableDevice::Open geöffnet. |
|
Die Methodenparameter für IPortableDeviceServiceMethods::Invoke oder IPortableDeviceServiceMethods::InvokeAsync werden nicht in der richtigen Reihenfolge festgelegt. Der Parameter muss in der durch WPD_PARAMETER_ATTRIBUTE_ORDER angegebenen Reihenfolge festgelegt werden. |
|
Die Dienstverbindung wurde noch nicht durch einen Aufruf von IPortableDeviceService::Open geöffnet. |
|
Der für eine SMS angegebene Empfänger ist ungültig. |
|
Der Text einer Nachricht, die für eine SMS-Nachricht angegeben ist, ist ungültig. |
|
Der SMS-Dienst ist nicht verfügbar. |
Gelegentlich tritt möglicherweise ein fehler auf, der im Windows Media Rights Manager SDK definiert ist. Eine Liste der von diesem SDK definierten Fehler wird in der MSDN Library angegeben. Die folgenden Windows Media Rights Manager SDK-Fehler wurden jedoch nicht in dieser Dokumentation enthalten.
Konstante/Wert | Beschreibung |
---|---|
|
Sie können beim Zugriff auf DRM-geschützte Inhalte nicht debuggen. |
|
Der Inhalt ist nicht lizenziert. |
WPD gibt möglicherweise Standardmäßige Windows-Fehlercodes an die Anwendung zurück. In der folgenden Tabelle sind die am häufigsten verwendeten Windows-Standardfehlercodes und die allgemeinen Fehlerbedingungen bei Verwendung eines WPD-Geräts aufgeführt.
Win32-Fehlercodes werden mithilfe des HRESULT_FROM_WIN32-Makros in HRESULTs konvertiert.
Konstante/Wert | Beschreibung |
---|---|
|
Kann verwendet werden, um anzugeben, dass ein schreibgeschütztes Objekt oder eine eigenschaft nicht geändert oder gelöscht werden kann. Kann verwendet werden, um anzugeben, dass auf das Objekt außerhalb seines Bereichs zugegriffen wird, z. B. ein untergeordnetes Objekt, das außerhalb der Hierarchie eines Gerätediensts liegt. Kann verwendet werden, um anzugeben, dass die Anwendung nicht über den Zugriff verfügt (z. B. wenn die Zugriffssteuerung auf Geräte durch Gruppenrichtlinie eingeschränkt ist), um WPD-Befehle an das Gerät zu senden. |
|
Kann verwendet werden, um anzugeben, dass die Anzahl der Elemente in einem Datenarray seine Grenzwerte überschritten hat (ULONGLONGLONG). |
|
Kann verwendet werden, um anzugeben, dass das Gerät mit der Verarbeitung eines anderen Vorgangs beschäftigt ist. Anwendungen sollten warten, bis dieser Vorgang abgeschlossen ist, bevor es erneut versucht wird. |
|
Ein an das Gerät gesendeter Befehl wurde aufgrund eines Abbruchs abgebrochen, z. B. durch Aufrufen einer der Cancel-Methoden in der WPD-API. |
|
Kann verwendet werden, um anzugeben, dass ein ungültiges Datenpaket vom Gerät empfangen wurde. |
|
Gibt für ein MTP/IP-Gerät an, dass die Verbindung nicht initialisiert werden konnte, weil das Gerät verwendet wird. |
|
Das Gerät wurde getrennt oder nicht angeschlossen. |
|
Kann verwendet werden, um anzugeben, dass ein nicht rekursives Löschen für ein Objekt mit untergeordneten Elementen aufgerufen wurde. Die Anwendung sollte das rekursive Löschflag in IPortableDeviceContent::D elete verwenden. |
|
Kann verwendet werden, um anzugeben, dass das Gerät keine Ressourcendaten senden konnte, wenn Ressourcendaten erwartet wurden (z. B. eine Miniaturansicht oder ein Gerätesymbol). Dies weist in der Regel auf einen Fehler auf dem Gerät hin. |
|
Kann verwendet werden, um anzugeben, dass das Gerät getrennt oder nicht angeschlossen wurde. |
|
Kann verwendet werden, um anzugeben, dass das Gerät nicht mehr reagiert (hängend) oder dass ein allgemeiner Fehler auf dem Gerät aufgetreten ist. Das Gerät muss möglicherweise manuell zurückgesetzt werden. |
|
Kann verwendet werden, um anzugeben, dass daten, die an das Gerät gesendet oder empfangen werden, nicht ordnungsgemäß analysiert werden können. Dies kann auf einen geräteseitigen oder einen Transportfehler hinweisen. Wenn MTP-Anbietervorgänge an das Gerät gesendet werden, kann dieser Fehler darauf hindeuten, dass die angegebenen Vorgangsparameter nicht den gültigen VARTYPE-Wert aufweisen. |
|
Kann verwendet werden, um anzugeben, dass der angegebene VARTYPE für eine bestimmte Eigenschaft ungültig ist. |
|
Eine Schreibanforderung wurde an eine Ressource auf dem Gerät gestellt, das im Lesemodus mit IPortableDeviceResources::GetStream geöffnet wurde, oder eine Leseanforderung wurde an eine Ressource gestellt, die für Schreiben oder Erstellen geöffnet wurde. |
|
Ein nicht rekursives Löschen wird für ein Objekt mit untergeordneten Elementen aufgerufen. |
|
Der von der Anwendung bereitgestellte Parameter ist ungültig. |
|
Kann verwendet werden, um anzugeben, dass bei der Konvertierung einer datetime-Eigenschaft ein Fehler aufgetreten ist. |
|
Kann verwendet werden, um anzugeben, dass das Gerät nicht mehr reagiert (hängend). Das Gerät muss möglicherweise manuell zurückgesetzt werden. |
|
Kann verwendet werden, um anzugeben, dass das Gerät eine Eigenschaft unterstützt, aber dieser Eigenschaftswert ist derzeit leer oder nicht initialisiert. Kann verwendet werden, um anzugeben, dass der interne Kontext für einen Vorgang mit langer Ausführungsdauer nicht mehr vorhanden ist, da der Vorgang abgeschlossen oder abgebrochen wurde. Beispiele für solche Vorgänge sind Masseneigenschaften, Objektenumeration, Übertragung und Aufrufen von Gerätedienstmethoden. Anwendungen sollten den Vorgang von Anfang an wiederholen. Kann verwendet werden, um anzugeben, dass das angegebene Objekt nicht vorhanden ist. Das untergeordnete Objekt befindet sich möglicherweise außerhalb der Gerätediensthierarchie. |
|
Kann verwendet werden, um anzugeben, dass ein Vorgang nicht ordnungsgemäß initialisiert wird. Dies weist in der Regel auf einen internen Fehler hin oder darauf, dass die Anwendung ein veraltetes Gerätehandle verwendet. Die Anwendung sollte den Vorgang von Anfang an wiederholen oder das Gerät erneut öffnen. |
|
Kann verwendet werden, um anzugeben, dass eine Eigenschaft oder ein Befehl vom Gerät nicht unterstützt wird. |
|
Ein an das Gerät gesendeter Befehl wurde aufgrund eines manuellen Abbruchs abgebrochen, z. B. durch Aufrufen einer der Cancel-Methoden in der WPD-API. |
|
Kann verwendet werden, um anzugeben, dass das Gerät nicht die richtige Datenmenge sendet. |
|
Kann verwendet werden, um anzugeben, dass eine Ressource (z. B. eine Miniaturansicht oder ein Symbol) auf dem Gerät nicht vorhanden ist. |
|
Kann verwendet werden, um anzugeben, dass das Gerät nicht mehr reagiert (hängend). Das Gerät muss möglicherweise manuell zurückgesetzt werden. |
|
Kann verwendet werden, um anzugeben, dass das Gerät nicht mehr reagiert (hängend). Das Gerät muss möglicherweise manuell zurückgesetzt werden. |
|
Kann verwendet werden, um anzugeben, dass das angegebene Format vom Gerät nicht unterstützt wird. |
|
Kann verwendet werden, um anzugeben, dass die Anwendung die angeforderte Datenmenge nicht an das Gerät senden konnte. |
|
Gibt für ein MTP/IP-Gerät an, dass bei der Verbindung mit dem Gerät ein Timeout aufgetreten ist. Das Gerät muss möglicherweise manuell wiederhergestellt werden. |
Fehlercodes des Medienübertragungsprotokolls
Geräte, die das Media Transfer Protocol (MTP) unterstützen, können die folgenden Fehlercodes zurückgeben. Die meisten dieser Fehlercodes impliziert einen Fehler im MTP-Stapel (Kommunikation zwischen dem MTP-Klassentreiber und dem Gerät), sind jedoch bei der Diagnose der Fehlersituation hilfreich.
HRESULT-Beschreibung | MTP-Antwortcode | Beschreibung des MTP-Antwortcodes | Details |
---|---|---|---|
0x80042003 | 0x2003 | Sitzung nicht geöffnet | Gibt an, dass das Sitzungshandle des Vorgangs keine derzeit geöffnete Sitzung ist. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x80042004 | 0x2004 | Ungültige TransactionID | Gibt an, dass die TransactionID null ist oder nicht auf eine gültige Transaktion verweist. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x80042005 | 0x2005 | Vorgang nicht unterstützt | Gibt an, dass der Vorgangscode ein gültiger Code zu sein scheint, aber das Gerät unterstützt den Vorgang nicht. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x80042006 | 0x2006 | Parameter nicht unterstützt | Gibt an, dass in Verbindung mit dem Vorgang ein Parameter ungleich 0 angegeben wurde und der Parameter nicht für diesen Vorgang verwendet wird. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x80042007 | 0x2007 | Unvollständige Übertragung | Gibt an, dass die Übertragung nicht abgeschlossen wurde und alle übertragenen Daten verworfen werden sollen. Diese Antwort entspricht nicht einer abgebrochenen Transaktion. |
0x80042008 | 0x2008 | Ungültige StorageID | Gibt an, dass eine mit einem Vorgang gesendete Speicher-ID nicht auf einen tatsächlich gültigen Speicher verweist, der auf dem Gerät vorhanden ist. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x80042009 | 0x2009 | Ungültiges ObjectHandle | Gibt an, dass ein Objekthandle nicht auf ein tatsächliches Objekt verweist, das auf dem Gerät vorhanden ist. Die Anwendung sollte die Speicher erneut aufzählen. |
0x8004200A | 0x200A | DeviceProp wird nicht unterstützt. | Gibt an, dass der Geräteeigenschaftscode ein gültiger Code zu sein scheint, aber diese Eigenschaft vom Gerät nicht unterstützt wird. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x8004200B | 0x200B | Ungültiger ObjectFormatCode | Gibt an, dass das Gerät den im angegebenen Kontext angegebenen Objektformatcode nicht unterstützt. |
0x80042012 | 0x2012 | Teilweises Löschen | Gibt an, dass nur eine Teilmenge der zum Löschen angegebenen Speicher tatsächlich gelöscht wurde, da einige schreibgeschützt waren oder sich in schreibgeschützten Speicher befanden. |
0x80042013 | 0x2013 | Store nicht verfügbar | Gibt an, dass der Speicher (oder der Speicher, der das angegebene Objekt enthält) nicht physisch verfügbar ist. Dies kann durch Medienauswurf verursacht werden. Diese Antwort darf nicht verwendet werden, um anzugeben, dass der Speicher ausgelastet ist. |
0x80042014 | 0x2014 | Spezifikation nach Format nicht unterstützt | Gibt an, dass der Vorgang versucht hat, die Aktion nur für Objekte eines bestimmten Formats anzugeben, und dass diese Funktion nicht unterstützt wird. Der Vorgang sollte erneut ohne Angabe des Formats versucht werden. Jede Antwort dieser Art leitet ab, dass jeder zukünftige Versuch, nach Format mit dem angegebenen Vorgang anzugeben, zu derselben Antwort führt. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x80042015 | 0x2015 | Keine gültige ObjectInfo | Gibt an, dass der Host vor der Übertragung des Objekts keine gültigen Objektinformationen an das Gerät bereitgestellt hat. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x80042016 | 0x2016 | Ungültiges Codeformat | Gibt an, dass der Datencode nicht das richtige Format aufweist und daher ungültig ist. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x80042017 | 0x2017 | Unbekannter Anbietercode | Das Gerät weiß nicht, wie der erweiterte Code des Anbieters behandelt werden soll. |
0x8004201A | 0x201A | Ungültiges ParentObject | Gibt an, dass das Objekt kein gültiges übergeordnetes Objekt ist. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x8004201B | 0x201B | Ungültiges DeviceProp-Format | Gibt an, dass versucht wurde, eine Geräteeigenschaft festzulegen, die Daten jedoch nicht die richtige Größe oder das richtige Format aufweisen. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x8004201C | 0x201C | Ungültiger DeviceProp-Wert | Gibt an, dass versucht wurde, eine Geräteeigenschaft auf einen Wert festzulegen, der vom Gerät nicht zulässig ist. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x8004201E | 0x201E | Sitzung bereits geöffnet | Gibt an, dass der Host versucht hat, die Sitzung zu öffnen, während eine Sitzung bereits geöffnet ist. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x8004201F | 0x201F | Transaktion abgebrochen | Kann verwendet werden, um anzugeben, dass der Vorgang aufgrund eines manuellen Abbruchs unterbrochen wurde. |
0x80042020 | 0x2020 | Spezifikation des Ziels nicht unterstützt | Gibt an, dass das Gerät die Angabe des Ziels durch den Host nicht unterstützt. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x8004A801 | 0xA801 | Invalid_ObjectPropCode | Gibt an, dass das Gerät den gesendeten Objekteigenschaftscode in diesem Kontext nicht unterstützt. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x8004A802 | 0xA802 | Invalid_ObjectProp_Format | Gibt an, dass eine an das Gerät gesendete Objekteigenschaft eine nicht unterstützte Größe oder einen nicht unterstützten Typ aufweist. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x8004A803 | 0xA803 | Invalid_ObjectProp_Value | Gibt an, dass eine an das Gerät gesendete Objekteigenschaft der richtige Typ ist, aber einen Wert enthält, der nicht unterstützt wird. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
0x8004A804 | 0xA804 | Invalid_ObjectReference | Gibt an, dass ein gesendeter Objektverweis ungültig ist. Entweder enthält der Verweis ein Objekthandle, das nicht auf dem Gerät vorhanden ist, oder der Verweis, der versucht, festgelegt zu werden, wird im Kontext nicht unterstützt. Dies kann auf einen Fehler im MTP-Stapel oder auf eine Anwendung zurückzuführen sein, die ein veraltetes Speicherobjekt verwendet. |
0x8004A806 | 0xA806 | Invalid_Dataset | Gibt an, dass das in der Datenphase dieses Vorgangs gesendete Dataset ungültig ist. Dies deutet auf einen internen Fehler im MTP-Stapel hin. |
0x8004A807 | 0xA807 | Object_Too_Large | Gibt an, dass das zu sendende Objekt nicht im Dateisystem des Geräts gespeichert werden kann. Diese wird nicht zurückgegeben, wenn nicht genügend Speicherplatz im Speicher vorhanden ist. |
0x8004A301 | 0xA301 | Invalid_ServiceID | Gibt an, dass eine dienst-ID, die mit einem Vorgang gesendet wird, nicht auf einen tatsächlich gültigen Dienst verweist, der auf dem Gerät vorhanden ist. Dies deutet auf einen internen Fehler im MTP-Stapel hin. |
0x8004A302 | 0xA302 | Invalid_ServicePropCode | Gibt an, dass das Gerät den gesendeten Diensteigenschaftscode in diesem Kontext nicht unterstützt. Dies deutet auf einen internen Fehler im MTP-Stapel hin. |
Anforderungen
Anforderung | Wert |
---|---|
Header |
|