Compartilhar via


Método IFunctionDiscovery::AddInstance (functiondiscoveryapi.h)

[A Descoberta de Funções está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele pode estar alterado ou indisponível em versões subsequentes.]

Cria ou modifica uma instância de função.

Sintaxe

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

Parâmetros

[in] enumSystemVisibility

Um valor SystemVisibilityFlags que especifica se a instância de função criada é visível em todo o sistema ou apenas para o usuário atual.

Nota A instância de função é armazenada em HKEY_LOCAL_MACHINE independentemente do valor enumSystemVisibility . O usuário deve ter acesso de Administrador para adicionar uma instância de função.
 

[in] pszCategory

A categoria da instância de função criada. Consulte Definições de categoria.

[in] pszSubCategory

A subcategoria da instância de função criada. Consulte Definições de subcategoria. O comprimento máximo dessa cadeia de caracteres é MAX_PATH.

[in] pszCategoryIdentity

A cadeia de caracteres do identificador de instância do provedor. Essa cadeia de caracteres é retornada de GetProviderInstanceID.

[out] ppIFunctionInstance

Um ponteiro para um ponteiro de interface IFunctionInstance que recebe a instância da função.

Valor retornado

Os valores retornados possíveis incluem, mas não se limitam a, o seguinte.

Valor/código retornado Descrição
S_OK
O método foi concluído com sucesso.
E_INVALIDARG
O valor de enumSystemVisibility, pszCategory ou pszCategoryIdentity é inválido.
E_OUTOFMEMORY
O método não pode alocar a memória necessária para executar essa operação.
E_ACCESSDENIED
O usuário não tem permissão de acesso suficiente para executar a ação solicitada.
E_FAIL
O provedor não dá suporte à adição de instâncias de função diretamente usando o método AddInstance .
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
0x80070002
O valor de pszCategory ou pszSubCategory é desconhecido.
STRSAFE_E_INVALID_PARAMETER
Um parâmetro inválido foi especificado. Esse erro é retornado quando o comprimento da cadeia de caracteres pszSubCategory excede MAX_PATH.

Comentários

Esse método cria temporariamente uma nova instância de função para a categoria e a subcategoria especificadas. O provedor que implementa a categoria é responsável por persistir os metadados associados à instância de função recém-criada usando o método IFunctionDiscoveryProviderFactory::CreateInstance .

A instância de função não será gravada no registro se o repositório de propriedades associado não tiver nenhum valor. Use o método IFunctionInstance::OpenPropertyStore para marcar os valores do repositório de propriedades.

Se já existir uma instância de função para a categoria e a subcategoria especificadas, a entrada existente do Registro será substituída. O método AddInstance retorna S_OK. O processo de notificação de alteração da Descoberta de Funções invoca o método IFunctionDiscoveryNotification::OnUpdate do aplicativo de chamada com enumQueryUpdateAction definido como QUA_CHANGE.

Nota O método IFunctionDiscoveryNotification::OnUpdate não tem suporte de nenhum provedor atual.
 
Se a nova instância de função é capaz de ser visível em todo o sistema ou apenas para o usuário depende do provedor. O provedor do Registro inicialmente define sua visibilidade de instância de função padrão para todo o sistema.

A permissão de acesso para alterar HKEY_LOCAL_MACHINE\SYSTEM chaves do Registro é necessária para adicionar ou remover instâncias de função usando o provedor do Registro (acesso do Administrador ou do Power User).

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho functiondiscoveryapi.h
DLL FunDisc.dll

Confira também

IFunctionDiscovery