Compartir a través de


Función GetFirmwareEnvironmentVariableExA (winbase.h)

Recupera el valor de la variable de entorno de firmware especificada y sus atributos.

Sintaxis

DWORD GetFirmwareEnvironmentVariableExA(
  LPCSTR lpName,
  LPCSTR lpGuid,
  PVOID  pBuffer,
  DWORD  nSize,
  PDWORD pdwAttribubutes
);

Parámetros

lpName

Nombre de la variable de entorno de firmware. El puntero no debe ser NULL.

lpGuid

GUID que representa el espacio de nombres de la variable de entorno de firmware. El GUID debe ser una cadena con el formato "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}", donde 'x' representa un valor hexadecimal. El puntero no debe ser NULL.

pBuffer

Puntero a un búfer que recibe el valor de la variable de entorno de firmware especificada.

nSize

Tamaño del búfer pValue , en bytes.

pdwAttribubutes

Máscara de bits que identifica los atributos de la variable UEFI asociados a la variable. Consulte SetFirmwareEnvironmentVariableEx para obtener la definición de máscara de bits.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es el número de bytes almacenados en el búfer pValue .

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError. Los posibles códigos de error incluyen ERROR_INVALID_FUNCTION.

Comentarios

A partir de Windows 10, versión 1803, las aplicaciones universales de Windows pueden leer y escribir variables de firmware UEFI. Consulta Access UEFI firmware variables from a Universal Windows App (Acceder a variables de firmware ueFI desde una aplicación universal de Windows) para obtener más información.

Para leer una variable de entorno de firmware UEFI, la cuenta de usuario en la que se ejecuta la aplicación debe tener el privilegio SE_SYSTEM_ENVIRONMENT_NAME . Una aplicación universal de Windows debe ejecutarse desde una cuenta de administrador y seguir los requisitos descritos en Acceso a variables de firmware UEFI desde una aplicación universal de Windows.

A partir de Windows 10, versión 1803, las variables unified Extensible Firmware Interface (UEFI) también se admiten desde controladores de User-Mode Driver Framework (UMDF). No se admite la escritura de variables UEFI desde controladores UMDF.

El firmware de arranque determina el conjunto exacto de variables de entorno de firmware. El firmware también especifica la ubicación de estas variables de entorno. Por ejemplo, en un sistema basado en UEFI, NVRAM contiene variables de entorno de firmware que especifican la configuración de arranque del sistema. Para obtener información sobre variables específicas usadas, consulte la especificación UEFI. Para obtener más información sobre UEFI y Windows, consulte UEFI y Windows.

Las variables de firmware no se admiten en un sistema heredado basado en BIOS. La función GetFirmwareEnvironmentVariableEx siempre producirá un error en un sistema heredado basado en BIOS, o si Windows se instaló con bios heredado en un sistema que admita BIOS heredado y UEFI. Para identificar estas condiciones, llame a la función con un nombre de entorno de firmware ficticio, como una cadena vacía ("") para el parámetro lpName y un GUID ficticio, como "{00000000-0000-0000-0000-000000000000}" para el parámetro lpGuid . En un sistema heredado basado en BIOS, o en un sistema que admita BIOS heredado y UEFI donde Windows se instaló con BIOS heredado, la función producirá un error con ERROR_INVALID_FUNCTION. En un sistema basado en UEFI, la función producirá un error específico del firmware, como ERROR_NOACCESS, para indicar que el espacio de nombres GUID ficticio no existe.

Si va a crear una aplicación de copia de seguridad, puede usar esta función para guardar toda la configuración de arranque del sistema para que se puedan restaurar mediante la función SetFirmwareEnvironmentVariable si es necesario.

Nota

El encabezado winbase.h define GetFirmwareEnvironmentVariableEx como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2012 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winbase.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

Acceso a variables de firmware UEFI desde una aplicación universal de Windows

GetFirmwareEnvironmentVariable

SetFirmwareEnvironmentVariableEx