1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/librpc/idl/mdssvc.idl
Ralph Boehme 5c6e2b2b1f mdssvc: IDL file for new RPC service
'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>
2015-07-07 17:34:28 +02:00

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
);
}