DDI Perlindungan Konten

Bagian ini hanya berlaku untuk Windows 7 dan yang lebih baru, dan Windows Server 2008 R2 dan versi sistem operasi Windows yang lebih baru.

DDI Perlindungan Konten adalah ekstensi ke DDI Direct3D versi 9 untuk melindungi video. DDI Perlindungan Konten terdiri dari titik masuk yang dijelaskan di bagian ini.

Fungsi DDI Perlindungan Konten yang Diperlukan

Jika perlindungan konten diterapkan dalam driver tampilan mode pengguna, driver harus mendukung fungsi DDI Perlindungan Konten berikut:

Kapabilitas Perlindungan Konten

Driver tampilan mode pengguna hanya melaporkan kemampuan perlindungan konten jika mendukung masing-masing fungsi DDI Perlindungan Konten yang diperlukan sebelumnya. Nilai D3DDDICAPS_TYPE berikut digunakan oleh runtime Direct3D untuk mengambil informasi tentang kemampuan perlindungan konten yang didukung driver tampilan mode pengguna. Runtime mengatur nilai D3DDDICAPS_TYPE ini dalam anggota Jenis struktur D3DDDIARG_GETCAPS yang dituju oleh parameter pData fungsi GetCaps driver saat runtime memanggil GetCaps.

D3DDDICAPS_GETCONTENTPROTECTIONCAPS
Runtime memasok pointer ke struktur DDICONTENTPROTECTIONCAPS untuk kombinasi enkripsi dan dekode tertentu yang harus digunakan driver. Driver mengembalikan penunjuk ke struktur D3DCONTENTPROTECTIONCAPS yang diisi yang menjelaskan kemampuan perlindungan konten driver untuk kombinasi enkripsi dan dekode. Untuk informasi selengkapnya tentang D3DCONTENTPROTECTIONCAPS, lihat dokumentasi DirectX SDK.

D3DDDICAPS_GETCERTIFICATESIZE
Driver menyediakan penunjuk ke angka yang menentukan ukuran, dalam byte, sertifikat driver yang digunakan untuk saluran atau jenis kripto. Runtime Direct3D kemudian menggunakan ukuran ini untuk mengalokasikan buffer untuk menyimpan informasi sertifikat yang diterima runtime saat runtime memanggil GetCaps dengan D3DDDICAPS_GETCERTIFICATE.

D3DDDICAPS_GETCERTIFICATE
Runtime memasok pointer ke struktur DDICERTIFICATEINFO yang menjelaskan sertifikat yang harus diambil driver.

Untuk saluran terautentikasi, driver menggunakan sertifikat OPM yang ada, yang merupakan sertifikat X.509 yang merupakan akar yang ditandatangani oleh Microsoft.

Aplikasi dapat meminta sertifikat driver untuk menentukan informasi berikut:

  • Apakah driver tepercaya.

  • Apakah driver dicabut.

  • Kunci umum pengemudi. Aplikasi ini menggunakan kunci umum driver untuk membuat kunci sesi untuk saluran terautentikasi yang digunakan untuk autentikasi.

Panggilan ke GetCaps dengan set D3DDDICAPS_GETCERTIFICATE gagal jika dipanggil untuk saluran terautentikasi Direct3D 9 karena saluran ini tidak mendukung sertifikat atau autentikasi.

Untuk sesi kripto, driver mengembalikan sertifikatnya untuk jenis kripto yang diberikan. Bergantung pada jenis kripto dan pertukaran kunci yang digunakan, sertifikat mungkin atau mungkin tidak digunakan. Ada kemungkinan juga bahwa berbagai jenis kripto dapat menggunakan sertifikat yang berbeda.

Fungsi DDI Perlindungan Konten Opsional

Driver dapat secara opsional mendukung fungsi DDI Perlindungan Konten berikut:

  • Fungsi EncryptionBlt membaca data terenkripsi dari permukaan yang dilindungi.

  • Fungsi GetPitch mengambil pitch permukaan yang dilindungi.

  • Fungsi StartSessionKeyRefresh mengembalikan angka acak yang kemudian dapat digunakan oleh decoder/application dan driver/hardware untuk melakukan operasi OR eksklusif (XOR) dengan kunci sesi.

  • Fungsi FinishSessionKeyRefresh menunjukkan bahwa semua buffer dari titik waktu tersebut akan menggunakan nilai kunci sesi yang diperbarui.

  • Fungsi GetEncryptionBltKey mengembalikan kunci yang digunakan untuk mendekripsi data yang dikembalikan fungsi EncryptionBlt driver.

  • Fungsi DecryptionBlt menulis data ke permukaan yang dilindungi.

Sumber Daya yang Dilindungi Isi

Bendera D3DDDI_RESOURCEFLAGS berikut digunakan oleh runtime Direct3D untuk konten yang dilindungi. Runtime mengatur bendera D3DDDI_RESOURCEFLAGS ini di anggota Bendera struktur D3DDDIARG_CREATERESOURCE yang ditunjukkan parameter pResource fungsi CreateResource driver saat runtime memanggil CreateResource.

RestrictedContent
Sumber daya mungkin berisi konten yang dilindungi. Aplikasi mungkin atau mungkin tidak mengaktifkan perlindungan konten secara eksplisit sebelum aplikasi membuat sumber daya. Driver harus memastikan bahwa runtime menempatkan alokasi untuk sumber daya dalam kumpulan memori yang dapat dilindungi. Driver harus memungkinkan pembuatan sumber daya yang dilindungi yang dapat dikunci. Namun, driver harus secara eksplisit gagal panggilan ke fungsi Lock-nya untuk mengunci permukaan ini saat perlindungan konten diaktifkan.

RestrictSharedAccess
Hanya proses tertentu yang harus diizinkan mengakses sumber daya bersama.

Driver harus membatasi akses bersama ke sumber daya ini. Runtime hanya dapat memanggil fungsi OpenResource driver untuk membuka sumber daya ini dengan perangkat tampilan (hDevice) dalam proses yang membuat sumber daya atau oleh perangkat yang secara eksplisit diberikan akses melalui saluran yang diautentikasi.