Bagikan melalui


Menangani Transfer File Secara Manual

Aplikasi Anda dapat menerapkan antarmukaIWMDMOperation untuk mengelola bagian dari proses membaca atau menulis. Pada baca dari perangkat, implementasi memungkinkan aplikasi untuk menerima blok data mentah dari file perangkat. Pada tulis ke perangkat, aplikasi dapat mengirim blok data mentah ke file di perangkat.

Dalam operasi baca dan tulis, metode IWMDMOperation::TransferObjectData meneruskan data antara komputer dan perangkat. Untuk mengetahui arah transfer data, aplikasi Anda harus mengatur bendera saat Windows Media Device Manager memanggil BeginRead atau BeginWrite. Ketika metode End dipanggil, aplikasi harus mengatur ulang bendera ini.

Nota

Jika penyedia layanan dan perangkat menerapkan dengan benar IMDSPObject2, akan pertama-tama memanggil metode aplikasi IWMDMOperation3::TransferObjectDataOnClearChannel, jika diimplementasikan. Metode ini adalah cara transfer data yang lebih efisien. TransferObjectDataOnClearChannel ditangani dengan cara yang sama seperti TransferObjectData, kecuali bahwa data tidak pernah dienkripsi dan tidak memiliki nilai MAC untuk diverifikasi.

 

Bagian berikut menjelaskan proses membaca dan menulis, ketika aplikasi Anda menerapkan IWMDMOperation.

Membaca dari perangkat

Saat membaca file dari perangkat, Windows Media Device Manager memanggil metode IWMDMOperation berikut secara berurutan:

  • BeginRead Dipanggil untuk memberi tahu aplikasi bahwa pembacaan dari perangkat dimulai.
  • TransferObjectData Dipanggil satu atau beberapa kali. Pemrosesan data dijelaskan dalam langkah-langkah berikut:
    1. TransferObjectData menerima buffer, pData, ukuran pdwSize byte, diisi dengan data, dan MAC untuk memverifikasi data masuk.
    2. Aplikasi memverifikasi parameter masuk dengan MAC data masuk.
    3. Aplikasi ini mendekripsi dan membaca sebanyak mungkin data dalam pData, dan memodifikasi nilai pdwSize yang dikembalikan untuk menunjukkan berapa banyak byte yang benar-benar dibaca.
    4. Aplikasi ini mendekripsi data, menggunakan CSecureChannelClient::D ecryptParam, dan menyimpannya atau menggunakannya, sesuai kebutuhan.
    5. Fungsi TransferObjectData mengembalikan S_OK.
    6. Windows Media Device Manager terus memanggil TransferObjectData hingga aplikasi selesai membaca semua data dari file, atau aplikasi mengembalikan WMDM_E_USER_CANCELLED untuk membatalkan operasi (dalam hal ini, pembacaan dibatalkan, dan Windows Media Device Manager memanggil Penyelesaian).
  • End Dipanggil untuk memberi tahu aplikasi bahwa pembacaan dari perangkat sedang berakhir.

Menulis ke perangkat

Saat menulis file ke perangkat, Windows Media Device Manager memanggil metode IWMDMOperation berikut secara berurutan:

  • GetObjectName Dipanggil untuk memungkinkan aplikasi menentukan nama untuk penyimpanan baru. Metode ini hanya dipanggil jika aplikasi tidak menentukan nama dalam metode Sisipkan.
  • GetObjectAttributes Dipanggil untuk memungkinkan aplikasi menentukan atribut untuk penyimpanan baru pada perangkat.
  • BeginWrite Dipanggil untuk memberi tahu bahwa penulisan ke perangkat akan dimulai.
  • GetObjectTotalSize Dipanggil untuk mengambil ukuran total objek yang ditulis ke perangkat, untuk mengaktifkan pengoptimalan transfer, dan juga untuk memberi Windows Media Device Manager kesempatan untuk membatalkan transfer jika file terlalu besar untuk perangkat.
  • TransferObjectData Dipanggil satu atau beberapa kali. Pemrosesan data dijelaskan dalam langkah-langkah berikut:
    1. TransferObjectData menerima pointer ke buffer dengan ukuran pdwSize byte.
    2. Aplikasi ini mendapatkan blok data untuk dikirim ke perangkat, biasanya dengan membaca data dari file, dan mengisi buffer yang diterima hingga pdwSize byte. Ini harus memodifikasi pdwSize (jika perlu) untuk mencerminkan berapa banyak byte yang ditambahkan ke buffer.
    3. Aplikasi membuat MAC dari semua parameter metode.
    4. Aplikasi mengenkripsi data dalam buffer, menggunakan CSecureChannelClient::EncryptParam.
    5. TransferObjectData mengembalikan S_OK untuk menunjukkan bahwa ada lebih banyak data, atau S_FALSE untuk menunjukkan bahwa tidak ada lagi data. Jika aplikasi mengembalikan WMDM_E_USER_CANCELLED, operasi penulisan dibatalkan dan Windows Media Device Manager akan memanggil End.
    6. Windows Media Device Manager terus memanggil TransferObjectData selama aplikasi mengembalikan S_OK.
  • End Dipanggil untuk memberi tahu bahwa penulisan ke perangkat berakhir.

Untuk contoh kode, lihat Enkripsi dan Dekripsi.

Membuat Aplikasi Windows Media Device Manager