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 がサポートされていない場合があります。 これらのプラットフォームでは、すべての変数が 1 つの共通名前空間にグループ化され、 VendorGuid パラメーターは無視されます。

[in] Value

指定した環境変数に書き込むデータ値を含む、呼び出し元によって割り当てられたバッファーへのポインター。

[in] ValueLength

バッファーに含まれるデータ値のサイズ (バイト単位)。

[in] Attributes

指定した環境変数に割り当てる属性。 VARIABLE_ATTRIBUTE_NON_VOLATILE属性ビットを設定する必要があります。または、この呼び出しは失敗します。 このパラメーターに定義されている属性ビットの詳細については、「 ExGetFirmwareEnvironmentVariable の解説」を参照してください。

戻り値

ExSetFirmwareEnvironmentVariable は、成功した場合STATUS_SUCCESSを返します。 可能な戻り値には、次のエラー状態コードが含まれます。

リターン コード 説明
STATUS_INSUFFICIENT_RESOURCES
使用可能なシステム リソースは、要求された操作を完了するには不十分です。
STATUS_INVALID_PARAMETER
パラメーターの 1 つが無効です。
STATUS_NOT_IMPLEMENTED
このルーチンは、このプラットフォームではサポートされていません。
STATUS_UNSUCCESSFUL
ファームウェアが認識できないエラーを返しました。

注釈

呼び出し元には、このルーチンを使用するためにシステム環境特権 (SE_SYSTEM_ENVIRONMENT_PRIVILEGE) が必要です。

システム ファームウェア環境変数には、ハードウェア プラットフォームに実装されているブート ファームウェア環境と、オペレーティング システム ローダーとファームウェア環境で実行されるその他のソフトウェアの間で渡されるデータ値が含まれます。 詳細については、「 ExGetFirmwareEnvironmentVariable の解説」を参照してください。

バックアップ データストアを作成する場合は、 ExGetFirmwareEnvironmentVariable ルーチンを使用して、プラットフォームのすべてのブート設定を保存できます。 後で ExSetFirmwareEnvironmentVariable を使用して、必要に応じてこれらの設定を復元できます。

ExSetFirmwareEnvironmentVariable は、Win32 SetFirmwareEnvironmentVariable 関数に相当するカーネル モードです。

要件

要件
サポートされている最小のクライアント Windows 8 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL

こちらもご覧ください

ExGetFirmwareEnvironmentVariable

SetFirmwareEnvironmentVariable

UNICODE_STRING