PFND3DDDI_ENCRYPTIONBLT fungsi panggilan balik (d3dumddi.h)

Fungsi EncryptionBlt membaca data terenkripsi dari permukaan yang dilindungi.

Sintaks

PFND3DDDI_ENCRYPTIONBLT Pfnd3dddiEncryptionblt;

HRESULT Pfnd3dddiEncryptionblt(
  HANDLE hDevice,
  const D3DDDIARG_ENCRYPTIONBLT *unnamedParam2
)
{...}

Parameter

hDevice

Handel ke perangkat tampilan (konteks grafis).

unnamedParam2

pData [in]

Penunjuk ke struktur D3DDDIARG_ENCRYPTIONBLT yang menjelaskan parameter operasi transfer blok bit terenkripsi (bitblt).

Menampilkan nilai

EncryptionBlt mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
S_OK Operasi bitblt terenkripsi berhasil dilakukan.
E_OUTOFMEMORY EncryptionBlt tidak dapat mengalokasikan memori yang diperlukan untuk menyelesaikannya.
D3DDDIERR_NOTAVAILABLE Driver tidak mendukung fungsi EncryptionBlt.

Keterangan

Perangkat keras dan driver dapat secara opsional mendukung EncryptionBlt. Beberapa perangkat keras mungkin juga perlu menggunakan kunci terpisah untuk mendekripsi data yang dibaca kembali. Driver mengembalikan kunci ini dalam blok memori yang diunjukkan oleh anggota pIVD3DDDIARG_ENCRYPTIONBLT .

Jika driver dan perangkat keras menggunakan kunci terpisah untuk bitblt enkripsi, aplikasi harus mengenali fakta ini dan menggunakan kunci.

Jika jenis kripto D3DCRYPTOTYPE_AES128_CTR, pIV menunjuk ke struktur D3DAES_CTR_IV yang dialokasikan aplikasi. Namun, konten aktual dari struktur D3DAES_CTR_IV diisi oleh driver dan perangkat keras. Ketika driver dan perangkat keras menghasilkan vektor inisialisasi pertama, mereka harus menginisialisasi anggota IV dari struktur D3DAES_CTR_IV ke angka acak (yang tidak terlalu besar). Setiap vektor inisialisasi berikutnya hanya boleh menambah anggota IV , yang memastikan bahwa IV selalu meningkat nilainya. Fakta ini memungkinkan aplikasi untuk memvalidasi bahwa IV yang sama tidak pernah digunakan beberapa kali dengan pasangan kunci yang sama.

EncryptionBlt tidak dapat membaca kembali sub-persegi panjang. EncryptionBlt juga tidak dapat membaca kembali buffer terenkripsi sebagian karena banyak solusi berbasis perangkat keras tidak mengizinkan bacaan yang tidak dienkripsi dari memori yang dilindungi.

Runtime Direct3D memverifikasi bahwa permukaan tujuan yang ditentukan oleh anggota DstSubResourceIndex D3DDDIARG_ENCRYPTIONBLT 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 sumber. Driver harus memverifikasi perataan memori dan ukuran buffer (anggota DstResourceSize D3DDDIARG_ENCRYPTIONBLT) dan gagal jika kondisi ini tidak benar.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung EncryptionBlt didukung dimulai dengan sistem operasi Windows 7.
Target Platform Desktop
Header d3dumddi.h (termasuk D3dumddi.h)

Lihat juga

D3DDDIARG_ENCRYPTIONBLT

D3DDDI_DEVICEFUNCS