__Win32Provider クラス
__Win32Provider システム クラスは、WMI でのプロバイダーの物理的な実装に関する情報を登録します。 HostingModel プロパティを設定しないプロバイダーは、既定で NetworkServiceHostOrSelfHost として Wmiprvse.exe プロセスで実行されるように読み込まれます。
次の構文は、マネージド オブジェクト フォーマット (MOF) コードを簡素化しており、継承されたすべてのプロパティを含んでいます。 プロパティは、MOF 順ではなくアルファベット順で一覧表示されています。
構文
class __Win32Provider : __Provider
{
string ClientLoadableCLSID;
string CLSID;
sint32 Concurrency;
string DefaultMachineName;
boolean Enabled;
string HostingModel;
sint32 ImpersonationLevel = 0;
sint32 InitializationReentrancy;
datetime InitializationTimeoutInterval;
boolean InitializeAsAdminFirst;
string Name;
datetime OperationTimeoutInterval;
boolean PerLocaleInitialization = FALSE;
boolean PerUserInitialization = FALSE;
boolean Pure = TRUE;
string SecurityDescriptor;
boolean SupportsExplicitShutdown;
boolean SupportsExtendedStatus;
boolean SupportsQuotas;
boolean SupportsSendStatus;
boolean SupportsShutdown;
boolean SupportsThrottling;
datetime UnloadTimeout;
uint32 Version;
};
メンバー
__Win32Provider クラスには、次の種類のメンバーがあります。
プロパティ
__Win32Provider クラスには、次のプロパティがあります。
-
ClientLoadableCLSID
-
-
データ型: string
-
アクセスの種類: 読み取り/書き込み
WMI がクライアント プロセスまたは WMI プロセスにハイ パフォーマンス プロバイダーを読み込むかどうかを判断するために使用するクラス識別子。 プロバイダーとクライアントの両方が同じコンピューター上にある場合、WMI は ClientLoadableCLSID をクラス識別子として使用して、プロバイダーのインプロセスをクライアントに読み込みます。 プロバイダーとクライアントが異なるコンピューターにあるとき、WMI はプロバイダーのインプロセスを WMI に読み込みます。 WMI は、更新操作をサポートするために ClientLoadableCLSID も使用します。
詳細については、「High-Performance プロバイダーの登録」を参照してください。
-
-
CLSID
-
-
データ型: string
-
アクセスの種類: 読み取り/書き込み
プロバイダー COM オブジェクトのクラス識別子 (CLSID) を表す GUID。 この COM オブジェクトには、IWbemProviderInit インターフェイスの実装が含まれている必要があります。
-
-
コンカレンシー
-
-
データ型 : sint32
-
アクセスの種類: 読み取り/書き込み
使用されていません。
-
-
DefaultMachineName
-
-
データ型: string
-
アクセスの種類: 読み取り/書き込み
プロバイダーを起動するコンピューターを識別します。 プロバイダーがローカル コンピューターで実行されている場合は NULL です。
-
-
有効
-
-
データ型: boolean
-
アクセスの種類: 読み取り/書き込み
TRUE の場合、このインスタンスは有効になっており、クライアント要求を完了するために使用できます。
-
-
HostingModel
-
-
データ型: string
-
アクセスの種類: 読み取り/書き込み
このプロパティは、MSFT_ProvidersHostingGroup プロパティと HostingSpecification プロパティの値で構成されます。 このプロパティの値は、WMI がプロバイダーと実行されるセキュリティ アカウントを読み込む方法を指定します。 HostingModel プロパティの設定の詳細については、「プロバイダーのホスティングとセキュリティ」および「プロバイダーの登録」を参照してください。
-
-
ImpersonationLevel
-
-
データ型 : sint32
-
アクセスの種類: 読み取り/書き込み
予約済み。 既定値は 0 です。
-
-
InitializationReentrancy
-
-
データ型 : sint32
-
アクセスの種類: 読み取り/書き込み
シリアル化に関する情報を提供するフラグのセット。 既定値は 0 です。
-
-
0
-
このプロバイダーのすべての初期化をシリアル化する必要があります。
-
1
-
このプロバイダーの同じ名前空間内のすべての初期化をシリアル化する必要があります。
-
2
-
初期化シリアル化が必要ありません。
InitializationTimeoutInterval
-
データ型: datetime
-
アクセスの種類: 読み取り/書き込み
使用されていません。
InitializeAsAdminFirst
-
データ型: boolean
-
アクセスの種類: 読み取り/書き込み
TBD
名前
-
データ型: string
-
アクセスの種類: 読み取り/書き込み
-
修飾子: Key
プロバイダー名。
OperationTimeoutInterval
-
データ型: datetime
-
アクセスの種類: 読み取り/書き込み
使用されていません。
PerLocaleInitialization
-
データ型: boolean
-
アクセスの種類: 読み取り/書き込み
TRUE の場合、ユーザーが同じ名前空間に異なるロケールを使用して複数回接続すると、プロバイダーはロケールごとに初期化されます。 既定値は FALSE です。
PerUserInitialization
-
データ型: boolean
-
アクセスの種類: 読み取り/書き込み
TRUE の場合、プロバイダーは、プロバイダーに要求を行う NT LAN Manager (NTLM) ユーザーごとに 1 回初期化されます。 FALSE (既定値) の場合、プロバイダーはすべてのユーザーに対して 1 回初期化されます。
Pure
-
データ型: boolean
-
アクセスの種類: 読み取り/書き込み
TRUE の場合、WMI がプライマリ インターフェイスの Release メソッドを呼び出すときに、プロバイダーは IUnknown::Release を未処理のすべてのインターフェイス ポイントで呼び出すことによりアンロードの準備をすることに同意します。 プロバイダーがプロバイダーの役割をしない後も WMI のクライアントのままでいなければならない場合は、Pure を FALSE に設定する必要があります。 既定の設定は TRUE です。 詳細については、このトピックの「解説」セクションを参照してください。
SecurityDescriptor
-
データ型: string
-
アクセスの種類: 読み取り/書き込み
分離されたプロバイダーの IWbemDecoupledRegistrar:Register を正常に呼び出すことができるユーザーのセットを決定する、セキュリティ記述子定義言語 (SDDL) のセキュリティ記述子 (SD)。 詳細については、Windows SDK のセキュリティ セクションのセキュリティ記述子定義言語に関するトピックを参照してください。 このセキュリティ記述子は、分離されたプロバイダーにのみ使用され、他のプロバイダーには影響しません。 詳細については、「アプリケーションへのプロバイダーの組み込み」を参照してください。
WMI は、IWbemProviderInit インターフェイスと IWbemObjectSink インターフェイスを使用する、分離されたプロバイダーのアクセス チェックを実行します。 セキュリティ記述子が NULL の場合、分離されたプロバイダーを実行できるのは、LocalSystem、NetworkService、LocalService アカウントの下で実行されるアプリケーションまたはサービスだけです。
次の文字列は、組み込みの Administrators によってのみ実行される分離プロバイダーを示しています。"O:BAG:BAD:(A;;0x1;;;BA)"
SecurityDescriptor プロパティの設定の詳細については、「WMI セキュリティの維持」を参照してください。
SupportsExplicitShutdown
-
データ型: boolean
-
アクセスの種類: 読み取り/書き込み
使用されていません。
SupportsExtendedStatus
-
データ型: boolean
-
アクセスの種類: 読み取り/書き込み
使用されていません。
SupportsQuotas
-
データ型: boolean
-
アクセスの種類: 読み取り/書き込み
使用されていません。
SupportsSendStatus
-
データ型: boolean
-
アクセスの種類: 読み取り/書き込み
使用されていません。
SupportsShutdown
-
データ型: boolean
-
アクセスの種類: 読み取り/書き込み
使用されていません。
SupportsThrottling
-
データ型: boolean
-
アクセスの種類: 読み取り/書き込み
使用されていません。
UnloadTimeout
-
データ型: datetime
-
アクセスの種類: 読み取り/書き込み
WMI がアンロードされるまでプロバイダーがアイドル状態を維持するのをどれだけの期間許可するかを指定する日付と時刻の形式。 通常、プロバイダーは WMI が待機するのは 5 分間までにするよう要求します。
WMI の現在のバージョンでは、このプロパティの値は無視されます。 WMI は、\root 名前空間の内部クラスのタイムアウト値に基づいてプロバイダーをアンロードします。 プロバイダーが UnloadTimeout を設定することをお勧めします。 詳細については、「プロバイダーのアンロード」を参照してください。
Version
-
データ型: uint32
-
アクセスの種類: 読み取り/書き込み
プロバイダーのバージョン。 サポートされているバージョンは 1 と 2 です。 バージョン 2 では、関連するすべてのプロパティ登録 (具体的には ImpersonationLevel プロパティ) の有効性チェックが強化されています。
解説
__Win32Provider クラスは、__Provider から派生しています。
ほとんどのプロバイダーが InitializationReentrancy プロパティの既定値を受け入れます。 ただし、プロバイダーが個別のユーザーの同時初期化をサポートできる場合は、このプロパティを 1 に設定できます。 シリアル化された初期化が必要な場合、InitializationReentrancy は 0 (ゼロ) のままです。 どちらのインスタンスでも、PerUserInitialization は TRUE に設定されます。
Pure プロパティを TRUE に設定する純粋プロバイダーやプロバイダーは、アプリケーションや WMI からの要求に応えるためにだけ存在します。 ほとんどのプロバイダーは純粋なプロバイダーです。 純粋でないプロバイダーは例外です。 純粋でないプロバイダーは、要求対応を完了した後、クライアントのロールに移行します。
純粋でないプロバイダーの例としては、クエリの発行を開始し、初期化が完了した後に WMI の要求を行うプッシュ プロバイダーがあります。 プッシュ プロバイダーには、CIM リポジトリを初期化時のデータで更新する以外に責任はありません。 リポジトリを更新した後、プッシュ プロバイダーはアンロードされるのを待つか、クライアントのロールに移行できます。 アンロードされるのを待機するプッシュ プロバイダーは、純粋なプロバイダーです。 クライアント アクティビティに参加するプッシュ プロバイダーは、非純粋です。
WMI は純粋プロバイダーと非純粋プロバイダーを区別できて、安全にシャットダウンできるのはいつかを判断できなければなりません。 WMI は、非純粋プロバイダーに関係するすべての操作が完了するのを待ってから、安全にシャットダウンしなければなりません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista |
サポートされている最小のサーバー |
Windows Server 2008 |
名前空間 |
すべての WMI 名前空間 |