master
 1/**
 2 * This file has no copyright assigned and is placed in the Public Domain.
 3 * This file is part of the mingw-w64 runtime package.
 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 5 */
 6
 7#ifndef _HYPERV_COMPUTECORE_H_
 8#define _HYPERV_COMPUTECORE_H_
 9
10#include <apiset.h>
11#include <apisetcconv.h>
12#include <minwindef.h>
13#include <winapifamily.h>
14
15#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
16
17#include <computedefs.h>
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23HRESULT WINAPI HcsEnumerateComputeSystems (PCWSTR query, HCS_OPERATION operation);
24HRESULT WINAPI HcsEnumerateComputeSystemsInNamespace (PCWSTR idNamespace, PCWSTR query, HCS_OPERATION operation);
25HCS_OPERATION WINAPI HcsCreateOperation (const void *context, HCS_OPERATION_COMPLETION callback);
26HCS_OPERATION WINAPI HcsCreateOperationWithNotifications (HCS_OPERATION_OPTIONS eventTypes, const void *context, HCS_EVENT_CALLBACK callback);
27void WINAPI HcsCloseOperation (HCS_OPERATION operation);
28void* WINAPI HcsGetOperationContext (HCS_OPERATION operation);
29HRESULT WINAPI HcsSetOperationContext (HCS_OPERATION operation, const void *context);
30HCS_SYSTEM WINAPI HcsGetComputeSystemFromOperation (HCS_OPERATION operation);
31HCS_PROCESS WINAPI HcsGetProcessFromOperation (HCS_OPERATION operation);
32HCS_OPERATION_TYPE WINAPI HcsGetOperationType (HCS_OPERATION operation);
33UINT64 WINAPI HcsGetOperationId (HCS_OPERATION operation);
34HRESULT WINAPI HcsGetOperationResult (HCS_OPERATION operation, PWSTR *resultDocument);
35HRESULT WINAPI HcsGetOperationResultAndProcessInfo (HCS_OPERATION operation, HCS_PROCESS_INFORMATION *processInformation, PWSTR *resultDocument);
36HRESULT WINAPI HcsAddResourceToOperation (HCS_OPERATION operation, HCS_RESOURCE_TYPE type, PCWSTR uri, HANDLE handle);
37HRESULT WINAPI HcsGetProcessorCompatibilityFromSavedState (PCWSTR RuntimeFileName, PCWSTR *ProcessorFeaturesString);
38HRESULT WINAPI HcsWaitForOperationResult (HCS_OPERATION operation, DWORD timeoutMs, PWSTR *resultDocument);
39HRESULT WINAPI HcsWaitForOperationResultAndProcessInfo (HCS_OPERATION operation, DWORD timeoutMs, HCS_PROCESS_INFORMATION *processInformation, PWSTR *resultDocument);
40HRESULT WINAPI HcsSetOperationCallback (HCS_OPERATION operation, const void *context, HCS_OPERATION_COMPLETION callback);
41HRESULT WINAPI HcsCancelOperation (HCS_OPERATION operation);
42HRESULT WINAPI HcsGetOperationProperties (HCS_OPERATION operation, PCWSTR options, PWSTR *resultDocument);
43HRESULT WINAPI HcsCreateComputeSystem (PCWSTR id, PCWSTR configuration, HCS_OPERATION operation, const SECURITY_DESCRIPTOR *securityDescriptor, HCS_SYSTEM *computeSystem);
44HRESULT WINAPI HcsCreateComputeSystemInNamespace (PCWSTR idNamespace, PCWSTR id, PCWSTR configuration, HCS_OPERATION operation, const HCS_CREATE_OPTIONS *options, HCS_SYSTEM *computeSystem);
45HRESULT WINAPI HcsOpenComputeSystem (PCWSTR id, DWORD requestedAccess, HCS_SYSTEM *computeSystem);
46HRESULT WINAPI HcsOpenComputeSystemInNamespace (PCWSTR idNamespace, PCWSTR id, DWORD requestedAccess, HCS_SYSTEM *computeSystem);
47void WINAPI HcsCloseComputeSystem (HCS_SYSTEM computeSystem);
48HRESULT WINAPI HcsStartComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
49HRESULT WINAPI HcsShutDownComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
50HRESULT WINAPI HcsTerminateComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
51HRESULT WINAPI HcsCrashComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
52HRESULT WINAPI HcsPauseComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
53HRESULT WINAPI HcsResumeComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
54HRESULT WINAPI HcsSaveComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
55HRESULT WINAPI HcsGetComputeSystemProperties (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR propertyQuery);
56HRESULT WINAPI HcsModifyComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR configuration, HANDLE identity);
57HRESULT WINAPI HcsWaitForComputeSystemExit (HCS_SYSTEM computeSystem, DWORD timeoutMs, PWSTR *result);
58HRESULT WINAPI HcsSetComputeSystemCallback (HCS_SYSTEM computeSystem, HCS_EVENT_OPTIONS callbackOptions, const void *context, HCS_EVENT_CALLBACK callback);
59HRESULT WINAPI HcsInitializeLiveMigrationOnSource (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
60HRESULT WINAPI HcsStartLiveMigrationOnSource (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
61HRESULT WINAPI HcsStartLiveMigrationTransfer (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
62HRESULT WINAPI HcsFinalizeLiveMigration (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
63HRESULT WINAPI HcsCreateProcess (HCS_SYSTEM computeSystem, PCWSTR processParameters, HCS_OPERATION operation, const SECURITY_DESCRIPTOR *securityDescriptor, HCS_PROCESS *process);
64HRESULT WINAPI HcsOpenProcess (HCS_SYSTEM computeSystem, DWORD processId, DWORD requestedAccess, HCS_PROCESS *process);
65void WINAPI HcsCloseProcess (HCS_PROCESS process);
66HRESULT WINAPI HcsTerminateProcess (HCS_PROCESS process, HCS_OPERATION operation, PCWSTR options);
67HRESULT WINAPI HcsSignalProcess (HCS_PROCESS process, HCS_OPERATION operation, PCWSTR options);
68HRESULT WINAPI HcsGetProcessInfo (HCS_PROCESS process, HCS_OPERATION operation);
69HRESULT WINAPI HcsGetProcessProperties (HCS_PROCESS process, HCS_OPERATION operation, PCWSTR propertyQuery);
70HRESULT WINAPI HcsModifyProcess (HCS_PROCESS process, HCS_OPERATION operation, PCWSTR settings);
71HRESULT WINAPI HcsSetProcessCallback (HCS_PROCESS process, HCS_EVENT_OPTIONS callbackOptions, void *context, HCS_EVENT_CALLBACK callback);
72HRESULT WINAPI HcsWaitForProcessExit (HCS_PROCESS computeSystem, DWORD timeoutMs, PWSTR *result);
73HRESULT WINAPI HcsGetServiceProperties (PCWSTR propertyQuery, PWSTR *result);
74HRESULT WINAPI HcsModifyServiceSettings (PCWSTR settings, PWSTR *result);
75HRESULT WINAPI HcsSubmitWerReport (PCWSTR settings);
76HRESULT WINAPI HcsCreateEmptyGuestStateFile (PCWSTR guestStateFilePath);
77HRESULT WINAPI HcsCreateEmptyRuntimeStateFile (PCWSTR runtimeStateFilePath);
78HRESULT WINAPI HcsGrantVmAccess (PCWSTR vmId, PCWSTR filePath);
79HRESULT WINAPI HcsRevokeVmAccess (PCWSTR vmId, PCWSTR filePath);
80HRESULT WINAPI HcsGrantVmGroupAccess (PCWSTR filePath);
81HRESULT WINAPI HcsRevokeVmGroupAccess (PCWSTR filePath);
82
83#ifdef __cplusplus
84}
85#endif
86
87#endif /* WINAPI_PARTITION_DESKTOP */
88
89#endif /* _HYPERV_COMPUTECORE_H_ */