2 * COPYRIGHT: See COPYING in the top level directory
4 * FILE: reactos/dll/win32/netapi32/schedule.c
5 * PURPOSE: Scheduler service interface code
7 * PROGRAMMERS: Eric Kohl
10 /* INCLUDES ******************************************************************/
15 WINE_DEFAULT_DEBUG_CHANNEL(netapi32
);
17 /* FUNCTIONS *****************************************************************/
20 ATSVC_HANDLE_bind(ATSVC_HANDLE pszSystemName
)
22 handle_t hBinding
= NULL
;
23 LPWSTR pszStringBinding
;
26 TRACE("ATSVC_HANDLE_bind() called\n");
28 status
= RpcStringBindingComposeW(NULL
,
30 (RPC_WSTR
)pszSystemName
,
36 TRACE("RpcStringBindingCompose returned 0x%x\n", status
);
40 /* Set the binding handle that will be used to bind to the server. */
41 status
= RpcBindingFromStringBindingW(pszStringBinding
,
45 TRACE("RpcBindingFromStringBinding returned 0x%x\n", status
);
48 status
= RpcStringFreeW(&pszStringBinding
);
51 // TRACE("RpcStringFree returned 0x%x\n", status);
59 ATSVC_HANDLE_unbind(ATSVC_HANDLE pszSystemName
,
64 TRACE("ATSVC_HANDLE_unbind() called\n");
66 status
= RpcBindingFree(&hBinding
);
69 TRACE("RpcBindingFree returned 0x%x\n", status
);
81 NET_API_STATUS status
;
83 TRACE("NetScheduleJobAdd(%s, %p, %p)\n", debugstr_w(ServerName
),
88 status
= NetrJobAdd(ServerName
,
92 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
94 status
= I_RpcMapWin32Status(RpcExceptionCode());
109 NET_API_STATUS status
;
111 TRACE("NetScheduleJobDel(%s, %d, %d)\n", debugstr_w(ServerName
),
116 status
= NetrJobDel(ServerName
,
120 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
122 status
= I_RpcMapWin32Status(RpcExceptionCode());
134 LPBYTE
*PointerToBuffer
,
135 DWORD PreferredMaximumLength
,
137 LPDWORD TotalEntries
,
138 LPDWORD ResumeHandle
)
140 AT_ENUM_CONTAINER EnumContainer
;
141 NET_API_STATUS status
;
143 TRACE("NetScheduleJobEnum(%s, %p, %d, %p, %p, %p)\n", debugstr_w(ServerName
),
144 PointerToBuffer
, PreferredMaximumLength
, EntriesRead
, TotalEntries
, ResumeHandle
);
146 EnumContainer
.EntriesRead
= 0;
147 EnumContainer
.Buffer
= NULL
;
151 status
= NetrJobEnum(ServerName
,
153 PreferredMaximumLength
,
156 if (status
== NERR_Success
|| status
== ERROR_MORE_DATA
)
158 *PointerToBuffer
= (LPBYTE
)EnumContainer
.Buffer
;
159 *EntriesRead
= EnumContainer
.EntriesRead
;
162 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
164 status
= I_RpcMapWin32Status(RpcExceptionCode());
174 NetScheduleJobGetInfo(
177 LPBYTE
*PointerToBuffer
)
179 NET_API_STATUS status
;
181 TRACE("NetScheduleJobGetInfo(%s, %d, %p)\n", debugstr_w(ServerName
),
182 JobId
, PointerToBuffer
);
186 status
= NetrJobGetInfo(ServerName
,
188 (LPAT_INFO
*)PointerToBuffer
);
190 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
192 status
= I_RpcMapWin32Status(RpcExceptionCode());