Função SetupInstallFromInfSectionW (setupapi.h)
[Essa função está disponível para uso nos sistemas operacionais indicados na seção Requisitos. Ele poderá ser alterado ou ficar indisponível em versões subsequentes. SetupAPI não deve mais ser usado para instalar aplicativos. Em vez disso, use o Windows Installer para desenvolver instaladores de aplicativos. SetupAPI continua a ser usado para instalar drivers de dispositivo.]
A função SetupInstallFromInfSection executa todas as diretivas em uma seção Instalação de arquivo INF.
Se o registro ou arquivo for modificado, o chamador dessa função precisará ter privilégios para gravar no sistema ou no diretório de destino.
Sintaxe
WINSETUPAPI BOOL SetupInstallFromInfSectionW(
HWND Owner,
HINF InfHandle,
PCWSTR SectionName,
UINT Flags,
HKEY RelativeKeyRoot,
PCWSTR SourceRootPath,
UINT CopyFlags,
PSP_FILE_CALLBACK_W MsgHandler,
PVOID Context,
HDEVINFO DeviceInfoSet,
PSP_DEVINFO_DATA DeviceInfoData
);
Parâmetros
Owner
Ponteiro opcional para o identificador de janela para a janela que possui todas as caixas de diálogo geradas durante a instalação, como para solicitação de disco ou cópia de arquivo. Se Owner não for especificado, essas caixas de diálogo se tornarão janelas de nível superior.
InfHandle
Manipule para o arquivo INF que contém a seção a ser processada.
SectionName
Nome da seção Instalar no arquivo INF a ser processado.
Flags
Controla quais ações executar. Os sinalizadores podem ser uma combinação dos valores a seguir.
SPINST_INIFILES
Executar operações de arquivo INI (linhas UpdateInis, UpdateIniFields na seção Instalar que está sendo processada).
SPINST_REGISTRY
Executar operações do Registro (linhas AddReg, DelReg na seção Instalar que está sendo processada).
SPINST_INI2REG
Executar o arquivo INI para operações do Registro (linhas Ini2Reg na seção Instalar que está sendo processada).
SPINST_LOGCONFIG
Esse sinalizador só é usado ao instalar um driver de dispositivo.
Executar operações de configuração lógica (linhas LogConf na seção Instalar que está sendo processada). Esse sinalizador só será usado se DeviceInfoSet e DeviceInfoData forem especificados.
Para obter mais informações sobre como instalar drivers de dispositivo, LogConf, DeviceInfoSet ou DeviceInfoData, consulte o Guia do Programador do DDK.
SPINST_FILES
Executar operações de arquivo (linhas CopyFiles, DelFiles, RenFiles na seção Instalar que está sendo processada).
SPINST_ALL
Executar todas as operações de instalação.
SPINST_REGISTERCALLBACKAWARE
Ao usar a diretiva INF RegisterDlls para registrar automaticamente as DLLs no Windows 2000, os chamadores de SetupInstallFromInfSection podem receber notificações em cada arquivo, pois estão registrados ou não registrados. Para enviar uma notificação de SPFILENOTIFY_STARTREGISTRATION ou SPFILENOTIFY_ENDREGISTRATION para a rotina de retorno de chamada, inclua SPINST_REGISTERCALLBACKAWARE mais SPINST_REGSVR ou SPINST_UNREGSVR. O chamador também deve definir o parâmetro MsgHandler .
SPINST_REGSVR
Para enviar uma notificação para a rotina de retorno de chamada ao registrar um arquivo, inclua SPINST_REGISTERCALLBACKAWARE mais SPINST_REGSVR em Sinalizadores. O chamador também deve especificar o parâmetro MsgHandler .
SPINST_UNREGSVR
Para enviar uma notificação para a rotina de retorno de chamada ao cancelar o registro de um arquivo, inclua SPINST_REGISTERCALLBACKAWARE mais SPINST_UNREGSVR nos Sinalizadores. O chamador também deve especificar o parâmetro MsgHandler .
RelativeKeyRoot
Parâmetro opcional que deve ser especificado se Flags incluir SPINST_REGISTRY ou SPINST_INI2REG. Manipule para uma chave do Registro a ser usada como a raiz quando o arquivo INF especifica HKR como a chave. Observe que esse parâmetro será ignorado se SetupInstallFromInfSection for chamado com o conjunto opcional DeviceInfoSet e DeviceInfoData .
SourceRootPath
Raiz de origem para cópias de arquivo. Um exemplo seria A:\ ou \pegasus\win\install. Se Flags incluir SPINST_FILES e SourceRootPath for NULL, o sistema fornecerá um caminho raiz padrão.
CopyFlags
Parâmetro opcional que deve ser especificado se Flags incluir SPINST_FILES. Especifica os sinalizadores a serem passados para a função SetupQueueCopySection quando os arquivos são enfileirados para cópia. Esses sinalizadores podem ser uma combinação dos valores a seguir.
SP_COPY_DELETESOURCE
Exclua o arquivo de origem após a cópia bem-sucedida. O chamador não será notificado se a exclusão falhar.
SP_COPY_REPLACEONLY
Copie o arquivo somente se isso substituir um arquivo no caminho de destino.
SP_COPY_NEWER_OR_SAME
Examine cada arquivo que está sendo copiado para ver se seus recursos de versão indicam que ele é a mesma versão ou não mais recente do que uma cópia existente no destino.
As informações de versão do arquivo usadas durante as verificações de versão são especificadas nos membros dwFileVersionMS e dwFileVersionLS de uma estrutura VS_FIXEDFILEINFO , conforme preenchido pelas funções de versão. Se um dos arquivos não tiver recursos de versão ou se tiverem informações de versão idênticas, o arquivo de origem será considerado mais recente.
Se o arquivo de origem não for igual na versão ou mais recente e CopyMsgHandler for especificado, o chamador será notificado e poderá cancelar a cópia. Se CopyMsgHandler não for especificado, o arquivo não será copiado.
SP_COPY_NEWER_ONLY
Examine cada arquivo que está sendo copiado para ver se seus recursos de versão indicam que ele não é mais recente do que uma cópia existente no destino. Se o arquivo de origem for mais recente, mas não for igual na versão para o destino existente, o arquivo será copiado.
SP_COPY_NOOVERWRITE
Verifique se o arquivo de destino existe e, nesse caso, notifique o chamador que pode vetar a cópia. Se CopyMsgHandler não for especificado, o arquivo não será substituído.
SP_COPY_NODECOMP
Não descompacte o arquivo. Quando esse sinalizador é definido, o arquivo de destino não recebe a forma descompactada do nome de origem (se apropriado). Por exemplo, copiar f:/x86\cmd.ex_ para \install\temp resulta em um arquivo de destino de \install\temp\cmd.ex_. Se o sinalizador SP_COPY_NODECOMP não tiver sido especificado, o arquivo será descompactado e o destino será chamado de \install\temp\cmd.exe. A parte filename de DestinationName, se especificada, é removida e substituída pelo nome do arquivo de origem. Quando SP_COPY_NODECOMP é especificado, nenhuma informação de idioma ou versão pode ser verificada.
SP_COPY_LANGUAGEAWARE
Examine cada arquivo que está sendo copiado para ver se seu idioma difere do idioma de qualquer arquivo existente já no destino. Nesse caso, e CopyMsgHandler for especificado, o chamador será notificado e poderá cancelar a cópia. Se CopyMsgHandler não for especificado, o arquivo não será copiado.
SP_COPY_SOURCE_ABSOLUTE
SourceFile é um caminho de origem completo. Não procure-o na seção SourceDisksNames do arquivo INF.
SP_COPY_SOURCEPATH_ABSOLUTE
SourcePathRoot é a parte completa do caminho do arquivo de origem. Ignore a fonte relativa especificada na seção SourceDisksNames do arquivo INF para a mídia de origem em que o arquivo está localizado. Esse sinalizador será ignorado se SP_COPY_SOURCE_ABSOLUTE for especificado.
SP_COPY_FORCE_IN_USE
Se o destino existir, comporte-se como se estivesse em uso e enfileirar o arquivo para copiar na próxima reinicialização do sistema.
SP_COPY_IN_USE_NEEDS_REBOOT
Se o arquivo estiver em uso durante a operação de cópia, informe ao usuário que o sistema precisa ser reinicializado. Esse sinalizador só é usado ao chamar SetupPromptReboot ou SetupScanFileQueue posteriormente.
SP_COPY_NOSKIP
Não dê ao usuário a opção de ignorar um arquivo.
SP_COPY_FORCE_NOOVERWRITE
Verifique se o arquivo de destino existe e, nesse caso, o arquivo não será substituído. O chamador não é notificado.
SP_COPY_FORCE_NEWER
Examine cada arquivo que está sendo copiado para ver se seus recursos de versão (ou carimbos de data/hora para arquivos que não são de imagem) indicam que ele não é mais recente do que uma cópia existente no destino. Se o arquivo que está sendo copiado não for mais recente, o arquivo não será copiado. O chamador não foi notificado.
SP_COPY_WARNIFSKIP
Se o usuário tentar ignorar um arquivo, avise-o de que ignorar um arquivo pode afetar a instalação. (Usado para arquivos críticos do sistema.)
MsgHandler
Ponteiro para a rotina de retorno de chamada. A rotina de retorno de chamada deve estar no formato FileCallback. Confira Notificações para obter mais informações.
Esse parâmetro será opcional somente se o parâmetro Flags não incluir SPINST_FILES, SPINST_REGISTERCALLBACKAWARE mais SPINST_REGSVR ou SPINST_UNREGSVR.
MsgHandler deverá ser definido se Flags incluir SPINST_FILES. Nesse caso, a notificação é enviada para a rotina de retorno de chamada quando a fila de arquivos é confirmada com SetupCommitFileQueue.
MsgHandler deverá ser definido se Flags incluir SPINST_REGISTERCALLBACKAWARE mais SPINST_REGSVR ou SPINST_UNREGSVR. Nesse caso, um SPFILENOTIFY_STARTREGISTRATION ou SPFILENOTIFY_ENDREGISTRATION é enviado para a rotina de retorno de chamada uma vez cada vez que um arquivo é registrado ou não registrado usando a diretiva INF RegisterDlls no Windows 2000.
Context
O valor a ser passado para a função de retorno de chamada quando a fila de arquivos criada por essa rotina internamente é confirmada por meio de SetupCommitFileQueue. O parâmetro Context será opcional somente se o parâmetro Flags não incluir SPINST_FILES. Esse parâmetro deverá ser especificado se Flags incluir SPINST_FILES.
DeviceInfoSet
Ponteiro opcional para um identificador para um conjunto de informações do dispositivo. Para obter mais informações sobre as funções de instalação do Instalador de Dispositivo, consulte o Guia do Programador do DDK.
DeviceInfoData
Ponteiro opcional para um ponteiro para a estrutura SP_DEVINFO_DATA que fornece um contexto para um elemento específico no conjunto especificado por DeviceInfoSet. Para obter mais informações sobre as funções de instalação do Instalador de Dispositivo, consulte o Guia do Programador do DDK.
Retornar valor
Se a função for bem-sucedida, o valor retornado será um valor diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Comentários
Se um diretório UNC for especificado como o diretório de destino de uma operação de cópia de arquivo, você deverá garantir que ele exista antes de chamar SetupInstallFromInfSection. As funções de instalação não marcar para a existência de e não criam diretórios UNC. Se o diretório UNC de destino não existir, a instalação do arquivo falhará.
Essa função requer um arquivo INF do Windows. Talvez não haja suporte para alguns formatos de arquivo INF mais antigos.
Observação
O cabeçalho setupapi.h define SetupInstallFromInfSection como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | setupapi.h |
Biblioteca | Setupapi.lib |
DLL | Setupapi.dll |
Conjunto de APIs | ext-ms-win-setupapi-classinstallers-l1-1-2 (introduzido no Windows 10, versão 10.0.14393) |