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 |