Prise en charge des extensions MTP
Protocole de transfert de médias
Le protocole MTP (Media Transfer Protocol) 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 étage de voiture ou un boîtier 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. Une phase de données peut être associée à la commande. Si c’est le cas, la direction du Workflow 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 indiquant des flux de données pour les nouvelles commandes.
Le répondeur peut démarrer une communication indépendante 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. Si des données doivent être lues dans le cadre de l’événement, l’initiateur doit envoyer une commande MTP et l’appareil peut 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 varie selon qu’il existe une phase de données, et si toutes les données associées sont lues ou écrites sur l’appareil. Le tableau suivant décrit les trois commandes d’extension MTP possibles.
N’oubliez pas que ces commandes sont spécifiques à MTP ; et sont donc uniquement implémentées par le pilote de classe MTP WPD.
| Commande | Description |
|---|---|
| _transfert de _ _ données de _ fin _ MTP _ MTP de commande wpd | Émet une commande MTP qui signale la conclusion d’une opération de lecture ou d’écriture de données. |
| commande _ wpd _ MTP _ ext _ Execute _ Command _ sans _ _ phase Data | Émet une commande MTP sans une phase de données correspondante. |
| commande _ wpd _ MTP _ ext _ Execute Command Execute _ _ avec les _ données _ à _ écrire | Émet une commande MTP qui est suivie de données d’accompagnement, qui seront écrites sur l’appareil. |
| commande _ wpd _ MTP _ ext _ Execute Command Execute _ _ avec les _ données _ à _ lire | Émet une commande MTP qui est suivie de données d’accompagnement, qui sont lues à partir de l’appareil. |
| _commande wpd _ MTP MTP de _ lecture des _ _ données | Émet une commande MTP qui envoie les données de l’appareil au PC. |
| _données d' _ _ écriture MTP _ ext _ de la commande wpd | Émet une commande MTP qui envoie des données à l’appareil à partir du PC. |
Quelle que soit la phase, vous devez spécifier le code de l' _ _ _ _ opération _ ext MTP de la propriété wpd et les paramètres de l' _ _ _ _ opération MTP _ ext de la propriété wpd .
Si le pilote MTP a pu envoyer la commande à l’appareil, les valeurs de retour contiennent toujours le _ Code de _ _ _ réponse _ MTP ext de la propriété wpd. Si le code de réponse indique une réussite et si la sémantique de la commande autorise les paramètres de réponse, les paramètres de _ _ _ réponse MTP ext _ _ de la propriété wpd seront également disponibles.