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.
[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:
- Chame SetupDiGetDeviceInstallParams para obter a estrutura SP_DEVINSTALL_PARAMS .
- Defina o sinalizador DI_NEEDREBOOT ou DI_NEEDRESTART no membro Flags da estrutura.
- Chame SetupDiSetDeviceInstallParams, fornecendo a estrutura de SP_DEVINSTALL_PARAMS atualizada, para salvar o membro Flags revisado.
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) |