ExSetFirmwareEnvironmentVariable 函数 (wdm.h)

ExSetFirmwareEnvironmentVariable 例程设置指定系统固件环境变量的值。

语法

NTSTATUS ExSetFirmwareEnvironmentVariable(
  [in] PUNICODE_STRING VariableName,
  [in] LPGUID          VendorGuid,
  [in] PVOID           Value,
  [in] ULONG           ValueLength,
  [in] ULONG           Attributes
);

参数

[in] VariableName

指向包含指定环境变量名称的 UNICODE_STRING 结构的指针。

[in] VendorGuid

指向标识与指定环境变量关联的供应商的 GUID 的指针。 环境变量根据其供应商 GUID 分组到命名空间中。 某些硬件平台可能不支持供应商 GUID。 在这些平台上,所有变量都分组为一个公共命名空间,并忽略 VendorGuid 参数。

[in] Value

指向调用方分配的缓冲区的指针,其中包含要写入到指定环境变量的数据值。

[in] ValueLength

缓冲区中包含的数据值的大小(以字节为单位)。

[in] Attributes

要分配给指定环境变量的属性。 必须设置VARIABLE_ATTRIBUTE_NON_VOLATILE属性位,否则此调用将失败。 有关为此参数定义的属性位的详细信息,请参阅 ExGetFirmwareEnvironmentVariable中的备注。

返回值

ExSetFirmwareEnvironmentVariable 如果成功,则返回STATUS_SUCCESS。 可能的返回值包括以下错误状态代码。

返回代码 描述
STATUS_INSUFFICIENT_RESOURCES
可用系统资源不足以完成请求的作。
STATUS_INVALID_PARAMETER
其中一个参数无效。
STATUS_NOT_IMPLEMENTED
此平台上不支持此例程。
STATUS_UNSUCCESSFUL
固件返回了无法识别的错误。

言论

调用方要求系统环境特权(SE_SYSTEM_ENVIRONMENT_PRIVILEGE)使用此例程。

系统固件环境变量包含在硬件平台中实现的启动固件环境与作系统加载程序以及固件环境中运行的其他软件之间传递的数据值。 有关详细信息,请参阅 ExGetFirmwareEnvironmentVariable中的备注。

如果创建备份数据存储,可以使用 ExGetFirmwareEnvironmentVariable 例程保存平台的所有启动设置。 稍后,可以使用 ExSetFirmwareEnvironmentVariable 根据需要还原这些设置。

ExSetFirmwareEnvironmentVariable 是 Win32 SetFirmwareEnvironmentVariable 函数的内核模式等效项。

要求

要求 价值
最低支持的客户端 从 Windows 8 开始可用。
目标平台 普遍
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

另请参阅

ExGetFirmwareEnvironmentVariable

SetFirmwareEnvironmentVariable

UNICODE_STRING