1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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 next_fragment, /* Set to 1 to request next fragment*/
[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
);
}
|