Función LoadEnclaveData (enclaveapi.h)
Carga datos en un enclave no inicializado que creó mediante una llamada a CreateEnclave.
Sintaxis
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
);
Parámetros
[in] hProcess
Identificador del proceso para el que se creó el enclave.
[in] lpAddress
Dirección del enclave donde desea cargar los datos.
[in] lpBuffer
Puntero a los datos que desea cargar en el enclave.
[in] nSize
Tamaño de los datos que desea cargar en el enclave, en bytes. Este valor debe ser un número entero múltiplo del tamaño de página.
[in] flProtect
Protección de memoria que se va a usar para las páginas que desea agregar al enclave. Para obtener una lista de los valores de protección de memoria, consulte constantes de protección de memoria. Este valor no debe incluir las siguientes constantes:
- PAGE_GUARD
- PAGE_NOCACHE
- PAGE_WRITECOMBINE
- PAGE_NOACCESS
Este valor puede incluir las constantes específicas del enclave que describe la tabla siguiente:
Constante | Descripción |
---|---|
PAGE_ENCLAVE_THREAD_CONTROL | La página contiene una estructura de control de subprocesos (TCS). |
PAGE_ENCLAVE_UNVALIDATED | El contenido de la página que proporcione se excluye de la medida con la instrucción EEXTEND del modelo de programación Intel Software Guard Extensions. |
[in] lpPageInformation
Puntero a la información que describe las páginas que desea agregar al enclave. No se usa el parámetro lpPageInformation .
[in] dwInfoLength
Longitud de la estructura a la que apunta el parámetro lpPageInformation , en bytes. Este valor puede ser 0
.
[out] lpNumberOfBytesWritten
Puntero a una variable que recibe el número de bytes que LoadEnclaveData copió en el enclave.
[out, optional] lpEnclaveError
Puntero opcional a una variable que recibe un código de error de enclave específico de la arquitectura. No se usa el parámetro lpEnclaveError .
Valor devuelto
Si todos los datos se cargan correctamente en el enclave, el valor devuelto es distinto de cero. De lo contrario, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
Para obtener una lista de códigos de error comunes, consulte Códigos de error del sistema. Los siguientes códigos de error también se aplican a esta función.
Código devuelto | Descripción |
---|---|
ERROR_BAD_LENGTH | El valor del parámetro dwInfoLength no coincide con el valor esperado en función del valor especificado para el parámetro lpPageInformation . |
Comentarios
Para inicializar el enclave después de cargar datos en el enclave, llame a InitializeEnclave.
LoadEnclaveData solo se admiten enclaves que tienen los tipos de enclave ENCLAVE_TYPE_SGX y ENCLAVE_TYPE_SGX2 .
Requisitos
Cliente mínimo compatible | Windows 10 [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2016 [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | enclaveapi.h (incluya Winbase.h) |
Library | onecore.lib |
Archivo DLL | Api-ms-win-core-enclave-l1-1-0.dll; kernel32.dll; KernelBase.dll |