...
1
2
3 package hcs
4
5 import (
6 "context"
7 "fmt"
8
9 "github.com/Microsoft/hcsshim/internal/hcs/resourcepaths"
10 hcsschema "github.com/Microsoft/hcsshim/internal/hcs/schema2"
11 "github.com/Microsoft/hcsshim/internal/protocol/guestrequest"
12 )
13
14 func (uvm *utilityVM) AddDevice(ctx context.Context, instanceID, vmbusGUID string) error {
15 request := &hcsschema.ModifySettingRequest{
16 ResourcePath: fmt.Sprintf(resourcepaths.VirtualPCIResourceFormat, vmbusGUID),
17 RequestType: guestrequest.RequestTypeAdd,
18 Settings: hcsschema.VirtualPciDevice{
19 Functions: []hcsschema.VirtualPciFunction{
20 {
21 DeviceInstancePath: instanceID,
22 },
23 },
24 },
25 }
26 return uvm.cs.Modify(ctx, request)
27 }
28
29 func (uvm *utilityVM) RemoveDevice(ctx context.Context, instanceID, vmbusGUID string) error {
30 request := &hcsschema.ModifySettingRequest{
31 ResourcePath: fmt.Sprintf(resourcepaths.VirtualPCIResourceFormat, vmbusGUID),
32 RequestType: guestrequest.RequestTypeRemove,
33 }
34 return uvm.cs.Modify(ctx, request)
35 }
36
View as plain text