Compartir a través de


Función InstallHinfSectionA (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.]

InstallHinfSection es una función de punto de entrada exportada por Setupapi.dll que puede usar para ejecutar una sección de un archivo .inf. se puede invocar InstallHinfSection llamando a la utilidad Rundll32.exe tal como se describe en la sección Comentarios.

El prototipo de función InstallHinfSection sigue la forma de todas las funciones de punto de entrada usadas con Rundll32.exe.

Si se copia o modifica un archivo, el autor de la llamada de esta función tiene privilegios para escribir en el directorio de destino. Si hay algún servicio instalado, se requiere que el autor de la llamada de esta función tenga acceso a la Service Control Manager.

Sintaxis

void InstallHinfSectionA(
  [in] HWND      Window,
  [in] HINSTANCE ModuleHandle,
  [in] PCSTR     CommandLine,
  [in] INT       ShowCommand
);

Parámetros

[in] Window

Identificador de la ventana primaria. Normalmente, hwnd es Null.

[in] ModuleHandle

Reservado y debe ser Null.

[in] CommandLine

Puntero al búfer que contiene la línea de comandos. Debe usar una cadena terminada en null.

[in] ShowCommand

Reservado y debe ser cero.

Valor devuelto

Ninguno

Observaciones

Tenga en cuenta que existen tres exportaciones: InstallHinfSection (para RunDll32), InstallHinfSectionAy InstallHinfSectionW.

Para ejecutar una sección Install de un archivo .inf especificado, puede invocar InstallHinfSection con el Rundll32.exe mediante la sintaxis siguiente.

RUNDLL32.EXE SETUPAPI.DLL, sección <><modo><ruta de acceso> installHinfSection

Esto pasa "<sección><modo><ruta de acceso>" a CmdLineBuffer.

Como alternativa, el programa puede llamar a InstallHinfSection, InstallHinfSectionA, o installHinfSectionW directamente, estableciendo el parámetro CmdLineBuffer en lo siguiente.

"<section> <mode> <path>"

Donde ruta de acceso es la ruta de acceso completa al archivo .inf, modo es el parámetro de modo de reinicio y sección es cualquier sección Instalar del archivo .inf. Se requiere el separador de comas entre SETUPAPI.DLL y InstallHinfSection en la línea de comandos. Tenga en cuenta que no puede haber ningún espacio en blanco en la línea de comandos entre la coma y SETUPAPI.DLL o InstallHinfSection.

Se recomienda especificar la ruta de acceso completa al archivo .inf como ruta de acceso.

Puede especificar cualquier sección Instalar en el archivo .inf como sección. No se permiten espacios.

Debe usar una combinación de los siguientes valores para modo. Debe incluir 128 para establecer la ruta de acceso predeterminada de la instalación en la ubicación del INF; de lo contrario, se supone que se supone un INF proporcionado por el sistema. Agregue valores para especificar el reinicio. Tenga en cuenta que solo se recomiendan los valores 128 o 132, otros valores pueden hacer que el equipo se reinicie innecesariamente o no se reinicie cuando sea necesario.

Valor Descripción
0 Sistema inf proporcionado.
128 Establezca la ruta de acceso predeterminada de la instalación en la ubicación del INF. Esta es la configuración típica.
+0 Nunca reinicie el equipo.
+1 Reinicie el equipo en todos los casos.
+2 Pregunte siempre a los usuarios si quieren reiniciar.
+3 Reinicie el equipo si es necesario sin pedir permiso al usuario.
+4 Si es necesario reiniciar el equipo, pida al usuario permiso antes de reiniciar.
 
 

Por ejemplo, la siguiente línea de comandos ejecuta la sección DefaultInstall del archivo Shell.inf. Si el programa de instalación determina que se requiere un reinicio, se le pedirá al usuario un cuadro de diálogo "Reiniciar el equipo, Sí/No".

RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C:\WINDOWS\INF\SHELL. INF

Nota

El encabezado setupapi.h define InstallHinfSection 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.

Cautela

Cuando se usa en una arquitectura distinta de x86 o amd64, o cuando se usa en un sistema en modo S, InstallHInfSection requiere que el archivo INF tenga una sección INF Version con una directiva CatalogFile que apunte a un archivo de catálogo firmado que contenga el hash del archivo INF y los archivos a los que hace referencia el archivo INF a través de una sección sourceDisksFiles de INF.

Cautela

Cuando se usa en un sistema cuya arquitectura nativa no es x86 ni amd64, se debe usar InstallHInfSection desde un proceso de arquitectura nativa. InstallHInfSection bloqueará muchos tipos de operaciones de cambio de estado del sistema cuando se usan desde un proceso de arquitectura no nativo.

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