Compartilhar via


Função SetupInstallFromInfSectionA (setupapi.h)

[Essa função está disponível para uso nos sistemas operacionais indicados na seção Requisitos. Ele pode estar alterado ou 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 um arquivo INF seção Instalar.

Se o registro ou arquivo for modificado, o chamador dessa função deverá 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 que são geradas durante a instalação, como para solicitação de disco ou cópia de arquivo. Se Proprietário 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 (UpdateInis, linhas UpdateIniFields na seção Instalar que está sendo processada).

SPINST_REGISTRY

Executar operações do Registro (AddReg, linhas de DelReg na seção Instalar que está sendo processada).

SPINST_INI2REG

Executar o arquivo INI em operações de registro (linhas ini2Reg na seção Instalar sendo processada).

SPINST_LOGCONFIG

Esse sinalizador só é usado ao instalar um driver de dispositivo.

Executar operações de configuração lógica (linhas do 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, DeviceInfoSetou DeviceInfoData, consulte o Guia do Programador de DDK.

SPINST_FILES

Executar operações de arquivo (CopyFiles, DelFiles, linhas RenFiles na seção Instalar que está sendo processada).

SPINST_ALL

Execute todas as operações de instalação.

SPINST_REGISTERCALLBACKAWARE

Ao usar a diretiva RegisterDlls INF para registrar automaticamente DLLs no Windows 2000, os chamadores de SetupInstallFromInfSection podem receber notificações em cada arquivo conforme ele é registrado ou não registrado. Para enviar uma notificação SPFILENOTIFY_STARTREGISTRATION ou SPFILENOTIFY_ENDREGISTRATION à 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 Flags. 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 noFlags. 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 DeviceInfoSet e deviceInfoData conjunto opcional.

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 no dwFileVersionMS e dwFileVersionLS membros 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 de SP_COPY_NODECOMP não tiver sido especificado, o arquivo será descompactado e o destino será chamado \install\temp\cmd.exe. A parte do nome do arquivo 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 enfileira 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 quando se chama SetupPromptReboot ou SetupScanFileQueue.

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 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 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 de FileCallback . Consulte 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 definida 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 RegisterDlls INF 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 sinalizadores 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 Dispositivos, consulte o Guia do Programador de 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 Dispositivos, consulte o guia do programador de DDK.

Valor de retorno

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.

Observações

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 verificam a existência 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.

Nota

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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho setupapi.h
biblioteca Setupapi.lib
de DLL Setupapi.dll
conjunto de API ext-ms-win-setupapi-classinstallers-l1-1-2 (introduzido no Windows 10, versão 10.0.14393)

Consulte também

Funções

Visão geral

SPFILENOTIFY_ENDREGISTRATION

SPFILENOTIFY_STARTREGISTRATION

SetupInstallServicesFromInfSection