Condividi tramite


Funzione GetFirmwareEnvironmentVariableA (winbase.h)

Recupera il valore della variabile di ambiente del firmware specificata.

Sintassi

DWORD GetFirmwareEnvironmentVariableA(
  [in]  LPCSTR lpName,
  [in]  LPCSTR lpGuid,
  [out] PVOID  pBuffer,
  [in]  DWORD  nSize
);

Parametri

[in] lpName

Nome della variabile di ambiente del firmware. Il puntatore non deve essere NULL.

[in] lpGuid

GUID che rappresenta lo spazio dei nomi della variabile di ambiente del firmware. Il GUID deve essere una stringa nel formato "{xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxx}" dove 'x' rappresenta un valore esadecimale.

[out] pBuffer

Puntatore a un buffer che riceve il valore della variabile di ambiente del firmware specificata.

[in] nSize

Dimensioni del buffer pBuffer , in byte.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è il numero di byte archiviati nel buffer pBuffer .

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError. I codici di errore possibili includono ERROR_INVALID_FUNCTION.

Commenti

A partire da Windows 10, versione 1803, le app di Windows universali possono leggere e scrivere variabili del firmware UEFI (Unified Extensible Firmware Interface). Per informazioni dettagliate, vedere Accedere alle variabili del firmware UEFI da un'app di Windows universale .

Per leggere una variabile di ambiente del firmware, l'account utente in cui è in esecuzione l'app deve avere il privilegio di SE_SYSTEM_ENVIRONMENT_NAME . Un'app di Windows universale deve essere eseguita da un account amministratore e seguire i requisiti descritti in Accedere alle variabili del firmware UEFI da un'app di Windows universale.

A partire da Windows 10, versione 1803, la lettura di variabili UEFI (Unified Extensible Firmware Interface) è supportata anche dai driver User-Mode Driver Framework (UMDF). La scrittura di variabili UEFI dai driver UMDF non è supportata.

Il set esatto di variabili di ambiente del firmware è determinato dal firmware di avvio. La posizione di queste variabili di ambiente viene specificata anche dal firmware. Ad esempio, in un sistema basato su UEFI, NVRAM contiene variabili di ambiente del firmware che specificano le impostazioni di avvio del sistema. Per informazioni sulle variabili specifiche usate, vedere la specifica UEFI. Per altre informazioni su UEFI e Windows, vedere UEFI e Windows.

Le variabili del firmware non sono supportate in un sistema basato su BIOS legacy. La funzione GetFirmwareEnvironmentVariable avrà sempre esito negativo su un sistema basato su BIOS legacy oppure se Windows è stato installato usando il BIOS legacy in un sistema che supporta sia BIOS legacy che UEFI. Per identificare queste condizioni, chiamare la funzione con un nome di ambiente firmware fittizio, ad esempio una stringa vuota ("") per il parametro lpName e un GUID fittizio, ad esempio "{00000000-0000-0000-0000-000000000000}" per il parametro lpGuid . In un sistema basato su BIOS legacy o in un sistema che supporta sia BIOS legacy che UEFI in cui Windows è stato installato usando BIOS legacy, la funzione avrà esito negativo con ERROR_INVALID_FUNCTION. In un sistema basato su UEFI la funzione avrà esito negativo con un errore specifico del firmware, ad esempio ERROR_NOACCESS, per indicare che lo spazio dei nomi GUID fittizio non esiste.

Se si sta creando un'applicazione di backup, è possibile usare questa funzione per salvare tutte le impostazioni di avvio per il sistema in modo che possano essere ripristinate usando la funzione SetFirmwareEnvironmentVariable se necessario.

GetFirmwareEnvironmentVariable è l'equivalente in modalità utente della routine exGetFirmwareEnvironmentVariable kernel-mode.

Nota

L'intestazione winbase.h definisce GetFirmwareEnvironmentVariable come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

   
Client minimo supportato Windows Vista, Windows XP con SP1 [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione winbase.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Accedere alle variabili del firmware UEFI da un'app di Windows universale

GetFirmwareEnvironmentVariableEx

SetFirmwareEnvironmentVariable

Funzioni di informazioni di sistema