# Function Calls

The following calls control tasks and threads. See Kernel Folio Calls, for more information on these calls.

## Starting Tasks

The following calls start tasks:

- `CreateItem()` Creates an item.
- `LoadProgram()` Launches a program.
- `LoadProgramPrio()` Launches a program and gives it a priority.

## Ending Tasks

The following calls delete or exit a task:

- `DeleteItem()` Deletes an item.
- `exit()` Exits from a task or thread.

## Loading and Unloading Code

The following calls load or unload code:

- `LoadCode()` Loads a binary image into memory, and obtains a handle to it.
- `UnloadCode()` Unloads a binary image previously loaded with `LoadCode()`.

## Starting Threads

The following calls create a thread:

- `CreateThread()` Creates a thread.
- `ExecuteAsThread()` Executes previously loaded code as a thread.

## Ending Threads

The following calls delete and exit from a thread:

- `DeleteThread()` Deletes a thread.
- `exit()` Exits from a task or thread.

## Controlling Tasks

The following calls control tasks and threads.

- `SendSignal()` Sends one or more signals to another task.
- `SetItemOwner()` Changes the owner of an item.
- `SetItemPri()` Changes the priority of an item.
- `WaitSignal()` Waits until a signal is sent.
- `Yield()` Gives up the CPU to a task of equal priority.