[関数の検出は、[要件] セクションで指定されたオペレーティング システムで使用できます。 これは、以降のバージョンで変更または使用できない可能性があります。
関数インスタンスを作成します。 このメソッドを使用して、すべての関数インスタンスを作成する必要があります。 IFunctionInstance をサポートする他の実装は使用しないでください。
構文
HRESULT CreateInstance(
[in] const WCHAR *pszSubCategory,
[in] const WCHAR *pszProviderInstanceIdentity,
[in] INT_PTR iProviderInstanceContext,
[in] IPropertyStore *pIPropertyStore,
[in] IFunctionDiscoveryProvider *pIFunctionDiscoveryProvider,
[out] IFunctionInstance **ppIFunctionInstance
);
パラメーター
[in] pszSubCategory
関数インスタンスのサブカテゴリ文字列。 「 サブカテゴリの定義」を参照してください。
[in] pszProviderInstanceIdentity
プロバイダー インスタンス識別子。
関数検出では、この識別子を使用して 、IFunctionInstance::GetID によって返される関数インスタンス識別子が一意であることを確認します。 そのため、Function Discovery は pszProviderInstanceIdentity に渡される識別子にプレフィックスをアタッチして、特定の関数インスタンス識別子がすべてのプロバイダーで一意であることを確認します。 実装者は、 pszProviderInstanceIdentity が プロバイダーのスコープ内でデバイス、リソース、またはインスタンスを一意に識別するようにする必要があります。
この文字列は、 IFunctionInstance::GetProviderInstanceID を呼び出すクライアント アプリケーションに返されます。
この文字列のサイズに上限はありません。
[in] iProviderInstanceContext
特定の関数インスタンスに関連付けられているコンテキスト。
[in] pIPropertyStore
IPropertyStore インターフェイスへのポインター。
[in] pIFunctionDiscoveryProvider
この関数インスタンスを作成する IFunctionDiscoveryProvider プロバイダー インスタンスへのポインター。
[out] ppIFunctionInstance
IFunctionInstance インターフェイスへのポインター。
戻り値
このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。
注釈
プロバイダーは、サブカテゴリ ( NULL である可能性があります)、インスタンス識別子、プロバイダー割り当てコンテキスト (必要な場合)、およびオプションのプロパティ ストアを指定する必要があります。
CreateInstance は、適切に初期化された関数インスタンスをプロバイダーに返します。
プロバイダーによって指定されたコンテキストは、 InstanceReleased、 InstancePropertyStoreOpen、 InstancePropertyStoreFlush、 InstanceQueryService など、後続のすべての関数インスタンス関連メソッドのプロバイダーに返されます。
プロバイダーは、 CreateInstance が呼び出されている間に、プロバイダー参照カウントが別のスレッドで 0 にならないことを保証する必要があります。
要件
| 要件 | 値 |
|---|---|
| サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
| 対象プラットフォーム | Windows |
| ヘッダー | functiondiscoveryprovider.h |