Partilhar via


Depuração de uma Extensão do Active Directory

A folha de propriedades do serviço de diretório do Microsoft Ative Directory, o menu de contexto e as extensões do assistente de criação de objetos documentadas neste tópico são implementadas como servidores COM in-proc. Ou seja, cada extensão é uma DLL que é executada no contexto do processo de host. Para depurar a extensão, é necessário associá-la a um aplicativo e executar o aplicativo em um depurador.

Depuração de Extensões do Active Directory Exibidas no Shell do Windows

As extensões do Ative Directory exibidas no shell do Windows são carregadas no contexto do processo de Explorer.exe. Essas extensões podem ser depuradas como uma extensão de shell padrão. Para obter mais informações sobre como depurar extensões de shell, consulte Depurando com o Shell.

Depurando extensões do Ative Directory exibidas no MMC do Ative Directory Snap-Ins

As extensões do Active Directory exibidas nos snap-ins administrativos do MMC do Active Directory são carregadas no contexto da Consola de Gestão da Microsoft. Para depurar uma extensão, localize Mmc.exe no sistema local e defina o depurador para usá-lo como o aplicativo para depuração. Na maioria dos sistemas, Mmc.exe está localizado no diretório do sistema Windows, por exemplo, C:\WINNT\System32. Dependendo do depurador, você pode ou não ter que definir a extensão DLL para também ser carregada pelo depurador. Muitos depuradores também permitem que você anexe o depurador a um processo MMC em execução. Para obter mais informações, consulte o Manual do Usuário do depurador.

Pode ser conveniente que o MMC carregue automaticamente um snap-in específico. Para fazer isso, defina os argumentos do aplicativo para o caminho e nome de arquivo de um arquivo MSC. Isso pode ser um arquivo MSC instalado no sistema ou um que você cria. Um arquivo MSC pode ser criado seguindo estas etapas.

  1. Execute Mmc.exe.
  2. Carregue o snap-in desejado selecionando Arquivo - Adicionar/Remover Snap-in... no menu MMC e selecione o snap-in desejado.
  3. Salve o arquivo MSC selecionando Arquivo - Salvar como... no menu MMC.

Se você não definir um arquivo MSC de inicialização, deverá carregar manualmente o snap-in desejado ao executar o aplicativo no depurador.

Quando o aplicativo host é executado no depurador, o depurador pode exibir uma mensagem de aviso informando que o aplicativo que está sendo executado não contém nenhum símbolo de depuração. Isso é esperado e pode ser ignorado com segurança porque você está realmente depurando a DLL, não o aplicativo host.

Na maioria dos casos, a extensão não será chamada até que o usuário execute alguma ação que faça com que a extensão seja carregada e inicializada. Por exemplo, se você estiver depurando uma extensão de menu de contexto exibida para objetos de usuário, a extensão não será carregada até a primeira vez que o menu de contexto de um objeto de usuário for exibido.

Agora você deve ser capaz de definir pontos de interrupção e visualizar a saída de depuração. Se a extensão não parecer carregar, defina um ponto de interrupção na função deDllGetClassObject da extensão. Se DllGetClassObject não é chamado, a extensão provavelmente não está registada corretamente.

Quando a depuração estiver concluída, saia do MMC e o depurador deverá descarregar normalmente.