Fehlerkonst constants (Fehlerkonst constants
Windows Portable Devices-Methoden können eine Vielzahl von HRESULT-Fehlercodes zurückgeben. Einige sind spezifisch für Windows Geräte, während andere durch andere SDKs oder Portierungskits definiert werden, die zum Erstellen eines Geräts verwendet werden. In diesem Abschnitt werden die verschiedenen Fehlercodes beschrieben, die nach Ursprung organisiert zurückgegeben werden können.
WPD definiert die folgenden Fehlerkonst constants.
| 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 wie IPortableDeviceServiceCapabilities zu zugreifen, nachdem IPortableDevice::Close aufgerufen wurde. |
|
IStream::Commit wurde nie aufgerufen, als 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-Nachricht angegebene Empfänger ist ungültig. |
|
Der Text einer für eine SMS-Nachricht angegebenen Nachricht ist ungültig. |
|
Der SMS-Dienst ist nicht verfügbar. |
Gelegentlich tritt möglicherweise ein Fehler auf, der im Media Rights Manager SDK Windows definiert ist. Eine Liste von Fehlern, die von diesem SDK definiert werden, finden Sie in der MSDN Library. Die folgenden Fehler Windows Media Rights Manager SDK waren jedoch nicht in dieser Dokumentation enthalten.
| Konstante/Wert | BESCHREIBUNG |
|---|---|
|
Sie können nicht debuggen, wenn Sie auf DRM-geschützte Inhalte zugreifen. |
|
Der Inhalt ist nicht lizenziert. |
WPD gibt möglicherweise Windows Standardfehlercodes an die Anwendung zurück. In der folgenden Tabelle sind die am häufigsten verwendeten Standardfehlercodes Windows und die allgemeinen Fehlerbedingungen bei verwendung eines WPD-Geräts aufgeführt.
Win32-Fehlercodes werden mithilfe des Makros HRESULT _ FROM _ WIN32 in HRESULT s konvertiert.
| Konstante/Wert | BESCHREIBUNG |
|---|---|
|
Kann verwendet werden, um anzugeben, dass ein schreibgeschütztes Objekt oder eine schreibgeschützte 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 (ULONGLONG). |
|
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 sie den Vorgang wiederholen. |
|
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 rekursiver Löschtyp für ein Objekt mit den unteren Ns aufgerufen wurde. Die Anwendung sollte das Rekursive Delete-Flag 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 (nicht mehr reagiert) oder 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 an das Gerät gesendete oder vom Gerät empfangene Daten 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 vom gültigen VARTYPE sind. |
|
Kann verwendet werden, um anzugeben, dass der angegebene VARTYPE für eine bestimmte Eigenschaft ungültig ist. |
|
Es wurde eine Schreibanforderung an eine Ressource auf dem Gerät gestellt, die im Lesemodus mithilfe von IPortableDeviceResources::GetStream geöffnet wurde, oder eine Leseanforderung an eine Ressource, die für Write oder Create geöffnet wurde. |
|
Ein nicht rekursiver Löschtyp wird für ein Objekt mit unteren Elemente aufgerufen. |
|
Der von der Anwendung bereitgestellte Parameter ist ungültig. |
|
Kann verwendet werden, um anzugeben, dass bei der Konvertierung einer datetime-Eigenschaft ein Fehler auftraten. |
|
Kann verwendet werden, um anzugeben, dass das Gerät nicht mehr reagiert (nicht mehr reagiert). 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 derzeit leer oder nicht initialisiert ist. Kann verwendet werden, um anzugeben, dass der interne Kontext für einen Zeitausführungsvorgang nicht mehr vorhanden ist, da der Vorgang abgeschlossen wurde 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 kann sich außerhalb der Gerätediensthierarchie befinden. |
|
Kann verwendet werden, um anzugeben, dass ein Vorgang nicht ordnungsgemäß initialisiert wurde. 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) nicht auf dem Gerät vorhanden ist. |
|
Kann verwendet werden, um anzugeben, dass das Gerät nicht mehr reagiert (nicht mehr reagiert). Das Gerät muss möglicherweise manuell zurückgesetzt werden. |
|
Kann verwendet werden, um anzugeben, dass das Gerät nicht mehr reagiert (nicht mehr reagiert). 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 für die Verbindung mit dem Gerät ein Time out erfolgt ist. Möglicherweise muss das Gerät manuell erneut verbunden werden. |
Media Transfer Protocol-Fehlercodes
Geräte, die Media Transfer Protocol (MTP) unterstützen, können die folgenden Fehlercodes zurückgeben. Die meisten dieser Fehlercodes implizieren einen Fehler im MTP-Stapel (Kommunikation zwischen dem MTP-Klassentreiber und dem Gerät), sind jedoch hilfreich bei der Diagnose der Fehlersituation.
| HRESULT-Beschreibung | MTP-Antwortcode | Beschreibung des MTP-Antwortcodes | Details |
|---|---|---|---|
| 0x80042003 | 0x2003 | Sitzung nicht geöffnet | Gibt an, dass das Sitzungshand handle 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 0 (null) ist oder nicht auf eine gültige Transaktion verweist. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
| 0x80042005 | 0x2005 | Vorgang wird nicht unterstützt | Gibt an, dass der Vorgangscode ein gültiger Code zu sein scheint, das Gerät den Vorgang jedoch nicht unterstützt. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
| 0x80042006 | 0x2006 | Parameter nicht unterstützt | Gibt an, dass ein Nicht-Null-Parameter in Verbindung mit dem Vorgang angegeben wurde und der -Parameter für diesen Vorgang nicht 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 Objekthand handle 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 nicht unterstützt | Gibt an, dass der Geräteeigenschaftscode ein gültiger Code zu sein scheint, diese Eigenschaft jedoch 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 objektformatierten Code nicht unterstützt. |
| 0x80042012 | 0x2012 | Teillöschung | 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 Speichern befinden. |
| 0x80042013 | 0x2013 | Store Nicht verfügbar | Gibt an, dass der Speicher (oder der Speicher, der das angegebene Objekt enthält) physisch nicht verfügbar ist. Dies kann durch das Auswerfen von Medien 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, eine Aktion nur für Objekte eines bestimmten Formats anzugeben, und dass diese Funktion nicht unterstützt wird. Der Vorgang sollte erneut versucht werden, ohne das Format anzugeben. Jede Antwort dieser Art führt dazu, 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 dem Gerät vor dem Übertragen des Objekts keine gültigen Objektinformationen zur Verfügung stellt. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
| 0x80042016 | 0x2016 | Ungültiges Codeformat | Gibt an, dass der Datencode nicht das richtige Format hat 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 festgelegt zu haben, die Daten jedoch nicht die richtige Größe oder das richtige Format haben. 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 zu setzen, der vom Gerät nicht zugelassen wird. 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 Spezifikation des Ziels durch den Host nicht unterstützt. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
| 0x8004A801 | 0xA801 | Ungültiger _ 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 | _Ungültiges _ ObjectProp-Format | Gibt an, dass eine an das Gerät gesendete Objekteigenschaft eine nicht unterstützte Größe oder einen nicht unterstützten Typ auf hat. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
| 0x8004A803 | 0xA803 | _Ungültiger _ ObjectProp-Wert | 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 | Ungültiger _ ObjectReference-Wert | Gibt an, dass ein gesendeter Objektverweis ungültig ist. Entweder enthält der Verweis ein Objekthand handle, das auf dem Gerät nicht vorhanden ist, oder der Verweis, der festgelegt werden soll, wird im Kontext nicht unterstützt. Dies kann auf einen Fehler im MTP-Stapel oder auf die Anwendung mit einem veralteten Speicherobjekt verursacht werden. |
| 0x8004A806 | 0xA806 | Ungültiges _ Dataset | Gibt an, dass das in der Datenphase dieses Vorgangs gesendete Dataset ungültig ist. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
| 0x8004A807 | 0xA807 | Objekt _ zu _ groß | Gibt an, dass das objekt, das gesendet werden soll, nicht im Dateisystem des Geräts gespeichert werden kann. Dies wird nicht zurückgegeben, wenn nicht genügend Speicherplatz im Speicher zur Verfügung steht. |
| 0x8004A301 | 0xA301 | Ungültige _ ServiceID | Gibt an, dass eine mit einem Vorgang gesendete Dienst-ID nicht auf einen tatsächlich gültigen Dienst verweist, der auf dem Gerät vorhanden ist. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
| 0x8004A302 | 0xA302 | Ungültiger _ ServicePropCode | Gibt an, dass das Gerät den gesendeten Diensteigenschaftscode in diesem Kontext nicht unterstützt. Dies weist auf einen internen Fehler im MTP-Stapel hin. |
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Header |
|