Función SetupInstallFromInfSectionA (setupapi.h)

[Esta función está disponible para su uso en los sistemas operativos indicados en la sección Requisitos. En versiones posteriores podría modificarse o no estar disponible. SetupAPI ya no debe usarse para instalar aplicaciones. En su lugar, use Windows Installer para desarrollar instaladores de aplicaciones. SetupAPI sigue usándose para instalar controladores de dispositivos.

La función SetupInstallFromInfSection lleva a cabo todas las directivas de una sección de instalación de archivos INF.

Si se modifica el registro o el archivo, el autor de la llamada de esta función tiene privilegios para escribir en el directorio del sistema o de destino.

Sintaxis

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

Puntero opcional al identificador de ventana a la ventana que posee los cuadros de diálogo que se generan durante la instalación, como para la solicitud de disco o la copia de archivos. Si no se especifica Owner , estos cuadros de diálogo se convierten en ventanas de nivel superior.

InfHandle

Identificador del archivo INF que contiene la sección que se va a procesar.

SectionName

Nombre de la sección Instalar del archivo INF que se va a procesar.

Flags

Controla las acciones que se deben realizar. Las marcas pueden ser una combinación de los valores siguientes.

SPINST_INIFILES

Realice operaciones INI-file (UpdateInis, UpdateIniFields lines in the Install section being processed).

SPINST_REGISTRY

Realice operaciones del Registro (AddReg, Líneas DelReg en la sección Instalar que se está procesando).

SPINST_INI2REG

Realice operaciones ini-file to registry (líneas Ini2Reg en la sección Install que se está procesando).

SPINST_LOGCONFIG

Esta marca solo se usa al instalar un controlador de dispositivo.

Realice operaciones de configuración lógica (líneas de LogConf en la sección De instalación que se está procesando). Esta marca solo se usa si se especifican DeviceInfoSet y DeviceInfoData .

Para obtener más información sobre cómo instalar controladores de dispositivos, LogConf, DeviceInfoSet o DeviceInfoData, consulte la Guía del programador de DDK.

SPINST_FILES

Realice operaciones de archivo (CopyFiles, DelFiles, líneas RenFiles en la sección Instalar que se está procesando).

SPINST_ALL

Realice todas las operaciones de instalación.

SPINST_REGISTERCALLBACKAWARE

Cuando se usa la directiva RegisterDlls INF para registrar archivos DLL automáticamente en Windows 2000, los autores de llamadas de SetupInstallFromInfSection pueden recibir notificaciones en cada archivo, ya que está registrado o no registrado. Para enviar una notificación de SPFILENOTIFY_STARTREGISTRATION o SPFILENOTIFY_ENDREGISTRATION a la rutina de devolución de llamada, incluya SPINST_REGISTERCALLBACKAWARE más SPINST_REGSVR o SPINST_UNREGSVR. El autor de la llamada también debe establecer el parámetro MsgHandler .

SPINST_REGSVR

Para enviar una notificación a la rutina de devolución de llamada al registrar un archivo, incluya SPINST_REGISTERCALLBACKAWARE más SPINST_REGSVR en Marcas. El llamador también debe especificar el parámetro MsgHandler .

SPINST_UNREGSVR

Para enviar una notificación a la rutina de devolución de llamada al anular el registro de un archivo, incluya SPINST_REGISTERCALLBACKAWARE más SPINST_UNREGSVR en las marcas. El llamador también debe especificar el parámetro MsgHandler .

RelativeKeyRoot

Parámetro opcional que se debe especificar si Flags incluye SPINST_REGISTRY o SPINST_INI2REG. Identificador de una clave del Registro que se usará como raíz cuando el archivo INF especifica HKR como clave. Tenga en cuenta que este parámetro se omite si se llama a SetupInstallFromInfSection con el conjunto opcional DeviceInfoSet y DeviceInfoData .

SourceRootPath

Raíz de origen para copias de archivos. Un ejemplo sería A:\ o \pegasus\win\install. Si Flags incluye SPINST_FILES y SourceRootPath es NULL, el sistema proporciona una ruta de acceso raíz predeterminada.

CopyFlags

Parámetro opcional que se debe especificar si Flags incluye SPINST_FILES. Especifica las marcas que se van a pasar a la función SetupQueueCopySection cuando los archivos se ponen en cola para la copia. Estas marcas pueden ser una combinación de los valores siguientes.

SP_COPY_DELETESOURCE

Elimine el archivo de origen tras una copia correcta. El autor de la llamada no recibe una notificación si se produce un error en la eliminación.

SP_COPY_REPLACEONLY

Copie el archivo solo si hacerlo sobrescribiría un archivo en la ruta de acceso de destino.

SP_COPY_NEWER_OR_SAME

Examine cada archivo que se va a copiar para ver si sus recursos de versión indican que es la misma versión o no es más reciente que una copia existente en el destino.

La información de versión de archivo utilizada durante las comprobaciones de versión es que se especifica en los miembros dwFileVersionMS y dwFileVersionLS de una estructura de VS_FIXEDFILEINFO , tal y como se rellenan en las funciones de versión. Si uno de los archivos no tiene recursos de versión o si tienen información de versión idéntica, el archivo de origen se considera más reciente.

Si el archivo de origen no es igual en la versión o posterior, y se especifica CopyMsgHandler , se notifica al autor de la llamada y se puede cancelar la copia. Si no se especifica CopyMsgHandler , el archivo no se copia.

SP_COPY_NEWER_ONLY

Examine cada archivo que se va a copiar para ver si sus recursos de versión indican que no es más reciente que una copia existente en el destino. Si el archivo de origen es más reciente pero no es igual a en la versión del destino existente, se copia el archivo.

SP_COPY_NOOVERWRITE

Compruebe si el archivo de destino existe y, si es así, notifique al autor de la llamada que puede vetar la copia. Si no se especifica CopyMsgHandler , el archivo no se sobrescribe.

SP_COPY_NODECOMP

No descomprima el archivo. Cuando se establece esta marca, el archivo de destino no recibe la forma sin comprimir del nombre de origen (si procede). Por ejemplo, copiar f:/x86\cmd.ex_ en \install\temp da como resultado un archivo de destino de \install\temp\cmd.ex_. Si no se especificó la marca SP_COPY_NODECOMP, el archivo se descomprimiría y el destino se llamaría \install\temp\cmd.exe. La parte de nombre de archivo de DestinationName, si se especifica, se quita y reemplaza por el nombre de archivo de origen. Cuando se especifica SP_COPY_NODECOMP, no se puede comprobar ninguna información de idioma o versión.

SP_COPY_LANGUAGEAWARE

Examine cada archivo que se va a copiar para ver si su idioma difiere del idioma de cualquier archivo existente que ya esté en el destino. Si es así, y se especifica CopyMsgHandler , se notifica al autor de la llamada y se puede cancelar la copia. Si no se especifica CopyMsgHandler , el archivo no se copia.

SP_COPY_SOURCE_ABSOLUTE

SourceFile es una ruta de acceso de origen completa. No lo busque en la sección SourceDisksNames del archivo INF.

SP_COPY_SOURCEPATH_ABSOLUTE

SourcePathRoot es la parte de ruta de acceso completa del archivo de origen. Omita el origen relativo especificado en la sección SourceDisksNames del archivo INF del medio de origen donde se encuentra el archivo. Esta marca se omite si se especifica SP_COPY_SOURCE_ABSOLUTE.

SP_COPY_FORCE_IN_USE

Si el destino existe, comporte como si estuviera en uso y poner en cola el archivo para copiarlo en el siguiente reinicio del sistema.

SP_COPY_IN_USE_NEEDS_REBOOT

Si el archivo estaba en uso durante la operación de copia, informe al usuario de que el sistema debe reiniciarse. Esta marca solo se usa cuando más adelante llama a SetupPromptReboot o SetupScanFileQueue.

SP_COPY_NOSKIP

No proporcione al usuario la opción de omitir un archivo.

SP_COPY_FORCE_NOOVERWRITE

Compruebe si el archivo de destino existe y, si es así, el archivo no se sobrescribe. No se notifica al autor de la llamada.

SP_COPY_FORCE_NEWER

Examine cada archivo que se va a copiar para ver si sus recursos de versión (o marcas de tiempo para archivos que no son de imagen) indican que no es más reciente que una copia existente en el destino. Si el archivo que se va a copiar no es más reciente, el archivo no se copia. No se notifica al autor de la llamada.

SP_COPY_WARNIFSKIP

Si el usuario intenta omitir un archivo, avisa de que omitir un archivo puede afectar a la instalación. (Se usa para archivos críticos del sistema).

MsgHandler

Puntero a la rutina de devolución de llamada. La rutina de devolución de llamada debe tener el formato FileCallback. Consulte Notificaciones para obtener más información.

Este parámetro solo es opcional si el parámetro Flags no incluye SPINST_FILES, SPINST_REGISTERCALLBACKAWARE más SPINST_REGSVR o SPINST_UNREGSVR.

MsgHandler debe establecerse si flags incluye SPINST_FILES. En este caso, la notificación se envía a la rutina de devolución de llamada cuando la cola de archivos se confirma con SetupCommitFileQueue.

MsgHandler debe establecerse si flags incluye SPINST_REGISTERCALLBACKAWARE más SPINST_REGSVR o SPINST_UNREGSVR. En este caso, se envía una SPFILENOTIFY_STARTREGISTRATION o SPFILENOTIFY_ENDREGISTRATION a la rutina de devolución de llamada una vez cada vez que se registra o se anula el registro de un archivo mediante la directiva RegisterDlls INF en Windows 2000.

Context

Valor que se va a pasar a la función de devolución de llamada cuando la cola de archivos compilada por esta rutina se confirma internamente a través de SetupCommitFileQueue. El parámetro Context solo es opcional si el parámetro Flags no incluye SPINST_FILES. Este parámetro debe especificarse si Flags incluye SPINST_FILES.

DeviceInfoSet

Puntero opcional a un identificador de un conjunto de información del dispositivo. Para obtener más información sobre las funciones de instalación del instalador de dispositivos, consulte la Guía del programador de DDK.

DeviceInfoData

Puntero opcional a un puntero a la estructura SP_DEVINFO_DATA que proporciona un contexto a un elemento específico del conjunto especificado por DeviceInfoSet. Para obtener más información sobre las funciones de instalación del instalador de dispositivos, consulte la Guía del programador de DDK.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es un valor distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Si se especifica un directorio UNC como directorio de destino de una operación de copia de archivos, debe asegurarse de que existe antes de llamar a SetupInstallFromInfSection. Las funciones de instalación no comprueban la existencia de y no crean directorios UNC. Si el directorio UNC de destino no existe, se producirá un error en la instalación del archivo.

Esta función requiere un archivo INF de Windows. Es posible que no se admita algunos formatos de archivo INF más antiguos.

Nota

El encabezado setupapi.h define SetupInstallFromInfSection como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado setupapi.h
Library Setupapi.lib
Archivo DLL Setupapi.dll
Conjunto de API ext-ms-win-setupapi-classinstallers-l1-1-2 (introducido en Windows 10, versión 10.0.14393)

Vea también

Funciones

Información general

SPFILENOTIFY_ENDREGISTRATION

SPFILENOTIFY_STARTREGISTRATION

SetupInstallServicesFromInfSection