Função SetupDiInstallDevice (setupapi.h)
A função SetupDiInstallDevice é o manipulador padrão para a solicitação de instalação DIF_INSTALLDEVICE .
Sintaxe
WINSETUPAPI BOOL SetupDiInstallDevice(
[in] HDEVINFO DeviceInfoSet,
[in, out] PSP_DEVINFO_DATA DeviceInfoData
);
Parâmetros
[in] DeviceInfoSet
Um identificador para o conjunto de informações do dispositivo para o sistema local que contém um elemento de informações do dispositivo que representa o dispositivo a ser instalado.
[in, out] DeviceInfoData
Um ponteiro para uma estrutura SP_DEVINFO_DATA que especifica um elemento de informações do dispositivo em DeviceInfoSet. Esse é um parâmetro IN-OUT porque DeviceInfoData.O DevInst pode ser atualizado com um novo valor de identificador no retorno.
Retornar valor
A função retornará TRUE se for bem-sucedida. Caso contrário, ele retornará FALSE e o erro registrado poderá ser recuperado com uma chamada para GetLastError.
Comentários
SetupDiInstallDevice instala um driver do arquivo INF. A definição de SetupAPI do "driver" é realmente um "nó de driver". Portanto, quando essa função instala um driver, ela também instala os itens na lista a seguir:
- Os serviços para o dispositivo.
- Os arquivos de driver.
- Co-instaladores específicos do dispositivo (se houver).
- Provedores de página de propriedades (se houver).
- Miniaplicativos do painel de controle (se houver).
Uma instalação bem-sucedida inclui, mas não se limita a, as seguintes etapas:
- Crie uma chave de driver no registro e escreva as entradas apropriadas (como InfPath e ProviderName).
- Localize e processe a seção INF DDInstall para o dispositivo. A seção pode ser específica do sistema operacional/da arquitetura. As entradas AddReg e DelReg da seção DDInstall são direcionadas para a chave de software do dispositivo. Localize e processe o DDInstall. Seção HW cujas entradas AddReg e DelReg são direcionadas para a chave de hardware do dispositivo. Localize e processe a seção INF DDInstall.LogConfigOverride, se presente, para fornecer uma configuração de substituição para o dispositivo. Localize e processe a seção INF DDInstall.Services para adicionar serviços ao dispositivo (e potencialmente remover todos os serviços antigos que não são mais necessários).
- Copie o arquivo INF para o diretório INF do sistema.
-
Possivelmente, execute as outras operações de arquivo, com base nas configurações de sinalizador nos parâmetros de instalação do dispositivo.
Se o sinalizador DI_NOFILECOPY e o sinalizador DI_NOVCP estiverem claros, execute todas as operações de arquivo especificadas na seção DDInstall . Se o sinalizador DI_NOVCP estiver definido, enfileira todas as operações de arquivo.
Se o sinalizador DI_NOFILECOPY estiver definido, não copie os arquivos. Esse sinalizador poderá ser definido se, por exemplo, uma operação de DIF_INSTALLDEVICEFILES já tiver sido executada para esta instalação do dispositivo.
- Carregue os drivers para o dispositivo. Isso inclui o driver de função e quaisquer drivers de filtro superior ou inferior.
- Chame as rotinas addDevice dos drivers.
- Inicie o dispositivo enviando um IRP (pacote de solicitação de E/S ) IRP_MN_START_DEVICE .
Um instalador de classe deve retornar ERROR_DI_DO_DEFAULT ou chamar essa função ao lidar com uma solicitação de DIF_INSTALLDEVICE . Essa função executa muitas tarefas para instalação do dispositivo e essa lista de tarefas pode ser expandida em versões futuras. Se um instalador de classe executar a instalação do dispositivo sem chamar essa função, o instalador de classe poderá não funcionar corretamente em versões futuras do sistema operacional.
Se o Windows não conseguir localizar um arquivo INF para o dispositivo, ele enviará DIF_INSTALLDEVICE na tentativa de instalar um driver nulo. SetupDiInstallDevice instala um driver nulo somente se o dispositivo der suporte ao modo bruto ou for um dispositivo não PnP (relatado por IoReportDetectedDevice). Para obter mais informações, consulte DIF_INSTALLDEVICE.
Se o sinalizador DI_FLAGSEX_SETFAILEDINSTALL estiver definido na estrutura SP_DEVINSTALL_PARAMS , SetupDiInstallDevice apenas definirá o sinalizador FAILEDINSTALL no valor do registro ConfigFlags do dispositivo.
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 |