Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Понимание того, как запускаются обработчики протоколов, является неотъемлемой частью тестирования и отладки реализаций обработчика протокола.
Этот раздел организован следующим образом:
Сведения об обработчиках протокола отладки
Процесс SearchIndexer (searchindexer.exe) запускает одну копию процесса SearchProtocolHost (SearchProtocolHost.exe) в контексте системы и другой копии в контексте пользователя. Затем обработчики протокола загружаются в процесс SearchProtocolHost по мере необходимости. Они не выгружаются до остановки службы поиска. Тот же экземпляр обработчика протокола повторно используется любое количество раз во время выполнения службы.
Процессы SearchIndexer и SearchProtocolHost часто взаимодействуют во время индексирования. Если вы приостанавливаете или останавливаете процесс SearchProtocolHost для отладки, searchIndexer запустит новый процесс SearchProtocolHost, недействив сеанс отладки. Кроме того, при подключении отладчика непосредственно к процессу SearchProtocolHost можно прервать наследование дескрипторов от searchindexer.exe до searchprotocolhost.exe, а два процесса не смогут взаимодействовать.
Чтобы избежать этих проблем, необходимо уведомить службу поиска о том, что выполняется отладка, и необходимо подключить отладчик к процессу SearchIndexer с инструкциями по отладке дочерних процессов, как описано далее.
Настройка отладки
Выполните следующие действия, чтобы настроить отладку для обработчика протокола.
Сообщите службе поиска, что выполняется отладка, задав значение DebugFilters равным 1 в реестре:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft Windows Search Gathering Manager DebugFilters = 1
Присоедините отладчик, используя ключ реестра параметров выполнения исполняемого образа:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion Image File Execution Options SearchIndexer.exe Debugger = <path to debugger> <debugger options>
Параметры для примера отладчика описаны в следующей таблице.
Пример использования отладчика ntsdОтладчик = C:\debuggers\ntsd.exe -odGx -c: "sxe ld mydll.dll; g"
Перезапустите searchindexer.exe под отладчиком с помощью compmgmt.msc, services.msc или командного окна со следующими командами:
net stop wsearch <copy new DLLs for debugging> net start wsearch
Чтобы отличить процесс SearchProtocolHost, выполняемый в системном контексте, и один запущенный в контексте пользователя, можно просмотреть строки среды. Например, с помощью ntsd.exeможно использовать команду расширения !peb для отображения форматированного представления сведений в блоке среды обработки (PEB).
Дополнительные ресурсы
- Сведения о создании обработчиков см. в регистрации расширений оболочки.
Связанные разделы
концептуальные
- разработка обработчиков протоколов
- Основные сведения о обработчиках протоколов
- Уведомление об изменениях в индексе
- добавление значков и контекстных меню
- пример кода : расширения оболочки для обработчиков протоколов
- Создание соединителя поиска для обработчика протокола
- установка и регистрация обработчиков протоколов