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 で定義されています。 詳細については、「 デバイス インストール関数コード 」を参照してください。
[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 コードに応答して、クラス インストーラーと共同インストーラーは、システムの再起動を必要とする操作を実行する場合があります。 このような場合は、インストーラーまたは共同インストーラーで次の操作を行う必要があります。
- SetupDiGetDeviceInstallParams を呼び出して、SP_DEVINSTALL_PARAMS構造体を取得します。
- 構造体の Flags メンバーにDI_NEEDREBOOTまたはDI_NEEDRESTART フラグを設定します。
- SetupDiSetDeviceInstallParams を呼び出し、更新されたSP_DEVINSTALL_PARAMS構造体を指定して、変更された Flags メンバーを保存します。
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で導入) |