LoadEnclaveData 函式 (enclaveapi.h)
將數據載入您藉由呼叫 CreateEnclave 所建立的未初始化記憶體保護區。
語法
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
);
參數
[in] hProcess
建立記憶體保護區之進程的句柄。
[in] lpAddress
您要載入資料之內存保護區中的位址。
[in] lpBuffer
您要載入記憶體保護區之資料的指標。
[in] nSize
您想要載入記憶體保護區的數據大小,以位元組為單位。 此值必須是頁面大小的整數倍數。
[in] flProtect
要新增至記憶體保護區的頁面使用的記憶體保護。 如需記憶體保護值的清單,請參閱 記憶體保護常數。 此值不得包含下列常數:
- PAGE_GUARD
- PAGE_NOCACHE
- PAGE_WRITECOMBINE
- PAGE_NOACCESS
此值可包含下表描述的記憶體保護區特定常數:
常數 | 描述 |
---|---|
PAGE_ENCLAVE_THREAD_CONTROL | 頁面包含 TCS) (線程控件結構。 |
PAGE_ENCLAVE_UNVALIDATED | 您使用 Intel Software Guard Extensions 程式設計模型的 EEXTEND 指令,排除您提供的頁面內容。 |
[in] lpPageInformation
描述您要新增至記憶體保護區之頁面的信息指標。 不會使用 lpPageInformation 參數。
[in] dwInfoLength
lpPageInformation 參數所指向之結構的長度,以位元組為單位。 這個值必須為 0
。
[out] lpNumberOfBytesWritten
變數的指標,接收 LoadEnclaveData 複製到記憶體保護區的位元組數目。
[out, optional] lpEnclaveError
可接收架構特定記憶體保護區錯誤碼之變數的選擇性指標。 不會使用 lpEnclaveError 參數。
傳回值
如果所有數據都成功載入記憶體保護區,則傳回值為非零。 否則,傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
如需常見錯誤碼的清單,請參閱 系統錯誤碼。 下列錯誤碼也適用於此函式。
傳回碼 | Description |
---|---|
ERROR_BAD_LENGTH | dwInfoLength 參數的值不符合根據為 lpPageInformation 參數指定的值所預期的值。 |
備註
若要在將數據載入記憶體保護區之後初始化記憶體保護區,請呼叫 InitializeEnclave。
LoadEnclaveData 僅支援具有 ENCLAVE_TYPE_SGX 和 ENCLAVE_TYPE_SGX2 記憶體保護區類型的記憶體保護區。
規格需求
最低支援的用戶端 | Windows 10 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2016 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | enclaveapi.h (包含 Winbase.h) |
程式庫 | onecore.lib |
Dll | Api-ms-win-core-enclave-l1-1-0.dll;kernel32.dll;KernelBase.dll |