Função SetupDiCallClassInstaller (setupapi.h)

A função SetupDiCallClassInstaller chama o instalador de classe apropriado e todos os co-instaladores registrados, com a solicitação de instalação especificada (código DIF).

Sintaxe

WINSETUPAPI BOOL SetupDiCallClassInstaller(
  [in]           DI_FUNCTION      InstallFunction,
  [in]           HDEVINFO         DeviceInfoSet,
  [in, optional] PSP_DEVINFO_DATA DeviceInfoData
);

Parâmetros

[in] InstallFunction

A solicitação de instalação do dispositivo (solicitação DIF) a ser passada para os co-instaladores e o instalador de classe. Os códigos DIF têm o formato DIF_XXX e são definidos em Setupapi.h. Consulte Códigos de função de instalação do dispositivo para obter mais informações.

Nota Para determinadas solicitações DIF, o chamador deve ser um membro do grupo Administradores. Para essas solicitações DIF, esse requisito é listado na página de referência do manipulador padrão associado.
 

[in] DeviceInfoSet

Um identificador para um conjunto de informações do dispositivo para o computador local. Esse conjunto contém um elemento de instalação do dispositivo que representa o dispositivo para o qual executar a função de instalação especificada.

[in, optional] DeviceInfoData

Um ponteiro para uma estrutura SP_DEVINFO_DATA que especifica o elemento de informações do dispositivo no DeviceInfoSet que representa o dispositivo para o qual executar a função de instalação especificada. Esse parâmetro é opcional e pode ser definido como NULL. Se esse parâmetro for especificado, SetupDiCallClassInstaller executará a função especificada no elemento DeviceInfoData . Se DeviceInfoData for NULL, SetupDiCallClassInstaller chamará os instaladores para a classe de instalação associada a DeviceInfoSet.

Retornar valor

A função retornará TRUE se for bem-sucedida. Caso contrário, ele retornará FALSE e o erro registrado poderá ser recuperado fazendo uma chamada para GetLastError.

Quando GetLastError retorna ERROR_IN_WOW64, isso significa que o aplicativo de chamada é um aplicativo de 32 bits tentando executar em um ambiente de 64 bits, o que não é permitido.

Comentários

SetupDiCallClassInstaller chama o instalador de classe e todos os co-instaladores registrados para um dispositivo ou uma classe de configuração de dispositivo. Essa função carregará os instaladores se eles ainda não estiverem carregados. A função também chama o manipulador padrão para a solicitação DIF, se houver um manipulador padrão e se os instaladores retornarem um status indicando que o manipulador padrão deve ser chamado.

Os aplicativos de instalação de dispositivo chamam essa função com uma variedade de códigos de função de instalação do dispositivo (códigos DIF). A função garante que todos os instaladores e manipuladores padrão apropriados sejam chamados, na ordem correta, para uma determinada solicitação DIF. Para obter mais informações, consulte Manipulando códigos DIF.

Depois que SetupDiCallClassInstaller retornar TRUE, o aplicativo de instalação do dispositivo deverá chamar SetupDiGetDeviceInstallParams para obter uma estrutura SP_DEVINSTALL_PARAMS . Se o sinalizador DI_NEEDREBOOT ou DI_NEEDRESTART da estrutura estiver definido, o chamador deverá solicitar que o usuário reinicie o sistema. Por exemplo, o chamador pode fazer isso chamando SetupPromptReboot.

No entanto, lembre-se de que um aplicativo de instalação de dispositivo deve solicitar uma reinicialização do sistema uma vez no máximo. Portanto, qualquer aplicativo de instalação de dispositivo que cria várias chamadas para SetupDiCallClassInstaller e SetupDiGetDeviceInstallParams deve salvar os sinalizadores DI_NEEDREBOOT e DI_NEEDRESTART após cada chamada. No entanto, ele deve solicitar ao usuário somente após o retorno da última chamada.

Em resposta a um código DIF fornecido por SetupDiCallClassInstaller, instaladores de classe e co-instaladores podem executar operações que exigem que o sistema seja reiniciado. Nessas situações, o instalador ou o co-instalador deve fazer o seguinte:

  1. Chame SetupDiGetDeviceInstallParams para obter a estrutura SP_DEVINSTALL_PARAMS .
  2. Defina o sinalizador DI_NEEDREBOOT ou DI_NEEDRESTART no membro Flags da estrutura.
  3. Chame SetupDiSetDeviceInstallParams, fornecendo a estrutura de SP_DEVINSTALL_PARAMS atualizada, para salvar o membro Flags revisado.
Depois que SetupDiCallClassInstaller retornar, o aplicativo de instalação do dispositivo que o chamou deverá chamar SetupDiGetDeviceInstallParams, marcar os sinalizadores e solicitar uma reinicialização, se necessário.

O conjunto de informações do dispositivo especificado por DeviceInfoSet deve conter apenas elementos para dispositivos no computador local.

Para obter informações sobre o design e a operação dos co-instaladores, consulte Escrevendo um co-instalador.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Microsoft Windows 2000 e versões posteriores do Windows.
Plataforma de Destino Área de Trabalho
Cabeçalho setupapi.h (inclua Setupapi.h)
Biblioteca Setupapi.lib
DLL Setupapi.dll
Conjunto de APIs ext-ms-win-setupapi-classinstallers-l1-1-0 (introduzido no Windows 8)

Confira também

SP_DEVINFO_DATA