reactos/base/services/schedsvc/precomp.h
Eric Kohl dc0b249d16 [SCHEDSVC] Reschedule a job after it was started
- Remove a non-recurring job from the job list after starting it.
- Remove a recurring job from the start list, calculate its next start time and insert it again.
- Calculate the timeout for the next job.
2018-10-28 18:12:55 +01:00

99 lines
1.3 KiB
C

#ifndef _SCHEDSVC_PCH_
#define _SCHEDSVC_PCH_
#define WIN32_NO_STATUS
#define _INC_WINDOWS
#define COM_NO_WINDOWS_H
#include <limits.h>
#include <stdarg.h>
#include <stdio.h>
#include <windef.h>
#include <winbase.h>
#include <winreg.h>
#include <winsvc.h>
#include <ndk/rtlfuncs.h>
#include <atsvc_s.h>
#include <wine/debug.h>
#define JOB_NAME_LENGTH 9
NTSYSAPI
ULONG
NTAPI
RtlRandomEx(
PULONG Seed);
typedef struct _JOB
{
LIST_ENTRY JobEntry;
LIST_ENTRY StartEntry;
ULARGE_INTEGER StartTime;
WCHAR Name[JOB_NAME_LENGTH];
DWORD JobId;
DWORD_PTR JobTime;
DWORD DaysOfMonth;
UCHAR DaysOfWeek;
UCHAR Flags;
WCHAR Command[1];
} JOB, *PJOB;
extern DWORD dwNextJobId;
extern DWORD dwJobCount;
extern LIST_ENTRY JobListHead;
extern RTL_RESOURCE JobListLock;
extern LIST_ENTRY StartListHead;
extern RTL_RESOURCE StartListLock;
extern HANDLE Events[2];
/* job.c */
DWORD
GetNextJobTimeout(VOID);
VOID
RunNextJob(VOID);
LONG
SaveJob(
PJOB pJob);
LONG
DeleteJob(
PJOB pJob);
LONG
LoadJobs(VOID);
VOID
CalculateNextStartTime(
_In_ PJOB pJob);
VOID
InsertJobIntoStartList(
_In_ PLIST_ENTRY StartListHead,
_In_ PJOB pJob);
VOID
DumpStartList(
_In_ PLIST_ENTRY StartListHead);
/* rpcserver.c */
DWORD
WINAPI
RpcThreadRoutine(
LPVOID lpParameter);
#endif /* _SCHEDSVC_PCH_ */