Condividi tramite


Metodo IFunctionDiscovery::AddInstance (functiondiscoveryapi.h)

[L'individuazione delle funzioni è disponibile per l'uso nei sistemi operativi specificati nella sezione Requisiti. Potrebbe essere modificato o non disponibile nelle versioni successive.]

Crea o modifica un'istanza di funzione.

Sintassi

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

Parametri

[in] enumSystemVisibility

Valore SystemVisibilityFlags che specifica se l'istanza della funzione creata è visibile a livello di sistema o solo all'utente corrente.

Nota L'istanza della funzione viene archiviata in HKEY_LOCAL_MACHINE indipendentemente dal valore enumSystemVisibility . Per aggiungere un'istanza di funzione, l'utente deve avere accesso come amministratore.
 

[in] pszCategory

Categoria dell'istanza della funzione creata. Vedere Definizioni di categoria.

[in] pszSubCategory

Sottocategoria dell'istanza della funzione creata. Vedere Definizioni di sottocategoria. La lunghezza massima di questa stringa è MAX_PATH.

[in] pszCategoryIdentity

Stringa dell'identificatore dell'istanza del provider. Questa stringa viene restituita da GetProviderInstanceID.

[out] ppIFunctionInstance

Puntatore a un puntatore all'interfaccia IFunctionInstance che riceve l'istanza della funzione.

Valore restituito

I valori restituiti possibili includono, ma non sono limitati ai valori seguenti.

Codice/valore restituito Descrizione
S_OK
Metodo completato correttamente.
E_INVALIDARG
Il valore di enumSystemVisibility, pszCategory o pszCategoryIdentity non è valido.
E_OUTOFMEMORY
Il metodo non è in grado di allocare la memoria necessaria per eseguire questa operazione.
E_ACCESSDENIED
L'utente dispone di autorizzazioni di accesso insufficienti per eseguire l'azione richiesta.
E_FAIL
Il provider non supporta l'aggiunta di istanze di funzione direttamente tramite il metodo AddInstance .
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
0x80070002
Il valore di pszCategory o pszSubCategory è sconosciuto.
STRSAFE_E_INVALID_PARAMETER
È stato specificato un parametro non valido. Questo errore viene restituito quando la lunghezza della stringa pszSubCategory supera MAX_PATH.

Commenti

Questo metodo crea temporaneamente una nuova istanza di funzione per la categoria e la sottocategoria specificate. Il provider che implementa la categoria è responsabile della persistenza dei metadati associati all'istanza di funzione appena creata usando il metodo IFunctionDiscoveryProviderFactory::CreateInstance .

L'istanza della funzione non viene scritta nel Registro di sistema se l'archivio delle proprietà associato non ha valori. Usare il metodo IFunctionInstance::OpenPropertyStore per controllare i valori dell'archivio delle proprietà.

Se esiste già un'istanza della funzione per la categoria e la sottocategoria specificate, la voce del Registro di sistema esistente viene sovrascritta. Il metodo AddInstance restituisce S_OK. Il processo di notifica delle modifiche di Individuazione funzioni richiama il metodo IFunctionDiscoveryNotification::OnUpdate dell'applicazione chiamante con enumQueryUpdateAction impostato su QUA_CHANGE.

Nota Il metodo IFunctionDiscoveryNotification::OnUpdate non è supportato da alcun provider corrente.
 
Se la nuova istanza della funzione è in grado di essere visibile a livello di sistema o solo all'utente dipende dal provider. Il provider del Registro di sistema imposta inizialmente la visibilità dell'istanza di funzione predefinita a livello di sistema.

L'autorizzazione di accesso per modificare le chiavi del Registro di sistema HKEY_LOCAL_MACHINE\SYSTEM è necessaria per aggiungere o rimuovere istanze di funzione usando il provider del Registro di sistema (amministratore o accesso a Power User).

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione functiondiscoveryapi.h
DLL FunDisc.dll

Vedi anche

IFunctionDiscovery