SetupInstallFilesFromInfSection
The SetupInstallFilesFromInfSection function queues all the files specified in the Copy Files sections listed by an Install section for installation.
BOOL SetupInstallFilesFromInfSection(
HINF InfHandle, // handle to the INF file
HINF LayoutInfHandle, // optional, layout INF handle
HSPFILEQ FileQueue, // handle to the file queue
PCTSTR SectionName, // name of the Install section
PCTSTR SourceRootPath, // optional, root path to source files
UINT CopyFlags // optional, specifies copy behavior
);
Parameters
-
InfHandle
-
Specifies a handle to an INF file that contains the section to be installed. The INF file must be a Windows 95- or Windows NT 4.0-style INF file; script-based INF files are not supported by SetupInstallFilesFromInfSection.
-
LayoutInfHandle
-
This optional parameter supplies a handle to the INF file that contains the SourceDisksFiles and SourceDisksNames sections. If LayoutInfHandle is not specified, then the SourceDisksFiles and SourceDisksNames sections from InfHandle will be used.
-
FileQueue
-
Supplies a handle to the queue to add installation operations to.
-
SectionName
-
Supplies the name of the Install section in InfHandle that lists the Copy Files sections containing the files to install.
-
SourceRootPath
-
This optional parameter specifies a root path to the source files to copy. An example would be A:\ or \\pegasus\win\install.
-
CopyFlags
-
This optional parameter specifies a set of flags that control the behavior of the file copy operation. These flags may be a combination of the following values:
-
SP_COPY_DELETESOURCE
-
Delete the source file upon successful copy. The caller is not notified if the delete fails.
-
SP_COPY_REPLACEONLY
-
Copy the file only if doing so would overwrite a file at the destination path.
-
SP_COPY_NEWER
-
Examine each file being copied to see if its version resources indicate that it is not newer than an existing copy on the target.
The file version information used during version checks is that specified in the dwFileVersionMS and dwFileVersionLS members of a VS_FIXEDFILEINFO structure, as filled in by the Win32 version functions. If one of the files does not have version resources, or if they have identical version information, the source file is considered newer.
If the source file is not newer, and CopyMsgHandler is specified, the caller is notified and may cancel the copy. If CopyMsgHandler is not specified, the file is not copied.
-
SP_COPY_NOOVERWRITE
-
Check whether the target file exists, and, if so, notify the caller who may veto the copy. If CopyMsgHandler is not specified, the file is not overwritten.
-
SP_COPY_NODECOMP
-
Do not decompress the file. When this flag is set, the target file is not given the uncompressed form of the source name (if appropriate). For example, copying f:\mips\cmd.ex_ to \\install\temp results in a target file of \\install\temp\cmd.ex_. If the SP_COPY_NODECOMP flag was not specified, the file would be decompressed and the target would be called \\install\temp\cmd.exe. The filename part of DestinationName, if specified, is stripped and replaced with the filename of the source file. When SP_COPY_NODECOMP is specified, SP_COPY_LANGUAGEAWARE and SP_COPY_NEWER are ignored.
-
SP_COPY_LANGUAGEAWARE
-
Examine each file being copied to see if its language differs from the language of any existing file already on the target. If so, and CopyMsgHandler is specified, the caller is notified and may cancel the copy. If CopyMsgHandler is not specified, the file is not copied.
-
SP_COPY_SOURCE_ABSOLUTE
-
SourceFile is a full source path. Do not look it up in the SourceDisksNames section of the INF file.
-
SP_COPY_SOURCEPATH_ABSOLUTE
-
SourcePathRoot is the full path part of the source file. Ignore the relative source specified in the SourceDisksNames section of the INF file for the source media where the file is located. This flag is ignored if SP_COPY_SOURCE_ABSOLUTE is specified.
-
SP_COPY_FORCE_IN_USE
-
If the target exists, behave as if it is in use and queue the file for copying on the next system reboot.
-
SP_COPY_IN_USE_NEEDS_REBOOT
-
If the file was in use during the copy operation, alert the user that the system needs to be rebooted.
-
SP_COPY_NOSKIP
-
Do not give the user the option to skip a file.
-
SP_COPY_FORCE_NOOVERWRITE
-
Check whether the target file exists, and, if so, the file is not overwritten. The caller is not notified.
-
SP_COPY_FORCE_NEWER
-
Examine each file being copied to see if its version resources (or timestamps for non-image files) indicate that it is not newer than an existing copy on the target. If the file being copied is not newer, the file is not copied. The caller is not notified.
-
SP_COPY_WARNIFSKIP
-
If the user tries to skip a file, warn them that skipping a file may affect the installation. (Used for system-critical files.)
Return Values
If the function succeeds, the return value is a non-zero value.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
SetupInstallFilesFromInfSection can be called multiple times to queue the files specified in multiple INF sections. After the queue has been successfully committed and the files have been copied, renamed, and/or deleted, SetupInstallFromInfSection can be called to perform registry and INI installation operations.
If a UNC directory is specified as the target directory of a file installation, you must ensure it exists before you call SetupInstallFilesFromInfSection. The setup functions do not check for the existence of and do not create UNC directories. If the target UNC directory does not exist, the file installation will fail.
QuickInfo
Windows NT: Use version 4.0 and later.
Windows: Use Windows 95 and later.
Windows CE: Unsupported.
Header: Declared in setupapi.h.
Import Library: Link with setupapi.lib.
See Also
Overview, Functions, SetupInstallServicesFromInfSection, SetupInstallFromInfSection