/* header auto-generated by pidl */

#include <stdint.h>

#include <core/ntstatus.h>

#ifndef _HEADER_atsvc
#define _HEADER_atsvc

/* bitmap atsvc_DaysOfMonth */
#define First ( 0x00000001 )
#define Second ( 0x00000002 )
#define Third ( 0x00000004 )
#define Fourth ( 0x00000008 )
#define Fifth ( 0x00000010 )
#define Sixth ( 0x00000020 )
#define Seventh ( 0x00000040 )
#define Eight ( 0x00000080 )
#define Ninth ( 0x00000100 )
#define Tenth ( 0x00000200 )
#define Eleventh ( 0x00000400 )
#define Twelfth ( 0x00000800 )
#define Thitteenth ( 0x00001000 )
#define Fourteenth ( 0x00002000 )
#define Fifteenth ( 0x00004000 )
#define Sixteenth ( 0x00008000 )
#define Seventeenth ( 0x00010000 )
#define Eighteenth ( 0x00020000 )
#define Ninteenth ( 0x00040000 )
#define Twentyth ( 0x00080000 )
#define Twentyfirst ( 0x00100000 )
#define Twentysecond ( 0x00200000 )
#define Twentythird ( 0x00400000 )
#define Twentyfourth ( 0x00800000 )
#define Twentyfifth ( 0x01000000 )
#define Twentysixth ( 0x02000000 )
#define Twentyseventh ( 0x04000000 )
#define Twentyeighth ( 0x08000000 )
#define Twentyninth ( 0x10000000 )
#define Thirtieth ( 0x20000000 )
#define Thirtyfirst ( 0x40000000 )

/* bitmap atsvc_Flags */
#define JOB_RUN_PERIODICALLY ( 0x01 )
#define JOB_EXEC_ERROR ( 0x02 )
#define JOB_RUNS_TODAY ( 0x04 )
#define JOB_ADD_CURRENT_DATE ( 0x08 )
#define JOB_NONINTERACTIVE ( 0x10 )

/* bitmap atsvc_DaysOfWeek */
#define DAYSOFWEEK_MONDAY ( 0x01 )
#define DAYSOFWEEK_TUESDAY ( 0x02 )
#define DAYSOFWEEK_WEDNESDAY ( 0x04 )
#define DAYSOFWEEK_THURSDAY ( 0x08 )
#define DAYSOFWEEK_FRIDAY ( 0x10 )
#define DAYSOFWEEK_SATURDAY ( 0x20 )
#define DAYSOFWEEK_SUNDAY ( 0x40 )

struct atsvc_JobInfo {
	uint32_t job_time;
	uint32_t days_of_month;
	uint8_t days_of_week;
	uint8_t flags;
	const char *command;/* [unique,charset(UTF16)] */
};

struct atsvc_JobEnumInfo {
	uint32_t job_id;
	uint32_t job_time;
	uint32_t days_of_month;
	uint8_t days_of_week;
	uint8_t flags;
	const char *command;/* [unique,charset(UTF16)] */
};

struct atsvc_enum_ctr {
	uint32_t entries_read;
	struct atsvc_JobEnumInfo *first_entry;/* [unique,size_is(entries_read)] */
};


struct atsvc_JobAdd {
	struct {
		const char *servername;/* [unique,charset(UTF16)] */
		struct atsvc_JobInfo *job_info;/* [ref] */
	} in;

	struct {
		uint32_t *job_id;/* [ref] */
		NTSTATUS result;
	} out;

};


struct atsvc_JobDel {
	struct {
		const char *servername;/* [unique,charset(UTF16)] */
		uint32_t min_job_id;
		uint32_t max_job_id;
	} in;

	struct {
		NTSTATUS result;
	} out;

};


struct atsvc_JobEnum {
	struct {
		const char *servername;/* [unique,charset(UTF16)] */
		uint32_t preferred_max_len;
		struct atsvc_enum_ctr *ctr;/* [ref] */
		uint32_t *resume_handle;/* [unique] */
	} in;

	struct {
		uint32_t *total_entries;/* [ref] */
		struct atsvc_enum_ctr *ctr;/* [ref] */
		uint32_t *resume_handle;/* [unique] */
		NTSTATUS result;
	} out;

};


struct atsvc_JobGetInfo {
	struct {
		const char *servername;/* [unique,charset(UTF16)] */
		uint32_t job_id;
	} in;

	struct {
		struct atsvc_JobInfo **job_info;/* [ref] */
		NTSTATUS result;
	} out;

};

#endif /* _HEADER_atsvc */
