Función SetupCopyOEMInfA (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 SetupCopyOEMInf copia un archivo .inf especificado en el directorio %windir%/Inf.
Se requiere un autor de llamada de esta función con privilegios administrativos; de lo contrario, se produce un error en la función.
Sintaxis
WINSETUPAPI BOOL SetupCopyOEMInfA(
[in] PCSTR SourceInfFileName,
[in] PCSTR OEMSourceMediaLocation,
[in] DWORD OEMSourceMediaType,
[in] DWORD CopyStyle,
[out, optional] PSTR DestinationInfFileName,
[in] DWORD DestinationInfFileNameSize,
[out, optional] PDWORD RequiredSize,
[out, optional] PSTR *DestinationInfFileNameComponent
);
Parámetros
[in] SourceInfFileName
Ruta de acceso completa al archivo .inf de origen. Debe usar una cadena terminada en null. Esta ruta de acceso no debe superar MAX_PATH tamaño, incluida la terminación NULL.
[in] OEMSourceMediaLocation
Información de ubicación de origen que se almacenará en el archivo .inf precompilado (.pnf). Esta información de ubicación es específica del tipo de medio de origen especificado. Debe usar una cadena terminada en null. Esta ruta de acceso no debe superar MAX_PATH tamaño, incluida la terminación NULL.
[in] OEMSourceMediaType
Tipo de medio de origen al que hace referencia la información de ubicación. Este parámetro puede ser uno de los siguientes valores.
[in] CopyStyle
Especifica cómo se copia el archivo .inf en el directorio .inf. Se pueden combinar las marcas siguientes.
Valor | Significado |
---|---|
|
Elimine el archivo de origen cuando la copia se haya realizado correctamente. |
|
Copie solo si este archivo ya existe en el directorio Inf. Esta marca se puede usar para actualizar la información de ubicación de origen de un archivo .inf existente. |
|
Copie solo si los archivos especificados no existen actualmente en el directorio Inf. Si el archivo .inf existe actualmente, esta API produce un error y getLastError devuelve ERROR_FILE_EXISTS. En este caso, el nombre de archivo .inf existente se coloca en el campo adecuado en los búferes de salida de información del archivo .inf de destino. |
|
Los archivos de catálogo .inf especificados se copian en %windir%\Inf. Si se especifica esta marca, la información del nombre de archivo de destino se escribe cuando se devuelve correctamente si el archivo .inf especificado ya existe en el directorio Inf. |
[out, optional] DestinationInfFileName
Puntero a un búfer para recibir el nombre de archivo .inf asignado en el momento en que se copió en el directorio Inf. El búfer, si se especifica, normalmente debe estar MAX_PATH de longitud. Si se especifica la marca SP_COPY_NOOVERWRITE y la función SetupCopyOEMInf produce un error con un código devuelto de ERROR_FILE_EXISTS, este búfer contiene el nombre del archivo .inf existente. Si se especifica la marca SP_COPY_OEMINF_CATALOG_ONLY, este búfer contiene el nombre de archivo .inf de destino si el archivo .inf ya está presente en el directorio Inf. De lo contrario, este búfer se establece en la cadena vacía. Este parámetro puede ser null.
[in] DestinationInfFileNameSize
Tamaño del DestinationInfFileName búfer, en caracteres o cero si no se especifica el búfer. Si se especifica DestinationInfFileName y este tamaño de búfer es menor que el tamaño necesario para devolver el nombre de archivo .inf de destino (incluida la ruta de acceso completa), se produce un error en esta función. En este caso, getLastError devuelve ERROR_INSUFFICIENT_BUFFER.
[out, optional] RequiredSize
Puntero a una variable que recibe el tamaño (en caracteres) necesario para almacenar el nombre de archivo .inf de destino, incluida una terminación NULL. Si se especifica la marca SP_COPY_OEMINF_CATALOG_ONLY, esta variable recibe una longitud de cadena solo si el archivo .inf ya existe en el directorio Inf. De lo contrario, esta variable se establece en cero. Este parámetro puede ser null.
[out, optional] DestinationInfFileNameComponent
Puntero a una cadena que se establece al devolver correctamente (o ERROR_FILE_EXISTS) para que apunte al principio del componente de nombre de archivo de la ruta de acceso almacenada en el parámetro DestinationInfFileName. Si se especifica la marca SP_COPY_OEMINF_CATALOG_ONLY, el parámetro DestinationInfFileName puede ser una cadena vacía. En este caso, el puntero de caracteres se establece en NULL tras la devolución correcta. Este parámetro puede ser null.
Valor devuelto
Esta función devuelve WINSETUPAPI BOOL.
Observaciones
La función
setupCopyOEMInf usa el procedimiento siguiente para determinar si el archivo .inf ya existe en el directorio Inf:
Todos los archivos .inf con nombres del formato OEM*.inf se enumeran y se comparan todos los archivos que tengan el mismo tamaño de archivo que el archivo .inf especificado.
Se busca en el directorio Inf el nombre de archivo de origen del archivo .inf. Si existe un archivo .inf con el mismo nombre y tiene el mismo tamaño que el del archivo .inf especificado, los dos archivos son binarios en comparación con determinar si son idénticos.
Si el archivo .inf especificado ya existe una comprobación adicional se realiza para determinar si el archivo .inf especificado contiene una entrada CatalogFile= en su sección [Versión]. Si es así, el archivo .inf %windir%nombre de archivo principal \Inf con una extensión ".cat" se usa para determinar si el catálogo ya está instalado. Si hay un catálogo instalado, pero no es el mismo que el catálogo asociado con el archivo .inf de origen, esto no se considera una coincidencia y las enumeraciones continúan. Es posible tener varios archivos .inf idénticos con catálogos únicos incluidos en %windir%directorio \Inf. Si no se encuentra una coincidencia existente, los archivos .inf y .cat se instalan con un nombre nuevo y único.
Los archivos .inf de OEM que no especifican una entrada CatalogFile= se consideran no válidos con respecto a la verificación de firmas digitales.
En los casos en los que se debe copiar el archivo .inf en el directorio %windir%\Inf, se notifican los errores de comprobación de firmas digitales.
Si los archivos .inf y .cat ya existen, estos nombres de archivo existentes se usan y el comportamiento de reemplazo de archivos se basa en las marcas CopyStyle especificadas. El comportamiento de reemplazo solo hace referencia a la información multimedia de origen almacenada en .pnf. Los archivos .inf, .pnf y .cat existentes no se modifican.
Nota
El encabezado setupapi.h define SetupCopyOEMInf 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