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 がサポートされていない場合があります。 これらのプラットフォームでは、すべての変数が 1 つの共通名前空間にグループ化され、VendorGuid パラメーターは無視されます。
[in] Value
指定した環境変数に書き込むデータ値を含む呼び出し元によって割り当てられたバッファーへのポインター。
[in] ValueLength
Value バッファーに格納されているデータ値のサイズ (バイト単位)。
[in] Attributes
指定した環境変数に割り当てる属性。 VARIABLE_ATTRIBUTE_NON_VOLATILE属性ビットを設定する必要があります。この呼び出しは失敗します。 このパラメーターに定義されている属性ビットの詳細については、「ExGetFirmwareEnvironmentVariable 解説」を参照してください。
戻り値
ExSetFirmwareEnvironmentVariable 、成功した場合はSTATUS_SUCCESSを返します。 可能な戻り値には、次のエラー状態コードが含まれます。
| リターン コード | 形容 |
|---|---|
|
使用可能なシステム リソースでは、要求された操作を完了するには不十分です。 |
|
パラメーターの 1 つが無効です。 |
|
このルーチンは、このプラットフォームではサポートされていません。 |
|
ファームウェアが認識できないエラーを返しました。 |
備考
呼び出し元は、このルーチンを使用するためにシステム環境特権 (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 の