次の方法で共有


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に設定します。
CM_Get_DevNode_Status関数は、デバイス インスタンスの状態と問題のコードを取得し、SetupDiGetDeviceInstallParams 関数は、デバイス インスタンスを表すデバイス情報要素のデバイス インストール パラメーターを取得します。

要件

要件
サポートされている最小のクライアント Windows Server 2003 以降のバージョンの Windows で使用できます。
対象プラットフォーム デスクトップ
Header setupapi.h (Setupapi.h を含む)
Library Setupapi.lib
[DLL] Setupapi.dll

こちらもご覧ください

CM_Get_DevNode_Status

DIF_INSTALLDEVICE

SP_DEVINFO_DATA

SetupDiGetDeviceInstallParams