Mendukung Ekstensi MTP

Protokol Transfer Media

Protokol Transfer Media (MTP) adalah ekstensi untuk Protokol Transfer Gambar (PTP). Akibatnya, semua semantik protokol PTP berlaku di MTP.

MTP berkomunikasi dengan menggunakan perintah dan respons antara dua pihak, inisiator dan responden. Peran perangkat yang terlibat sangat jelas didefinisikan. PC biasanya adalah inisiator, dan perangkat selalu menjadi responden. Perangkat non-PC juga bisa menjadi inisiator (misalnya, dek mobil atau kotak X Microsoft). Perangkat tidak pernah dapat mengasumsikan kedua peran secara bersamaan.

Inisiator memulai komunikasi dengan mengirim perintah ke responden. Responden memproses perintah dan mengirim kembali respons yang sesuai. Mungkin ada fase data yang terkait dengan perintah . Jika demikian, arah aliran data harus diketahui sebelumnya dan diterima oleh inisiator dan responden. Ketahuilah bahwa tidak ada header deskriptif yang menunjukkan aliran data untuk perintah baru.

Responden dapat memulai komunikasi secara independen dari inisiator. Misalnya, responden dapat mengirim peristiwa ke inisiator. Namun, tidak ada data yang dapat dikirim bersama dengan peristiwa tersebut. Jika ada data yang perlu dibaca sebagai bagian dari peristiwa, inisiator harus mengirim perintah MTP, dan perangkat kemudian dapat mengirim data sebagai respons terhadap perintah.

Untuk deskripsi lengkap MTP, lihat spesifikasi MTP.

Mengirim Perintah MTP

Aplikasi dapat mengirim perintah MTP ke perangkat dengan memanggil metode IPortableDevice::SendCommand . Perintah yang dikirim tergantung pada apakah ada fase data, dan, apakah ada data yang menyertainya dibaca dari atau ditulis ke perangkat. Tabel berikut menjelaskan tiga kemungkinan perintah ekstensi MTP.

Ketahuilah bahwa perintah ini khusus untuk MTP; dan oleh karena itu, hanya diimplementasikan oleh driver kelas MTP WPD.

Perintah Deskripsi
WPD_COMMAND_MTP_EXT_END_DATA_TRANSFER Mengeluarkan perintah MTP yang menandakan kesimpulan operasi baca atau tulis data.
WPD_COMMAND_MTP_EXT_EXECUTE_COMMAND_WITHOUT_DATA_PHASE Mengeluarkan perintah MTP tanpa fase data yang sesuai.
WPD_COMMAND_MTP_EXT_EXECUTE_COMMAND_WITH_DATA_TO_WRITE Mengeluarkan perintah MTP yang diikuti dengan data yang menyertainya, yang akan ditulis ke perangkat.
WPD_COMMAND_MTP_EXT_EXECUTE_COMMAND_WITH_DATA_TO_READ Mengeluarkan perintah MTP yang diikuti dengan data yang menyertainya, yang dibaca dari perangkat.
WPD_COMMAND_MTP_EXT_READ_DATA Mengeluarkan perintah MTP yang mengirim data dari perangkat ke PC.
WPD_COMMAND_MTP_EXT_WRITE_DATA Mengeluarkan perintah MTP yang mengirim data ke perangkat dari PC.

 

Terlepas dari fasenya, WPD_PROPERTY_MTP_EXT_OPERATION_CODE dan WPD_PROPERTY_MTP_EXT_OPERATION_PARAMS harus ditentukan.

Jika driver MTP dapat mengirim perintah ke perangkat, nilai yang dikembalikan akan selalu berisi WPD_PROPERTY_MTP_EXT_RESPONSE_CODE. Jika kode respons menunjukkan keberhasilan dan jika semantik perintah memungkinkan parameter respons, WPD_PROPERTY_MTP_EXT_RESPONSE_PARAMS juga akan tersedia.

Panduan Pemrograman