部分インスタンス操作のサポート
部分インスタンス操作をサポートするためにプロバイダーは必要ありません。 ただし、プロバイダーは、部分インスタンス操作のすべてのセマンティクスをサポートするか、完全なインスタンスを処理するか、WBEM_E_UNSUPPORTED_PARAMETER を返す必要があります。
部分インスタンス操作をサポートするプロバイダーを作成する場合は、次の規則に従う必要があります。
- WMI がプロバイダーに送信するのと同じコンテキスト オブジェクトを再利用します。 WMI では、"__GET_EXT_CLIENT_REQUEST" という名前の値を使用してデッドロックを防ぎ、コンテキスト オブジェクトをプロバイダーに転送する前にこのクライアントを削除します。
- 部分インスタンス操作を必要としない WMI への再入可能な呼び出しの場合は、変更を加えずに同じコンテキスト オブジェクトを渡してください。 WMI では、"__GET_EXT_CLIENT_REQUEST" という名前の値が設定されていないコンテキスト オブジェクトを受け取り、部分インスタンス操作に関連付けられているすべての名前付き値をコンテキスト オブジェクトから削除してから、他のプロバイダーに渡します。 コンテキスト オブジェクトを変更しないと、関連のない別のオブジェクトを対象とした部分インスタンス取得操作を他のプロバイダーが受信できなくなります。
- 要求の実行中に再入部分インスタンス操作を実行するには、不足している "__GET_EXT_CLIENT_REQUEST" という名前の値とプロパティをクリアに設定します。 必要に応じて、"__GET_EXT_PROPERTIES" という名前の値のプロパティを変更してから、再入呼び出しでコンテキスト オブジェクトを WMI に戻すことができます。
- 再入呼び出し中に WMI に戻した後、コンテキスト オブジェクトにアクセスしないでください。他のプロバイダーが、再入時にプロパティ リストまたはその他の値を変更する可能性があります。 コンテキスト オブジェクトは、実装した IWbemServices 呼び出しの期間中のみ確認または変更できます。