summaryrefslogtreecommitdiff
path: root/source4/librpc/idl/atsvc.idl
blob: e64f2c93e0040b5ab9a85f406deb6ce25ae5de87 (plain)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/*
  atsvc interface definition
*/

#include "idl_types.h"

[ uuid("1ff70682-0a51-30e8-076d-740be8cee98b"),
  version(1.0),
  pointer_default(unique),
  pointer_default_top(unique),
  helpstring("Queue/List/Remove jobs for later execution"),
  endpoint("ncacn_np:[\\pipe\\atsvc]", "ncalrpc:")
] interface atsvc
{
	typedef [bitmap32bit] bitmap {
                First           =       0x00000001,
                Second          =       0x00000002,
                Third           =       0x00000004,
                Fourth          =       0x00000008,
                Fifth           =       0x00000010,
                Sixth           =       0x00000020,
                Seventh         =       0x00000040,
                Eight           =       0x00000080,
                Ninth           =       0x00000100,
                Tenth           =       0x00000200,
                Eleventh        =       0x00000400,
                Twelfth         =       0x00000800,
                Thitteenth      =       0x00001000,
                Fourteenth      =       0x00002000,
                Fifteenth       =       0x00004000,
                Sixteenth       =       0x00008000,
                Seventeenth     =       0x00010000,
                Eighteenth      =       0x00020000,
                Ninteenth       =       0x00040000,
                Twentyth        =       0x00080000,
                Twentyfirst     =       0x00100000,
                Twentysecond    =       0x00200000,
                Twentythird     =       0x00400000,
                Twentyfourth    =       0x00800000,
                Twentyfifth     =       0x01000000,
                Twentysixth     =       0x02000000,
                Twentyseventh   =       0x04000000,
                Twentyeighth    =       0x08000000,
                Twentyninth     =       0x10000000,
                Thirtieth       =       0x20000000,
                Thirtyfirst     =       0x40000000
        } atsvc_DaysOfMonth;

        typedef [bitmap8bit] bitmap {
                JOB_RUN_PERIODICALLY    = 0x01,
                JOB_EXEC_ERROR          = 0x02,
                JOB_RUNS_TODAY          = 0x04,
                JOB_ADD_CURRENT_DATE    = 0x08,
                JOB_NONINTERACTIVE      = 0x10
        } atsvc_Flags;

	typedef [bitmap8bit] bitmap {
		DAYSOFWEEK_MONDAY    = 0x01,
		DAYSOFWEEK_TUESDAY   = 0x02,
		DAYSOFWEEK_WEDNESDAY = 0x04,
		DAYSOFWEEK_THURSDAY  = 0x08,
		DAYSOFWEEK_FRIDAY    = 0x10,
		DAYSOFWEEK_SATURDAY  = 0x20,
		DAYSOFWEEK_SUNDAY    = 0x40
	} atsvc_DaysOfWeek;
	
	typedef struct {
		uint32 job_time;
		atsvc_DaysOfMonth days_of_month;
		atsvc_DaysOfWeek days_of_week;
		atsvc_Flags flags;
		unistr *command;
	} atsvc_JobInfo;

	/******************/
	/* Function: 0x00 */
	NTSTATUS atsvc_JobAdd(
		[in]	 unistr *servername,
		[in,ref] atsvc_JobInfo *job_info,
		[out]	 uint32 job_id
	);

	/******************/
	/* Function: 0x01 */
	NTSTATUS atsvc_JobDel(
		[in]	unistr *servername,
		[in]	uint32 min_job_id,
		[in]	uint32 max_job_id
	);

	typedef struct {
		uint32 job_id;
		uint32 job_time;
		atsvc_DaysOfMonth days_of_month;
		atsvc_DaysOfWeek days_of_week;
		atsvc_Flags flags;
		unistr *command;
	} atsvc_JobEnumInfo;

	typedef struct {
		uint32 entries_read;
		[size_is(entries_read)] atsvc_JobEnumInfo *first_entry;
	} atsvc_enum_ctr;

	/******************/
	/* Function: 0x02 */
	NTSTATUS atsvc_JobEnum(
		[in]         unistr *servername,
		[in,out,ref] atsvc_enum_ctr *ctr,
		[in]	     uint32 preferred_max_len,
		[out]	     uint32 total_entries,
		[in,out]     uint32 *resume_handle
	);

	/******************/
	/* Function: 0x03 */
	[public] NTSTATUS atsvc_JobGetInfo(
		[in]	unistr *servername,
		[in]	uint32 job_id,
		[out]	atsvc_JobInfo *job_info
	);
}