2.4.1 FIXDLEN_DATA

The FIXDLEN_DATA structure is the fixed-length header in the .JOB description file. The FIXDLEN_DATA structure is located at the beginning of the file. The format of the FIXDLEN_DATA structure is as follows.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Product Version

File Version

Job uuid (16 bytes)

...

...

App Name Len Offset

Trigger Offset

Error Retry Count

Error Retry Interval

Idle Deadline

Idle Wait

Priority

Maximum Run Time

Exit Code

Status

Flags

Year

Month

Weekday

Day

Hour

Minute

Second

MilliSeconds

Product Version (2 bytes): Contains the version of the product that generated this .JOB file.<11>

File Version (2 bytes): Version of the .JOB file format. The client sets this to 0x0001.

Job uuid (16 bytes): Contains a randomly generated UUID to identify this task unique to the server.

App Name Len Offset (2 bytes): Contains the offset in bytes within the .JOB file where the length of the application name is located.

Trigger Offset (2 bytes): Contains the offset in bytes within the .JOB file where the task triggers are located.

Error Retry Count (2 bytes): Contains the number of execute attempts that are attempted for the task if the task fails to start.

Error Retry Interval (2 bytes): Contains the interval, in minutes, between successive retries.

Idle Deadline (2 bytes): Contains a maximum time in minutes to wait for the machine to become idle for Idle Wait minutes.

Idle Wait (2 bytes): Contains a value in minutes. The machine remains idle for this many minutes before it runs the task.

Priority (4 bytes): Contains ONE of the bit flags that control the priority at which the task will run. All bits not defined in the following table are set to 0 and ignored upon receipt. The bit field is structured as follows:


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

R

H

I

N

0

0

0

0

0

PRIORITY_CLASS

Value

Description

N

NORMAL_PRIORITY_CLASS

If set to 1, the task has no special scheduling requirements.

I

IDLE_PRIORITY_CLASS

If set to 1, the task can run in a process whose threads run only when the machine is idle, and are preempted by the threads of any process running in a higher priority class.

H

HIGH_PRIORITY_CLASS

If set to 1, the task performs time-critical tasks that can be executed immediately for it to run correctly. The threads of a high-priority class process preempt the threads of normal or idle priority class processes.

R

REALTIME_PRIORITY_CLASS

If set to 1, the task can run at the highest possible priority. The threads of a real-time priority class process preempt the threads of all other processes, including operating system processes performing important tasks.

Maximum Run Time (4 bytes): Contains the number of milliseconds the server will wait for the task to complete.

Exit Code (4 bytes): This contains the exit code of the executed task upon the completion of that task. MUST be set to 0x00000000 when sent and MUST be ignored on receipt.

Status (4 bytes): This contains the current status of the task. Is to be set to 0 and ignored upon receipt. Possible values are specified in the following table:

Value

Meaning

SCHED_S_TASK_READY

0x00041300

Task is not running but is scheduled to run at some time in the future.

SCHED_S_TASK_RUNNING

0x00041301

Task is currently running.

SCHED_S_TASK_NOT_SCHEDULED

0x00041305

The task is not running and has no valid triggers.<12>

Flags (4 bytes): Task-specific flag bits that are as specified in section 2.3.7.

The following eight fields all refer to the time this task most recently ran. When creating a job, the field values are to be ignored upon receipt.

Value

Meaning

Year

1601 — 30827

The year (1601–30827), inclusive.

Month

1 — 12

The month, January=1, February=2, …, December=12.

Weekday

0 — 6

The day of the week, Sunday=0, Monday=1, …, Saturday=6.

Day

1 — 31

The day of the month (1–31), inclusive.

Hour

0 — 23

The hour of the day (0–23), inclusive.

Minute

0 — 59

The minute of the hour (0–59), inclusive.

Second

0 — 59

The seconds of the minute (0–59), inclusive.

Milliseconds

0 — 999

Between 0 and 999, for values less than one second, inclusive.