summaryrefslogtreecommitdiffstats
path: root/librpc/idl/bkupblobs.idl
diff options
context:
space:
mode:
Diffstat (limited to 'librpc/idl/bkupblobs.idl')
-rw-r--r--librpc/idl/bkupblobs.idl54
1 files changed, 54 insertions, 0 deletions
diff --git a/librpc/idl/bkupblobs.idl b/librpc/idl/bkupblobs.idl
new file mode 100644
index 0000000..6e4dd98
--- /dev/null
+++ b/librpc/idl/bkupblobs.idl
@@ -0,0 +1,54 @@
+#include "idl_types.h"
+
+import "misc.idl";
+import "security.idl";
+import "fscc.idl";
+/* bkup blobs interface definition */
+
+
+[
+ pointer_default(unique),
+ helpstring("bkup blobs")
+]
+
+
+interface bkupblobs
+{
+ typedef [v1_enum] enum {
+ STREAM_ID_DATA = 1,
+ STREAM_ID_EX_DATA = 2,
+ STREAM_ID_SECURITY_DATA = 3,
+ STREAM_ID_ALTERNATE_DATA = 4,
+ STREAM_ID_LINK = 5,
+ STREAM_ID_OBJECTID = 7,
+ STREAM_ID_REPARSE_DATA = 8,
+ STREAM_ID_SPARSE_BLOCK = 9,
+ STREAM_ID_TXFS_DATA = 10
+ } bkup_StreamId;
+
+ typedef [v1_enum] enum {
+ STREAM_ATTRIBUTE_NORMAL = 0,
+ STREAM_ATTRIBUTE_SECURITY = 2,
+ STREAM_ATTRIBUTE_SPARSE = 8
+ } bkup_StreamAttribute;
+
+ typedef [nodiscriminant] union {
+ [default] DATA_BLOB blob;
+ [flag(NDR_ALIGN2),case(STREAM_ID_SECURITY_DATA)] security_descriptor sd;
+ [case(STREAM_ID_OBJECTID)] fscc_FileObjectIdBuffer_2 object;
+ } bkup_StreamData;
+
+ typedef [public] struct {
+ bkup_StreamId id;
+ bkup_StreamAttribute attribute;
+ hyper size;
+ uint32 stream_name_size;
+ [charset(UTF16),flag(STR_NOTERM)] uint16 stream_name[stream_name_size];
+ [subcontext(0), subcontext_size(size), switch_is(id)] [flag(NDR_REMAINING)] bkup_StreamData data;
+ } bkup_Win32StreamId;
+
+ typedef [nopush, nopull, flag(NDR_NOALIGN), public] struct {
+ uint32 num_stream;
+ bkup_Win32StreamId streams[num_stream];
+ } bkup_NTBackupFile;
+}