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 分组到命名空间中。 某些硬件平台可能不支持供应商 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)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

另请参阅

ExGetFirmwareEnvironmentVariable

SetFirmwareEnvironmentVariable

UNICODE_STRING