SetupInstallFromInfSectionA 関数 (setupapi.h)
[この機能は、[要件] セクションに示されているオペレーティング システムで使用できます。 以降のバージョンでは、変更または使用できない場合があります。 SetupAPI は、アプリケーションのインストールに使用されなくなりました。 代わりに、Windows インストーラーを使用してアプリケーション インストーラーを開発します。 SetupAPI は、デバイス ドライバーのインストールに引き続き使用されます。
SetupInstallFromInfSection 関数は、INF ファイル内のすべてのディレクティブを実行 インストール セクションです。
レジストリまたはファイルが変更された場合、この関数の呼び出し元には、システムまたはターゲット ディレクトリに書き込む権限が必要です。
構文
WINSETUPAPI BOOL SetupInstallFromInfSectionA(
HWND Owner,
HINF InfHandle,
PCSTR SectionName,
UINT Flags,
HKEY RelativeKeyRoot,
PCSTR SourceRootPath,
UINT CopyFlags,
PSP_FILE_CALLBACK_A MsgHandler,
PVOID Context,
HDEVINFO DeviceInfoSet,
PSP_DEVINFO_DATA DeviceInfoData
);
パラメーター
Owner
ディスクのプロンプトやファイルのコピーなど、インストール時に生成されるダイアログ ボックスを所有するウィンドウハンドルへのオプションのポインター。 所有者 が指定されていない場合、これらのダイアログ ボックスは最上位のウィンドウになります。
InfHandle
処理するセクションを含む INF ファイルを処理します。
SectionName
処理する INF ファイルの Install セクションの名前。
Flags
実行するアクションを制御します。 フラグには、次の値の組み合わせを指定できます。
SPINST_INIFILES
INI ファイル操作を実行します (UpdateInis
SPINST_REGISTRY
レジストリ操作 (AddReg、 DelReg 行を処理する インストール セクション) を実行します。
SPINST_INI2REG
INI ファイルからレジストリへの操作を実行します (処理中の
SPINST_LOGCONFIG
このフラグは、デバイス ドライバーをインストールする場合にのみ使用されます。
論理構成操作を実行します (LogConf 行は、処理中の Install セクションにあります)。 このフラグは、DeviceInfoSet と DeviceInfoData
デバイス ドライバー、
SPINST_FILES
ファイル操作を実行します (
SPINST_ALL
すべてのインストール操作を実行します。
SPINST_REGISTERCALLBACKAWARE
Windows 2000 で RegisterDlls INF ディレクティブを使用して DLL を自己登録する場合、SetupInstallFromInfSection の呼び出し元は、登録または登録解除時に各ファイルで通知を受け取る可能性があります。 コールバック ルーチンに SPFILENOTIFY_STARTREGISTRATION または SPFILENOTIFY_ENDREGISTRATION 通知を送信するには、SPINST_REGISTERCALLBACKAWAREに加えて、SPINST_REGSVRまたはSPINST_UNREGSVRを含めます。 呼び出し元は、MsgHandler パラメーターも設定する必要があります。
SPINST_REGSVR
ファイルを登録するときにコールバック ルーチンに通知を送信するには、FlagsにSPINST_REGISTERCALLBACKAWAREとSPINST_REGSVRを含めます。 呼び出し元は、MsgHandler パラメーターも指定する必要があります。
SPINST_UNREGSVR
ファイルの登録を解除するときにコールバック ルーチンに通知を送信するには、フラグにSPINST_REGISTERCALLBACKAWAREとSPINST_UNREGSVRを含めます。 呼び出し元は、MsgHandler パラメーターも指定する必要があります。
RelativeKeyRoot
Flags にSPINST_REGISTRYまたはSPINST_INI2REGが含まれている場合に指定する必要がある省略可能なパラメーター。 INF ファイルが HKR をキーとして指定するときに、ルートとして使用するレジストリ キーを処理します。
このパラメーターは、省略可能な
SourceRootPath
ファイル コピーのソース ルート。 たとえば、A:\ または \pegasus\win\install です。
CopyFlags
Flags にSPINST_FILESが含まれている場合に指定する必要がある省略可能なパラメーター。 ファイルがコピー用にキューに登録されているときに、SetupQueueCopySection 関数に渡すフラグを指定します。 これらのフラグは、次の値の組み合わせである場合があります。
SP_COPY_DELETESOURCE
コピーが成功したら、ソース ファイルを削除します。 削除が失敗した場合、呼び出し元には通知されません。
SP_COPY_REPLACEONLY
コピー先のパスにあるファイルが上書きされる場合にのみ、ファイルをコピーします。
SP_COPY_NEWER_OR_SAME
コピーされる各ファイルを調べて、そのバージョン リソースがターゲット上の既存のコピーと同じバージョンか新しくないかを示しているかどうかを確認します。
バージョン チェック時に使用されるファイル バージョン情報は、バージョン関数によって入力された dwFileVersionMS および dwFileVersionLSVS_FIXEDFILEINFO 構造体のメンバーで指定されます。 いずれかのファイルにバージョン リソースがない場合、または同じバージョン情報がある場合、ソース ファイルは新しいと見なされます。
ソース ファイルがバージョン以上で等しくなく、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
SP_COPY_SOURCE_ABSOLUTE
SourceFile は完全なソース パスです。 INF ファイルの SourceDisksNames セクションで検索しないでください。
SP_COPY_SOURCEPATH_ABSOLUTE
SourcePathRoot
SP_COPY_FORCE_IN_USE
ターゲットが存在する場合は、使用中と同様に動作し、次のシステム再起動時にコピーするファイルをキューに入れます。
SP_COPY_IN_USE_NEEDS_REBOOT
コピー操作中にファイルが使用中であった場合は、システムを再起動する必要があることをユーザーに通知します。
このフラグは、後で SetupPromptReboot を呼び出すか、SetupScanFileQueueを
SP_COPY_NOSKIP
ファイルをスキップするオプションをユーザーに与えないでください。
SP_COPY_FORCE_NOOVERWRITE
ターゲット ファイルが存在するかどうかを確認し、存在する場合はファイルが上書きされません。 呼び出し元には通知されません。
SP_COPY_FORCE_NEWER
コピーされる各ファイルを調べて、そのバージョン リソース (またはイメージ以外のファイルのタイム スタンプ) が、ターゲット上の既存のコピーよりも新しくないかどうかを確認します。 コピーされるファイルが新しくない場合、ファイルはコピーされません。 呼び出し元には通知されません。
SP_COPY_WARNIFSKIP
ユーザーがファイルをスキップしようとすると、ファイルをスキップするとインストールに影響する可能性があることを警告します。 (システム クリティカルなファイルに使用されます)。
MsgHandler
コールバック ルーチンへのポインター。 コールバック ルーチンは、FileCallback
このパラメーターは、Flags パラメーターにSPINST_FILES、SPINST_REGISTERCALLBACKAWAREプラス SPINST_REGSVR、またはSPINST_UNREGSVRが含まれていない場合にのみ省略可能です。
Context
このルーチンによって内部的にビルドされたファイル キューが SetupCommitFileQueue
DeviceInfoSet
デバイス情報セットへのハンドルへの省略可能なポインター。 デバイス インストーラーのセットアップ機能の詳細については、DDK プログラマ ガイドを参照してください。
DeviceInfoData
DeviceInfoSet で指定されたセット内の特定の要素へのコンテキストを提供する SP_DEVINFO_DATA 構造体へのポインター 省略可能です。 デバイス インストーラーのセットアップ機能の詳細については、DDK プログラマ ガイドのを参照してください。
戻り値
関数が成功した場合、戻り値は 0 以外の値になります。
関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError
備考
UNC ディレクトリがファイル コピー操作のターゲット ディレクトリとして指定されている場合は、SetupInstallFromInfSection
この関数には Windows INF ファイルが必要です。 一部の古い INF ファイル形式はサポートされていない可能性があります。
手記
setupapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupInstallFromInfSection を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | setupapi.h |
ライブラリ | Setupapi.lib |
DLL | Setupapi.dll |
API セットの | ext-ms-win-setupapi-classinstallers-l1-1-2 (Windows 10 バージョン 10.0.14393 で導入) |