Partager via


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
E_WPD_DEVICE_ALREADY_OPENED
0x802A0001
La connexion de l’appareil a déjà été ouverte par un appel précédent à IPortableDevice::Open.
E_WPD_DEVICE_IS_HUNG
0x802A0006
L’appareil ne répond plus aux entrées.
E_WPD_DEVICE_NOT_OPEN
0x802A0002
La connexion de l’appareil n’a pas encore été ouverte par un appel à IPortableDevice::Open.
E_WPD_OBJECT_ALREADY_ATTACHED_TO_DEVICE
0x802A0003
L’objet d’interface a déjà été attaché à l’interface de l’appareil.
E_WPD_OBJECT_ALREADY_ATTACHED_TO_SERVICE
0x802A00CA
L’objet interface a déjà été attaché à l’interface IPortableDeviceService .
E_WPD_OBJECT_NOT_ATTACHED_TO_DEVICE
0x802A0004
L’objet d’interface n’a pas été attaché à l’appareil.
E_WPD_OBJECT_NOT_ATTACHED_TO_SERVICE
0x802A00CB
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 .
E_WPD_OBJECT_NOT_COMMITED
0x802A0005
IStream::Commit n’a jamais été appelé lors de la création d’un objet avec des données sur un appareil.
E_WPD_SERVICE_ALREADY_OPENED
0x802A00C8
La connexion de service a déjà été ouverte par un appel précédent à IPortableDevice::Open.
E_WPD_SERVICE_BAD_PARAMETER_ORDER
0x802A00CC
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.
E_WPD_SERVICE_NOT_OPEN
0x802A00C9
La connexion de service n’a pas encore été ouverte par un appel à IPortableDeviceService::Open.
E_WPD_SMS_INVALID_RECIPIENT
0x802A0064
Le destinataire spécifié pour un sms n’est pas valide.
E_WPD_SMS_INVALID_MESSAGE_BODY
0x802A0065
Le corps d’un message spécifié pour un sms n’est pas valide.
E_WPD_SMS_SERVICE_UNAVAILABLE
0x802A0066
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
NS_E_DRM_DEBUGGING_NOT_ALLOWED
0xC00D2767
Vous ne pouvez pas déboguer lors de l’accès au contenu protégé par DRM.
NS_E_NOT_LICENSED
0xC00D00CD
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
ERROR_ACCESS_DENIED
0x80070005
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.
ERROR_ARITHMETIC_OVERFLOW
0x80070216
Peut être utilisé pour indiquer que le nombre d’éléments dans un tableau de données a dépassé ses limites (ULONGLONG).
ERROR_BUSY
0x800700AA
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.
ERROR_CANCELLED
0x800704C7
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.
ERROR_DATATYPE_MISMATCH
0x8007070C
Peut être utilisé pour indiquer qu’un paquet de données non valide a été reçu de l’appareil.
ERROR_DEVICE_IN_USE
0x80070964
Pour un appareil MTP/IP, indique que la connexion n’a pas pu s’initialiser, car l’appareil est en cours d’utilisation.
ERROR_DEVICE_NOT_CONNECTE
0x8007048F
L’appareil a été déconnecté ou débranché.
ERROR_DIR_NOT_EMPTY
0x80070091
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.
ERROR_EMPTY
0x800710D2
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.
ERROR_FILE_NOT_FOUND
0x80070002
Peut être utilisé pour indiquer que l’appareil a été déconnecté ou débranché.
ERROR_GEN_FAILURE
0x8007001F
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.
ERROR_INVALID_DATA
0x8007000D
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.
ERROR_INVALID_DATATYPE
0x8007070C
Peut être utilisé pour indiquer que le VARTYPE spécifié n’est pas valide pour une propriété donnée.
ERROR_INVALID_FUNCTION
0x80070001
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.
ERROR_INVALID_OPERATION
0x800710DD
Une suppression non récursive est appelée pour un objet avec des enfants.
ERROR_INVALID_PARAMETER
0x80070057
Le paramètre fourni par l’application n’est pas valide.
ERROR_INVALID_TIME
0x8007076D
Peut être utilisé pour indiquer qu’une conversion d’une propriété datetime a échoué.
ERROR_IO_DEVICE
0x8007045D
Peut être utilisé pour indiquer que l’appareil a cessé de répondre (suspendu). L’appareil doit peut-être être réinitialisé manuellement.
ERROR_NOT_FOUND
0x80070490
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.
ERROR_NOT_READY
0x80070015
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.
ERROR_NOT_SUPPORTED
0x80070032
Peut être utilisé pour indiquer qu’une propriété ou une commande n’est pas prise en charge par l’appareil.
ERROR_OPERATION_ABORTED
0x800703E3
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.
ERROR_READ_FAULT
0x8007001E
Peut être utilisé pour indiquer que l’appareil n’envoie pas la bonne quantité de données.
ERROR_RESOURCE_NOT_AVAILABLE
0x8007138E
Peut être utilisé pour indiquer qu’une ressource (telle qu’une miniature ou une icône) n’est pas présente sur l’appareil.
ERROR_SEM_TIMEOUT
0x80070079
Peut être utilisé pour indiquer que l’appareil a cessé de répondre (suspendu). L’appareil doit peut-être être réinitialisé manuellement.
ERROR_TIMEOUT
0x800705B4
Peut être utilisé pour indiquer que l’appareil a cessé de répondre (suspendu). L’appareil doit peut-être être réinitialisé manuellement.
ERROR_UNSUPPORTED_TYPE
0x8007065E
Peut être utilisé pour indiquer que le format spécifié n’est pas pris en charge par l’appareil.
ERROR_WRITE_FAULT
0x8007001D
Peut être utilisé pour indiquer que l’application n’a pas pu envoyer la quantité de données demandée à l’appareil.
WSAETIMEDOUT
0x8007274c
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
PortableDevice.h

Voir aussi

Constantes