調用 VSS API InitializeForBackup 時返回錯誤碼 0x80042302(VSS_E_UNEXPECTED_PROVIDER_ERROR),提示提供程序錯誤。已確認以下服務均處於運行狀態:
環境:64 位 Windows(Vista x64 / Windows 7 x64),從 32 位進程調用。
這是經典的 32 位進程在 64 位系統上調用 VSS API 的架構不匹配問題。VSS 提供程序為 64 位,而 32 位調用者無法正確加載 64 位 COM 組件,導致初始化失敗。
註冊 32 位 VSS 提供程序 DLL(vssapi.dll 32 位版本),但微軟已不再推薦此方式。
InitializeForBackup 應返回 S_OK微軟官方論壇詳細討論:VSS on 64-bit OS from 32-bit process
32 位進程調用 VSS API 必須在 64 位系統上編譯為 64 位,或使用 64 位代理進程。這是由 COM 組件位數不匹配決定的架構限制,非服務配置問題。