Bagikan melalui


Fungsi LoadEnclaveData (enclaveapi.h)

Memuat data ke enklave yang tidak diinisialisasi yang Anda buat dengan memanggil CreateEnclave.

Sintaks

BOOL LoadEnclaveData(
  [in]            HANDLE  hProcess,
  [in]            LPVOID  lpAddress,
  [in]            LPCVOID lpBuffer,
  [in]            SIZE_T  nSize,
  [in]            DWORD   flProtect,
  [in]            LPCVOID lpPageInformation,
  [in]            DWORD   dwInfoLength,
  [out]           PSIZE_T lpNumberOfBytesWritten,
  [out, optional] LPDWORD lpEnclaveError
);

Parameter

[in] hProcess

Handel ke proses tempat enklave dibuat.

[in] lpAddress

Alamat di enklave tempat Anda ingin memuat data.

[in] lpBuffer

Penunjuk ke data yang ingin Anda muat ke enklave.

[in] nSize

Ukuran data yang ingin Anda muat ke enklave, dalam byte. Nilai ini harus berupa kelipatan bilangan bulur dari ukuran halaman.

[in] flProtect

Perlindungan memori yang digunakan untuk halaman yang ingin Anda tambahkan ke enklave. Untuk daftar nilai perlindungan memori, lihat konstanta perlindungan memori. Nilai ini tidak boleh menyertakan konstanta berikut:

  • PAGE_GUARD
  • PAGE_NOCACHE
  • PAGE_WRITECOMBINE
  • PAGE_NOACCESS

Nilai ini dapat menyertakan konstanta spesifik enklave yang dijelaskan tabel berikut:

Terus-menerus Deskripsi
PAGE_ENCLAVE_THREAD_CONTROL Halaman berisi struktur kontrol utas (TCS).
PAGE_ENCLAVE_UNVALIDATED Konten halaman yang Anda berikan dikecualikan dari pengukuran dengan instruksi EEXTEND dari model pemrograman Intel Software Guard Extensions.

[in] lpPageInformation

Penunjuk ke informasi yang menjelaskan halaman yang ingin Anda tambahkan ke enklave. Parameter lpPageInformation tidak digunakan.

[in] dwInfoLength

Panjang struktur yang dirujuk parameter lpPageInformation , dalam byte. Nilai ini harus 0.

[out] lpNumberOfBytesWritten

Penunjuk ke variabel yang menerima jumlah byte yang disalin LoadEnclaveData ke enklave.

[out, optional] lpEnclaveError

Penunjuk opsional ke variabel yang menerima kode kesalahan enklave yang khusus untuk arsitektur. Parameter lpEnclaveError tidak digunakan.

Mengembalikan nilai

Jika semua data berhasil dimuat ke enklave, nilai yang dikembalikan bukan nol. Jika tidak, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Untuk daftar kode kesalahan umum, lihat Kode Kesalahan Sistem. Kode kesalahan berikut juga berlaku untuk fungsi ini.

Menampilkan kode Deskripsi
ERROR_BAD_LENGTH Nilai parameter dwInfoLength tidak cocok dengan nilai yang diharapkan berdasarkan nilai yang ditentukan untuk parameter lpPageInformation .

Keterangan

Untuk menginisialisasi enklave setelah Anda memuat data ke enklave, panggil InitializeEnclave.

LoadEnclaveData hanya didukung enklave yang memiliki jenis enklave ENCLAVE_TYPE_SGX dan ENCLAVE_TYPE_SGX2 .

Persyaratan

   
Klien minimum yang didukung Windows 10 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2016 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header enclaveapi.h (termasuk Winbase.h)
Pustaka onecore.lib
DLL Api-ms-win-core-enclave-l1-1-0.dll; kernel32.dll; KernelBase.dll

Lihat juga

Fungsi Enklave

CreateEnclave

InitializeEnclave

Konstanta perlindungan memori