Funzione LoadEnclaveData (enclaveapi.h)
Carica i dati in un'enclave non inizializzata creata chiamando CreateEnclave.
Sintassi
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
);
Parametri
[in] hProcess
Handle per il processo per il quale è stata creata l'enclave.
[in] lpAddress
Indirizzo nell'enclave in cui si desidera caricare i dati.
[in] lpBuffer
Puntatore ai dati da caricare nell'enclave.
[in] nSize
Dimensioni dei dati da caricare nell'enclave, in byte. Questo valore deve essere un numero intero multiplo delle dimensioni della pagina.
[in] flProtect
Protezione della memoria da usare per le pagine da aggiungere all'enclave. Per un elenco dei valori di protezione della memoria, vedere Costanti di protezione della memoria. Questo valore non deve includere le costanti seguenti:
- PAGE_GUARD
- PAGE_NOCACHE
- PAGE_WRITECOMBINE
- PAGE_NOACCESS
Questo valore può includere le costanti specifiche dell'enclave descritte nella tabella seguente:
Costante | Descrizione |
---|---|
PAGE_ENCLAVE_THREAD_CONTROL | La pagina contiene una struttura di controllo thread (TCS). |
PAGE_ENCLAVE_UNVALIDATED | Il contenuto della pagina fornito viene escluso dalla misurazione con l'istruzione EEXTEND del modello di programmazione Intel Software Guard Extensions. |
[in] lpPageInformation
Puntatore alle informazioni che descrivono le pagine da aggiungere all'enclave. Il parametro lpPageInformation non viene usato.
[in] dwInfoLength
Lunghezza della struttura a cui punta il parametro lpPageInformation , in byte. Questo valore deve essere 0
.
[out] lpNumberOfBytesWritten
Puntatore a una variabile che riceve il numero di byte copiati da LoadEnclaveData nell'enclave.
[out, optional] lpEnclaveError
Puntatore facoltativo a una variabile che riceve un codice di errore dell'enclave specifico dell'architettura. Il parametro lpEnclaveError non viene utilizzato.
Valore restituito
Se tutti i dati vengono caricati nell'enclave correttamente, il valore restituito è diverso da zero. In caso contrario, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Per un elenco dei codici di errore comuni, vedere Codici di errore di sistema. Per questa funzione si applicano anche i codici di errore seguenti.
Codice restituito | Descrizione |
---|---|
ERROR_BAD_LENGTH | Il valore del parametro dwInfoLength non corrisponde al valore previsto in base al valore specificato per il parametro lpPageInformation . |
Commenti
Per inizializzare l'enclave dopo aver caricato i dati nell'enclave, chiamare InitializeEnclave.
LoadEnclaveData è supportato solo per enclave con tipi di enclave ENCLAVE_TYPE_SGX e ENCLAVE_TYPE_SGX2 .
Requisiti
Client minimo supportato | Windows 10 [app desktop | App UWP] |
Server minimo supportato | Windows Server 2016 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | enclaveapi.h (include Winbase.h) |
Libreria | onecore.lib |
DLL | Api-ms-win-core-enclave-l1-1-0.dll; kernel32.dll; KernelBase.dll |