PFND3DDDI_DECRYPTIONBLT fungsi panggilan balik (d3dumddi.h)
Fungsi DecryptionBlt menulis data ke permukaan yang dilindungi.
Sintaks
PFND3DDDI_DECRYPTIONBLT Pfnd3dddiDecryptionblt;
HRESULT Pfnd3dddiDecryptionblt(
HANDLE hDevice,
const D3DDDIARG_DECRYPTIONBLT *unnamedParam2
)
{...}
Parameter
hDevice
Handel ke perangkat tampilan (konteks grafis).
unnamedParam2
pData [in]
Penunjuk ke struktur D3DDDIARG_DECRYPTIONBLT yang menjelaskan parameter operasi transfer blok bit (bitblt) yang didekripsi.
Menampilkan nilai
DecryptionBlt mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
S_OK | Operasi bitblt yang didekripsi berhasil dilakukan. |
E_OUTOFMEMORY | DecryptionBlt tidak dapat mengalokasikan memori yang diperlukan untuk menyelesaikannya. |
D3DDDIERR_NOTAVAILABLE | Driver tidak mendukung fungsi DecryptionBlt. |
Keterangan
Perangkat keras dan driver dapat secara opsional mendukung DecryptionBlt untuk beberapa jenis kripto.
Jika aplikasi panggilan memerlukan penggunaan kunci konten, aplikasi menggunakan kunci konten untuk mengenkripsi data, dan kunci sesi untuk mengenkripsi kunci konten sebelum meneruskan kunci konten di blok memori yang dirujuk anggota pContentKeyD3DDDIARG_DECRYPTIONBLT . Jika pContentKeyADALAH NULL, itu menunjukkan bahwa aplikasi menggunakan kunci sesi untuk mengenkripsi data.
Jika fungsi CreateCryptoSession driver sebelumnya membuat sesi enkripsi dengan anggota CryptoType dari struktur D3DDDIARG_CREATECRYPTOSESSION diatur ke D3DCRYPTOTYPE_AES128_CTR, anggota pIVD3DDDIARG_DECRYPTIONBLT menunjuk ke struktur DXVADDI_PVP_HW_IV dan berisi vektor inisialisasi yang digunakan aplikasi untuk mengenkripsi buffer. Fungsi DecryptionBlt driver harus gagal jika menentukan bahwa vektor inisialisasi sebelumnya digunakan untuk kunci konten yang sama (atau kunci sesi jika kunci konten tidak digunakan). Aplikasi harus menaikkan anggota IV dari struktur DXVADDI_PVP_HW_IV untuk setiap buffer yang dienkripsi aplikasi. Oleh karena itu, fungsi DecryptionBlt driver dapat gagal jika anggota IV kurang dari atau sama dengan nilai IV sebelumnya yang diteruskan ke DecryptionBlt.
Jika driver dan perangkat keras mendukung buffer yang dienkripsi sebagian, anggota pEncryptedBlockInfodari D3DDDIARG_DECRYPTIONBLT menunjukkan bagian buffer yang dienkripsi dan bagian yang tidak dienkripsi. Jika seluruh buffer dienkripsi, pEncryptedBlockInfo harus NULL.
DecryptionBlt tidak dapat menulis sub-persegi panjang.
Runtime Direct3D memverifikasi bahwa permukaan sumber yang ditentukan oleh anggota SrcSubResourceIndex dari struktur D3DDDIARG_DECRYPTIONBLT berada dalam memori sistem dan bahwa tidak ada peregangan, konversi ruang warna, dan sebagainya dilakukan. Aplikasi harus memastikan bahwa buffer memori sistem diselaraskan dengan benar dan ukuran buffer cocok dengan permukaan tujuan. Driver harus memverifikasi perataan memori dan ukuran buffer (anggota SrcResourceSize dari D3DDDIARG_DECRYPTIONBLT) dan gagal jika kondisi ini tidak benar..
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | DecryptionBlt didukung dimulai dengan sistem operasi Windows 7. |
Target Platform | Desktop |
Header | d3dumddi.h (termasuk D3dumddi.h) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk