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}")
27 uuid(86d35949
-83c9
-4044-b424
-db363231fd0c
),
28 implicit_handle
(handle_t rpc_handle
),
30 pointer_default(unique)
32 interface ITaskSchedulerService
34 typedef struct _TASK_USER_CRED
36 [string] const WCHAR
*user
;
37 [string] const WCHAR
*password
;
41 typedef struct _TASK_XML_ERROR_INFO
45 [string] WCHAR
*value
;
46 } TASK_XML_ERROR_INFO
;
48 typedef [string] WCHAR
**TASK_NAMES
;
50 HRESULT SchRpcHighestVersion
([out] DWORD
*version);
51 HRESULT SchRpcRegisterTask
([in, string, unique] const WCHAR
*path
,
52 [in, string] const WCHAR
*xml
, [in] DWORD flags
,
53 [in, string, unique] const WCHAR
*sddl
,
54 [in] DWORD task_logon_type
, [in] DWORD n_creds
,
55 [in, size_is(n_creds
), unique] const TASK_USER_CRED
*creds
,
56 [out, string] WCHAR
**actual_path
,
57 [out] TASK_XML_ERROR_INFO
**xml_error_info
);
58 HRESULT SchRpcRetrieveTask
([in, string] const WCHAR
*path
,
59 [in, string] const WCHAR
*languages
,
60 [in] unsigned long *n_languages
, [out, string] WCHAR
**xml
);
61 HRESULT SchRpcCreateFolder
([in, string] const WCHAR
*path
,
62 [in, string, unique] const WCHAR
*sddl
, [in] DWORD flags
);
63 HRESULT SchRpcSetSecurity
([in, string] const WCHAR
*path
,
64 [in, string] const WCHAR
*sddl
, [in] DWORD flags
);
65 HRESULT SchRpcGetSecurity
([in, string] const WCHAR
*path
,
66 [in] DWORD flags
, [out, string] WCHAR
**sddl
);
67 HRESULT SchRpcEnumFolders
([in, string] const WCHAR
*path
,
68 [in] DWORD flags
, [in, out] DWORD
*start_index
,
69 [in] DWORD n_requested
, [out] DWORD
*n_names
,
70 [out, size_is(,*n_names
)] TASK_NAMES
*names
);
71 HRESULT SchRpcEnumTasks
([in, string] const WCHAR
*path
,
72 [in] DWORD flags
, [in, out] DWORD
*start_index
,
73 [in] DWORD n_requested
, [out] DWORD
*n_names
,
74 [out, size_is(,*n_names
)] TASK_NAMES
*names
);
75 HRESULT SchRpcEnumInstances
([in, string, unique] const WCHAR
*path
,
76 [in] DWORD flags
, [out] DWORD
*n_guids
,
77 [out, size_is(,*n_guids
)] GUID
**guids
);
78 HRESULT SchRpcGetInstanceInfo
([in] GUID guid
, [out, string] WCHAR
**path
,
79 [out] DWORD
*task_state
, [out, string] WCHAR
**action
,
80 [out, string] WCHAR
**info
, [out] DWORD
*n_instances
,
81 [out, size_is(,*n_instances
)] GUID
**instances
, [out] DWORD
*pid
);
82 HRESULT SchRpcStopInstance
([in] GUID guid
, [in] DWORD flags
);
83 HRESULT SchRpcStop
([in, string, unique] const WCHAR
*path
, [in] DWORD flags
);
84 HRESULT SchRpcRun
([in, string] const WCHAR
*path
,
85 [in] DWORD n_args
, [in, size_is(n_args
),unique] const WCHAR
**args
,
86 [in] DWORD flags
, [in] DWORD session_id
,
87 [in, unique, string] const WCHAR
*user
, [out] GUID
*guid
);
88 HRESULT SchRpcDelete
([in, string] const WCHAR
*path
, [in] DWORD flags
);
89 HRESULT SchRpcRename
([in, string] const WCHAR
*path
, [in, string] const WCHAR
*name
, [in] DWORD flags
);
90 HRESULT SchRpcScheduledRuntimes
([in, string] const WCHAR
*path
,
91 [in, unique] SYSTEMTIME
*start
, [in, unique] SYSTEMTIME
*end
,
92 [in] DWORD flags
, [in] DWORD n_requested
, [out] DWORD
*n_runtimes
,
93 [out, size_is(,*n_runtimes
)] SYSTEMTIME
**runtimes
);
94 HRESULT SchRpcGetLastRunInfo
([in, string] const WCHAR
*path
,
95 [out] SYSTEMTIME
*last_runtime
, [out] DWORD
*last_return_code
);
96 HRESULT SchRpcGetTaskInfo
([in, string] const WCHAR
*path
, [in] DWORD flags
,
97 [out] DWORD
*enabled
, [out] DWORD
*task_state
);
98 HRESULT SchRpcGetNumberOfMissedRuns
([in, string] const WCHAR
*path
, [out] DWORD
*runs
);
99 HRESULT SchRpcEnableTask
([in, string] const WCHAR
*path
, [in] DWORD enabled
);