SetupDiRestartDevices 関数 (setupapi.h)
SetupDiRestartDevices 関数は、指定したデバイスを再起動するか、必要に応じて、指定したデバイスを操作する同じ関数およびフィルター ドライバーによって操作されるすべてのデバイスを再起動します。
構文
WINSETUPAPI BOOL SetupDiRestartDevices(
[in] HDEVINFO DeviceInfoSet,
[in, out] PSP_DEVINFO_DATA DeviceInfoData
);
パラメーター
[in] DeviceInfoSet
再起動するデバイスを表す デバイス情報 要素を含むデバイス情報セットへのハンドル。
[in, out] DeviceInfoData
再起動するデバイスを表すデバイス情報メンバーの SP_DEVINFO_DATA 構造体へのポインター。 SetupDiRestartDevices は、このデバイス情報メンバーのデバイス インストール パラメーターと、対応するデバイス インスタンスの状態と問題コードを更新するため、このパラメーターも出力パラメーターです。 これらの更新プログラムの詳細については、次の 「解説 」セクションを参照してください。
戻り値
操作が成功した場合、 SetupDiRestartDevices はTRUE を返します。それ以外の場合、関数は FALSE を 返し、ログに記録されたエラーは GetLastError の呼び出しによって取得できます。
注釈
SetupDiRestartDevices は、クラス インストーラーがDIF_INSTALLDEVICE要求を処理している場合にのみクラス インストーラーによって呼び出される必要があり、まれに、デバイスの起動を除くすべての既定のインストール操作が完了した後にクラス インストーラーが操作を実行する必要がある場合にのみ呼び出す必要があります。 このような状況での SetupDiRestartDevices の呼び出しの詳細については、「 DIF_INSTALLDEVICE」を参照してください。
SetupDiRestartDevices は、デバイスを操作する同じファンクション ドライバーまたはフィルター ドライバーによって操作される他のデバイスのインストールに影響を与えずに再起動を実行できる場合、指定されたデバイスのみを再起動します。 具体的には、指定したデバイスの再起動で新しいファイルがコピーされない場合、またはデバイス用に以前にインストールされていたファイルが変更されない場合、 SetupDiRestartDevices は指定されたデバイスのみを再起動します。 それ以外の場合、関数は、指定したデバイスを操作する同じ関数とフィルター ドライバーによって操作されているすべてのデバイスを再起動します。
SetupDiRestartDevices は、 再起動が試行された結果を反映するように、デバイスのインストール パラメーターとデバイスの状態を更新します。 例:
- デバイスが起動すると、 SetupDiRestartDevices によってデバイスの状態がDN_STARTEDに設定されます。
- デバイスを起動するためにシステムの再起動が必要な場合、 SetupDiRestartDevices は、デバイス情報要素に関連付けられているSP_DEVINSTALL_PARAMETER構造体の Flags メンバーにDI_NEEDREBOOT フラグを設定し、デバイスの問題コードをCM_PROB_NEED_RESTARTに設定します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Server 2003 以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | デスクトップ |
Header | setupapi.h (Setupapi.h を含む) |
Library | Setupapi.lib |
[DLL] | Setupapi.dll |