Host Service Samples
Get the properties of host service
Here takes the memory property in the service as the example.
static constexpr wchar_t c_ServicePropertyQuery[] = LR"(
{
"PropertyTypes": [
"Memory"
]
})";
wil::unique_hlocal_string resultDoc;
THROW_IF_FAILED(HcsGetServiceProperties(c_ServicePropertyQuery, &resultDoc));
std::wcout << L"Service property is " << resultDoc.get() << std::endl;
Modify the service settings
Here takes the CPUGroup property in the service as the example.
static constexpr wchar_t c_ServiceSettings[] = LR"(
{
"PropertyType": "CpuGroup",
"Settings": {
"Operation": "CreateGroup",
"OperationDetails": {
"GroupId": "GUID",
"LogicalProcessorCount": 2,
"LogicalProcessors": [0, 1]
}
}
})";
wil::unique_hlocal_string resultDoc;
HRESULT hr = HcsModifyServiceSettings(c_ServiceSettings, &resultDoc);
if (FAILED(hr))
{
std::wcout << resultDoc.get() << std::endl;
}
THROW_IF_FAILED(hr);
Submit Crash Report
// Assume you have a valid unique_hcs_system object
// to a newly created compute system.
// We set compute system callbacks to wait specifically
// for a crash system report.
THROW_IF_FAILED(HcsSetComputeSystemCallback(
system.get(), // system handle
nullptr, // context
[](HCS_EVENT* Event, void*)
{
if (Event->Type == HcsEventSystemCrashReport)
{
THROW_IF_FAILED(HcsSubmitWerReport(Event->EventData));
}
}));