Bagikan melalui


Menggunakan OPM DDI

Subsistem kernel grafis Microsoft DirectX (Dxgkrnl.sys) menggunakan OPM DDI untuk membuat output yang dilindungi OPM, menghancurkan output yang dilindungi OPM, mendapatkan sertifikat, mengonfigurasi output yang dilindungi, mendapatkan informasi tentang output yang dilindungi, dan mendapatkan informasi tentang adaptor grafis. Subsistem kernel grafis DirectX mendapatkan penunjuk ke fungsi OPM DDI ketika memanggil fungsi DxgkDdiQueryInterface driver miniport tampilan untuk mengkueri antarmuka yang diidentifikasi oleh GUID_DEVINTERFACE_OPM dan DXGK_OPM_INTERFACE_VERSION_1. Urutan berikut menjelaskan bagaimana OPM DDI biasanya digunakan untuk membuat, memanipulasi, dan menghancurkan output yang dilindungi OPM:

  1. Subsistem kernel grafis DirectX memanggil fungsi DxgkDdiOPMCreateProtectedOutput untuk membuat output yang dilindungi OPM. Output yang dilindungi OPM selalu sesuai dengan satu output video fisik. DxgkDdiOPMCreateProtectedOutput mengembalikan handel ke output yang baru dibuat.

  2. Subsistem kernel grafis DirectX memanggil fungsi DxgkDdiOPMGetCertificateSize dan DxgkDdiOPMGetCertificate untuk mendapatkan sertifikat OPM driver miniport tampilan atau sertifikat COPP dan ukurannya.

    Catatan

    DxgkDdiOPMCreateProtectedOutput, DxgkDdiOPMGetCertificateSize, dan DxgkDdiOPMGetCertificate adalah satu-satunya fungsi DDI OPM yang subsistem kernel grafis DirectX tidak melewati handel output yang dilindungi.

  3. Subsistem kernel grafis DirectX memanggil fungsi DxgkDdiOPMGetRandomNumber untuk mendapatkan nomor acak output yang dilindungi.

  4. Subsistem kernel grafis DirectX melewati buffer 256 byte dalam panggilan ke fungsi DxgkDdiOPMSetSigningKeyAndSequenceNumbers. Buffer berisi data yang dienkripsi dengan salah satu kunci umum driver miniport tampilan. Untuk informasi selengkapnya tentang kunci publik, unduh dokumen Perlindungan Konten Output dari situs web Perlindungan Konten Output dan Windows Vista . Kunci publik yang digunakan tergantung pada semantik output yang dilindungi. Kunci umum dalam sertifikat OPM driver miniport tampilan digunakan jika output yang dilindungi memiliki semantik OPM. Kunci umum dalam sertifikat COPP driver miniport tampilan digunakan jika output yang dilindungi memiliki semantik COPP. Skema enkripsi yang digunakan untuk mengenkripsi data juga tergantung pada semantik output yang dilindungi. Data dienkripsi dengan algoritma RSA standar jika output yang dilindungi memiliki semantik COPP dan dengan skema enkripsi RSAES-OAEP jika output yang dilindungi memiliki semantik OPM. Untuk informasi tentang RSA, AES, dan RSAES-OAEP, lihat situs web RSA Laboratories . Driver miniport tampilan menggunakan kunci privat dan metode dekripsi yang sesuai untuk mendekripsi data. Angka acak, dua angka urutan acak, dan kunci AES 128-bit berada dalam data yang didekripsi. Drive miniport tampilan memastikan bahwa angka acak cocok dengan angka acak yang dikembalikan driver ketika fungsi DxgkDdiOPMGetRandomNumber dipanggil. Driver kemudian menyimpan dua nomor urutan dan kunci AES 128-bit.

  5. Subsistem kernel grafis DirectX sekarang dapat memanggil fungsi DxgkDdiOPMGetInformation atau DxgkDdiOPMGetCOPPCompatibleInformation untuk mendapatkan informasi dari output yang dilindungi. Subsistem kernel grafis DirectX juga dapat memanggil DxgkDdiOPMConfigureProtectedOutput untuk mengonfigurasi output yang dilindungi. DxgkDdiOPMGetInformation dapat dipanggil hanya jika output memiliki semantik OPM dan DxgkDdiOPMGetCOPPCompatibleInformation dapat dipanggil hanya jika output memiliki semantik COPP. Biasanya, subsistem kernel grafis DirectX memanggil DxgkDdiOPMGetInformation atau DxgkDdiOPMGetCOPPCompatibleInformation untuk mendapatkan informasi tentang output dan kemudian memanggil DxgkDdiOPMConfigureProtectedOutput satu atau beberapa kali untuk mengonfigurasi output. Kemudian, subsistem kernel grafis DirectX memanggil DxgkDdiOPMGetInformation atau DxgkDdiOPMGetCOPPCompatibleInformation lagi. Subsistem kernel grafis DirectX bisa mendapatkan jenis informasi berikut dengan memanggil DxgkDdiOPMGetInformation atau DxgkDdiOPMGetCOPPCompatibleInformation:

    Subsistem kernel grafis DirectX dapat mengubah pengaturan berikut dengan memanggil DxgkDdiOPMConfigureProtectedOutput:

    • Tingkat perlindungan saat ini dari salah satu jenis perlindungan output. Misalnya, DxgkDdiOPMConfigureProtectedOutput dapat mengaktifkan atau menonaktifkan HDCP dan dapat menonaktifkan perlindungan ACP atau mengubah tingkat perlindungan ACP saat ini.
    • HDCP SRM saat ini yang digunakan output yang dilindungi.
    • Standar sinyal saat ini yang digunakan output yang dilindungi. Perubahan ini hanya dapat dilakukan jika output memiliki semantik COPP.
  6. Subsistem kernel grafis DirectX memanggil DxgkDdiOPMDestroyProtectedOutput setelah selesai menggunakan objek output yang dilindungi.