Função SetupInstallFromInfSectionA (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 SetupInstallFromInfSectionA(
  HWND                Owner,
  HINF                InfHandle,
  PCSTR               SectionName,
  UINT                Flags,
  HKEY                RelativeKeyRoot,
  PCSTR               SourceRootPath,
  UINT                CopyFlags,
  PSP_FILE_CALLBACK_A 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

Execute 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 DLLs no Windows 2000, os chamadores de SetupInstallFromInfSection podem receber notificações em cada arquivo à medida que estiverem 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 fosse especificado, o arquivo seria descompactado e o destino seria 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 pesquise 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 é substituído. O chamador não foi 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 é 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

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)

Confira também

Funções

Visão geral

SPFILENOTIFY_ENDREGISTRATION

SPFILENOTIFY_STARTREGISTRATION

SetupInstallServicesFromInfSection