## host_security_create_task_token

Function - Create a new task with an explicit security token.

### SYNOPSIS

    kern_return_t   host_security_create_task_token
                    (host_security_t                  host_security,
                     task_t                             parent_task,
                     security_token_t                security_token,
                     audit_token_t                      audit_token,
                     ledger_port_array_t                    ledgers,
                     boolean_t                       inherit_memory,
                     task_t                             child_task);

### PARAMETERS

host_security
  [in security send right] The host's security port.

parent_task
  [in task send right] The port for the task from which to draw the child task's port rights and address space.

security_token
  [in scalar] The task's security token.

audit_token
  [in scalar] The task's audit token.

ledgers
  [pointer to in array of ledger send rights] The set of ledgers from which the task will draw its resources.

inherit_memory
  [in scalar] Address space inheritance indicator. If true, the child task in- herits the address space of the parent task. If false, the kernel assigns the child task an empty address space.

child_task
  [out task send right] The kernel-assigned port name for the new task.

### DESCRIPTION

The host_security_create_task_token function creates a new task from parent_task with explicit security and audit token values, returning the name of the new task in the parameter specified by child_task. Other than the security and audit token values, the child task is as if created by task_create.

### NOTES

The host security port is a privileged port given to the system bootstrap task for the use of this call.

### RETURN VALUES

KERN_INVALID_SECURITY
  The value of host_security does not specify the security port for the host on which task lies.

### RELATED INFORMATION

Functions: task_create, host_security_set_task_token, mach_msg.