Host Compute System API Reference

The following section contains the definitions of the Host Compute System APIs. The DLL exports a set of C-style Windows API functions, using JSON schema as configuration.

Data types

Type Description
HCS ERROR CODE Common HCS Error Code
HCS_EVENT_TYPE Events indicated to callbacks registered by HcsSetComputeSystemCallback or HcsSetProcessCallback
HCS_EVENT Information about an event that ocurred on a compute system or process.
HCS_EVENT_OPTIONS Options for an event callback registration
HCS_OPERATION_TYPE Operation type assigned to a valid hcs operation
HCS_PROCESS_INFORMATION Information about a process created by HcsCreateProcess

Handle types

Type Description
HCS_SYSTEM Handle to a compute system
HCS_PROCESS Handle to a process running in a compute system
HCS_OPERATION Handle to an operation on a compute system
HCS_CALLBACK Handle to a callback registered on a compute system or process

Callback function types

Type Description
HCS_OPERATION_COMPLETION The completion callback of an hcs operation
HCS_EVENT_CALLBACK The compute system events callback

Operations

Function Description
HcsCreateOperation Create a new operation
HcsCloseOperation Close an operation
HcsGetOperationContext Get the context pointer of an operation
HcsSetOperationContext Set the context pointer on an operation
HcsGetComputeSystemFromOperation Get the compute system handle associated with operation
HcsGetProcessFromOperation Return the handle to the process associated with an operation
HcsGetOperationType Get the type of the operation
HcsGetOperationId Get the id of the operation
HcsGetOperationResult Get the result of the operation
HcsGetOperationResultAndProcessInfo Return the result of an operation
HcsWaitForOperationResult Wait for the completion of the create operation
HcsWaitForOperationResultAndProcessInfo Wait for the completion of the create operation and returns both the result and process info
HcsSetOperationCallback Set the callback that is invoked on completion of an operation
HcsCancelOperation Cancel the operation

Compute System Operations

Function Description
HcsCreateComputeSystem Create a new compute system
HcsOpenComputeSystem Open a handle to an existing compute system
HcsCloseComputeSystem Close a handle to a compute system
HcsStartComputeSystem Start a compute system
HcsShutDownComputeSystem Cleanly Shut down a compute system
HcsTerminateComputeSystem Forcefully terminate a compute system
HcsCrashComputeSystem Forcefully terminate a compute system
HcsPauseComputeSystem Pause the execution of a compute system
HcsResumeComputeSystem Resume the execution of a compute system
HcsSaveComputeSystem Save the state of a compute system
HcsGetComputeSystemProperties Query properties of a compute system
HcsModifyComputeSystem Modify setting of a compute system
HcsSetComputeSystemCallback Register a callback function to receive notifications for the compute system
HcsEnumerateComputeSystems Enumerate existing compute systems
HcsWaitForComputeSystemExit Wait compute system to exit

Process Execution

The following functions enable applications to execute a process in a compute system. For containers, these functions are the main way for an application to start and interact with the workload running in the container.

Function Description
HcsCreateProcess Start a process in a compute system
HcsOpenProcess Open an existing process in a compute system
HcsCloseProcess Close the handle to a process in a compute system
HcsTerminateProcess Terminate a process in a compute system
HcsSignalProcess Send a signal to a process in a compute system
HcsGetProcessInfo Return the initial startup info of a process in a compute system
HcsGetProcessProperties Return properties a process in a compute system
HcsModifyProcess Modify the parameters in a process of a compute system
HcsSetProcessCallback Register a callback function to receive notifications for a process in a compute system
HcsWaitForProcessExit Wait a process in a compute system to exit

Host Service Operations

The following functions provide functionality for host compute service.

Function Description
HcsGetServiceProperties Return the properties of the Host Compute Service
HcsModifyServiceSettings Modify the settings of the Host Compute Service
HcsSubmitWerReport Submit a WER report

Utility Functions for Virtual Machines

The following set of functions allow applications to set up the environment to run virtual machines.

Function Description
HcsCreateEmptyGuestStateFile Create an empty guest-state file (.vmgs) for VMs
HcsCreateEmptyRuntimeStateFile Create an empty runtime-state file (.vmrs) for a VM
HcsGrantVmAccess Add an entry to a file's ACL that grants access for a VM
HcsRevokeVmAccess Remove an entry to a file's ACL that granted access for a VM
HcsGrantVmGroupAccess Grant VM group access (R/O) to the specified file.
HcsRevokeVmGroupAccess Remove VM group access for the specified file.
HcsGetProcessorCompatibilityFromSavedState Get the processor compatibility from runtime-state file (.vmrs)

Storage Utility Functions for Containers

The following functions allow applications to create and manage the file system and storage environment that is required to run containers.

Function Description
HcsImportLayer Import a container layer and configures it for use on the host
HcsExportLayer Export a container layer that can be copied to another host or uploaded to a container registry
HcsExportLegacyWritableLayer Export a legacy container writable layer
HcsDestroyLayer Delete a container layer from the host
HcsSetupBaseOSLayer Set up a layer that contains a base OS for a container
HcsSetupBaseOSVolume Set up the base OS layer based on the mounted volume
HcsInitializeWritableLayer Initialize the writable layer for a container (i.e. the layer that captures the filesystem)
HcsInitializeLegacyWritableLayer Initialize the writable layer for a container using the legacy hive folder format
HcsAttachLayerStorageFilter Set up the layer storage filter on a writable container layers
HcsDetachLayerStorageFilter Detach the layer storage filter from a writable container layer
HcsFormatWritableLayerVhd Format a virtual disk for the use as a writable container layer
HcsGetLayerVhdMountPath Return the volume path for a virtual disk of a writable container layer