summaryrefslogtreecommitdiff
path: root/library/ShadowCopy/shadow.h
diff options
context:
space:
mode:
Diffstat (limited to 'library/ShadowCopy/shadow.h')
-rw-r--r--library/ShadowCopy/shadow.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/library/ShadowCopy/shadow.h b/library/ShadowCopy/shadow.h
new file mode 100644
index 00000000..e25c6a32
--- /dev/null
+++ b/library/ShadowCopy/shadow.h
@@ -0,0 +1,33 @@
+#ifndef SHADOWCOPY_H
+#define SHADOWCOPY_H
+
+#ifdef SHADOWDLL_EXPORTS
+#define SHADOWDLL_API extern "C" __declspec(dllexport)
+#else
+#define SHADOWDLL_API extern "C" __declspec(dllimport)
+#endif
+
+
+namespace shadow
+{
+ //COM needs to be initialized before calling any of these functions! CoInitializeEx/CoUninitialize
+
+
+ //volumeName must end with "\", while shadowVolName does not end with "\"
+ SHADOWDLL_API
+ bool createShadowCopy(const wchar_t* volumeName,
+ wchar_t* shadowVolName,
+ unsigned int shadowBufferLen,
+ void** backupHandle,
+ wchar_t* errorMessage,
+ unsigned int errorBufferLen);
+
+
+ //don't forget to release the backupHandle after shadow copy is not needed anymore!
+ SHADOWDLL_API
+ void releaseShadowCopy(void* backupHandle);
+}
+
+
+
+#endif //SHADOWCOPY_H
bgstack15