Freigeben über


IFunctionDiscovery::AddInstance-Methode (functiondiscoveryapi.h)

[Funktionsermittlung ist für die Verwendung in den Betriebssystemen verfügbar, die im Abschnitt Anforderungen angegeben sind. Sie kann in nachfolgenden Versionen geändert oder nicht verfügbar sein.]

Erstellt oder ändert eine Funktion instance.

Syntax

HRESULT AddInstance(
  [in]  SystemVisibilityFlags enumSystemVisibility,
  [in]  const WCHAR           *pszCategory,
  [in]  const WCHAR           *pszSubCategory,
  [in]  const WCHAR           *pszCategoryIdentity,
  [out] IFunctionInstance     **ppIFunctionInstance
);

Parameter

[in] enumSystemVisibility

Ein SystemVisibilityFlags-Wert, der angibt, ob die erstellte Funktion instance systemweit oder nur für den aktuellen Benutzer sichtbar ist.

Hinweis Die Funktion instance wird unabhängig vom Wert enumSystemVisibility in HKEY_LOCAL_MACHINE gespeichert. Der Benutzer muss über Administratorzugriff verfügen, um eine Funktion instance hinzuzufügen.
 

[in] pszCategory

Die Kategorie der erstellten Funktion instance. Weitere Informationen finden Sie unter Kategoriedefinitionen.

[in] pszSubCategory

Die Unterkategorie der erstellten Funktion instance. Siehe Unterkategoriedefinitionen. Die maximale Länge dieser Zeichenfolge ist MAX_PATH.

[in] pszCategoryIdentity

Der Anbieter instance Bezeichnerzeichenfolge. Diese Zeichenfolge wird von GetProviderInstanceID zurückgegeben.

[out] ppIFunctionInstance

Ein Zeiger auf einen IFunctionInstance-Schnittstellenzeiger, der die Funktion instance empfängt.

Rückgabewert

Mögliche Rückgabewerte sind unter anderem folgendes:

Rückgabecode/-wert BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen.
E_INVALIDARG
Der Wert von enumSystemVisibility, pszCategory oder pszCategoryIdentity ist ungültig.
E_OUTOFMEMORY
Die -Methode kann den für diesen Vorgang erforderlichen Arbeitsspeicher nicht zuordnen.
E_ACCESSDENIED
Der Benutzer verfügt über unzureichende Zugriffsberechtigungen, um die angeforderte Aktion auszuführen.
E_FAIL
Das direkte Hinzufügen von Funktionsinstanzen mithilfe der AddInstance-Methode wird vom Anbieter nicht unterstützt.
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
0x80070002
Der Wert von pszCategory oder pszSubCategory ist unbekannt.
STRSAFE_E_INVALID_PARAMETER
Ein ungültiger Parameter wurde angegeben. Dieser Fehler wird zurückgegeben, wenn die Länge der pszSubCategory-Zeichenfolge MAX_PATH überschreitet.

Hinweise

Diese Methode erstellt vorübergehend eine neue Funktion instance für die angegebene Kategorie und Unterkategorie. Der Anbieter, der die Kategorie implementiert, ist für die Beibehaltung der Metadaten verantwortlich, die der neu erstellten Funktion instance mithilfe der IFunctionDiscoveryProviderFactory::CreateInstance-Methode zugeordnet sind.

Die Funktion instance wird nicht in die Registrierung geschrieben, wenn der zugeordnete Eigenschaftenspeicher keine Werte aufweist. Verwenden Sie die IFunctionInstance::OpenPropertyStore-Methode , um die Werte des Eigenschaftenspeichers zu überprüfen.

Wenn für die angegebene Kategorie und Unterkategorie bereits eine Funktion instance vorhanden ist, wird der vorhandene Registrierungseintrag überschrieben. Die AddInstance-Methode gibt S_OK zurück. Der Benachrichtigungsprozess zur Funktionsermittlung ruft die IFunctionDiscoveryNotification::OnUpdate-Methode der aufrufenden Anwendung auf, wobei enumQueryUpdateAction auf QUA_CHANGE festgelegt ist.

Hinweis Die IFunctionDiscoveryNotification::OnUpdate-Methode wird von keinem aktuellen Anbieter unterstützt.
 
Ob die neue Funktion instance systemweit oder nur für den Benutzer sichtbar sein kann, hängt vom Anbieter ab. Der Registrierungsanbieter legt zunächst seine Standardfunktion instance Sichtbarkeit auf systemweit fest.

Die Zugriffsberechtigung zum Ändern HKEY_LOCAL_MACHINE\SYSTEM Registrierungsschlüssel ist erforderlich, um Funktionsinstanzen mithilfe des Registrierungsanbieters (Administrator- oder Power User-Zugriff) hinzuzufügen oder zu entfernen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile functiondiscoveryapi.h
DLL FunDisc.dll

Weitere Informationen

IFunctionDiscovery