| 1 | /*
|
|---|
| 2 | atsvc interface definition
|
|---|
| 3 | */
|
|---|
| 4 |
|
|---|
| 5 | [ uuid("1ff70682-0a51-30e8-076d-740be8cee98b"),
|
|---|
| 6 | version(1.0),
|
|---|
| 7 | pointer_default(unique),
|
|---|
| 8 | helpstring("Microsoft AT-Scheduler Service"),
|
|---|
| 9 | endpoint("ncacn_np:[\\pipe\\atsvc]", "ncalrpc:")
|
|---|
| 10 | ] interface atsvc
|
|---|
| 11 | {
|
|---|
| 12 | typedef [bitmap32bit] bitmap {
|
|---|
| 13 | First = 0x00000001,
|
|---|
| 14 | Second = 0x00000002,
|
|---|
| 15 | Third = 0x00000004,
|
|---|
| 16 | Fourth = 0x00000008,
|
|---|
| 17 | Fifth = 0x00000010,
|
|---|
| 18 | Sixth = 0x00000020,
|
|---|
| 19 | Seventh = 0x00000040,
|
|---|
| 20 | Eight = 0x00000080,
|
|---|
| 21 | Ninth = 0x00000100,
|
|---|
| 22 | Tenth = 0x00000200,
|
|---|
| 23 | Eleventh = 0x00000400,
|
|---|
| 24 | Twelfth = 0x00000800,
|
|---|
| 25 | Thitteenth = 0x00001000,
|
|---|
| 26 | Fourteenth = 0x00002000,
|
|---|
| 27 | Fifteenth = 0x00004000,
|
|---|
| 28 | Sixteenth = 0x00008000,
|
|---|
| 29 | Seventeenth = 0x00010000,
|
|---|
| 30 | Eighteenth = 0x00020000,
|
|---|
| 31 | Ninteenth = 0x00040000,
|
|---|
| 32 | Twentyth = 0x00080000,
|
|---|
| 33 | Twentyfirst = 0x00100000,
|
|---|
| 34 | Twentysecond = 0x00200000,
|
|---|
| 35 | Twentythird = 0x00400000,
|
|---|
| 36 | Twentyfourth = 0x00800000,
|
|---|
| 37 | Twentyfifth = 0x01000000,
|
|---|
| 38 | Twentysixth = 0x02000000,
|
|---|
| 39 | Twentyseventh = 0x04000000,
|
|---|
| 40 | Twentyeighth = 0x08000000,
|
|---|
| 41 | Twentyninth = 0x10000000,
|
|---|
| 42 | Thirtieth = 0x20000000,
|
|---|
| 43 | Thirtyfirst = 0x40000000
|
|---|
| 44 | } atsvc_DaysOfMonth;
|
|---|
| 45 |
|
|---|
| 46 | typedef [bitmap8bit] bitmap {
|
|---|
| 47 | JOB_RUN_PERIODICALLY = 0x01,
|
|---|
| 48 | JOB_EXEC_ERROR = 0x02,
|
|---|
| 49 | JOB_RUNS_TODAY = 0x04,
|
|---|
| 50 | JOB_ADD_CURRENT_DATE = 0x08,
|
|---|
| 51 | JOB_NONINTERACTIVE = 0x10
|
|---|
| 52 | } atsvc_Flags;
|
|---|
| 53 |
|
|---|
| 54 | typedef [bitmap8bit] bitmap {
|
|---|
| 55 | DAYSOFWEEK_MONDAY = 0x01,
|
|---|
| 56 | DAYSOFWEEK_TUESDAY = 0x02,
|
|---|
| 57 | DAYSOFWEEK_WEDNESDAY = 0x04,
|
|---|
| 58 | DAYSOFWEEK_THURSDAY = 0x08,
|
|---|
| 59 | DAYSOFWEEK_FRIDAY = 0x10,
|
|---|
| 60 | DAYSOFWEEK_SATURDAY = 0x20,
|
|---|
| 61 | DAYSOFWEEK_SUNDAY = 0x40
|
|---|
| 62 | } atsvc_DaysOfWeek;
|
|---|
| 63 |
|
|---|
| 64 | typedef struct {
|
|---|
| 65 | uint32 job_time;
|
|---|
| 66 | atsvc_DaysOfMonth days_of_month;
|
|---|
| 67 | atsvc_DaysOfWeek days_of_week;
|
|---|
| 68 | atsvc_Flags flags;
|
|---|
| 69 | [string,charset(UTF16)] uint16 *command;
|
|---|
| 70 | } atsvc_JobInfo;
|
|---|
| 71 |
|
|---|
| 72 | /******************/
|
|---|
| 73 | /* Function: 0x00 */
|
|---|
| 74 | [public] NTSTATUS atsvc_JobAdd(
|
|---|
| 75 | [in,unique,string,charset(UTF16)] uint16 *servername,
|
|---|
| 76 | [in] atsvc_JobInfo *job_info,
|
|---|
| 77 | [out,ref] uint32 *job_id
|
|---|
| 78 | );
|
|---|
| 79 |
|
|---|
| 80 | /******************/
|
|---|
| 81 | /* Function: 0x01 */
|
|---|
| 82 | [public] NTSTATUS atsvc_JobDel(
|
|---|
| 83 | [in,unique,string,charset(UTF16)] uint16 *servername,
|
|---|
| 84 | [in] uint32 min_job_id,
|
|---|
| 85 | [in] uint32 max_job_id
|
|---|
| 86 | );
|
|---|
| 87 |
|
|---|
| 88 | typedef struct {
|
|---|
| 89 | uint32 job_id;
|
|---|
| 90 | uint32 job_time;
|
|---|
| 91 | atsvc_DaysOfMonth days_of_month;
|
|---|
| 92 | atsvc_DaysOfWeek days_of_week;
|
|---|
| 93 | atsvc_Flags flags;
|
|---|
| 94 | [string,charset(UTF16)] uint16 *command;
|
|---|
| 95 | } atsvc_JobEnumInfo;
|
|---|
| 96 |
|
|---|
| 97 | typedef struct {
|
|---|
| 98 | uint32 entries_read;
|
|---|
| 99 | [size_is(entries_read)] atsvc_JobEnumInfo *first_entry;
|
|---|
| 100 | } atsvc_enum_ctr;
|
|---|
| 101 |
|
|---|
| 102 | /******************/
|
|---|
| 103 | /* Function: 0x02 */
|
|---|
| 104 | [public] NTSTATUS atsvc_JobEnum(
|
|---|
| 105 | [in,unique,string,charset(UTF16)] uint16 *servername,
|
|---|
| 106 | [in,out] atsvc_enum_ctr *ctr,
|
|---|
| 107 | [in] uint32 preferred_max_len,
|
|---|
| 108 | [out,ref] uint32 *total_entries,
|
|---|
| 109 | [in,out,unique] uint32 *resume_handle
|
|---|
| 110 | );
|
|---|
| 111 |
|
|---|
| 112 | /******************/
|
|---|
| 113 | /* Function: 0x03 */
|
|---|
| 114 | [public] NTSTATUS atsvc_JobGetInfo(
|
|---|
| 115 | [in,unique,string,charset(UTF16)] uint16 *servername,
|
|---|
| 116 | [in] uint32 job_id,
|
|---|
| 117 | [out] atsvc_JobInfo **job_info
|
|---|
| 118 | );
|
|---|
| 119 | }
|
|---|