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 來擷取記錄的錯誤。

備註

只有在類別安裝程式處理DIF_INSTALLDEVICE要求時,才應該由類別安裝程式呼叫 SetupDiRestartDevices,而且只有在類別安裝程式必須在所有預設安裝作業之後執行作業,但啟動裝置除外的罕見情況下,才應該呼叫安裝程式。 如需在這些情況下呼叫 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 中使用。
目標平台 桌面
標頭 setupapi.h (包括 Setupapi.h)
程式庫 Setupapi.lib
Dll Setupapi.dll

另請參閱

CM_Get_DevNode_Status

DIF_INSTALLDEVICE

SP_DEVINFO_DATA

SetupDiGetDeviceInstallParams