ntdll: Validate SecurityCookie pointer before accessing cookie value.
[wine.git] / include / wine / schrpc.idl
blob4af709d8dd0ec86125e5f4f9a5b2490d684d3a48
1 /*
2 * Task Scheduler Service definitions
4 * Copyright 2014 Dmitry Timoshkov
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 cpp_quote("#define SCHEDSVC_TRANSPORT {'n','c','a','l','r','p','c',0}")
22 cpp_quote("#define SCH_FLAG_STATE 0x10000000")
24 import "oaidl.idl";
25 import "ocidl.idl";
28 uuid(86d35949-83c9-4044-b424-db363231fd0c),
29 implicit_handle(handle_t rpc_handle),
30 version(1.0),
31 pointer_default(unique)
33 interface ITaskSchedulerService
35 typedef struct _TASK_USER_CRED
37 [string] const WCHAR *user;
38 [string] const WCHAR *password;
39 DWORD flags;
40 } TASK_USER_CRED;
42 typedef struct _TASK_XML_ERROR_INFO
44 DWORD line, column;
45 [string] WCHAR *node;
46 [string] WCHAR *value;
47 } TASK_XML_ERROR_INFO;
49 typedef [string] WCHAR **TASK_NAMES;
51 HRESULT SchRpcHighestVersion([out] DWORD *version);
52 HRESULT SchRpcRegisterTask([in, string, unique] const WCHAR *path,
53 [in, string] const WCHAR *xml, [in] DWORD flags,
54 [in, string, unique] const WCHAR *sddl,
55 [in] DWORD task_logon_type, [in] DWORD n_creds,
56 [in, size_is(n_creds), unique] const TASK_USER_CRED *creds,
57 [out, string] WCHAR **actual_path,
58 [out] TASK_XML_ERROR_INFO **xml_error_info);
59 HRESULT SchRpcRetrieveTask([in, string] const WCHAR *path,
60 [in, string] const WCHAR *languages,
61 [in] unsigned long *n_languages, [out, string] WCHAR **xml);
62 HRESULT SchRpcCreateFolder([in, string] const WCHAR *path,
63 [in, string, unique] const WCHAR *sddl, [in] DWORD flags);
64 HRESULT SchRpcSetSecurity([in, string] const WCHAR *path,
65 [in, string] const WCHAR *sddl, [in] DWORD flags);
66 HRESULT SchRpcGetSecurity([in, string] const WCHAR *path,
67 [in] DWORD flags, [out, string] WCHAR **sddl);
68 HRESULT SchRpcEnumFolders([in, string] const WCHAR *path,
69 [in] DWORD flags, [in, out] DWORD *start_index,
70 [in] DWORD n_requested, [out] DWORD *n_names,
71 [out, string, size_is(,*n_names)] TASK_NAMES *names);
72 HRESULT SchRpcEnumTasks([in, string] const WCHAR *path,
73 [in] DWORD flags, [in, out] DWORD *start_index,
74 [in] DWORD n_requested, [out] DWORD *n_names,
75 [out, string, size_is(,*n_names)] TASK_NAMES *names);
76 HRESULT SchRpcEnumInstances([in, string, unique] const WCHAR *path,
77 [in] DWORD flags, [out] DWORD *n_guids,
78 [out, size_is(,*n_guids)] GUID **guids);
79 HRESULT SchRpcGetInstanceInfo([in] GUID guid, [out, string] WCHAR **path,
80 [out] DWORD *task_state, [out, string] WCHAR **action,
81 [out, string] WCHAR **info, [out] DWORD *n_instances,
82 [out, size_is(,*n_instances)] GUID **instances, [out] DWORD *pid);
83 HRESULT SchRpcStopInstance([in] GUID guid, [in] DWORD flags);
84 HRESULT SchRpcStop([in, string, unique] const WCHAR *path, [in] DWORD flags);
85 HRESULT SchRpcRun([in, string] const WCHAR *path,
86 [in] DWORD n_args, [in, size_is(n_args),unique] const WCHAR **args,
87 [in] DWORD flags, [in] DWORD session_id,
88 [in, unique, string] const WCHAR *user, [out] GUID *guid);
89 HRESULT SchRpcDelete([in, string] const WCHAR *path, [in] DWORD flags);
90 HRESULT SchRpcRename([in, string] const WCHAR *path, [in, string] const WCHAR *name, [in] DWORD flags);
91 HRESULT SchRpcScheduledRuntimes([in, string] const WCHAR *path,
92 [in, unique] SYSTEMTIME *start, [in, unique] SYSTEMTIME *end,
93 [in] DWORD flags, [in] DWORD n_requested, [out] DWORD *n_runtimes,
94 [out, size_is(,*n_runtimes)] SYSTEMTIME **runtimes);
95 HRESULT SchRpcGetLastRunInfo([in, string] const WCHAR *path,
96 [out] SYSTEMTIME *last_runtime, [out] DWORD *last_return_code);
97 HRESULT SchRpcGetTaskInfo([in, string] const WCHAR *path, [in] DWORD flags,
98 [out] DWORD *enabled, [out] DWORD *task_state);
99 HRESULT SchRpcGetNumberOfMissedRuns([in, string] const WCHAR *path, [out] DWORD *runs);
100 HRESULT SchRpcEnableTask([in, string] const WCHAR *path, [in] DWORD enabled);