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 ファイルの [インストール ] セクションの名前。

Flags

実行するアクションを制御します。 フラグには、次の値の組み合わせを指定できます。

SPINST_INIFILES

INI ファイル操作 (処理中の [インストール] セクションの UpdateInisUpdateIniFields 行) を実行します。

SPINST_REGISTRY

レジストリ操作を実行します (処理されている [インストール] セクションの AddRegDelReg 行)。

SPINST_INI2REG

レジストリ操作に対して INI ファイルを実行します (処理中の [インストール] セクションの Ini2Reg 行)。

SPINST_LOGCONFIG

このフラグは、デバイス ドライバーをインストールする場合にのみ使用されます。

論理構成操作を実行します (処理中の [インストール] セクションの LogConf 行)。 このフラグは、 DeviceInfoSetDeviceInfoData が指定されている場合にのみ使用されます。

デバイス ドライバー、LogConfDeviceInfoSet、または DeviceInfoData のインストールの詳細については、DDK プログラマー ガイドを参照してください。

SPINST_FILES

ファイル操作を実行します (処理されている [インストール] セクションの CopyFilesDelFilesRenFiles 行)。

SPINST_ALL

すべてのインストール操作を実行します。

SPINST_REGISTERCALLBACKAWARE

RegisterDlls INF ディレクティブを使用して Windows 2000 の DLL を自己登録する場合、SetupInstallFromInfSection の呼び出し元は、登録または登録解除時に各ファイルで通知を受け取る場合があります。 コールバック ルーチンに SPFILENOTIFY_STARTREGISTRATION または SPFILENOTIFY_ENDREGISTRATION 通知を送信するには、SPINST_REGISTERCALLBACKAWAREに加えて、SPINST_REGSVRまたはSPINST_UNREGSVRを含めます。 呼び出し元は MsgHandler パラメーターも設定する必要があります。

SPINST_REGSVR

ファイルを登録するときにコールバック ルーチンに通知を送信するには、 フラグにSPINST_REGISTERCALLBACKAWAREとSPINST_REGSVRを含めます。 呼び出し元は MsgHandler パラメーターも指定する必要があります。

SPINST_UNREGSVR

ファイルの登録を解除するときにコールバック ルーチンに通知を送信するには、 フラグにSPINST_REGISTERCALLBACKAWAREとSPINST_UNREGSVRを含めます。 呼び出し元は MsgHandler パラメーターも指定する必要があります。

RelativeKeyRoot

Flags にSPINST_REGISTRYまたはSPINST_INI2REGが含まれている場合に指定する必要がある省略可能なパラメーター。 INF ファイルでキーとして HKR が指定されている場合に、ルートとして使用されるレジストリ キーを処理します。 SetupInstallFromInfSection が省略可能な DeviceInfoSet および DeviceInfoData セットで呼び出される場合、このパラメーターは無視されることに注意してください。

SourceRootPath

ファイル コピーのソース ルート。 たとえば、A:\ または \pegasus\win\install です。 Flags にSPINST_FILESが含まれており、SourceRootPath が NULL の場合、システムは既定のルート パスを提供します。

CopyFlags

Flags にSPINST_FILESが含まれている場合に指定する必要がある省略可能なパラメーター。 ファイルがコピーのキューに入っている場合に SetupQueueCopySection 関数に渡されるフラグを指定します。 これらのフラグは、次の値の組み合わせである場合があります。

SP_COPY_DELETESOURCE

コピーが正常に完了したら、ソース ファイルを削除します。 削除が失敗した場合、呼び出し元には通知されません。

SP_COPY_REPLACEONLY

コピー先のパスにあるファイルが上書きされる場合にのみ、ファイルをコピーします。

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 の filename 部分が指定されている場合、削除され、ソース ファイルのファイル名に置き換えられます。 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_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が含まれていない場合にのみ省略可能です。

Flags にSPINST_FILESが含まれている場合は、MsgHandler設定する必要があります。 この場合、ファイル キューが SetupCommitFileQueue でコミットされると、コールバック ルーチンに通知が送信されます。

Flags にSPINST_REGISTERCALLBACKAWAREとSPINST_REGSVRまたはSPINST_UNREGSVRが含まれている場合は、MsgHandler を設定する必要があります。 この場合、Windows 2000 の RegisterDlls INF ディレクティブを使用してファイルが登録または登録解除されるたびに、SPFILENOTIFY_STARTREGISTRATIONまたはSPFILENOTIFY_ENDREGISTRATIONがコールバック ルーチンに送信されます。

Context

このルーチンによって内部的にビルドされたファイル キューが SetupCommitFileQueue を介してコミットされるときに、コールバック関数に渡される値。 Context パラメーターは、Flags パラメーターにSPINST_FILESが含まれていない場合にのみ省略可能です。 Flags にSPINST_FILESが含まれている場合は、このパラメーターを指定する必要があります。

DeviceInfoSet

デバイス情報セットへのハンドルへの省略可能なポインター。 デバイス インストーラーのセットアップ機能の詳細については、DDK プログラマー ガイドを参照してください。

DeviceInfoData

DeviceInfoSet で指定されたセット内の特定の要素へのコンテキストを提供する、SP_DEVINFO_DATA構造体へのポインターへの省略可能なポインター。デバイス インストーラーのセットアップ機能の詳細については、DDK プログラマー ガイドを参照してください。

戻り値

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

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

解説

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

この関数には、Windows INF ファイルが必要です。 一部の古い INF ファイル形式はサポートされていない可能性があります。

注意

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

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー setupapi.h
Library Setupapi.lib
[DLL] Setupapi.dll
API セット ext-ms-win-setupapi-classinstallers-l1-1-2 (Windows 10 バージョン 10.0.14393 で導入)

関連項目

関数

概要

SPFILENOTIFY_ENDREGISTRATION

SPFILENOTIFY_STARTREGISTRATION

SetupInstallServicesFromInfSection