SetupInstallFileW 関数 (setupapi.h)

[この機能は、「要件」セクションに示されているオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 SetupAPI は、アプリケーションのインストールに使用されなくなりました。 代わりに、アプリケーション インストーラーを開発するために Windows インストーラーを使用します。 SetupAPI は、デバイス ドライバーのインストールに引き続き使用されます。]

SetupInstallFile 関数は、SetupFindXXXLine によって返される INFCONTEXT またはファイル名とパスによって明示的に指定されたファイルをインストールします。

ファイルがコピーされる場合、この関数の呼び出し元はターゲット ディレクトリへの書き込み特権を持っている必要があります。

構文

WINSETUPAPI BOOL SetupInstallFileW(
  [in] HINF                InfHandle,
  [in] PINFCONTEXT         InfContext,
  [in] PCWSTR              SourceFile,
  [in] PCWSTR              SourcePathRoot,
  [in] PCWSTR              DestinationName,
  [in] DWORD               CopyStyle,
  [in] PSP_FILE_CALLBACK_W CopyMsgHandler,
  [in] PVOID               Context
);

パラメーター

[in] InfHandle

SourceDisksNames セクションと SourceDisksFiles セクションを含む INF ファイルへのハンドルへの省略可能なポインター。 ユーザーのシステムにプラットフォーム固有のセクション (SourceDisksNames.x86 や SourceDisksFiles.x86 など) が存在する場合は、プラットフォーム固有のセクションが使用されます。 InfContext が null で、CopyStyle にSP_COPY_SOURCE_ABSOLUTEまたはSP_COPY_SOURCEPATH_ABSOLUTEが含まれている場合、InfHandle は無視されます。

[in] InfContext

INF ファイルの [ファイルのコピー] セクションの行のコンテキストへのオプションのポインター。 ルーチンは 、InfHandle の SourceDisksFiles セクションでこのファイルを検索して、ファイル コピー情報を取得します。 InfHandle が指定されていない場合は、SourceFile を指定する必要があります。

[in] SourceFile

コピーするファイルのファイル名 (パスなし) へのオプションのポインター。 ファイルは、SourceDisksFiles セクションで検索されます。 InfContext が指定されていない場合は、SourceFile パラメーターを指定する必要があります。 InfContext が指定されている場合、SourceFile は無視されます。

[in] SourcePathRoot

コピーするファイルのルート パスへの省略可能なポインター (A:\ や F:など)。 SourceDisksNames セクションのパスは、このパスに追加されます。 CopyStyle に SP_COPY_SOURCE_ABSOLUTE フラグが含まれている場合、SourcePathRoot パラメーターは無視されます。

[in] DestinationName

ターゲット ファイルのファイル名のみを指すオプションのポインター (パスなし)。 ターゲット ファイルの名前がソース ファイルと同じであることを示すには、このパラメーターに null を指定できます。 InfContext が指定されていない場合、DestinationName はターゲットの完全なパスとファイル名を指定します。

[in] CopyStyle

ファイル コピー操作の動作を制御するフラグ。 これらのフラグは、次の値の組み合わせである場合があります。

意味
SP_COPY_DELETESOURCE
コピーが正常に完了したら、ソース ファイルを削除します。 削除操作が失敗した場合、呼び出し元には通知されません。
SP_COPY_REPLACEONLY
コピー先のパスにあるファイルが上書きされる場合にのみ、ファイルをコピーします。 ターゲットが存在しない場合、関数は FALSE を 返し、 GetLastError は NO_ERRORを返します。
SP_COPY_NEWER_OR_SAME
コピーされる各ファイルを調べて、そのバージョン リソースがターゲット上の既存のコピーと同じバージョンか新しくないか確認します。

バージョン チェック中に使用されるファイル バージョン情報は、バージョン関数によって入力された、VS_FIXEDFILEINFO構造体の dwFileVersionMS メンバーと dwFileVersionLS メンバーで指定されています。 いずれかのファイルにバージョン リソースがない場合、または同じバージョン情報がある場合、ソース ファイルは新しいと見なされます。

ソース ファイルが新しくないか、バージョンが等しくなく、 CopyMsgHandler が指定されている場合、呼び出し元に通知が送信され、コピー操作が取り消される可能性があります。 CopyMsgHandler が指定されていない場合、ファイルはコピーされません。

SP_COPY_NEWER_ONLY
コピーされる各ファイルを調べて、そのバージョン リソースがターゲット上の既存のコピーよりも新しくないことを示しているかどうかを確認します。 ソース ファイルが新しいが、バージョンが既存のターゲットと等しくない場合は、ファイルがコピーされます。
SP_COPY_NOOVERWRITE
ターゲット ファイルが存在するかどうかを確認し、存在する場合は、コピーを拒否する可能性がある呼び出し元に通知します。 CopyMsgHandler が指定されていない場合、ファイルは上書きされません。
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
コピーされる各ファイルを調べて、その言語がターゲット上の既存のファイルの言語と異なるかどうかを確認します。 その場合、 CopyMsgHandler を指定すると、呼び出し元に通知が送信され、コピーを取り消すことができます。 CopyMsgHandler が指定されていない場合、ファイルはコピーされません。
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_FORCE_NOOVERWRITE
ターゲット ファイルが存在するかどうかを確認します。存在する場合は、ファイルは上書きされません。 呼び出し元には通知されません。
SP_COPY_FORCE_NEWER
コピーされる各ファイルを調べて、そのバージョン リソース (またはイメージ以外のファイルのタイム スタンプ) が、ターゲット上の既存のコピーよりも新しくないことを示しているかどうかを確認します。 コピーされるファイルが新しくない場合、ファイルはコピーされません。 呼び出し元には通知されません。 関数は FALSE を返し、 GetLastError は NO_ERRORを返します。

[in] CopyMsgHandler

ファイルのコピー操作中に発生する可能性があるさまざまな条件の通知を受け取るコールバック関数へのオプションのポインター。

[in] Context

コールバック関数の最初のパラメーターとして渡される呼び出し元定義値へのオプションのポインター。

戻り値

関数が成功した場合、戻り値は 0 以外の値になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

GetLastError がNO_ERRORを返した場合、ファイルのコピー操作は完了していません。 ファイルのコピー操作が不要であったか、ファイル コールバック関数が FALSE を返したため、ファイルがコピーされていない可能性があります。

注釈

UNC ディレクトリがファイル インストールのターゲット ディレクトリとして指定されている場合は、 SetupInstallFile を呼び出す前に、そのディレクトリが存在することを確認する必要があります。 セットアップ関数は、UNC ディレクトリの存在をチェックしたり、UNC ディレクトリを作成したりすることはありません。 ターゲット UNC ディレクトリが存在しない場合、ファイルのインストールは失敗します。

注意

setupapi.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupInstallFile を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー setupapi.h
Library Setupapi.lib
[DLL] Setupapi.dll

関連項目

関数

概要

SetupCloseFileQueue

SetupCommitFileQueue

SetupOpenFileQueue

SetupQueueCopy