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
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