diff options
Diffstat (limited to 'librpc/idl/mdssvc.idl')
-rw-r--r-- | librpc/idl/mdssvc.idl | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/librpc/idl/mdssvc.idl b/librpc/idl/mdssvc.idl new file mode 100644 index 0000000..e7004f0 --- /dev/null +++ b/librpc/idl/mdssvc.idl @@ -0,0 +1,68 @@ +import "misc.idl"; +[ + uuid("885d85fb-c754-4062-a0e7-6872ce0064f4"), + endpoint("ncacn_np:[\\pipe\\mdssvc]", "ncalrpc:"), + version(2.0), + helpstring("Spotlight metadata search service") +] +interface mdssvc +{ + void mdssvc_open( + [in,out,ref] uint32 *device_id, + [in,out,ref] uint32 *unkn2, /* always 0x17 ? */ + [in,out,ref] uint32 *unkn3, /* always 0 ? */ + [in][string,charset(UTF8),size_is(1025)] uint8 share_mount_path[], + [in][string,charset(UTF8),size_is(1025)] uint8 share_name[], + [out,string,charset(UTF8),size_is(1025)] uint8 share_path[], + [out,ref] policy_handle *handle + ); + + void mdssvc_unknown1( + [in] policy_handle *handle, + [in] uint32 unkn1, /* always 0, some status ? */ + [in] uint32 device_id, + [in] uint32 unkn3, /* = mdssvc_open.unkn2 ? */ + [in] uint32 unkn4, /* always 0, some status ? */ + [in] uint32 uid, + [in] uint32 gid, + [out,ref] uint32 *status, + [out,ref] uint32 *flags, /* always 0x6b000001 ? */ + [out,ref] uint32 *unkn7 /* always 0 ? */ + ); + + typedef [public] struct { + uint32 length; + uint32 size; + [size_is(size),length_is(length)] uint8 *spotlight_blob; + } mdssvc_blob; + + void mdssvc_cmd( + [in] policy_handle *handle, + [in] uint32 unkn1, /* always 0, status ? */ + [in] uint32 device_id, + [in] uint32 unkn3, /* = mdssvc_open.unkn2 ? */ + [in] uint32 unkn4, /* always 0 ? */ + [in] uint32 flags, /* always 0x6b000001 ? */ + [in] mdssvc_blob request_blob, + [in] uint32 unkn5, /* always 0 ? */ + [in] uint32 max_fragment_size1, + [in] uint32 unkn6, /* always 1 ? */ + /* always max_fragment_size1 = max_fragment_size2 ? */ + [in] uint32 max_fragment_size2, + [in] uint32 unkn7, /* always 0 ? */ + [in] uint32 unkn8, /* always 0 ? */ + [out,ref] uint32 *fragment, + [out,ref] mdssvc_blob *response_blob, + [out,ref] uint32 *unkn9 /* always 0 ? */ + ); + + void mdssvc_close( + [in] policy_handle *in_handle, + [in] uint32 unkn1, /* always 0, some status ? */ + [in] uint32 device_id, + [in] uint32 unkn2, /* = mdssvc_open.unkn2 ? */ + [in] uint32 unkn3, /* always 0, some status ? */ + [out,ref] policy_handle *out_handle, + [out,ref] uint32 *status + ); +} |