Поделиться через


Поставщики отладки

Поставщики, если они не являются развязанными поставщиками , работающими в приложении, загружаются в процессе Wmiprvse.exe, а не через процесс Svchost.exe с процессом Winmgmt.exe. Дополнительные сведения см. в разделе Размещение поставщика иБезопасность.

При остановке в точке останова отладчик Visual Studio останавливает весь процесс узла поставщика, который обычно является общим процессом хоста Wmiprvse.exe. Это предотвращает операцию любых других компонентов, размещенных в этом процессе, включая расширение обозревателя серверов WMI. Клиентские приложения, которые вызываются поставщиком, также блокируются. Проблемы становятся хуже в Windows 2000 и более ранних версиях, так как поставщик загружается в процесс службы WMI (Winmgmt.exe).

Если вы запускаете обозреватель сервера WMI в другом экземпляре, среда разработки Visual Studio не зависает, и вы можете продолжить выполнение после точки останова. Рекомендуется запускать вашего поставщика в отдельном процессе размещения на этапе разработки, чтобы при остановке в точке останова заморозился только процесс, размещающий вашего поставщика. Другие функции в WMI по-прежнему доступны для обозревателя серверов WMI и других приложений или сценариев на основе WMI. Кроме того, если поставщик прекращает работу из-за сбоя, это не влияет на работу других поставщиков, загруженных в тот же узловой процесс.

Чтобы загрузить поставщика в собственный процесс размещения, измените регистрацию поставщика, сменив значение свойства __Win32Provider.HostingModel на NetworkServiceHost:[MyProvider], где MyProvider представляет собой любую строку, которая однозначно идентифицирует вашего поставщика. Например, используйте значение __Win32Provider.ClsId. Когда поставщик готов к отправке, верните __Win32Provider.HostingModel в предполагаемое значение, например NetworkServiceHost.

Если отладка загрузки поставщика не требуется, можно вызвать метод Load класса MSFT_Providers, чтобы принудительно загрузить поставщика, а затем подключиться к процессу Wmiprvse.exe, в который загружена библиотека DLL, и выполнить отладку по мере необходимости.

устранение неполадок WMI

классы устранения неполадок WMI