RegistryKeyPermissionCheck 列挙体とは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > RegistryKeyPermissionCheck 列挙体の意味・解説 

RegistryKeyPermissionCheck 列挙体

メモ : この列挙体は、.NET Framework version 2.0 で新しく追加されたものです。

レジストリ キーを開いて名前/値ペアにアクセスするときに、セキュリティ チェックを行うかどうかを指定します。

名前空間: Microsoft.Win32
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Enumeration RegistryKeyPermissionCheck
Dim instance As RegistryKeyPermissionCheck
public enum RegistryKeyPermissionCheck
public enum class RegistryKeyPermissionCheck
public enum RegistryKeyPermissionCheck
public enum RegistryKeyPermissionCheck
メンバメンバ
 メンバ名説明
.NET Compact Framework によるサポートDefaultレジストリ キーは親のモードを継承します。親が ReadSubTree モードまたは ReadWriteSubTree モードで開かれていない限り、サブキーまたは値にアクセスしようしたときにセキュリティ チェックが行われます。 
.NET Compact Framework によるサポートReadSubTreeサブキーまたは値にアクセスしようしたときにセキュリティ チェックは行われません。親が ReadSubTree または ReadWriteSubTree で開かれていない限り、現在のキーを開こうとしたときにセキュリティ チェックが行われます。 
.NET Compact Framework によるサポートReadWriteSubTreeサブキーまたは値にアクセスしようしたときにセキュリティ チェックは行われません。親が ReadWriteSubTree で開かれていない限り、現在のキーを開こうとしたときにセキュリティ チェックが行われます。 
解説解説

アプリケーションがサブキーのセットから多数のレジストリ設定の保存や取得を行う場合、多数の冗長なセキュリティ チェックが行われます。この列挙体は、キーに対するセキュリティ チェックをどのような場合に省略するかを指定します。

セキュリティ チェックを行うタイミングを次の表に示します。このタイミングは、親キーおよび現在のキーを開いた方法によって決まります。

親キーを開いた方法

現在のキーを開いた方法

結果

Default

Default

セキュリティ チェックは、現在のキーの任意の値にアクセスするとき、またはサブキーにアクセスしようとしたときに行われます。これは、.NET Framework Version 1.0 および 1.1 での動作です。

Default

ReadSubTree

セキュリティ チェックは、現在のキーを開こうとしたときに行われます。

Default

ReadSubTree

セキュリティ チェックは、現在のキーを開こうとしたときに行われます。

ReadSubTree

Default または ReadSubTree

現在のキーまたはその値を開くときに、セキュリティ チェックは行われません。

ReadSubTree

ReadWriteSubTree

セキュリティ チェックは、現在のキーを開こうとしたときに行われます。

ReadWriteSubTree

任意

現在のキーまたはその値を開くときに、セキュリティ チェックは行われません。

使用例使用例

100 個のキー/値ペアを格納しているサブキーを作成し、これを閉じるコード例を次に示します。この例では、Default を使用してサブキーを開き、すべての値の読み取りに要する時間を記録します。次に、ReadSubTree を使用してサブキーを開き、すべての値の読み取りに要する時間を記録します。最後に、改善度を示すパーセント値を計算して表示します。

Imports System
Imports Microsoft.Win32
Imports System.Diagnostics

Public Class Example
    
    Public Shared Sub Main()
 

        Const LIMIT As Integer
 = 100
        Dim cu As RegistryKey = Registry.CurrentUser
        Const testKey As String
 = "RegistryKeyPermissionCheckExample"
        
        Console.WriteLine("Generating {0} key/value pairs.",
 LIMIT)
        Dim rk As RegistryKey = cu.CreateSubKey(testKey)

        For i As Integer
 = 0 To LIMIT
            rk.SetValue("Key" & i, i)
        Next i
        
        rk.Close()
        
        Dim s As New Stopwatch()
        
        ' On the default setting, security is checked every time
        ' a key/value pair is read.
        rk = cu.OpenSubKey(testKey, _
            RegistryKeyPermissionCheck.Default)
        
        s.Start()
        For i As Integer
 = 0 To LIMIT
            rk.GetValue("Key" & i, i)
        Next i
        s.Stop()
        rk.Close()
        Dim delta1 As Long
 = s.ElapsedTicks
        
        s.Reset()
        
        ' When the key is opened with ReadSubTree, security is 
        ' not checked when the values are read.
        rk = cu.OpenSubKey(testKey, _
            RegistryKeyPermissionCheck.ReadSubTree)
        
        s.Start()
        For i As Integer
 = 0 To LIMIT
            rk.GetValue("Key" & i, i)
        Next i
        s.Stop()
        rk.Close()
        Dim delta2 As Long
 = s.ElapsedTicks
        
        Dim faster As Double
 = _
            CDbl(delta1 - delta2) * 100.0 / CDbl(delta1)
        Console.WriteLine("ReadSubTree is {0}% faster for {1}
 values.", _
            faster.ToString("0.0"), LIMIT)
        
        cu.DeleteSubKey(testKey)
    
    End Sub 
End Class 

' This code example produces output similar to the following:
'
'Generating 100 key/value pairs.
'ReadSubTree is 23.4% faster for 100 values.
' 
using System;
using Microsoft.Win32;
using System.Diagnostics;

public class Example
{
    public static void Main()
    {
        const int LIMIT = 100;
        RegistryKey cu = Registry.CurrentUser;
        const string testKey = "RegistryKeyPermissionCheckExample";

        Console.WriteLine("Generating {0} key/value pairs.", LIMIT);
        RegistryKey rk = cu.CreateSubKey(testKey);
        for (int i = 0; i < LIMIT; i++)
        {
            rk.SetValue("Key" + i, i);
        }

        rk.Close();

        Stopwatch s = new Stopwatch();

        // On the default setting, security is checked every time
        // a key/value pair is read.
        rk = cu.OpenSubKey(testKey, RegistryKeyPermissionCheck.Default);
        
        s.Start();
        for (int i = 0; i < LIMIT; i++)
        {
            rk.GetValue("Key" + i, i);
        }
        s.Stop();
        rk.Close();
        long delta1 = s.ElapsedTicks;

        s.Reset();

        // When the key is opened with ReadSubTree, security is 
        // not checked when the values are read.
        rk = cu.OpenSubKey(testKey, RegistryKeyPermissionCheck.ReadSubTree);
        
        s.Start();
        for (int i = 0; i < LIMIT; i++)
        {
            rk.GetValue("Key" + i, i);
        }
        s.Stop();
        rk.Close();
        long delta2 = s.ElapsedTicks;

        double faster = (double) (delta1 - delta2) / (double) delta1;
        Console.WriteLine("ReadSubTree is {0}% faster for
 {1} values.",
            (faster * 100).ToString("0.0"), LIMIT);

        cu.DeleteSubKey(testKey);
    }
}

/* This code example produces output similar to the following:

Generating 100 key/value pairs.
ReadSubTree is 23.4% faster for 100 values.
 */
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Microsoft.Win32 名前空間



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「RegistryKeyPermissionCheck 列挙体」の関連用語

RegistryKeyPermissionCheck 列挙体のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



RegistryKeyPermissionCheck 列挙体のページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS