#ifndef _NTEXAPI_H
#if (PHNT_MODE != PHNT_MODE_KERNEL)
//
// Firmware environment values
//
/**
* Retrieves the value of the specified firmware environment variable.
* The user account that the app is running under must have the SE_SYSTEM_ENVIRONMENT_NAME privilege.
*
* @param VariableName The name of the firmware environment variable. The pointer must not be NULL.
* @param VariableValue A pointer to a buffer that receives the value of the specified firmware environment variable.
* @param ValueLength The size of the \c VariableValue buffer, in bytes.
* @param ReturnLength If the function succeeds, the return length is the number of bytes stored in the \c VariableValue buffer.
* @return NTSTATUS Successful or errant status.
*/
NTSYSCALLAPI
NTSTATUS
NTAPI
NtQuerySystemEnvironmentValue(
_In_ PUNICODE_STRING VariableName,
_Out_writes_bytes_(ValueLength) PWSTR VariableValue,
_In_ USHORT ValueLength,
_Out_opt_ PUSHORT ReturnLength
);
View code on GitHub
#ifndef _NTZWAPI_H
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwQuerySystemEnvironmentValue(
_In_ PUNICODE_STRING VariableName,
_Out_writes_bytes_(ValueLength) PWSTR VariableValue,
_In_ USHORT ValueLength,
_Out_opt_ PUSHORT ReturnLength
);
View code on GitHub
Seems not works on NT 4.0 SP6. Control Panel applet query and set System Environment values by Rtl...Environment
functions or directly by registry.
Privilege: SE_SYSTEM_ENVIRONMENT_NAME