SetupInstallFileExA 関数 (setupapi.h)
[この機能は、[要件] セクションに示されているオペレーティング システムで使用できます。 以降のバージョンでは、変更または使用できない場合があります。 SetupAPI は、アプリケーションのインストールに使用されなくなりました。 代わりに、Windows インストーラーを使用してアプリケーション インストーラーを開発します。 SetupAPI は、デバイス ドライバーのインストールに引き続き使用されます。
SetupInstallFileEx 関数は、SetupFindXXXLine によって返される INFCONTEXT、またはファイル名とパス情報によって明示的に指定されたファイルをインストールします。 この関数は、SetupInstallFileと同じですが、ファイルが使用中であったかどうかを示す BOOL が返される点が異なります。
ファイルがコピーされる場合、この関数の呼び出し元には、ターゲット ディレクトリに書き込む権限が必要です。
構文
WINSETUPAPI BOOL SetupInstallFileExA(
[in] HINF InfHandle,
[in] PINFCONTEXT InfContext,
[in] PCSTR SourceFile,
[in] PCSTR SourcePathRoot,
[in] PCSTR DestinationName,
[in] DWORD CopyStyle,
[in] PSP_FILE_CALLBACK_A CopyMsgHandler,
[in] PVOID Context,
[out] PBOOL FileWasInUse
);
パラメーター
[in] InfHandle
SourceDisksNames セクションと SourceDisksFiles セクションを含む INF ファイルへのハンドルへの省略可能なポインター。 ユーザーのシステムにプラットフォーム固有のセクション (SourceDisksNames.x86 や SourceDisksFiles.x86 など) が存在する場合は、プラットフォーム固有のセクションが使用されます。
[in] InfContext
INF ファイルの [ファイルのコピー] セクション内の行のコンテキストへの省略可能なポインター。 このルーチンは、InfHandle の SourceDisksFiles セクションでこのファイル
[in] SourceFile
コピーするファイルのファイル名 (パスなし) への省略可能なポインター。 ファイルは SourceDisksFiles セクションで検索されます。 InfContext が指定されていない場合は、
[in] SourcePathRoot
コピーするファイルのルート パスへの省略可能なポインター (A:\ や F: など)。 SourceDisksNames セクションのパスがこのパスに追加されます。 copyStyle に SP_COPY_SOURCE_ABSOLUTE フラグが含まれている場合、
[in] DestinationName
コピーしたファイルの新しい名前への省略可能なポインター。 InfContext
[in] CopyStyle
ファイル コピー操作の動作を制御するフラグ。
これらのフラグは、次の値の組み合わせにすることができます。
価値 | 意味 |
---|---|
|
コピーが成功したら、ソース ファイルを削除します。 削除が失敗した場合、呼び出し元には通知されません。 |
|
コピー先のパスにあるファイルが上書きされる場合にのみ、ファイルをコピーします。 |
|
コピーされる各ファイルを調べて、そのバージョン リソースがターゲット上の既存のコピーと同じバージョンか新しくないかを示しているかどうかを確認します。
バージョン チェック時に使用されるファイル バージョン情報は、バージョン関数によって入力された dwFileVersionMS および dwFileVersionLSVS_FIXEDFILEINFO 構造体のメンバーで指定されます。 いずれかのファイルにバージョン リソースがない場合、または同じバージョン情報がある場合、ソース ファイルは新しいと見なされます。 ソース ファイルが新しくないか、バージョンが等しくなく、CopyMsgHandler |
|
コピーされる各ファイルを調べて、そのバージョン リソースがターゲット上の既存のコピーよりも新しくないことを示しているかどうかを確認します。 ソース ファイルが新しいが、既存のターゲットとバージョンが等しくない場合は、ファイルがコピーされます。 |
|
ターゲット ファイルが存在するかどうかを確認し、存在する場合は、コピーを拒否する可能性がある呼び出し元に通知します。 CopyMsgHandler が指定されていない場合、ファイルは上書きされません。 |
|
ファイルを展開しないでください。 このフラグが設定されている場合、ターゲット ファイルにはソース名の圧縮されていない形式が指定されません (該当する場合)。 たとえば、"f:\x86\cmd.ex_" を "\\install\temp" にコピーすると、ターゲット ファイルが "\\install\temp\cmd.ex_" になります。 SP_COPY_NODECOMP フラグが指定されていない場合、ファイルは展開され、ターゲットは "\\install\temp\cmd.exe" と呼ばれます。 DestinationName のファイル名部分 (指定されている場合) は削除され、ソース ファイルのファイル名に置き換えられます。 SP_COPY_NODECOMPを指定すると、言語やバージョン情報を確認できません。 |
|
コピーされる各ファイルを調べて、その言語がターゲット上の既存のファイルの言語と異なるかどうかを確認します。 その場合、CopyMsgHandler |
|
SourceFile は完全なソース パスです。 INF ファイルの SourceDisksNames セクションで検索しないでください。 |
|
SourcePathRoot |
|
ターゲットが存在する場合は、使用中と同様に動作し、次のシステム再起動時にコピーするファイルをキューに入れます。 |
|
コピー操作中にファイルが使用されていた場合は、システムの再起動が必要であることをユーザーに警告します。 |
|
ファイルをスキップするオプションをユーザーに与えないでください。 |
|
ターゲット ファイルが存在するかどうかを確認します。存在する場合は、ファイルが上書きされません。 呼び出し元には通知されません。 |
|
コピーされる各ファイルを調べて、そのバージョン リソース (またはイメージ以外のファイルのタイム スタンプ) が、ターゲット上の既存のコピーよりも新しくないかどうかを確認します。 コピーされるファイルが新しくない場合、ファイルはコピーされません。 呼び出し元には通知されません。 |
|
ユーザーがファイルをスキップしようとすると、ファイルをスキップするとインストールに影響する可能性があることを警告します。 (システム クリティカルなファイルに使用されます)。 |
[in] CopyMsgHandler
ファイル コピー中に発生する可能性があるさまざまな条件を通知するコールバック関数へのオプションのポインター。
[in] Context
コールバック関数の最初のパラメーターとして渡される呼び出し元定義値へのポインター。
[out] FileWasInUse
この関数がファイルが使用中かどうかを示すフラグを返す変数へのポインター。 このパラメーターは必須です。
戻り値
関数が成功した場合、戻り値は 0 以外の値になります。
関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError
GetLastError
備考
この API は、通常、使用される可能性が高い新しいバージョンのシステム ファイルをインストールするときに使用されます。 ファイルが使用中であったかどうかを示す BOOL 値が更新されます。 ファイルが使用中であった場合、ファイルのコピー操作はシステムが再起動されるまで延期されます。
UNC ディレクトリがファイル インストールのターゲット ディレクトリとして指定されている場合は、SetupInstallFileEx
手記
setupapi.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupInstallFileEx を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | setupapi.h |
ライブラリ | Setupapi.lib |
DLL | Setupapi.dll |
関連項目
SetupCloseFileQueue の
SetupCommitFileQueue の
SetupInstallFile の
SetupPromptReboot の
SetupQueueCopy の