SetupQueueCopySectionA 関数 (setupapi.h)
[この機能は、[要件] セクションに示されているオペレーティング システムで使用できます。 以降のバージョンでは、変更または使用できない場合があります。 SetupAPI は、アプリケーションのインストールに使用されなくなりました。 代わりに、Windows インストーラーを使用してアプリケーション インストーラーを開発します。 SetupAPI は、デバイス ドライバーのインストールに引き続き使用されます。
SetupQueueCopySection 関数は、すべてのファイルをコピー用のセットアップ キュー内の INF ファイルのセクションに配置します。 セクションは正しい ファイルのコピー 形式である必要があります。また、INF ファイルには、SourceDisksFiles セクションと SourceDisksNames セクションが含まれている必要があります (または、それらのセクションを含む INF ファイルが追加されている必要があります)。
WINSETUPAPI BOOL SetupQueueCopySectionA(
[in] HSPFILEQ QueueHandle,
[in] PCSTR SourceRootPath,
[in] HINF InfHandle,
[in] HINF ListInfHandle,
[in] PCSTR Section,
[in] DWORD CopyStyle
);
[in] QueueHandle
SetupOpenFileQueueによって返されるセットアップ ファイル キュー
[in] SourceRootPath
A: など、このコピーのソースのルートを指定する null で終わる文字列へのポインター。
[in] InfHandle
SourceDisksFiles および SourceDisksNames セクションを含む、開いている INF ファイルへのハンドル。 ListInfHandle
[in] ListInfHandle
コピーのためにキューに格納するセクションを含む、開いている INF ファイルへの省略可能なハンドル。 ListInfHandle が指定されていない場合、InfHandle にはセクションが含まれていると見なされます。
[in] Section
コピーのキューに登録するセクションの名前を指定する null で終わる文字列へのポインター。
[in] CopyStyle
ファイル コピー操作の動作を制御するフラグ。 これらのフラグは、次の値の組み合わせである場合があります。
コピーが成功したら、ソース ファイルを削除します。 削除が失敗した場合、呼び出し元には通知されません。
コピー先のパスにあるファイルが上書きされる場合にのみ、ファイルをコピーします。
コピーされる各ファイルを調べて、そのバージョン リソースが、ターゲット上の既存のコピーとバージョンが等しいか、新しくないかを示しているかどうかを確認します。
バージョン チェック時に使用されるファイル バージョン情報は、バージョン関数によって入力された dwFileVersionMS および dwFileVersionLSVS_FIXEDFILEINFO 構造体のメンバーで指定されます。 いずれかのファイルにバージョン リソースがない場合、または同じバージョン情報がある場合、ソース ファイルは新しいと見なされます。
ソース ファイルがバージョン以上で等しくなく、CopyMsgHandler が指定されている場合、呼び出し元に通知され、コピーを取り消すことができます。 CopyMsgHandler が指定されていない場合、ファイルはコピーされません。
コピーされる各ファイルを調べて、そのバージョン リソースがターゲット上の既存のコピーよりも新しくないことを示しているかどうかを確認します。 ソース ファイルが新しいが、既存のターゲットとバージョンが等しくない場合は、ファイルがコピーされます。
ターゲット ファイルが存在するかどうかを確認し、存在する場合は、コピーを拒否する可能性がある呼び出し元に通知します。 CopyMsgHandler が指定されていない場合、ファイルは上書きされません。
ファイルを展開しないでください。 このフラグが設定されている場合、ターゲット ファイルにはソース名の圧縮されていない形式が指定されません (該当する場合)。 たとえば、f:\x86s\cmd.ex_ を \install\temp にコピーすると、ターゲット ファイル \install\temp\cmd.ex_ になります。 SP_COPY_NODECOMP フラグが指定されていない場合、ファイルは展開され、ターゲットは \install\temp\cmd.exe呼び出されます。 DestinationName のファイル名部分 (指定されている場合) は削除され、ソース ファイルのファイル名に置き換えられます。 SP_COPY_NODECOMPを指定すると、言語やバージョン情報を確認できません。
コピーされる各ファイルを調べて、その言語がターゲット上の既存のファイルの言語と異なるかどうかを確認します。 その場合、CopyMsgHandler
SourceFile は完全なソース パスです。 INF ファイルの SourceDisksNames セクションで検索しないでください。
SourcePathRoot
ターゲットが存在する場合は、使用中と同様に動作し、次のシステム再起動時にコピーするファイルをキューに入れます。
コピー操作中にファイルが使用されていた場合は、システムを再起動する必要があることをユーザーに警告します。
ファイルをスキップするオプションをユーザーに与えないでください。
ターゲット ファイルが存在するかどうかを確認し、存在する場合はファイルが上書きされません。 呼び出し元には通知されません。
コピーされる各ファイルを調べて、そのバージョン リソース (またはイメージ以外のファイルのタイム スタンプ) が、ターゲット上の既存のコピーよりも新しくないかどうかを確認します。 コピーされるファイルが新しくない場合、ファイルはコピーされません。 呼び出し元には通知されません。
ユーザーがファイルをスキップしようとすると、ファイルをスキップするとインストールに影響する可能性があることを警告します。 (システム クリティカルなファイルに使用されます)。
関数が成功した場合、戻り値は 0 以外の値になります。
関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError
UNC ディレクトリがファイル コピー操作のターゲット ディレクトリとして指定されている場合は、キューがコミットされる前に UNC ディレクトリが存在することを確認する必要があります。 セットアップ関数は、UNC ディレクトリの存在を確認せず、作成しません。 ターゲット UNC ディレクトリが存在しない場合、ファイルのコピーは失敗します。
この関数には Windows INF ファイルが必要です。 一部の古い INF ファイル形式はサポートされていない可能性があります。
注意
setupapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupQueueCopySection を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | setupapi.h |
ライブラリ | Setupapi.lib |
DLL | Setupapi.dll |
SetupQueueCopy の
SetupQueueDefaultCopy の