summaryrefslogtreecommitdiff
path: root/librpc
diff options
context:
space:
mode:
Diffstat (limited to 'librpc')
-rw-r--r--librpc/idl/mdssvc.idl68
-rw-r--r--librpc/idl/wscript_build3
-rw-r--r--librpc/wscript_build12
3 files changed, 81 insertions, 2 deletions
diff --git a/librpc/idl/mdssvc.idl b/librpc/idl/mdssvc.idl
new file mode 100644
index 00000000000..bfb27c4a795
--- /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 *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
+ );
+}
diff --git a/librpc/idl/wscript_build b/librpc/idl/wscript_build
index 4b56af63dec..6316edd4665 100644
--- a/librpc/idl/wscript_build
+++ b/librpc/idl/wscript_build
@@ -13,7 +13,8 @@ bld.SAMBA_PIDL_LIST('PIDL',
notify.idl
smb2_lease_struct.idl
policyagent.idl scerpc.idl svcctl.idl wkssvc.idl eventlog6.idl backupkey.idl
- fsrvp.idl bkupblobs.idl fscc.idl frsblobs.idl witness.idl clusapi.idl''',
+ fsrvp.idl bkupblobs.idl fscc.idl frsblobs.idl witness.idl clusapi.idl
+ mdssvc.idl''',
options='--header --ndr-parser --samba3-ndr-server --server --client --python',
output_dir='../gen_ndr')
diff --git a/librpc/wscript_build b/librpc/wscript_build
index 212733aa284..1594e721eac 100644
--- a/librpc/wscript_build
+++ b/librpc/wscript_build
@@ -330,6 +330,11 @@ bld.SAMBA_SUBSYSTEM('NDR_CLUSAPI',
public_deps='ndr'
)
+bld.SAMBA_SUBSYSTEM('NDR_MDSSVC',
+ source='gen_ndr/ndr_mdssvc.c',
+ public_deps='ndr'
+ )
+
bld.SAMBA_SUBSYSTEM('NDR_DCERPC',
source='gen_ndr/ndr_dcerpc.c ndr/ndr_dcerpc.c',
public_deps='ndr',
@@ -665,12 +670,17 @@ bld.SAMBA_SUBSYSTEM('RPC_NDR_CLUSAPI',
public_deps='dcerpc-binding NDR_CLUSAPI'
)
+bld.SAMBA_SUBSYSTEM('RPC_NDR_MDSSVC',
+ source='gen_ndr/ndr_mdssvc_c.c',
+ public_deps='dcerpc-binding NDR_MDSSVC'
+ )
+
# a grouping library for NDR subsystems that may be used by more than one target
bld.SAMBA_LIBRARY('ndr-samba',
source=[],
deps='''NDR_DRSBLOBS NDR_DRSUAPI NDR_IDMAP NDR_NTLMSSP NDR_SCHANNEL NDR_MGMT
NDR_DNSP NDR_EPMAPPER NDR_XATTR NDR_UNIXINFO NDR_NAMED_PIPE_AUTH NDR_DCOM
- NDR_NTPRINTING NDR_FSRVP NDR_WITNESS NDR_OPEN_FILES NDR_SMBXSRV''',
+ NDR_NTPRINTING NDR_FSRVP NDR_WITNESS NDR_MDSSVC NDR_OPEN_FILES NDR_SMBXSRV''',
private_library=True,
grouping_library=True
)