共用方式為


除錯功能提供者

提供者除非是應用程式中的 分離提供者,否則會在 Wmiprvse.exe 進程中載入,而不是透過 Svchost.exe 搭配具有 Winmgmt.exe 進程來載入。 如需更多資訊,請參閱 供應商主機和安全性

在斷點停止時,Visual Studio 調試程式會凍結整個提供者主機進程,這通常是共用主機 Wmiprvse.exe。 這可防止在該程序中裝載的任何其他元件作業,包括 WMI 伺服器資源管理器擴充功能。 呼叫提供者的用戶端應用程式也會遭到封鎖。 在 Windows 2000 和更早版本中,問題更加嚴重,因為提供者會被載入到 WMI 服務進程(Winmgmt.exe)。

如果您在另一個實例中執行 WMI 伺服器總管,則 Visual Studio IDE 不會凍結,而且您可以釋放斷點。 建議您在開發階段期間,將提供程式在獨立的托管程序中執行,這樣在斷點停止時就只會凍結托管提供程式的程序。 WMI 中的其他函式會繼續可供 WMI 伺服器總管和任何其他以 WMI 為基礎的應用程式或腳本存取。 此外,如果您的提供者當機,它不會影響載入相同主機進程之其他提供者的作業。

若要讓提供者在自己的主機進程中載入,請修改提供者註冊,將 __Win32Provider.HostingModel 屬性設定為 NetworkServiceHost:[MyProvider] 其中 MyProvider 可以是唯一識別提供者的任何字元串。 例如,使用 __Win32Provider.ClsId 值。 當您的提供者準備好寄送時,請將 __Win32Provider.HostingModel 傳回預期的值,例如 NetworkServiceHost

如果您未偵錯提供者載入,您可以呼叫 MSFT_Providers 類別的 Load 方法, 強制載入提供者,然後附加至已載入 DLL 的 Wmiprvse.exe 進程,並視需要進行偵錯。

WMI 疑難解答

WMI 疑難解答類別