ID3D11VideoContext::D ecryptionBlt method (d3d11.h)
Menulis data terenkripsi ke permukaan yang dilindungi.
Sintaks
void DecryptionBlt(
[in] ID3D11CryptoSession *pCryptoSession,
[in] ID3D11Texture2D *pSrcSurface,
[in] ID3D11Texture2D *pDstSurface,
[in] D3D11_ENCRYPTED_BLOCK_INFO *pEncryptedBlockInfo,
[in] UINT ContentKeySize,
[in] const void *pContentKey,
[in] UINT IVSize,
[in] void *pIV
);
Parameter
[in] pCryptoSession
Penunjuk ke antarmuka ID3D11CryptoSession .
[in] pSrcSurface
Penunjuk ke permukaan yang berisi data sumber.
[in] pDstSurface
Penunjuk ke permukaan yang dilindungi tempat data terenkripsi ditulis.
[in] pEncryptedBlockInfo
Penunjuk ke struktur D3D11_ENCRYPTED_BLOCK_INFO , atau NULL.
Jika driver mendukung buffer yang dienkripsi sebagian, pEncryptedBlockInfo menunjukkan bagian buffer mana yang dienkripsi. Jika seluruh permukaan dienkripsi, atur parameter ini ke NULL.
Untuk memeriksa apakah driver mendukung buffer terenkripsi sebagian, panggil ID3D11VideoDevice::GetContentProtectionCaps dan periksa bendera kemampuan D3D11_CONTENT_PROTECTION_CAPS_PARTIAL_DECRYPTION . Jika driver tidak mendukung buffer terenkripsi sebagian, atur parameter ini ke NULL.
[in] ContentKeySize
Ukuran kunci konten terenkripsi, dalam byte.
[in] pContentKey
Penunjuk ke buffer yang berisi kunci enkripsi konten, atau NULL. Untuk mengkueri apakah driver mendukung penggunaan kunci konten, panggil ID3D11VideoDevice::GetContentProtectionCaps dan periksa bendera kemampuan D3D11_CONTENT_PROTECTION_CAPS_CONTENT_KEY .
Jika driver mendukung kunci konten, gunakan kunci konten untuk mengenkripsi permukaan. Enkripsi kunci konten menggunakan kunci sesi, dan letakkan teks cipher yang dihasilkan di pContentKey. Jika driver tidak mendukung kunci konten, gunakan kunci sesi untuk mengenkripsi permukaan dan mengatur pContentKey ke NULL.
[in] IVSize
Ukuran buffer pIV , dalam byte.
[in] pIV
Penunjuk ke buffer yang berisi vektor inisialisasi (IV).
Untuk enkripsi AES-CTR 128-bit, pIV menunjuk ke struktur D3D11_AES_CTR_IV . Penelepon mengalokasikan struktur dan menghasilkan IV. Saat Anda menghasilkan IV pertama, inisialisasi struktur ke angka acak. Untuk setiap IV berikutnya, cukup tingkatkan anggota IV struktur, memastikan bahwa nilainya selalu meningkat. Prosedur ini memungkinkan driver untuk memvalidasi bahwa IV yang sama tidak pernah digunakan lebih dari sekali dengan pasangan kunci yang sama.
Untuk jenis enkripsi lainnya, struktur yang berbeda dapat digunakan, atau enkripsi mungkin tidak menggunakan IV.
Mengembalikan nilai
Jika metode ini berhasil, metode akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.
Keterangan
Tidak semua perangkat keras atau driver mendukung fungsionalitas ini untuk semua jenis kriptografi. Fungsi ini hanya dapat dipanggil ketika batas D3D11_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT dilaporkan.
Metode ini tidak mendukung penulisan ke sub-persegi panjang permukaan.
Jika perangkat keras dan driver mendukung kunci konten:
- Data dienkripsi oleh pemanggil menggunakan kunci konten.
- Kunci konten dienkripsi oleh pemanggil menggunakan kunci sesi.
- Kunci konten terenkripsi diteruskan ke driver.
Jika driver dan perangkat keras mendukung buffer yang dienkripsi sebagian, pEncryptedBlockInfo menunjukkan bagian buffer mana yang dienkripsi dan mana yang tidak. Jika seluruh buffer dienkripsi, pEncryptedBlockinfo harus NULL.
D3D11_ENCRYPTED_BLOCK_INFO memungkinkan aplikasi untuk menunjukkan byte mana dalam buffer yang dienkripsi. Ini ditentukan dalam byte, sehingga aplikasi harus memastikan bahwa blok terenkripsi cocok dengan penyelarasan blok kripto GPU.
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
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 |