Share via


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

Consulte también

Funciones de enclave

CreateEnclave

InitializeEnclave

Constantes de protección de memoria