Compartir a través de


Función SetupInstallFromInfSectionW (setupapi.h)

[Esta función está disponible para su uso en los sistemas operativos indicados en la sección Requisitos. Puede modificarse o no estar disponible en versiones posteriores. 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 dispositivo.]

La función SetupInstallFromInfSection lleva a cabo todas las directivas de un archivo INF sección Instalar.

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

Sintaxis

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

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 propietario, 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 en el 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 de archivo INI (UpdateInis, líneas de UpdateIniFields en la sección Instalar que se está procesando).

SPINST_REGISTRY

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

SPINST_INI2REG

Realice operaciones de inI en el registro (líneas de ini2Reg en la sección instalación de de 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 instalación de 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, DeviceInfoSeto DeviceInfoData, consulte la Guía del programador de DDK .

SPINST_FILES

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

SPINST_ALL

Realice todas las operaciones de instalación.

SPINST_REGISTERCALLBACKAWARE

Al usar la directiva registerDlls de 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 autor de la llamada 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 la Marcas. El autor de la llamada también debe especificar el parámetro MsgHandler.

RelativeKeyRoot

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

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 se ponen en cola los archivos 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 más reciente que una copia existente en el destino.

La información de versión del archivo usada durante las comprobaciones de versiones es que se especifica en la dwFileVersionMS y dwFileVersionLS miembros de una estructura de VS_FIXEDFILEINFO, tal y como rellenan 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 a la versión o posterior, y se especifica CopyMsgHandler, se notifica al autor de la llamada y puede cancelar la copia. Si no se especifica CopyMsgHandler, no se copia el archivo.

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 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 pueda 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 puede cancelar la copia. Si no se especifica CopyMsgHandler, no se copia el archivo.

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 para el 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 debe reiniciarse el sistema. Esta marca solo se usa al llamar posteriormente 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 copia 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 estar en el formato de 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 marcas 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 de 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 es opcional solo 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 de 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 se produce un error en la función, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Observaciones

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 algún formato de archivo INF anterior.

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 Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de setupapi.h
biblioteca de Setupapi.lib
DLL de Setupapi.dll
conjunto de API de ext-ms-win-setupapi-classinstallers-l1-1-2 (introducido en Windows 10, versión 10.0.14393)

Consulte también

funciones de

información general

SPFILENOTIFY_ENDREGISTRATION

SPFILENOTIFY_STARTREGISTRATION

setupInstallServicesFromInfSection