Condividi tramite


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

Vedi anche

Funzioni dell'enclave

CreateEnclave

InitializeEnclave

Costanti di protezione della memoria