SetupDiCallClassInstaller 関数 (setupapi.h)

SetupDiCallClassInstaller 関数は、指定されたインストール要求 (DIF コード) を使用して、適切なクラス インストーラーと、登録されている共同インストーラーを呼び出します。

構文

WINSETUPAPI BOOL SetupDiCallClassInstaller(
  [in]           DI_FUNCTION      InstallFunction,
  [in]           HDEVINFO         DeviceInfoSet,
  [in, optional] PSP_DEVINFO_DATA DeviceInfoData
);

パラメーター

[in] InstallFunction

共同インストーラーとクラス インストーラーに渡すデバイス インストール要求 (DIF 要求)。 DIF コードの形式は DIF_XXX で、Setupapi.h で定義されています。 詳細については、「 デバイス インストール関数コード 」を参照してください。

メモ 特定の DIF 要求の場合、呼び出し元は Administrators グループのメンバーである必要があります。 このような DIF 要求の場合、この要件は、関連付けられている既定のハンドラーのリファレンス ページに一覧表示されます。
 

[in] DeviceInfoSet

ローカル コンピューターの デバイス情報セット へのハンドル。 このセットには、指定したインストール機能を実行するデバイスを表すデバイス インストール要素が含まれています。

[in, optional] DeviceInfoData

指定 したインストール 機能を実行するデバイスを表す DeviceInfoSet 内のデバイス情報要素を指定するSP_DEVINFO_DATA構造体へのポインター。 このパラメーターは省略可能であり、 NULL に設定できます。 このパラメーターを指定すると、 SetupDiCallClassInstallerDeviceInfoData 要素に対して指定された関数を実行します。 DeviceInfoDataNULL の場合、SetupDiCallClassInstallerDeviceInfoSet に関連付けられているセットアップ クラスのインストーラーを呼び出します。

戻り値

成功した場合、この関数は TRUE を 返します。 それ以外の場合は FALSE を 返し、 GetLastError を呼び出すことでログに記録されたエラーを取得できます。

GetLastError が ERROR_IN_WOW64を返す場合、これは、呼び出し元のアプリケーションが 64 ビット環境で実行を試みる 32 ビット アプリケーションであり、許可されていないことを意味します。

注釈

SetupDiCallClassInstaller は 、クラス インストーラーと、デバイスまたはデバイス セットアップ クラスに登録されている共同インストーラーを呼び出します。 この関数は、まだ読み込まれていない場合にインストーラーを読み込みます。 関数は、既定のハンドラーがあり、インストーラーが既定のハンドラーを呼び出す必要があることを示す状態を返す場合は、DIF 要求の既定のハンドラーも呼び出します。

デバイス インストール アプリケーションは、 さまざまな デバイス インストール関数コード (DIF コード) を使用してこの関数を呼び出します。 関数を使用すると、特定の DIF 要求に対して適切なすべてのインストーラーと既定のハンドラーが正しい順序で呼び出されます。 詳細については、「 DIF コードの処理」を参照してください。

SetupDiCallClassInstaller がTRUE を返した後、デバイス インストール アプリケーションは SetupDiGetDeviceInstallParams を呼び出して、SP_DEVINSTALL_PARAMS構造体を取得する必要があります。 構造体の DI_NEEDREBOOT または DI_NEEDRESTART フラグが設定されている場合、呼び出し元はユーザーにシステムの再起動を求める必要があります。 たとえば、呼び出し元は SetupPromptReboot を呼び出すことでこれを行うことができます。

ただし、デバイス インストール アプリケーションでは、システムの再起動を最大で 1 回要求する必要があることに注意してください。 したがって、 SetupDiCallClassInstallerSetupDiGetDeviceInstallParams への複数の呼び出しを作成するデバイス インストール アプリケーションでは、各呼び出しの後に DI_NEEDREBOOT フラグと DI_NEEDRESTART フラグを保存する必要があります。 ただし、最後の呼び出しが返された後にのみ、ユーザーにメッセージを表示する必要があります。

SetupDiCallClassInstaller によって提供される DIF コードに応答して、クラス インストーラーと共同インストーラーは、システムの再起動を必要とする操作を実行する場合があります。 このような場合は、インストーラーまたは共同インストーラーで次の操作を行う必要があります。

  1. SetupDiGetDeviceInstallParams を呼び出して、SP_DEVINSTALL_PARAMS構造体を取得します。
  2. 構造体の Flags メンバーにDI_NEEDREBOOTまたはDI_NEEDRESTART フラグを設定します。
  3. SetupDiSetDeviceInstallParams を呼び出し、更新されたSP_DEVINSTALL_PARAMS構造体を指定して、変更された Flags メンバーを保存します。
SetupDiCallClassInstaller が返された後、それを呼び出したデバイス インストール アプリケーションは SetupDiGetDeviceInstallParams を呼び出し、フラグをチェックし、必要に応じて再起動を要求する必要があります。

DeviceInfoSet で指定されたデバイス情報セットには、ローカル コンピューター上のデバイスの要素のみを含める必要があります。

共同インストーラーの設計と操作の詳細については、「共同 インストーラーの作成」を参照してください。

要件

要件
サポートされている最小のクライアント Microsoft Windows 2000 以降のバージョンの Windows で使用できます。
対象プラットフォーム デスクトップ
Header setupapi.h (Setupapi.h を含む)
Library Setupapi.lib
[DLL] Setupapi.dll
API セット ext-ms-win-setupapi-classinstallers-l1-1-0 (Windows 8で導入)

こちらもご覧ください

SP_DEVINFO_DATA