Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os provedores, a menos que sejam provedores dissociados em execução dentro de um aplicativo, são carregados num processo de Wmiprvse.exe e não através de Svchost.exe com um processo Winmgmt.exe. Para obter mais informações, consulte Provider Hosting and Security.
Quando se para em um ponto de interrupção, o depurador do Visual Studio congela todo o processo de hospedagem do provedor, que geralmente é o host compartilhado Wmiprvse.exe. Isso impede a operação de quaisquer outros componentes hospedados nesse processo, incluindo a extensão WMI Server Explorer. Os aplicativos cliente que chamam o provedor também são bloqueados. Os problemas resultantes são piores no Windows 2000 e anteriores porque o provedor é carregado no processo de serviço WMI (Winmgmt.exe).
Se você executar o WMI Server Explorer em outra instância, o IDE do Visual Studio não congelará e você poderá liberar o ponto de interrupção. É recomendável que você execute seu provedor em um processo de hospedagem separado durante a fase de desenvolvimento, para que parar em um ponto de interrupção apenas congele o processo de hospedagem do seu provedor. As outras funções no WMI continuam acessíveis ao WMI Server Explorer e a quaisquer outros aplicativos ou scripts baseados em WMI. Além disso, se o seu provedor falhar, não afetará a operação de outros provedores carregados no mesmo processo anfitrião.
Para fazer com que o seu provedor carregue no seu próprio processo de anfitrião, modifique o registo do provedor para definir a propriedade__Win32Provider.HostingModel para NetworkServiceHost:[MyProvider] onde MyProvider pode ser qualquer cadeia de caracteres que identifique exclusivamente o seu provedor. Por exemplo, use o valor __Win32Provider.ClsId. Quando seu provedor estiver pronto para enviar, retorne __Win32Provider.HostingModel ao valor pretendido, como NetworkServiceHost.
Se não estiver a depurar o carregamento do provedor, pode chamar o método Load da classe MSFT_Providers para forçar o carregamento do provedor, ligar-se ao processo Wmiprvse.exe que tem a DLL carregada e depurar quando necessário.
Tópicos relacionados