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")
28 uuid(86d35949
-83c9
-4044-b424
-db363231fd0c
),
29 implicit_handle
(handle_t schrpc_handle
),
31 pointer_default(unique)
33 interface ITaskSchedulerService
35 typedef struct _TASK_USER_CRED
37 [string] const WCHAR
*user
;
38 [string] const WCHAR
*password
;
42 typedef struct _TASK_XML_ERROR_INFO
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
);