SfcIsKeyProtected 関数 (sfc.h)

指定したレジストリ キーが保護されているかどうかを判断します。 アプリケーションでは、保護されたレジストリ キーを置き換えないようにする必要があります。

構文

BOOL SfcIsKeyProtected(
  [in]           HKEY    KeyHandle,
  [in, optional] LPCWSTR SubKeyName,
  [in]           REGSAM  KeySam
);

パラメーター

[in] KeyHandle

ルート レジストリ キーへのハンドル。 これは、次のいずれかの 定義済みキーへのハンドルである必要があります。

HKEY_CLASSES_ROOT

HKEY_CURRENT_USER

HKEY_LOCAL_MACHINE

HKEY_USERS

[in, optional] SubKeyName

サブキーの名前を含む null で終わる文字列値。 このキーは、 hKey パラメーターによって識別されるキーのサブキーである必要があります。 キー名の詳細については、「 レジストリの構造」を参照してください。 このパラメーターが NULL の場合、関数はルート レジストリ キーが保護されているかどうかをチェックするだけです。

[in] KeySam

64 ビット Windows で実行されるアプリケーションで使用する代替レジストリ ビューを指定する定数。 x86 プラットフォームでは、このフラグは無視されます。 詳細については、「 代替レジストリ ビューへのアクセス」を参照してください。

説明
0x0000
32 ビット アプリケーションの 32 ビット レジストリ キーを使用し、64 ビット アプリケーションの 64 ビット レジストリ キーを使用します。
KEY_WOW64_64KEY
0x0100
32 ビットまたは 64 ビット アプリケーションの 64 ビット レジストリ キーを使用します。
KEY_WOW64_32KEY
0x0200
32 ビットまたは 64 ビット アプリケーションの 32 ビット レジストリ キーを使用します。

戻り値

キーが保護されている場合、戻り値は 0 以外の値になります。

キーが保護されていない場合、戻り値は 0 になります。

解説

パスが存在し、WRP によって保護されている場合、キーは WRP によって保護されます。 SfcIsKeyProtected 関数は、サブキーが WRP によって保護されている親キーを持っている場合、サブキーが WRP によって保護されることを示します。

たとえば、次のレジストリ キーがシステム上に存在し、WRP によって保護されている場合です。

HKEY_LOCAL_MACHINE
   SOFTWARE
      Classes
         Microsoft
            <WinFeature>

SfcIsKeyProtected 関数は、次のサブキーの 0 以外の値を返します。 関数が WRP で保護されていることを判断するために、新しいサブキーが存在する必要はありません。

HKEY_LOCAL_MACHINE
   SOFTWARE
      Classes
         Microsoft
            <WinFeature>
               <new subkey>

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー sfc.h
Library Sfc.lib
[DLL] Sfc.dll

関連項目

SfcIsFileProtected