PerformanceCounterCategory.Create メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
カスタム パフォーマンス カウンター カテゴリと 1 つ以上のカウンターをシステムに登録します。
オーバーロード
Create(String, String, String, String) |
古い.
古い.
古い.
|
Create(String, String, PerformanceCounterCategoryType, String, String) |
NumberOfItems32 タイプの単一のカウンターが含まれているカスタム パフォーマンス カウンター カテゴリをローカル コンピューターに登録します。 |
Create(String, String, CounterCreationDataCollection) |
古い.
古い.
古い.
指定したカウンターが含まれているカスタム パフォーマンス カウンター カテゴリをローカル コンピューターに登録します。 |
Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection) |
指定したカウンターが含まれているカスタム パフォーマンス カウンター カテゴリをローカル コンピューターに登録します。 |
Create(String, String, String, String)
注意事項
This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. http://go.microsoft.com/fwlink/?linkid=14202
注意事項
This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. https://go.microsoft.com/fwlink/?linkid=14202
注意事項
This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.
NumberOfItems32
タイプの単一のカウンターが含まれているカスタム パフォーマンス カウンター カテゴリをローカル コンピューターに登録します。
public:
static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::String ^ counterName, System::String ^ counterHelp);
[System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[<System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. https://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, counterName As String, counterHelp As String) As PerformanceCounterCategory
パラメーター
- categoryName
- String
作成してシステムに登録するカスタム パフォーマンス カウンター カテゴリの名前。
- categoryHelp
- String
カスタム カテゴリの説明。
- counterName
- String
新しいカテゴリの一部として作成する NumberOfItems32
タイプの新しいカウンターの名前。
- counterHelp
- String
新しいカスタム カテゴリに関連付けるカウンターの説明。
戻り値
新しいシステム カテゴリ (パフォーマンス オブジェクト) と関連付ける PerformanceCounterCategory。
- 属性
例外
counterName
が null
または空の文字列 ("") です。
- または -
counterName
で指定されているカウンターが既に存在します。
- または -
counterName
に無効な構文が含まれています。 円記号 ("\") が含まれているか、長さが 80 文字を超える場合があります。
カテゴリが既にローカル コンピューター上に存在しています。
基になるシステム API の呼び出しに失敗しました。
管理特権を使用せずに実行されているコードがパフォーマンス カウンターの読み取りを試みました。
例
次のコード例では、 メソッドをPerformanceCounterCategory使用してCreate(String, String, String, String)、ヘルプ テキストを含む と をPerformanceCounter作成します。
public static void Main(string[] args)
{
string categoryName = "";
string counterName = "";
string categoryHelp = "";
string counterHelp = "";
PerformanceCounterCategory pcc;
// Copy the supplied arguments into the local variables.
try
{
categoryName = args[0];
counterName = args[1];
categoryHelp = args[2];
counterHelp = args[3];
}
catch(Exception ex)
{
// Ignore the exception from non-supplied arguments.
}
Console.WriteLine("Category name: \"{0}\"", categoryName);
Console.WriteLine("Category help: \"{0}\"", categoryHelp);
Console.WriteLine("Counter name: \"{0}\"", counterName);
Console.WriteLine("Counter help: \"{0}\"", counterHelp);
// Use the Create overload that creates a single counter.
try
{
pcc = PerformanceCounterCategory.Create(categoryName, categoryHelp, counterName, counterHelp);
Console.WriteLine("Category \"{0}\" created.", pcc.CategoryName);
}
catch(Exception ex)
{
Console.WriteLine("Unable to create the above category and counter:" + "\n" + ex.Message);
}
}
Sub Main(ByVal args() As String)
Dim categoryName As String = ""
Dim counterName As String = ""
Dim categoryHelp As String = ""
Dim counterHelp As String = ""
Dim pcc As PerformanceCounterCategory
' Copy the supplied arguments into the local variables.
Try
categoryName = args(0)
counterName = args(1)
categoryHelp = args(2)
counterHelp = args(3)
Catch ex As Exception
' Ignore the exception from non-supplied arguments.
End Try
Console.WriteLine("Category name: ""{0}""", categoryName)
Console.WriteLine("Category help: ""{0}""", categoryHelp)
Console.WriteLine("Counter name: ""{0}""", counterName)
Console.WriteLine("Counter help: ""{0}""", counterHelp)
' Use the Create overload that creates a single counter.
Try
pcc = PerformanceCounterCategory.Create( _
categoryName, categoryHelp, counterName, counterHelp)
Console.WriteLine("Category ""{0}"" created.", pcc.CategoryName)
Catch ex As Exception
Console.WriteLine( _
"Unable to create the above category and counter:" & _
vbCrLf & ex.Message)
End Try
End Sub
注釈
注意
Windows Vista 以降、Windows XP Professional x64 Edition、または Windows Server 2003 の非対話型ログオン セッションからパフォーマンス カウンターを読み取る場合は、パフォーマンス モニター Users グループのメンバーであるか、管理者特権を持っている必要があります。
Windows Vista 以降のパフォーマンス カウンターにアクセスするために特権を昇格させる必要がないようにするには、自分を パフォーマンス モニター Users グループに追加します。
Windows Vista 以降では、ユーザー アカウント制御 (UAC: User Account Control) でユーザーの権限が決定されます。 ユーザーが組み込みの Administrators グループのメンバーである場合、そのユーザーには標準ユーザー アクセス トークンおよび管理者アクセス トークンの 2 つのランタイム アクセス トークンが割り当てられています。 既定では、ユーザーは標準ユーザー ロールに所属します。 パフォーマンス カウンターにアクセスするコードを実行するには、まず特権を標準ユーザーから管理者に昇格させる必要があります。 この操作は、アプリケーションの起動時にアプリケーション アイコンを右クリックし、管理者として実行することを指定して行うことができます。
こちらもご覧ください
適用対象
Create(String, String, PerformanceCounterCategoryType, String, String)
NumberOfItems32 タイプの単一のカウンターが含まれているカスタム パフォーマンス カウンター カテゴリをローカル コンピューターに登録します。
public:
static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::PerformanceCounterCategoryType categoryType, System::String ^ counterName, System::String ^ counterHelp);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.PerformanceCounterCategoryType categoryType, string counterName, string counterHelp);
static member Create : string * string * System.Diagnostics.PerformanceCounterCategoryType * string * string -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, categoryType As PerformanceCounterCategoryType, counterName As String, counterHelp As String) As PerformanceCounterCategory
パラメーター
- categoryName
- String
作成してシステムに登録するカスタム パフォーマンス カウンター カテゴリの名前。
- categoryHelp
- String
カスタム カテゴリの説明。
- categoryType
- PerformanceCounterCategoryType
カテゴリが PerformanceCounterCategoryType、MultiInstance、または SingleInstance のいずれであるかを指定する、Unknown 値の 1 つ。
- counterName
- String
新しいカテゴリの一部として作成する新しいカウンターの名前。
- counterHelp
- String
新しいカスタム カテゴリに関連付けるカウンターの説明。
戻り値
新しいシステム カテゴリ (パフォーマンス オブジェクト) と関連付ける PerformanceCounterCategory。
例外
counterName
が null
または空の文字列 ("") です。
- または -
counterName
で指定されているカウンターが既に存在します。
- または -
counterName
に無効な構文が含まれています。 円記号 ("\") が含まれているか、長さが 80 文字を超える場合があります。
カテゴリが既にローカル コンピューター上に存在しています。
基になるシステム API の呼び出しに失敗しました。
管理特権を使用せずに実行されているコードがパフォーマンス カウンターの読み取りを試みました。
例
次のコード例は、 メソッドの使用方法を Create 示しています。 この例では、カスタムの単一インスタンス パフォーマンス カウンター カテゴリを作成する方法を示します。
Console.WriteLine("Creating Inventory custom counter");
if (!PerformanceCounterCategory.Exists("Inventory"))
PerformanceCounterCategory.Create("Inventory",
"Truck inventory",
PerformanceCounterCategoryType.SingleInstance,
"Trucks", "Number of trucks on hand");
Console.WriteLine("Creating Inventory custom counter")
If Not PerformanceCounterCategory.Exists("Inventory") Then
PerformanceCounterCategory.Create("Inventory", "Truck inventory", PerformanceCounterCategoryType.SingleInstance, "Trucks", "Number of trucks on hand")
End If
注釈
パラメーターは categoryType
、パフォーマンス カウンター カテゴリが単一インスタンスか複数インスタンスかを指定します。 既定では、カテゴリは作成時に単一インスタンスになり、別のインスタンスが追加されるとマルチインスタンスになります。 カテゴリは、アプリケーションの設定時に作成され、インスタンスは実行時に追加されます。 .NET Framework バージョン 1.0 および 1.1 では、パフォーマンス カウンター カテゴリがマルチインスタンスか単一インスタンスであるかを知る必要はありません。 .NET Framework 2.0 では、列挙を使用して、PerformanceCounterCategoryTypeパフォーマンス カウンターに複数のインスタンスを含めることができるかどうかを示します。
.NET Framework 2.0 と共にインストールされたパフォーマンス カウンター カテゴリでは、個別の共有メモリが使用され、各パフォーマンス カウンター カテゴリには独自のメモリがあります。 カテゴリ名\Performance のレジストリ キーに FileMappingSize という名前の DWORD を作成することで、個別の共有メモリのサイズ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<指定できます。> FileMappingSize 値は、カテゴリの共有メモリ サイズに設定されます。 既定のサイズは 10 進数131072です。 FileMappingSize 値が存在しない場合は、 fileMappingSize
Machine.config ファイルで指定された要素の属性値 performanceCounters
が使用され、構成ファイルの処理に追加のオーバーヘッドが発生します。 レジストリでファイル マッピング のサイズを設定することで、アプリケーションの起動のパフォーマンスを向上させることができます。
注意
アプリケーションの実行中ではなく、アプリケーションのインストール中に新しいパフォーマンス カウンター カテゴリを作成することを強くお勧めします。 これにより、オペレーティング システムが登録済みのパフォーマンス カウンター カテゴリの一覧を更新する時間が得られます。 リストが更新されていない場合、カテゴリの使用は失敗します。
注意
Windows Vista 以降、Windows XP Professional x64 Edition、または Windows Server 2003 の非対話型ログオン セッションからパフォーマンス カウンターを読み取る場合は、パフォーマンス モニター Users グループのメンバーであるか、管理者特権を持っている必要があります。
Windows Vista 以降のパフォーマンス カウンターにアクセスするために特権を昇格させる必要がないようにするには、自分を パフォーマンス モニター Users グループに追加します。
Windows Vista 以降では、ユーザー アカウント制御 (UAC: User Account Control) でユーザーの権限が決定されます。 ユーザーが組み込みの Administrators グループのメンバーである場合、そのユーザーには標準ユーザー アクセス トークンおよび管理者アクセス トークンの 2 つのランタイム アクセス トークンが割り当てられています。 既定では、ユーザーは標準ユーザー ロールに所属します。 パフォーマンス カウンターにアクセスするコードを実行するには、まず特権を標準ユーザーから管理者に昇格させる必要があります。 この操作は、アプリケーションの起動時にアプリケーション アイコンを右クリックし、管理者として実行することを指定して行うことができます。
こちらもご覧ください
適用対象
Create(String, String, CounterCreationDataCollection)
注意事項
This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. http://go.microsoft.com/fwlink/?linkid=14202
注意事項
This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. https://go.microsoft.com/fwlink/?linkid=14202
注意事項
This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.
指定したカウンターが含まれているカスタム パフォーマンス カウンター カテゴリをローカル コンピューターに登録します。
public:
static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::CounterCreationDataCollection ^ counterData);
[System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[<System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. https://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, counterData As CounterCreationDataCollection) As PerformanceCounterCategory
パラメーター
- categoryName
- String
作成してシステムに登録するカスタム パフォーマンス カウンター カテゴリの名前。
- categoryHelp
- String
カスタム カテゴリの説明。
- counterData
- CounterCreationDataCollection
新しいカテゴリの一部として作成するカウンターを指定する CounterCreationDataCollection。
戻り値
新しいカスタム カテゴリ (パフォーマンス オブジェクト) と関連付ける PerformanceCounterCategory。
- 属性
例外
counterData
コレクションで指定されているカウンター名が null
または空の文字列 ("") です。
- または -
counterData
コレクションで指定されているカウンターが既に存在します。
- または -
counterName
パラメーターの構文が無効です。 円記号 ("\") が含まれているか、長さが 80 文字を超える場合があります。
categoryName
パラメーターが null
です。
カテゴリが既にローカル コンピューター上に存在しています。
- または -
counterData
コレクションのレイアウトが、ベース カウンターに適合していません。 カウンターのタイプが AverageCount64
、AverageTimer32
、CounterMultiTimer
、CounterMultiTimerInverse
、CounterMultiTimer100Ns
、CounterMultiTimer100NsInverse
、RawFraction
、SampleFraction
、または SampleCounter
の場合は、直後にベース カウンター タイプのいずれか (AverageBase
、MultiBase
、RawBase
、または SampleBase
) が必要です。
基になるシステム API の呼び出しに失敗しました。
管理特権を使用せずに実行されているコードがパフォーマンス カウンターの読み取りを試みました。
例
次のコード例では、"orders" という名前の PerformanceCounterCategory オブジェクトが存在するかどうかを判断します。 存在しない場合は、2 つのパフォーマンス カウンターを PerformanceCounterCategory 含む オブジェクトを CounterCreationDataCollection 使用して オブジェクトを作成します。
if ( !PerformanceCounterCategory::Exists( "Orders" ) )
{
CounterCreationData^ milk = gcnew CounterCreationData;
milk->CounterName = "milk";
milk->CounterType = PerformanceCounterType::NumberOfItems32;
CounterCreationData^ milkPerSecond = gcnew CounterCreationData;
milkPerSecond->CounterName = "milk orders/second";
milkPerSecond->CounterType = PerformanceCounterType::RateOfCountsPerSecond32;
CounterCreationDataCollection^ ccds = gcnew CounterCreationDataCollection;
ccds->Add( milkPerSecond );
ccds->Add( milk );
PerformanceCounterCategory::Create( "Orders", "Number of processed orders", ccds );
}
if (!PerformanceCounterCategory.Exists("Orders"))
{
CounterCreationData milk = new CounterCreationData();
milk.CounterName = "milk";
milk.CounterType = PerformanceCounterType.NumberOfItems32;
CounterCreationData milkPerSecond = new CounterCreationData();
milkPerSecond.CounterName = "milk orders/second";
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32;
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(milkPerSecond);
ccds.Add(milk);
PerformanceCounterCategory.Create("Orders", "Number of processed orders",
PerformanceCounterCategoryType.SingleInstance, ccds);
}
If Not PerformanceCounterCategory.Exists("Orders") Then
Dim milk As New CounterCreationData()
milk.CounterName = "milk"
milk.CounterType = PerformanceCounterType.NumberOfItems32
Dim milkPerSecond As New CounterCreationData()
milkPerSecond.CounterName = "milk orders/second"
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32
Dim ccds As New CounterCreationDataCollection()
ccds.Add(milkPerSecond)
ccds.Add(milk)
PerformanceCounterCategory.Create("Orders", "Number of processed orders", _
PerformanceCounterCategoryType.SingleInstance, ccds)
End If
注釈
注意
Windows Vista 以降、Windows XP Professional x64 Edition、または Windows Server 2003 の非対話型ログオン セッションからパフォーマンス カウンターを読み取るには、パフォーマンス モニター Users グループのメンバーであるか、管理者特権を持っている必要があります。
Windows Vista 以降のパフォーマンス カウンターにアクセスするために特権を昇格させる必要がないようにするには、パフォーマンス モニター Users グループに自分自身を追加します。
Windows Vista 以降では、ユーザー アカウント制御 (UAC: User Account Control) でユーザーの権限が決定されます。 ユーザーが組み込みの Administrators グループのメンバーである場合、そのユーザーには標準ユーザー アクセス トークンおよび管理者アクセス トークンの 2 つのランタイム アクセス トークンが割り当てられています。 既定では、ユーザーは標準ユーザー ロールに所属します。 パフォーマンス カウンターにアクセスするコードを実行するには、まず特権を標準ユーザーから管理者に昇格させる必要があります。 この操作は、アプリケーションの起動時にアプリケーション アイコンを右クリックし、管理者として実行することを指定して行うことができます。
こちらもご覧ください
適用対象
Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)
指定したカウンターが含まれているカスタム パフォーマンス カウンター カテゴリをローカル コンピューターに登録します。
public:
static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::PerformanceCounterCategoryType categoryType, System::Diagnostics::CounterCreationDataCollection ^ counterData);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.PerformanceCounterCategoryType categoryType, System.Diagnostics.CounterCreationDataCollection counterData);
static member Create : string * string * System.Diagnostics.PerformanceCounterCategoryType * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, categoryType As PerformanceCounterCategoryType, counterData As CounterCreationDataCollection) As PerformanceCounterCategory
パラメーター
- categoryName
- String
作成してシステムに登録するカスタム パフォーマンス カウンター カテゴリの名前。
- categoryHelp
- String
カスタム カテゴリの説明。
- categoryType
- PerformanceCounterCategoryType
PerformanceCounterCategoryType 値のいずれか 1 つ。
- counterData
- CounterCreationDataCollection
新しいカテゴリの一部として作成するカウンターを指定する CounterCreationDataCollection。
戻り値
新しいカスタム カテゴリ (パフォーマンス オブジェクト) と関連付ける PerformanceCounterCategory。
例外
counterData
コレクションで指定されているカウンター名が null
または空の文字列 ("") です。
- または -
counterData
コレクションで指定されているカウンターが既に存在します。
- または -
counterName
に無効な構文が含まれています。 円記号 ("\") が含まれているか、長さが 80 文字を超える場合があります。
categoryType
値が MultiInstance
、SingleInstance
、Unknown
のいずれの値でもありません。
カテゴリが既にローカル コンピューター上に存在しています。
- または -
counterData
コレクションのレイアウトが、ベース カウンターに適合していません。 カウンターのタイプが AverageCount64
、AverageTimer32
、CounterMultiTimer
、CounterMultiTimerInverse
、CounterMultiTimer100Ns
、CounterMultiTimer100NsInverse
、RawFraction
、SampleFraction
、または SampleCounter
の場合は、直後にベース カウンター タイプのいずれか (AverageBase
、MultiBase
、RawBase
、または SampleBase
) が必要です。
基になるシステム API の呼び出しに失敗しました。
管理特権を使用せずに実行されているコードがパフォーマンス カウンターの読み取りを試みました。
例
次のコード例は、 メソッドの使用方法を Create 示しています。 この例では、1 秒あたりの注文数に対してカスタムのマルチインスタンス パフォーマンス カウンター カテゴリを作成する方法を示します。
CounterCreationData data1 = new CounterCreationData("Trucks",
"Number of orders", PerformanceCounterType.NumberOfItems32);
CounterCreationData data2 = new CounterCreationData("Rate of sales",
"Orders/second", PerformanceCounterType.RateOfCountsPerSecond32);
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(data1);
ccds.Add(data2);
Console.WriteLine("Creating Orders custom counter.");
if (!PerformanceCounterCategory.Exists("Orders"))
PerformanceCounterCategory.Create("Orders",
"Processed orders",
PerformanceCounterCategoryType.MultiInstance,
ccds);
Dim data1 As New CounterCreationData("Trucks", "Number of orders", PerformanceCounterType.NumberOfItems32)
Dim data2 As New CounterCreationData("Rate of sales", "Orders/second", PerformanceCounterType.RateOfCountsPerSecond32)
Dim ccds As New CounterCreationDataCollection()
ccds.Add(data1)
ccds.Add(data2)
Console.WriteLine("Creating Orders custom counter.")
If Not PerformanceCounterCategory.Exists("Orders") Then
PerformanceCounterCategory.Create("Orders", "Processed orders", PerformanceCounterCategoryType.MultiInstance, ccds)
End If
注釈
パラメーターは categoryType
、パフォーマンス カウンター カテゴリが単一インスタンスかマルチインスタンスかを指定します。 既定では、カテゴリは作成時に単一インスタンスになり、別のインスタンスが追加されるとマルチインスタンスになります。 カテゴリは、アプリケーションのセットアップ時に作成され、インスタンスは実行時に追加されます。 .NET Framework バージョン 1.0 および 1.1 では、パフォーマンス カウンター カテゴリがマルチインスタンスか単一インスタンスかはわかりません。 .NET Framework 2.0 では、 列挙を使用して、PerformanceCounterCategoryTypeパフォーマンス カウンターに複数のインスタンスを含めることができるかどうかを示します。
.NET Framework 2.0 と共にインストールされたパフォーマンス カウンター カテゴリでは、個別の共有メモリが使用され、各パフォーマンス カウンター カテゴリには独自のメモリがあります。 カテゴリ名\Performance のレジストリ キーに FileMappingSize という名前の DWORD を作成することで、個別の共有メモリのサイズ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<指定できます。> FileMappingSize 値は、カテゴリの共有メモリ サイズに設定されます。 既定のサイズは 10 進数131072です。 FileMappingSize 値が存在しない場合は、 fileMappingSize
Machine.config ファイルで指定された要素の属性値 performanceCounters
が使用され、構成ファイルの処理に追加のオーバーヘッドが発生します。 レジストリでファイル マッピング サイズを設定することで、アプリケーションの起動のパフォーマンスを向上させることができます。
注意
アプリケーションの実行中ではなく、アプリケーションのインストール中に新しいパフォーマンス カウンター カテゴリを作成することを強くお勧めします。 これにより、オペレーティング システムが登録されているパフォーマンス カウンター カテゴリの一覧を更新する時間が得られます。 リストが更新されていない場合、カテゴリの使用は失敗します。
注意
Windows Vista 以降、Windows XP Professional x64 Edition、または Windows Server 2003 の非対話型ログオン セッションからパフォーマンス カウンターを読み取るには、パフォーマンス モニター Users グループのメンバーであるか、管理者特権を持っている必要があります。
Windows Vista 以降のパフォーマンス カウンターにアクセスするために特権を昇格させる必要がないようにするには、パフォーマンス モニター Users グループに自分自身を追加します。
Windows Vista 以降では、ユーザー アカウント制御 (UAC: User Account Control) でユーザーの権限が決定されます。 ユーザーが組み込みの Administrators グループのメンバーである場合、そのユーザーには標準ユーザー アクセス トークンおよび管理者アクセス トークンの 2 つのランタイム アクセス トークンが割り当てられています。 既定では、ユーザーは標準ユーザー ロールに所属します。 パフォーマンス カウンターにアクセスするコードを実行するには、まず特権を標準ユーザーから管理者に昇格させる必要があります。 この操作は、アプリケーションの起動時にアプリケーション アイコンを右クリックし、管理者として実行することを指定して行うことができます。
こちらもご覧ください
適用対象
.NET