共用方式為


CM_Reenumerate_DevNode函式 (cfgmgr32.h)

CM_Reenumerate_DevNode函式會列舉指定裝置節點及其所有子系所識別的裝置。

語法

CMAPI CONFIGRET CM_Reenumerate_DevNode(
  [in] DEVINST dnDevInst,
  [in] ULONG   ulFlags
);

參數

[in] dnDevInst

系結至本機計算機的呼叫端提供的裝置實例句柄。

[in] ulFlags

呼叫端提供的旗標,指定應如何執行繼續。 此參數可以設定為下列旗標的組合,如所述:

CM_REENUMERATE_ASYNCHRONOUS

應以異步方式進行繼續。 在 PnP 管理員收到繼續要求之後,立即傳回此函式的呼叫。 如果設定此旗標,則不應同時設定CM_REENUMERATE_SYNCHRONOUS旗標。

CM_REENUMERATE_NORMAL

指定預設的繼續行為,在此行為中會同步發生繼續。 此旗標的功能相當於CM_REENUMERATE_SYNCHRONOUS。

CM_REENUMERATE_RETRY_INSTALLATION

指定隨插即用應該再次嘗試在偵測到但尚未設定的子樹中安裝任何裝置,或標示為需要重新安裝,或必須完成安裝。 此旗標 可以與CM_REENUMERATE_SYNCHRONOUS 旗標 CM_REENUMERATE_ASYNCHRONOUS旗標一起設定。

此旗標必須特別小心使用,因為它可能會導致 PnP 管理員提示使用者執行任何這類裝置的安裝。 目前,只有設備管理器和硬體精靈等元件會使用此旗標,讓使用者重試安裝可能已經偵測到但目前未安裝的裝置。

CM_REENUMERATE_SYNCHRONOUS

應同步發生繼續。 當指定裝置的子樹狀結構中的所有裝置已將繼續要求傳送至這些裝置,且裝置堆疊已完成這些要求時,此函式的呼叫會傳回。 這不保證這些裝置裝置裝置堆疊中的驅動程式已重新掃描其總線並回報更新。 它也不保證任何回報的新裝置都處於啟動狀態。 如果已設定此旗標,則不應該同時設定CM_REENUMERATE_ASYNCHRONOUS旗標。 此旗標的功能相當於CM_REENUMERATE_NORMAL。

返回值

如果作業成功,函式會傳回CR_SUCCESS。 否則,它會傳回 Cfgmgr32.h中定義的其中一個CR_前置錯誤碼。

備註

如果指定的裝置節點代表硬體或軟體總線裝置,PnP 管理員會查詢裝置的驅動程式以取得子系列表,然後嘗試設定及啟動先前未設定的任何子裝置。 PnP 管理員也會起始不再存在的裝置意外移除(請參閱 IRP_MN_SURPRISE_REMOVAL)。 不過,驅動程式可以選擇更新它們向 PnP 管理員報告繼續要求異步的總線關聯性,因此當繼續作業完成時,新裝置的外觀和移除不再存在的裝置可能無法完成。

這個函式的呼叫端必須有 SeLoadDriverPrivilege。 (許可權描述於 Microsoft Windows SDK 檔。

如需使用系結至本機計算機的裝置實例句柄的相關信息,請參閱 CM_Get_Child

需求

要求 價值觀
最低支援的用戶端 Microsoft Windows 2000 和更新版本的 Windows 中提供。
目標平臺 桌面
頁首 cfgmgr32.h (包括 Cfgmgr32.h)
程式庫 Cfgmgr32.lib
DLL Cfgmgr32.dll

另請參閱

CM_Get_Child

CM_Reenumerate_DevNode_Ex

IRP_MN_SURPRISE_REMOVAL