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

BuatCryptoSession

D3DDDIARG_CREATECRYPTOSESSION

D3DDDIARG_DECRYPTIONBLT

D3DDDI_DEVICEFUNCS