Bagikan melalui


Pembatasan Bidang Penggunaan

Nota

Topik ini berlaku untuk Windows 7 atau yang lebih baru.

 

Pembatasan bidang penggunaan adalah ketentuan yang membatasi bagaimana lisensi untuk teknologi tertentu dapat digunakan.

Media Foundation menyediakan mekanisme untuk memberlakukan pembatasan bidang penggunaan pada transformasi Media Foundation (MFTs), terutama codec. Mekanisme ini mengharuskan MFT untuk memblokir penggunaannya sendiri oleh aplikasi sampai aplikasi telah melakukan jabat tangan dengan MFT. Media Foundation tidak mendefinisikan jabat tangan —biasanya, itu akan melibatkan semacam pertukaran kriptografi.

Pendaftaran dan Enumerasi

Jika MFT memiliki batasan bidang penggunaan, atur bendera MFT_ENUM_FLAG_FIELDOFUSE saat Anda mendaftarkan MFT. Bendera ini berlaku untuk API pendaftaran MFT berikut:

Secara default, MFTs yang terdaftar dengan bendera ini dikecualikan dari hasil enumerasi. Untuk menghitung MFTs dengan batasan bidang penggunaan, panggil MFTEnumEx dan tentukan bendera MFT_ENUM_FLAG_FIELDOFUSE di parameter Bendera. Diagram berikut mengilustrasikan proses ini.

diagram memperlihatkan mft dan aplikasi yang mengirim data ke registri

FungsiMFTEnumselalu mengecualikan MFT apa pun yang memiliki batasan bidang penggunaan.

Membuka kunci MFT

Untuk menggunakan MFT dengan batasan bidang penggunaan, lakukan langkah-langkah berikut:

  1. Aplikasi ini mengimplementasikan antarmukaIMFFieldOfUseMFTUnlock.
  2. Metode IMFFieldOfUseMFTUnlock::Unlock membawa pointer ke antarmuka IUnknown MFT.
  3. Dalam metode Unlock, aplikasi melakukan jabat tangan yang diperlukan, menggunakan mekanisme apa pun yang ditentukan oleh MFT. Langkah ini tidak didefinisikan oleh Media Foundation API.
  4. Jika metode Unlock berhasil, MFT membuka kunci itu sendiri.

Aplikasi menentukan penunjuk IMFFieldOfUseMFTUnlock dengan mengatur atribut MFT_FIELDOFUSE_UNLOCK_Attribute. Ada beberapa cara berbeda untuk mengatur atribut ini, tergantung pada cara aplikasi Anda membuat decoder atau alur pengodean:

API Cara Membuka Kunci Bidang-Of-Use
Pembaca Sumber Jika aplikasi Anda menggunakan Pembaca Sumber untuk mendekode file media, atur atribut MFT_FIELDOFUSE_UNLOCK_Attribute dalam parameter konfigurasi. Lihat Atribut Pembaca Sumber.
Penulis Sink Jika aplikasi Anda menggunakan penulis sink untuk mengodekan file media, atur atribut MFT_FIELDOFUSE_UNLOCK_Attribute dalam parameter konfigurasi. Lihat Atribut Penulis Sink.
Transkode Cepat Jika aplikasi Anda menggunakan fitur Fast Transcode untuk membuat topologi pengodean, atur MFT_FIELDOFUSE_UNLOCK_Attribute saat Anda memanggil IMFTranscodeProfile::SetContainerAttributes. Untuk informasi selengkapnya tentang fitur Fast Transcode, lihat Transcode API.
Topologi Jika Anda membuat topologi secara langsung, atur MFT_FIELDOFUSE_UNLOCK_Attribute sebagai atribut pada topologi. Lihat Atribut Topologi.
Objek Aktivasi MFT Jika aplikasi Anda secara langsung menghitung dekoder atau encoder yang akan digunakannya, atur MFT_FIELDOFUSE_UNLOCK_Attribute pada imfactivate pointer yang dikembalikan oleh fungsi MFTEnumEx.
Atur atribut sebelum memanggil IMFActivate::ActivateObject untuk membuat MFT. Objek aktivasi memanggil IMFFieldOfUseMFTUnlock::Membuka kunci saat membuat MFT.

 

Diagram berikut menunjukkan hubungan antara objek aktivasi MFT dan antarmukaIMFFieldOfUseMFTUnlock.

diagram memperlihatkan aplikasi, objek aktivasi, dan mft dengan panah ke objek fou, yang memiliki panah kembali ke mft

Transformasi Media Foundation