06622D85 6856 4460 8de1 a81921b41c4b

Я пытаюсь реализовать IOpenControlPanel интерфейс, который не описывался в таких сайтах , как Pinvoke.net , поэтому для решения этой задачи я построил определение с нуля , как я думаю , что они должны быть, то я попытался вручную извлечь интерфейс CLSID из реестра, который , как представляется D11AD862-66DE-4DF4-BF6C-1F5621996AF1 , и класс , который реализует этот inferface, который , как представляется 06622D85-6856-4460-8DE1-A81921B41C4B .

Проблема заключается в том, что в следующем коде Если я вызываю GetCurrentView функцию я не получаю ожидаемое значение, и вызов Open функции не делает ничего (я использую правильное каноническое имя , как , Microsoft.DefaultPrograms как описано в этой статье MSDN из этого списка канонических имен .)

Так что, я думаю, что мои определения неверны в некотором роде, мне нужна помощь, чтобы исправить это.

К ним относятся определения:

C # (онлайн перевод):

Ваше определение интерфейса является неправильным , потому что вы не определены методами в том же порядке , как это делает MSDN (на самом деле, имена не важны, важно то раскладка методы интерфейса: соответствие двоичных подписей в правильном порядке). Порядок должен быть именно то , что определено в .h файлах , доступных с Windows SDK, а не то , что MSDN дисплеи — это на самом деле вводит в заблуждение :-). В этом случае файл заголовка Shobjidl.h. Это , как это определено в C / C ++:

Есть несколько эквивалентного определения в .NET, C #, но вот один, который должен работать:

Делюсь решением одной проблемки. Вдруг у кого-то тоже будет подобное.

Симптомы проблемы:

“Тормоза” в сетевых подключениях

При клике правой кнопкой мыши по сетевому подключению компьютер подвисает надолго, контекстное меню не отображается. IP-адрес приходилось менять в реестре.

Ошибки в журнале событий

С завидной регулярностью в журнал системы вываливается одна и та же ошибка:

В диспетчере служб данный сервер не запущен, хотя и стоит в “Авто”. Пробую запустить вручную – ошибка:

Ну что же, даже пока не знаю с чего начать. Очевидно, что проблема с WMI. Будем разбираться откуда ноги растут.

Диагностика и решение проблемы

Несмотря на то, что решение оказалось не очень сложным, я довольно долго к этому шёл. При беглом гуглении решения не нашлось, перепробовал многое. В итоге самостоятельно пришёл к следующему:

Выясняем параметры работы службы

Идём в раздел системного реестра, отвечающего за службу WMI:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetserviceswinmgmtParameters

Видим следующее: Параметр ServiceDll указывает на DLL в каталоге wbem. Пройдём в этот каталог.

Отсутствие необходимых компонентов

В каталоге данного файла не оказалось. Как это могло произойти – не знаю, возможно он был повреждён (chkdsk что-то там исправлял), но так или иначе файл я не нашёл.

Данной службы в диспетчере сервисов я не нашёл, но прикинул, что она мне не особо так и нужна в качестве зависимой. Взял и просто удалил запись об этой службе (смотрите параметр DependOnService, в котором перечислены службы, от которых зависит данный сервис), как о необходимой для запуска. Перезагрузился и диспетчер печати стартанул нормально! А я мучался несколько месяцев.

В панеле мотинторинга всетится ошибка «В сети: не удается получить даные ролей и компонентов»

посмотрел логи нашел следующице:
Регистрация сервера <73e709ea-5d93-4b2e-bbb0-99b7938da9e4>DCOM не выполнена за отведенное время ожидания.

нашел что это такое:
C:WINNTsystem32>reg query HKEY_LOCAL_MACHINESOFTWAREClassesAppID <73e709ea-5d93-4b2e-bbb0-99b7938da9e4>/ve
HKEY_LOCAL_MACHINESOFTWAREClassesAppID<73e709ea-5d93-4b2e-bbb0-99b7938da9e4>
(Default) REG_SZ Microsoft WMI Provider Subsystem Host

Дал полные права на выполнение в свойствах — не помогло

Сделал перерегистрацию (были проблемы с обновлениями)
net stop wuauserv
regsvr32 /s wuaueng.dll
regsvr32 /s wuaueng1.dll
regsvr32 /s wucltui.dll
regsvr32 /s wups.dll
regsvr32 /s wups2.dll
regsvr32 /s wuweb.dll
regsvr32 /s jscript.dll
regsvr32 /s atl.dll
regsvr32 /s softpub.dll
regsvr32 /s msxml3.dll
net start wuauserv

Помогает только перезагрузка но через 3 часа — день снова ошибка

Подскажите в какую стороноу копать

PS думаю проблемма либо в доступе либо в обновлении

«>

Оцените статью
Много толка
Добавить комментарий