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 に設定できます。 このパラメーターを指定すると、 SetupDiCallClassInstaller は DeviceInfoData 要素に対して指定された関数を実行します。 DeviceInfoData が NULL の場合、SetupDiCallClassInstaller は DeviceInfoSet に関連付けられているセットアップ クラスのインストーラーを呼び出します。

戻り値

成功した場合、この関数は 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 回要求する必要があることに注意してください。 したがって、 SetupDiCallClassInstaller と SetupDiGetDeviceInstallParams への複数の呼び出しを作成するデバイス インストール アプリケーションでは、各呼び出しの後に 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