Bagikan melalui


ID3D11VideoContext::EncryptionBlt method (d3d11.h)

Membaca data terenkripsi dari permukaan yang dilindungi.

Sintaks

void EncryptionBlt(
  [in] ID3D11CryptoSession *pCryptoSession,
  [in] ID3D11Texture2D     *pSrcSurface,
  [in] ID3D11Texture2D     *pDstSurface,
  [in] UINT                IVSize,
  [in] void                *pIV
);

Parameter

[in] pCryptoSession

Penunjuk ke antarmuka ID3D11CryptoSession dari sesi kriptografi.

[in] pSrcSurface

Penunjuk ke antarmuka ID3D11Texture2D dari permukaan yang dilindungi.

[in] pDstSurface

Penunjuk ke antarmuka ID3D11Texture2D permukaan yang menerima data terenkripsi.

[in] IVSize

Ukuran buffer pIV , dalam byte.

[in] pIV

Penunjuk ke buffer yang menerima vektor inisialisasi (IV). Penelepon mengalokasikan buffer ini, tetapi driver menghasilkan IV.

Untuk enkripsi AES-CTR 128-bit, pIV menunjuk ke struktur D3D11_AES_CTR_IV . Ketika driver menghasilkan IV pertama, ia menginisialisasi struktur ke angka acak. Untuk setiap IV berikutnya, driver hanya menambah anggota IV struktur, memastikan bahwa nilainya selalu meningkat. Aplikasi dapat memvalidasi bahwa IV yang sama tidak pernah digunakan lebih dari sekali dengan pasangan kunci yang sama.

Mengembalikan nilai

Jika metode ini berhasil, metode akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Tidak semua driver mendukung metode ini. Untuk mengkueri kemampuan driver, panggil ID3D11VideoDevice::GetContentProtectionCaps dan periksa bendera D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK di anggota Caps dari struktur D3D11_VIDEO_CONTENT_PROTECTION_CAPS .

Beberapa driver mungkin memerlukan kunci terpisah untuk mendekripsi data yang dibaca kembali. Untuk memeriksa persyaratan ini, panggil GetContentProtectionCaps dan periksa bendera D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY . Jika bendera ini ada, panggil ID3D11VideoContext::GetEncryptionBltKey untuk mendapatkan kunci dekripsi.

Metode ini memiliki batasan berikut:

  • Membaca kembali sub-persegi tidak didukung.
  • Membaca kembali permukaan yang dienkripsi sebagian tidak didukung.
  • Permukaan yang dilindungi harus berupa permukaan biasa di luar layar atau target render.
  • Permukaan tujuan harus menjadi sumber daya D3D11_USAGE_STAGING .
  • Permukaan yang dilindungi tidak dapat di-multisampel.
  • Konversi stretching dan colorspace tidak didukung.

Fungsi ini tidak menghormati predikat D3D11 yang mungkin telah ditetapkan.

Jika aplikasi menggunakan kueri D3D11, fungsi ini mungkin tidak dipertangungjawabkan dengan D3D11_QUERY_EVENT dan D3D11_QUERY_TIMESTAMP saat menggunakan tingkat fitur yang lebih rendah dari 11. D3D11_QUERY_PIPELINE_STATISTICS tidak akan menyertakan fungsi ini untuk tingkat fitur apa pun.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2012 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header d3d11.h

Lihat juga

ID3D11VideoContext