mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
5c6e2b2b1f
'mdssvc' aka 'Metadata Search Service' is an RPC service used by Apple for passing marshalled Spotlight search queries and results between client to server. Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
69 lines
2.6 KiB
Plaintext
69 lines
2.6 KiB
Plaintext
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 *status,
|
|
[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
|
|
);
|
|
}
|