DiShowUpdateDevice 函式 (newdev.h)
DiShowUpdateDevice 函式會顯示指定裝置的硬體更新精靈。
語法
BOOL DiShowUpdateDevice(
[in, optional] HWND hwndParent,
[in] HDEVINFO DeviceInfoSet,
[in] PSP_DEVINFO_DATA DeviceInfoData,
[in] DWORD Flags,
[out, optional] PBOOL NeedReboot
);
參數
[in, optional] hwndParent
DiShowUpdateDevice 用來顯示與更新指定裝置相關聯的任何使用者介面元件的最上層視窗句柄。 此參數是選擇性的,而且可以設定為 NULL。
[in] DeviceInfoSet
裝置 資訊集 的句柄,其中包含代表要顯示硬體更新精靈之裝置的裝置信息元素。
[in] DeviceInfoData
SP_DEVINFO_DATA 結構的指標 ,代表要顯示硬體更新精靈的裝置。
[in] Flags
此參數必須設定為零。
[out, optional] NeedReboot
DiShowUpdateDevice 所設定之 BOOL 類型的值指標,指出是否需要重新啟動系統才能完成驅動程式更新。 此參數是選擇性的,可以是 NULL。 如果提供 參數,而且需要重新啟動系統才能完成驅動程式更新, DiShowUpdateDevice 會將值設定為 TRUE。 在此情況下,呼叫端必須提示使用者重新啟動系統。 如果提供此參數,而且不需要系統重新啟動才能完成安裝, DiShowUpdateDevice 會將值設定為 FALSE。 如果 參數為 NULL ,而且需要系統重新啟動才能完成驅動程式更新, DiShowUpdateDevice 會顯示系統重新啟動對話方塊。 如需此參數的詳細資訊,請參閱下列一節。
傳回值
如果硬體更新精靈已成功更新指定裝置的驅動程式,DiShowUpdateDevice 會傳回 TRUE。 否則, DiShowUpdateDevice 會傳回 FALSE ,而且可以藉由呼叫 GetLastError 來擷取記錄的錯誤。 GetLastError 可能會傳回的一些較常見的錯誤值如下:
傳回碼 | Description |
---|---|
|
呼叫端沒有系統管理員許可權。 根據預設,Windows 會要求呼叫進程具有系統管理員許可權來更新 驅動程式套件。 |
|
使用者已取消硬體更新精靈。 |
|
呼叫的應用程式是在64位環境中嘗試執行的32位應用程式,不允許。 如需詳細資訊,請參閱 在64位系統上安裝裝置。 |
|
針對 Flags 指定的值不等於零。 |
備註
DiShowUpdateDevice 會顯示指定裝置實例的硬體更新精靈。 如需如何使用硬體更新精靈更新設備驅動器的相關信息,請參閱說明和支援中心。
一般而言,安裝應用程式應該將 NeedReboot 設定為 NULL ,以便在需要重新啟動才能完成硬體更新時,系統會自動起始系統重新啟動。 應用程式應該只在下列情況下提供 NeedReboot 指標:
- 安裝應用程式必須呼叫 DiShowUpdateDevice 數次才能完成硬體更新。 在此情況下,應用程式應該記錄對 DiShowUpdateDevice 的任何呼叫是否傳回 TRUENeedReboot 值,如果是的話,請在最後呼叫 DiShowUpdateDevice 之後提示使用者重新啟動系統。
- 應用程式必須在系統重新啟動之前執行必要的作業,而不是呼叫 DiShowUpdateDevice。 如果需要系統重新啟動,應用程式應該完成必要的作業,然後提示使用者重新啟動系統。
若要為裝置安裝新的驅動程式,而不是叫用硬體更新精靈,請呼叫 DiInstallDriver 或 UpdateDriverForPlugAndPlayDevices。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows 中使用。 |
目標平台 | 桌面 |
標頭 | newdev.h (包括 Newdev.h) |
程式庫 | Newdev.lib |
Dll | Newdev.dll |