VSS должен быть скомпилирован и предназначен специально для каждой платформы и ОС, включая Windows XP, Windows Server 2003 и Vista / Windows Server 2008.
Первый Microsoft SDK, полностью поддерживающий запросчики VSS, - v6.1, и он поддерживает только запросчики, работающие в Vista. Если вы хотите запустить на Windows Server 2003 или XP:
- Скачать VSS SDK 7.2 .
- Задайте пути включения и библиотеки для поиска соответствующего каталога в VSS SDK.
Ниже приведено то, что AlphaVSS делает в своем Config.h , но в образце VShadow в VSS SDK этого нет: он устанавливает только пути включения и библиотеки. Я бы предположил, что следующий VShadow с большей вероятностью будет успешным. Но для полноты:
При ориентации на Windows XP:
#define NTDDI_VERSION NTDDI_WINXPSP2
#define _WIN32_WINNT _WIN32_WINNT_WINXP
#define WINVER _WIN32_WINNT
При нацеливании на Windows Server 2003:
#define NTDDI_VERSION NTDDI_WS03SP1
#define _WIN32_WINNT _WIN32_WINNT_WS03
#define WINVER 0x501
При нацеливании на Vista не ссылаться на VSS SDK. Вместо этого обратитесь к Windows 6.1 SDK и:
#define NTDDI_VERSION NTDDI_WS08
#define _WIN32_WINNT _WIN32_WINNT_WS08
#define WINVER _WIN32_WINNT
Я не могу взять на себя всю ответственность за это, я понял это, прочитав исходный код проекта под названием AlphaVSS (см. объявление ), который подвергает VSS. Чистый код MSDN, похоже, не очень помог. Однако инструмент VShadow и пример предоставили пример того, как скомпилировать запросчик VSS.
Также обратите внимание, что вы должны перекомпилировать заново для x64 или ia64 против x86. Это означает, что для поддержки всех платформ вам потребуется 9 скомпилированных версий вашего исполняемого файла.