Función SetFirmwareEnvironmentVariableA (winbase.h)
Establece el valor de la variable de entorno de firmware especificada.
Sintaxis
BOOL SetFirmwareEnvironmentVariableA(
[in] LPCSTR lpName,
[in] LPCSTR lpGuid,
[in] PVOID pValue,
[in] DWORD nSize
);
Parámetros
[in] lpName
Nombre de la variable de entorno de firmware. El puntero no debe ser NULL.
[in] 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}". Si el sistema no admite espacios de nombres basados en GUID, se omite este parámetro.
[in] pValue
Puntero al nuevo valor de la variable de entorno de firmware.
[in] nSize
Tamaño del búfer de pBuffer, en bytes. Si este parámetro es cero, se elimina la variable de entorno de firmware.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es un valor distinto de cero.
Si se produce un error en la función, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError. Entre los posibles códigos de error se incluyen ERROR_INVALID_FUNCTION.
Observaciones
A partir de Windows 10, versión 1803, las aplicaciones universales de Windows pueden leer y escribir variables de firmware UEFI. Consulta Obtener acceso a variables de firmware UEFI desde una aplicación universal de Windows para obtener más información.
A partir de Windows 10, versión 1803, también se admite la lectura de variables de firmware UEFI desde controladores de User-Mode Driver Framework (UMDF). No se admite la escritura de variables de firmware UEFI desde controladores UMDF.
Para escribir una variable de entorno de firmware, 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 Obtener acceso a variables de firmware UEFI desde una aplicación universal de Windows.
El conjunto exacto de variables de entorno de firmware viene determinado por el firmware de arranque. 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 las 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 SetFirmwareEnvironmentVariable 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
SetFirmwareEnvironmentVariable es el equivalente en modo de usuario de la rutina ExSetFirmwareEnvironmentVariable modo kernel.
Nota
El encabezado winbase.h define SetFirmwareEnvironmentVariable 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Vista, Windows XP con SP1 [aplicaciones de escritorio | Aplicaciones para UWP] |
servidor mínimo admitido | Windows Server 2003 [aplicaciones de escritorio | Aplicaciones para UWP] |
de la plataforma de destino de |
Windows |
encabezado de |
winbase.h (incluya Windows.h) |
biblioteca de |
Kernel32.lib |
DLL de |
Kernel32.dll |
Consulte también
acceder a variables de firmware UEFI desde una aplicación universal de Windows
GetFirmwareEnvironmentVariable