Constantes d’erreur
Les méthodes d’appareils portables Windows peuvent retourner divers codes d’erreur HRESULT . Certains sont spécifiques aux appareils portables Windows, tandis que d’autres sont définis par d’autres kits sdk ou de portage utilisés pour créer un appareil. Cette section décrit les différents codes d’erreur qui peuvent être retournés, organisés par origine.
WPD définit les constantes d’erreur suivantes.
Constante/valeur | Description |
---|---|
|
La connexion de l’appareil a déjà été ouverte par un appel précédent à IPortableDevice::Open. |
|
L’appareil ne répond plus aux entrées. |
|
La connexion de l’appareil n’a pas encore été ouverte par un appel à IPortableDevice::Open. |
|
L’objet d’interface a déjà été attaché à l’interface de l’appareil. |
|
L’objet interface a déjà été attaché à l’interface IPortableDeviceService . |
|
L’objet d’interface n’a pas été attaché à l’appareil. |
|
L’objet interface n’a pas été attaché à l’interface IPortableDeviceService . En règle générale, cela est retourné si l’application tente d’accéder aux méthodes d’une interface jointe, telles que IPortableDeviceServiceCapabilities, après l’appel d’IPortableDevice::Close . |
|
IStream::Commit n’a jamais été appelé lors de la création d’un objet avec des données sur un appareil. |
|
La connexion de service a déjà été ouverte par un appel précédent à IPortableDevice::Open. |
|
Les paramètres de méthode pour IPortableDeviceServiceMethods::Invoke ou IPortableDeviceServiceMethods::InvokeAsync ne sont pas définis dans l’ordre correct. Le paramètre doit être défini dans le classement spécifié par WPD_PARAMETER_ATTRIBUTE_ORDER. |
|
La connexion de service n’a pas encore été ouverte par un appel à IPortableDeviceService::Open. |
|
Le destinataire spécifié pour un sms n’est pas valide. |
|
Le corps d’un message spécifié pour un sms n’est pas valide. |
|
Le service SMS n’est pas disponible. |
Parfois, vous pouvez rencontrer une erreur définie dans le Kit de développement logiciel (SDK) Windows Media Rights Manager. Une liste d’erreurs définies par ce KIT de développement logiciel (SDK) est indiquée dans la bibliothèque MSDN. Toutefois, les erreurs suivantes du Kit de développement logiciel (SDK) Windows Media Rights Manager n’ont pas été incluses dans cette documentation.
Constante/valeur | Description |
---|---|
|
Vous ne pouvez pas déboguer lors de l’accès au contenu protégé par DRM. |
|
Le contenu n’est pas concédé sous licence. |
WPD peut retourner des codes d’erreur Windows standard à l’application. Le tableau suivant répertorie les codes d’erreur Windows standard les plus couramment utilisés et les conditions d’erreur courantes lors de l’utilisation d’un appareil WPD.
Les codes d’erreur Win32 sont convertis en HRESULTà l’aide de la macro HRESULT_FROM_WIN32 .
Constante/valeur | Description |
---|---|
|
Peut être utilisé pour indiquer qu’un objet ou une propriété en lecture seule ne peut pas être modifié ou supprimé. Peut être utilisé pour indiquer que l’objet est accessible en dehors de son étendue, par exemple un objet enfant qui se trouve en dehors de la hiérarchie d’un service d’appareil. Peut être utilisé pour indiquer que l’application n’a pas l’accès (par exemple, si le contrôle d’accès aux appareils est restreint par stratégie de groupe) pour envoyer des commandes WPD à l’appareil. |
|
Peut être utilisé pour indiquer que le nombre d’éléments dans un tableau de données a dépassé ses limites (ULONGLONG). |
|
Peut être utilisé pour indiquer que l’appareil est occupé à traiter une autre opération. Les applications doivent attendre que cette opération se termine avant de réessayer. |
|
Une commande envoyée à l’appareil a été abandonnée en raison d’une annulation, par exemple en appelant l’une des méthodes Cancel dans l’API WPD. |
|
Peut être utilisé pour indiquer qu’un paquet de données non valide a été reçu de l’appareil. |
|
Pour un appareil MTP/IP, indique que la connexion n’a pas pu s’initialiser, car l’appareil est en cours d’utilisation. |
|
L’appareil a été déconnecté ou débranché. |
|
Peut être utilisé pour indiquer qu’une suppression non récursive a été appelée pour un objet avec des enfants. L’application doit utiliser l’indicateur de suppression récursif dans IPortableDeviceContent::D elete. |
|
Peut être utilisé pour indiquer que l’appareil n’a pas pu envoyer de données de ressource lorsque des données de ressource étaient attendues (par exemple, une miniature ou une icône d’appareil). Cela indique généralement une erreur sur l’appareil. |
|
Peut être utilisé pour indiquer que l’appareil a été déconnecté ou débranché. |
|
Peut être utilisé pour indiquer que l’appareil a cessé de répondre (suspendu) ou qu’une défaillance générale s’est produite sur l’appareil. L’appareil doit peut-être être réinitialisé manuellement. |
|
Peut être utilisé pour indiquer que les données envoyées ou reçues de l’appareil ne peuvent pas être analysées correctement. Cela peut indiquer une erreur côté appareil ou de transport. Si des opérations du fournisseur MTP sont envoyées à l’appareil, cette erreur peut indiquer que les paramètres d’opération spécifiés ne sont pas du VARTYPE valide. |
|
Peut être utilisé pour indiquer que le VARTYPE spécifié n’est pas valide pour une propriété donnée. |
|
Une demande d’écriture a été effectuée sur une ressource sur l’appareil qui a été ouverte en mode Lecture à l’aide de IPortableDeviceResources::GetStream, ou une demande de lecture a été effectuée à une ressource ouverte pour écriture ou création. |
|
Une suppression non récursive est appelée pour un objet avec des enfants. |
|
Le paramètre fourni par l’application n’est pas valide. |
|
Peut être utilisé pour indiquer qu’une conversion d’une propriété datetime a échoué. |
|
Peut être utilisé pour indiquer que l’appareil a cessé de répondre (suspendu). L’appareil doit peut-être être réinitialisé manuellement. |
|
Peut être utilisé pour indiquer que l’appareil prend en charge une propriété, mais que cette valeur de propriété est actuellement vide ou non initialisée. Peut être utilisé pour indiquer que le contexte interne d’une opération de longue durée n’existe plus, car l’opération est terminée ou a été annulée. Les propriétés en bloc, l’énumération d’objets, le transfert et l’appel de méthodes de service d’appareil sont des exemples de ces opérations. Les applications doivent réessayer l’opération depuis le début. Peut être utilisé pour indiquer que l’objet spécifié n’existe pas. L’objet enfant peut se trouver en dehors de la hiérarchie du service d’appareil. |
|
Peut être utilisé pour indiquer qu’une opération n’est pas initialisée correctement. Cela indique généralement une erreur interne ou que l’application utilise un handle d’appareil obsolète. L’application doit réessayer l’opération à partir du début ou rouvrir l’appareil. |
|
Peut être utilisé pour indiquer qu’une propriété ou une commande n’est pas prise en charge par l’appareil. |
|
Une commande envoyée à l’appareil a été abandonnée en raison d’une annulation manuelle, par exemple en appelant l’une des méthodes Cancel dans l’API WPD. |
|
Peut être utilisé pour indiquer que l’appareil n’envoie pas la bonne quantité de données. |
|
Peut être utilisé pour indiquer qu’une ressource (telle qu’une miniature ou une icône) n’est pas présente sur l’appareil. |
|
Peut être utilisé pour indiquer que l’appareil a cessé de répondre (suspendu). L’appareil doit peut-être être réinitialisé manuellement. |
|
Peut être utilisé pour indiquer que l’appareil a cessé de répondre (suspendu). L’appareil doit peut-être être réinitialisé manuellement. |
|
Peut être utilisé pour indiquer que le format spécifié n’est pas pris en charge par l’appareil. |
|
Peut être utilisé pour indiquer que l’application n’a pas pu envoyer la quantité de données demandée à l’appareil. |
|
Pour un appareil MTP/IP, indique que la connexion à l’appareil a expiré. L’appareil doit peut-être être reconnecté manuellement. |
Codes d’erreur du protocole de transfert multimédia
Les appareils qui prennent en charge le protocole MTP (Media Transfer Protocol) peuvent retourner les codes d’erreur suivants. La plupart de ces codes d’erreur impliquent une erreur dans la pile MTP (communication entre le pilote de classe MTP et le périphérique), mais sont utiles pour diagnostiquer la situation d’erreur.
Description HRESULT | Code de réponse MTP | Description du code de réponse MTP | Détails |
---|---|---|---|
0x80042003 | 0x2003 | Session non ouverte | Indique que le handle de session de l’opération n’est pas une session actuellement ouverte. Cela indique une erreur interne dans la pile MTP. |
0x80042004 | 0x2004 | TransactionID non valide | Indique que transactionID est égal à zéro ou ne fait pas référence à une transaction valide. Cela indique une erreur interne dans la pile MTP. |
0x80042005 | 0x2005 | Opération non prise en charge | Indique que le code d’opération semble être un code valide, mais que l’appareil ne prend pas en charge l’opération. Cela indique une erreur interne dans la pile MTP. |
0x80042006 | 0x2006 | Paramètre non pris en charge | Indique qu’un paramètre autre que zéro a été spécifié conjointement avec l’opération et que le paramètre n’est pas utilisé pour cette opération. Cela indique une erreur interne dans la pile MTP. |
0x80042007 | 0x2007 | Transfert incomplet | Indique que le transfert n’a pas été effectué et que toutes les données transférées doivent être ignorées. Cette réponse ne correspond pas à une transaction annulée. |
0x80042008 | 0x2008 | StorageID non valide | Indique qu’un ID de stockage envoyé avec une opération ne fait pas référence à un magasin valide réel présent sur l’appareil. Cela indique une erreur interne dans la pile MTP. |
0x80042009 | 0x2009 | ObjectHandle non valide | Indique qu’un handle d’objet ne fait pas référence à un objet réel présent sur l’appareil. L’application doit énumérer à nouveau les stockages. |
0x8004200A | 0x200A | DeviceProp non pris en charge | Indique que le code de propriété de l’appareil semble être un code valide, mais que cette propriété n’est pas prise en charge par l’appareil. Cela indique une erreur interne dans la pile MTP. |
0x8004200B | 0x200B | ObjectFormatCode non valide | Indique que l’appareil ne prend pas en charge le code de format d’objet particulier fourni dans le contexte donné. |
0x80042012 | 0x2012 | Suppression partielle | Indique que seul un sous-ensemble des stockages indiqués pour la suppression ont été supprimés, car certains étaient protégés en écriture ou se trouvaient sur des magasins en lecture seule. |
0x80042013 | 0x2013 | Store non disponible | Indique que le magasin (ou le magasin qui contient l’objet indiqué) n’est pas physiquement disponible. Cela peut être dû à l’éjection du média. Cette réponse ne doit pas être utilisée pour indiquer que le magasin est occupé. |
0x80042014 | 0x2014 | Spécification par format non pris en charge | Indique que l’opération a tenté de spécifier une action uniquement sur des objets d’un format particulier et que cette fonctionnalité n’est pas prise en charge. L’opération doit être tentée à nouveau sans spécifier par format. Toute réponse de cette nature déduit que toute tentative future de spécification par format avec l’opération indiquée aboutira à la même réponse. Cela indique une erreur interne dans la pile MTP. |
0x80042015 | 0x2015 | Aucun ObjetInfo valide | Indique que l’hôte n’a pas fourni d’informations d’objet valides à l’appareil avant de transférer l’objet. Cela indique une erreur interne dans la pile MTP. |
0x80042016 | 0x2016 | Format de code non valide | Indique que le code de données n’a pas le format correct et n’est donc pas valide. Cela indique une erreur interne dans la pile MTP. |
0x80042017 | 0x2017 | Code fournisseur inconnu | L’appareil ne sait pas comment gérer le code étendu du fournisseur. |
0x8004201A | 0x201A | ParentObject non valide | Indique que l’objet n’est pas un objet parent valide. Cela indique une erreur interne dans la pile MTP. |
0x8004201B | 0x201B | Format DeviceProp non valide | Indique qu’une tentative de définition d’une propriété d’appareil a été effectuée, mais que les données ne sont pas de la taille ou du format appropriés. Cela indique une erreur interne dans la pile MTP. |
0x8004201C | 0x201C | Valeur deviceProp non valide | Indique qu’une tentative de définition d’une propriété d’appareil sur une valeur qui n’est pas autorisée par l’appareil a été effectuée. Cela indique une erreur interne dans la pile MTP |
0x8004201E | 0x201E | Session déjà ouverte | Indique que l’hôte a tenté d’ouvrir une session alors qu’une session est déjà ouverte. Cela indique une erreur interne dans la pile MTP. |
0x8004201F | 0x201F | Transaction annulée | Peut être utilisé pour indiquer que l’opération a été interrompue en raison d’une annulation manuelle. |
0x80042020 | 0x2020 | Spécification de destination non prise en charge | Indique que l’appareil ne prend pas en charge la spécification de destination par l’hôte. Cela indique une erreur interne dans la pile MTP. |
0x8004A801 | 0xA801 | Invalid_ObjectPropCode | Indique que l’appareil ne prend pas en charge le code de propriété d’objet envoyé dans ce contexte. Cela indique une erreur interne dans la pile MTP. |
0x8004A802 | 0xA802 | Invalid_ObjectProp_Format | Indique qu’une propriété d’objet envoyée à l’appareil est dans une taille ou un type non pris en charge. Cela indique une erreur interne dans la pile MTP. |
0x8004A803 | 0xA803 | Invalid_ObjectProp_Value | Indique qu’une propriété d’objet envoyée à l’appareil est le type correct, mais contient une valeur qui n’est pas prise en charge. Cela indique une erreur interne dans la pile MTP. |
0x8004A804 | 0xA804 | Invalid_ObjectReference | Indique qu’une référence d’objet envoyée n’est pas valide. Soit la référence contient un handle d’objet non présent sur l’appareil, soit la référence qui tente d’être définie n’est pas prise en charge dans le contexte. Cela peut être dû à une erreur dans la pile MTP ou à une application utilisant un objet de stockage obsolète. |
0x8004A806 | 0xA806 | Invalid_Dataset | Indique que le jeu de données envoyé dans la phase de données de cette opération n’est pas valide. Cela indique une erreur interne dans la pile MTP. |
0x8004A807 | 0xA807 | Object_Too_Large | Indique que l’objet souhaité à envoyer ne peut pas être stocké dans le système de fichiers de l’appareil. Il ne doit pas être retourné lorsque l’espace de stockage est insuffisant. |
0x8004A301 | 0xA301 | Invalid_ServiceID | Indique qu’un ID de service envoyé avec une opération ne fait pas référence à un service valide réel présent sur l’appareil. Cela indique une erreur interne dans la pile MTP. |
0x8004A302 | 0xA302 | Invalid_ServicePropCode | Indique que l’appareil ne prend pas en charge le code de propriété de service envoyé dans ce contexte. Cela indique une erreur interne dans la pile MTP. |
Spécifications
Condition requise | Valeur |
---|---|
En-tête |
|