1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 use shared::basetsd::DWORD_PTR;
7 use shared::lmcons::NET_API_STATUS;
8 use shared::minwindef::{DWORD, LPBYTE, LPDWORD, UCHAR};
9 use um::winnt::{LPCWSTR, LPWSTR};
10 pub const JOB_RUN_PERIODICALLY: UCHAR = 0x01;
11 pub const JOB_EXEC_ERROR: UCHAR = 0x02;
12 pub const JOB_RUNS_TODAY: UCHAR = 0x04;
13 pub const JOB_ADD_CURRENT_DATE: UCHAR = 0x08;
14 pub const JOB_NONINTERACTIVE: UCHAR = 0x10;
15 pub const JOB_INPUT_FLAGS: UCHAR = JOB_RUN_PERIODICALLY | JOB_ADD_CURRENT_DATE
16     | JOB_NONINTERACTIVE;
17 pub const JOB_OUTPUT_FLAGS: UCHAR = JOB_RUN_PERIODICALLY | JOB_EXEC_ERROR | JOB_RUNS_TODAY
18     | JOB_NONINTERACTIVE;
19 STRUCT!{struct AT_INFO {
20     JobTime: DWORD_PTR,
21     DaysOfMonth: DWORD,
22     DaysOfWeek: UCHAR,
23     Flags: UCHAR,
24     Command: LPWSTR,
25 }}
26 pub type PAT_INFO = *mut AT_INFO;
27 pub type LPAT_INFO = *mut AT_INFO;
28 STRUCT!{struct AT_ENUM {
29     JobId: DWORD,
30     JobTime: DWORD_PTR,
31     DaysOfMonth: DWORD,
32     DaysOfWeek: UCHAR,
33     Flags: UCHAR,
34     Command: LPWSTR,
35 }}
36 pub type PAT_ENUM = *mut AT_ENUM;
37 pub type LPAT_ENUM = *mut AT_ENUM;
38 extern "system" {
NetScheduleJobAdd( Servername: LPCWSTR, Buffer: LPBYTE, JobId: LPDWORD, ) -> NET_API_STATUS39     pub fn NetScheduleJobAdd(
40         Servername: LPCWSTR,
41         Buffer: LPBYTE,
42         JobId: LPDWORD,
43     ) -> NET_API_STATUS;
NetScheduleJobDel( Servername: LPCWSTR, MinJobId: DWORD, MaxJobId: DWORD, ) -> NET_API_STATUS44     pub fn NetScheduleJobDel(
45         Servername: LPCWSTR,
46         MinJobId: DWORD,
47         MaxJobId: DWORD,
48     ) -> NET_API_STATUS;
NetScheduleJobEnum( Servername: LPCWSTR, PointerToBuffer: *mut LPBYTE, PointerToBuffer: DWORD, EntriesRead: LPDWORD, TotalEntries: LPDWORD, ResumeHandle: LPDWORD, ) -> NET_API_STATUS49     pub fn NetScheduleJobEnum(
50         Servername: LPCWSTR,
51         PointerToBuffer: *mut LPBYTE,
52         PointerToBuffer: DWORD,
53         EntriesRead: LPDWORD,
54         TotalEntries: LPDWORD,
55         ResumeHandle: LPDWORD,
56     ) -> NET_API_STATUS;
NetScheduleJobGetInfo( Servername: LPCWSTR, JobId: DWORD, PointerToBuffer: *mut LPBYTE, ) -> NET_API_STATUS57     pub fn NetScheduleJobGetInfo(
58         Servername: LPCWSTR,
59         JobId: DWORD,
60         PointerToBuffer: *mut LPBYTE,
61     ) -> NET_API_STATUS;
62 }
63