Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Protocole de transfert multimédia
Media Transfer Protocol (MTP) est une extension du protocole PTP (Picture Transfer Protocol). Par conséquent, toutes les sémantiques de protocole PTP sont valides dans MTP.
MTP communique à l’aide de commandes et de réponses entre deux parties, l’initiateur et le répondeur. Les rôles des appareils impliqués sont très clairement définis. Le PC est généralement l’initiateur et l’appareil est toujours le répondeur. Un appareil non PC peut également être un initiateur (par exemple, un pont de voiture ou une boîte Microsoft X). Un appareil ne peut jamais assumer les deux rôles en même temps.
L’initiateur démarre la communication en envoyant une commande au répondeur. Le répondeur traite la commande et renvoie une réponse appropriée. Il peut y avoir une phase de données associée à la commande. Si c’est le cas, la direction du flux de données doit être connue au préalable et acceptée par l’initiateur et le répondeur. N’oubliez pas qu’il n’existe pas d’en-tête descriptif qui indique les flux de données pour les nouvelles commandes.
Le répondeur peut démarrer la communication indépendamment de l’initiateur. Par exemple, le répondeur peut envoyer des événements à l’initiateur. Toutefois, aucune donnée ne peut être envoyée avec l’événement. S’il existe des données qui doivent être lues dans le cadre de l’événement, l’initiateur doit envoyer une commande MTP, et l’appareil peut ensuite envoyer des données en réponse à la commande.
Pour obtenir une description complète de MTP, reportez-vous à la spécification MTP.
Envoi de commandes MTP
Les applications peuvent envoyer des commandes MTP à un appareil en appelant la méthode IPortableDevice::SendCommand . La commande envoyée dépend du fait qu’il existe une phase de données et, si les données associées sont lues ou écrites sur l’appareil. Le tableau suivant décrit les trois commandes d’extension MTP possibles.
Sachez que ces commandes sont spécifiques à MTP ; et sont donc implémentés uniquement par le pilote de classe WPD MTP.
Commande | Description |
---|---|
WPD_COMMAND_MTP_EXT_END_DATA_TRANSFER | Émet une commande MTP qui signale la conclusion d’une opération de lecture ou d’écriture de données. |
WPD_COMMAND_MTP_EXT_EXECUTE_COMMAND_WITHOUT_DATA_PHASE | Émet une commande MTP sans phase de données correspondante. |
WPD_COMMAND_MTP_EXT_EXECUTE_COMMAND_WITH_DATA_TO_WRITE | Émet une commande MTP suivie des données associées, qui seront écrites sur l’appareil. |
WPD_COMMAND_MTP_EXT_EXECUTE_COMMAND_WITH_DATA_TO_READ | Émet une commande MTP suivie des données associées, qui sont lues à partir de l’appareil. |
WPD_COMMAND_MTP_EXT_READ_DATA | Émet une commande MTP qui envoie des données de l’appareil au PC. |
WPD_COMMAND_MTP_EXT_WRITE_DATA | Émet une commande MTP qui envoie des données à l’appareil à partir du PC. |
Quelle que soit la phase, WPD_PROPERTY_MTP_EXT_OPERATION_CODE et WPD_PROPERTY_MTP_EXT_OPERATION_PARAMS doivent être spécifiés.
Si le pilote MTP a pu envoyer la commande à l’appareil, les valeurs de retour contiennent toujours WPD_PROPERTY_MTP_EXT_RESPONSE_CODE. Si le code de réponse indique la réussite et si la sémantique de la commande autorise les paramètres de réponse, WPD_PROPERTY_MTP_EXT_RESPONSE_PARAMS sera également disponible.
Rubriques connexes