VSS は、Windows XP、Windows Server 2003、Vista/Windows Server 2008 など、各プラットフォームと OS を対象としてコンパイルし、ターゲットにする必要があります。
VSS リクエスターを完全にサポートする最初の Microsoft SDK は v6.1 で、Vista で実行されているリクエスターのみをサポートします。Windows Server 2003 または XP で実行する場合:
- VSS SDK 7.2をダウンロードします。
- インクルード パスとライブラリ パスを設定して、VSS SDK 内の適切なディレクトリを検索します。
以下は AlphaVSS がそのConfig.hで行うことですが、VSS SDK の VShadow サンプルは行いません。インクルード パスとライブラリ パスを設定するだけです。次の 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
私はこれをすべて信用することはできません.VSSを.NETコードに公開するAlphaVSSと呼ばれるプロジェクトのソースコードを読んで、これを理解しました. MSDN はあまり役に立たなかったようです。ただし、VShadowツールとサンプルは、VSS リクエスターをコンパイルする方法の例を提供しました。
また、x64 または ia64 と x86 では再コンパイルする必要があることにも注意してください。つまり、すべてのプラットフォームをサポートするには、9 つのコンパイル済みバージョンの実行可能ファイルが必要になります。