HcsModifyComputeSystem
Description
Modifies settings of a compute system, see sample code for simple example.
Syntax
HRESULT WINAPI
HcsModifyComputeSystem(
_In_ HCS_SYSTEM computeSystem,
_In_ HCS_OPERATION operation,
_In_ PCWSTR configuration,
_In_opt_ HANDLE identity
);
Parameters
computeSystem
Handle the compute system to modify.
operation
Handle to the operation that tracks the modify operation.
configuration
JSON document of ModifySettingRequest specifying the settings to modify.
identity
Optional handle to an access token that is used when applying the settings.
Return Values
The function returns HRESULT.
If the return value is S_OK
, it means the operation started successfully. Callers are expected to get the operation's result using HcsWaitForOperationResult
or HcsGetOperationResult
.
Operation Results
The return value of HcsWaitForOperationResult
or HcsGetOperationResult
based on current operation listed as below.
Operation Result Value | Description |
---|---|
S_OK |
The compute system was modified successfully |
Remarks
The ModifySettingRequest JSON document has a property called "Settings"
of type Any
. In JSON, Any
means an arbitrary object with no restrictions. Refer to the following table to know what JSON type HCS expects for each "ResourcePath"
.
"ResourcePath" |
"Settings" Type |
Valid "RequestType" in ModifyRequestType |
---|---|---|
L"VirtualMachine/ComputeTopology/Processor/CpuGroup" | CpuGroup | No Limit |
L"VirtualMachine/ComputeTopology/Processor/IdledProcessors" | IdleProcessorsRequest | Only "Update" |
L"VirtualMachine/ComputeTopology/Processor/CpuFrequencyPowerCap" | ULONG | No Limit |
L"VirtualMachine/Devices/FlexibleIov/<Identifier> "Identifier is expected as uniq name to represent the flexible IOV device |
FlexibleIoDevice | Only "Add" |
L"VirtualMachine/ComputeTopology/Gpu" | GpuConfiguration | Only "Update" |
L"VirtualMachine/Devices/MappedPipes/<Identifier> "Identifier is expected as uniq name to represent the host named pipe to be mapped |
Settings should be empty |
"Add" or "Remove" |
L"VirtualMachine/ComputeTopology/Memory/SizeInMB" | UINT64, meaning new memory size in MB | No Limit |
L"VirtualMachine/Devices/NetworkAdapters/<Identifier >"Identifier is expected as uniq name to represent the network adapter |
NetworkAdapter | No Limit |
L"VirtualMachine/Devices/Plan9/Shares" | Plan9Share | No Limit |
L"VirtualMachine/Devices/Scsi/<Identifier> /Attachments/<UnsignedInt> "Identifier is expected as uniq name to represent the scsi device; UnsignedInt is expected as the unsigned int value to represent the lun of the disk |
Attachment | No LimitSettings is ignored when type is "Remove" |
L"VirtualMachine/Devices/ComPorts/<UnsignedInt> "UnsignedInt is expected to represent the serial ID which is not larger than 1 |
comPort | No Limit(check c_SerialResourceRegex???) |
L"VirtualMachine/Devices/SharedMemory/Regions" | SharedMemoryRegion | No Limit |
L"VirtualMachine/Devices/VirtualPMem/Devices/<UnsignedInt> "UnsignedInt is expected to represent the number identifier of the VPMEM device |
VirtualPMemDevice | "Add" or "Remove"Settings is ignored when type is "Remove" |
L"VirtualMachine/Devices/VirtualPMem/Devices/<UnsignedInt> /Mappings/<UnsignedInt> "First UnsignedInt is expected to represent the number identifier of the VPMEM device; Second UnsignedInt is expected to represent the offset indicating which Mapping to modify |
VirtualPMemMapping | "Add" or "Remove"Settings is ignored when type is "Remove" |
L"VirtualMachine/Devices/VirtualSmb/Shares" | VirtualSmbShare | No Limit |
L"VirtualMachine/Devices/VirtualPci/" + c_Identifier | VirtualPciDevice | "Add" or "Remove"Settings is ignored when type is "Remove" |
Requirements
Parameter | Description |
---|---|
Minimum supported client | Windows 10, version 1809 |
Minimum supported server | Windows Server 2019 |
Target Platform | Windows |
Header | ComputeCore.h |
Library | ComputeCore.lib |
Dll | ComputeCore.dll |