SetupInstallFilesFromInfSectionA 関数 (setupapi.h)
[この機能は、「要件」セクションに示されているオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 SetupAPI は、アプリケーションのインストールに使用されなくなりました。 代わりに、アプリケーション インストーラーを開発するために Windows インストーラーを使用します。 SetupAPI は、デバイス ドライバーのインストールに引き続き使用されます。]
SetupInstallFilesFromInfSection 関数は、[ファイルのコピー]、[ファイルの削除]、および [ファイルの名前の変更] セクションで指定されたインストール用のすべてのファイルをキューに入れます。このセクションは、Install セクションで一覧表示されます。
ファイルが変更された場合、この関数の呼び出し元は、ターゲット ディレクトリに書き込む権限を持っている必要があります。
構文
WINSETUPAPI BOOL SetupInstallFilesFromInfSectionA(
[in] HINF InfHandle,
[in] HINF LayoutInfHandle,
[in] HSPFILEQ FileQueue,
[in] PCSTR SectionName,
[in] PCSTR SourceRootPath,
[in] UINT CopyFlags
);
パラメーター
[in] InfHandle
インストールするセクションを含む INF ファイルへのハンドル。
[in] LayoutInfHandle
SourceDisksFiles セクションと SourceDisksNames セクションを含む INF ファイルへのハンドルへの省略可能なポインター。
LayoutInfHandle が指定されていない場合は、InfHandle の SourceDisksFiles セクションと SourceDisksNames セクションが使用されます。
[in] FileQueue
インストール操作を追加するキューへのハンドル。
[in] SectionName
インストールするファイルを含む [ファイルのコピー]、[ファイルの削除]、および [ファイルの名前変更] セクションを一覧表示する InfHandle パラメーターの [インストール] セクションの名前。
null で終わる文字列を使用します。
[in] SourceRootPath
コピーするソース ファイルへのルート パスへの省略可能なポインター (A:\ や \pegasus\win\install など)。
null で終わる文字列を使用します。
[in] CopyFlags
ファイルコピー操作の動作を制御するフラグのセットへのオプションのポインター。
フラグには、次の値の組み合わせを指定できます。
SP_COPY_DELETESOURCE
コピー タスクが成功したときにソース ファイルを削除します。
削除タスクが失敗した場合、呼び出し元には通知されません。
SP_COPY_REPLACEONLY
コピー先のパスにあるファイルを上書きするためにのみ、ファイルをコピーします。
SP_COPY_NEWER_OR_SAME
コピーされた各ファイルを調べて、バージョン リソースが同じバージョンであることを示しているか、ターゲット上の既存のコピーよりも新しくないかを判断します。
ソース ファイルが新しいバージョンまたは同等のバージョンでない場合、関数は呼び出し元に、コピーを取り消すことができるユーザーに通知します。
バージョン チェック中に使用されるファイル バージョン情報は、Win32 バージョン関数によって入力されたVS_FIXEDFILEINFO構造体の dwFileVersionMS メンバーと dwFileVersionLS メンバーで指定されます。
いずれかのファイルにバージョン リソースがない場合、または同じバージョン情報がある場合、ソース ファイルは新しいと見なされます。
SP_COPY_NEWER_ONLY
コピーされる各ファイルを調べて、そのバージョン リソースがターゲット上の既存のコピーよりも新しくないことを示しているかどうかを判断します。
ソース ファイルが新しいが、バージョンが既存のターゲットと等しくない場合は、ファイルがコピーされます。
SP_COPY_NOOVERWRITE
ターゲット ファイルが存在するかどうかを確認します。
ターゲット ファイルが存在する場合、関数はコピーを取り消すことができるユーザーに通知します。
SP_COPY_NODECOMP
ファイルを圧縮解除しません。
このフラグが設定されている場合、ターゲット ファイルにはソース名の圧縮されていない形式が指定されません。たとえば、f:\x86\cmd.ex_ を \install\temp にコピーすると、結果はターゲット ファイル \install\temp\cmd.ex_ になります。
SP_COPY_NODECOMP フラグが指定されていない場合、ファイルは圧縮解除され、ターゲットは \install\temp\cmd.exe 呼び出されます。
DestinationName のファイル名部分を指定すると、削除され、ソース ファイルのファイル名に置き換えられます。 SP_COPY_NODECOMPを指定すると、言語とバージョンの情報を確認できません。
SP_COPY_LANGUAGEAWARE
コピーされる各ファイルを調べて、言語がターゲット上にある既存のファイルの言語と異なるかどうかを判断します。
言語が異なる場合、関数はコピー タスクを取り消すことができる呼び出し元に通知します。
SP_COPY_SOURCE_ABSOLUTE
SourceFile は完全なソース パスです。
INF ファイルの SourceDisksNames セクションで検索しないでください。
SP_COPY_SOURCEPATH_ABSOLUTE
SourcePathRoot は、ソース ファイルの完全なパス部分です。
ファイルが配置されているソース メディアの INF ファイルの SourceDisksNames セクションで指定されている相対ソースを無視します。 SP_COPY_SOURCE_ABSOLUTEが指定されている場合、このフラグは無視されます。
SP_COPY_FORCE_IN_USE
ターゲットが存在し、使用されている場合は、次回のシステム再起動時にコピーするファイルをキューに入れます。
SP_COPY_IN_USE_NEEDS_REBOOT
ファイルがコピー操作中に使用されている場合は、システムを再起動する必要があることをユーザーに警告します。
SP_COPY_NOSKIP
ファイルをスキップするオプションをユーザーに提供しません。
SP_COPY_FORCE_NOOVERWRITE
ターゲット ファイルが存在するかどうかを確認し、ターゲットが存在する場合、ファイルは上書きされず、呼び出し元には通知されません。
SP_COPY_FORCE_NEWER
コピーされる各ファイルを調べて、そのバージョン リソース (またはイメージ以外のファイルのタイム スタンプ) が、ターゲット上の既存のコピーよりも新しくないことを示していることを確認します。
コピーされるファイルが新しくない場合、ファイルはコピーされず、呼び出し元には通知されません。
SP_COPY_WARNIFSKIP
ユーザーがファイルをスキップしようとすると、ファイルをスキップするとインストールに影響する可能性があることを警告します。
システム クリティカルなファイルには、このフラグを使用します。
戻り値
関数が成功した場合、戻り値は 0 以外の値になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
SetupInstallFilesFromInfSection を複数回呼び出して、複数の INF セクションで指定されたファイルをキューに入れます。 キューが正常にコミットされ、ファイルがコピー、名前変更、削除された後、 SetupInstallFromInfSection を呼び出してレジストリと INI のインストール操作を実行できます。
UNC ディレクトリがファイル インストールのターゲット ディレクトリとして指定されている場合は、 SetupInstallFilesFromInfSection を呼び出す前に UNC ディレクトリが存在することを確認する必要があります。 セットアップ関数は、ディレクトリの存在をチェックせず、UNC ディレクトリを作成しません。 ターゲット UNC ディレクトリが存在しない場合、ファイルのインストールは失敗します。
注意
setupapi.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupInstallFilesFromInfSection を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | setupapi.h |
Library | Setupapi.lib |
[DLL] | Setupapi.dll |