Я пытался следовать инструкциям, чтобы установить пример поставщика оборудования VSS, который поставляется с Windows SDK. К сожалению, COM отказывается регистрировать DLL, выдавая следующий вывод:
Отмена регистрации существующего приложения …
— Создать объект каталога
— Получить коллекцию приложений
— Заполняем …
— Поиск приложения VssSampleProvider …
— Сохранение изменений …
Готово.
Создание нового приложения COM +:
— Создание объекта каталога
— Получить коллекцию приложений
— Заполняем …
— Добавить новый объект приложения
— Установить имя приложения = VssSampleProvider
— Установить описание приложения = VSS HW Sample Provider
— Установить проверку доступа к приложению = true
— Установить зашифрованное соединение COM = true
— Установить безопасные ссылки = true
— Установить олицетворение = ложь
— Сохранить изменения…
— Создать службу Windows, работающую как локальная система
— Добавить компонент DLL
ОШИБКА:
— Код ошибки: -2146368511 [0x80110401]
— Код выхода: 113
— Описание:
— Источник:
— Файл справки:
— Контекст справки: 0
— Обнаружены ошибки COM +: (2)
* (COM + ОШИБКА 0) на C: \ VssSampleProvider \ VssSampleProvider.dll
Код ошибки: -2146368486 [0x8011041A]
MajorRef: C: \ VssSampleProvider \ VssSampleProvider.dll
MinorRef: недействительно
* (COM + ERROR 1) в SampleProvider
Код ошибки: -2146368486 [0x8011041A]
MajorRef: {423BBC78-9B20-4BBE-A967-B63EC43BC7F3}
MinorRef: недействительно
Это та же проблема, описанная в этой теме:
http://www.osronline.com/showthread.cfm?link=185213
Я пробовал использовать машины как x86, так и x64, но это не имеет значения. Любые намеки или предложения будут приветствоваться.
Это требует msvcr110.dll и msvcp110.dll. Эти файлы поставляются с «распространяемыми пакетами Visual C ++».
Вы можете получить последние «распространяемые пакеты Visual C ++» по следующей ссылке.
http://www.microsoft.com/en-in/download/details.aspx?id=40784
Мне удалось решить эту проблему в конце концов. Оказывается, вы можете устанавливать аппаратные провайдеры только в дистрибутивах Windows Server, я использовал обычную Windows 7. См. Страницу MSDN для вызова API:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa381923(v=vs.85).aspx
Компиляция для 64-битных и использование 64-битных инструментов с SDK на компьютере с Windows Server 2012, похоже, работает правильно.