Update hcsshim tag to v0.10.0-rc.4
Signed-off-by: Kirtana Ashok <Kirtana.Ashok@microsoft.com>
This commit is contained in:
		
							
								
								
									
										47
									
								
								vendor/github.com/Microsoft/hcsshim/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										47
									
								
								vendor/github.com/Microsoft/hcsshim/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,24 +1,51 @@
 | 
			
		||||
run:
 | 
			
		||||
  timeout: 8m
 | 
			
		||||
  tests: true
 | 
			
		||||
  build-tags:
 | 
			
		||||
    - admin
 | 
			
		||||
    - functional
 | 
			
		||||
    - integration
 | 
			
		||||
  skip-dirs:
 | 
			
		||||
    # paths are relative to module root
 | 
			
		||||
    - cri-containerd/test-images
 | 
			
		||||
 | 
			
		||||
linters:
 | 
			
		||||
  enable:
 | 
			
		||||
    - gofmt
 | 
			
		||||
    - stylecheck
 | 
			
		||||
    # defaults:
 | 
			
		||||
    # - errcheck
 | 
			
		||||
    # - gosimple
 | 
			
		||||
    # - govet
 | 
			
		||||
    # - ineffassign
 | 
			
		||||
    # - staticcheck
 | 
			
		||||
    # - typecheck
 | 
			
		||||
    # - unused
 | 
			
		||||
 | 
			
		||||
    - gofmt # whether code was gofmt-ed
 | 
			
		||||
    - nolintlint # ill-formed or insufficient nolint directives
 | 
			
		||||
    - stylecheck # golint replacement
 | 
			
		||||
    - thelper #  test helpers without t.Helper()
 | 
			
		||||
 | 
			
		||||
linters-settings:
 | 
			
		||||
  stylecheck:
 | 
			
		||||
    # https://staticcheck.io/docs/checks
 | 
			
		||||
    checks: ["all"]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
issues:
 | 
			
		||||
  # This repo has a LOT of generated schema files, operating system bindings, and other things that ST1003 from stylecheck won't like
 | 
			
		||||
  # (screaming case Windows api constants for example). There's also some structs that we *could* change the initialisms to be Go
 | 
			
		||||
  # friendly (Id -> ID) but they're exported and it would be a breaking change. This makes it so that most new code, code that isn't
 | 
			
		||||
  # supposed to be a pretty faithful mapping to an OS call/constants, or non-generated code still checks if we're following idioms,
 | 
			
		||||
  # while ignoring the things that are just noise or would be more of a hassle than it'd be worth to change.
 | 
			
		||||
  exclude-rules:
 | 
			
		||||
    # path is relative to module root, which is ./test/
 | 
			
		||||
    - path: cri-containerd
 | 
			
		||||
      linters:
 | 
			
		||||
        - stylecheck
 | 
			
		||||
      text: "^ST1003: should not use underscores in package names$"
 | 
			
		||||
      source: "^package cri_containerd$"
 | 
			
		||||
 | 
			
		||||
    # This repo has a LOT of generated schema files, operating system bindings, and other
 | 
			
		||||
    # things that ST1003 from stylecheck won't like (screaming case Windows api constants for example).
 | 
			
		||||
    # There's also some structs that we *could* change the initialisms to be Go friendly
 | 
			
		||||
    # (Id -> ID) but they're exported and it would be a breaking change.
 | 
			
		||||
    # This makes it so that most new code, code that isn't supposed to be a pretty faithful
 | 
			
		||||
    # mapping to an OS call/constants, or non-generated code still checks if we're following idioms,
 | 
			
		||||
    # while ignoring the things that are just noise or would be more of a hassle than it'd be worth to change.
 | 
			
		||||
    - path: layer.go
 | 
			
		||||
      linters:
 | 
			
		||||
        - stylecheck
 | 
			
		||||
@@ -42,7 +69,7 @@ issues:
 | 
			
		||||
    - path: internal\\hcs\\schema2\\
 | 
			
		||||
      linters:
 | 
			
		||||
        - stylecheck
 | 
			
		||||
      Text: "ST1003:"
 | 
			
		||||
        - gofmt
 | 
			
		||||
 | 
			
		||||
    - path: internal\\wclayer\\
 | 
			
		||||
      linters:
 | 
			
		||||
@@ -107,4 +134,4 @@ issues:
 | 
			
		||||
    - path: internal\\hcserror\\
 | 
			
		||||
      linters:
 | 
			
		||||
        - stylecheck
 | 
			
		||||
      Text: "ST1003:"
 | 
			
		||||
      Text: "ST1003:"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/Microsoft/hcsshim/Makefile
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/Microsoft/hcsshim/Makefile
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -13,6 +13,10 @@ GO_FLAGS_EXTRA:=
 | 
			
		||||
ifeq "$(GOMODVENDOR)" "1"
 | 
			
		||||
GO_FLAGS_EXTRA += -mod=vendor
 | 
			
		||||
endif
 | 
			
		||||
GO_BUILD_TAGS:=
 | 
			
		||||
ifneq ($(strip $(GO_BUILD_TAGS)),)
 | 
			
		||||
GO_FLAGS_EXTRA += -tags="$(GO_BUILD_TAGS)"
 | 
			
		||||
endif
 | 
			
		||||
GO_BUILD:=CGO_ENABLED=$(CGO_ENABLED) $(GO) build $(GO_FLAGS) $(GO_FLAGS_EXTRA)
 | 
			
		||||
 | 
			
		||||
SRCROOT=$(dir $(abspath $(firstword $(MAKEFILE_LIST))))
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/computestorage/storage.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/computestorage/storage.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,7 +7,7 @@ import (
 | 
			
		||||
	hcsschema "github.com/Microsoft/hcsshim/internal/hcs/schema2"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//go:generate go run ../mksyscall_windows.go -output zsyscall_windows.go storage.go
 | 
			
		||||
//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go storage.go
 | 
			
		||||
 | 
			
		||||
//sys hcsImportLayer(layerPath string, sourceFolderPath string, layerData string) (hr error) = computestorage.HcsImportLayer?
 | 
			
		||||
//sys hcsExportLayer(layerPath string, exportFolderPath string, layerData string, options string) (hr error) = computestorage.HcsExportLayer?
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										205
									
								
								vendor/github.com/Microsoft/hcsshim/computestorage/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										205
									
								
								vendor/github.com/Microsoft/hcsshim/computestorage/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,6 @@
 | 
			
		||||
// Code generated mksyscall_windows.exe DO NOT EDIT
 | 
			
		||||
//go:build windows
 | 
			
		||||
 | 
			
		||||
// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
 | 
			
		||||
 | 
			
		||||
package computestorage
 | 
			
		||||
 | 
			
		||||
@@ -19,6 +21,7 @@ const (
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
 | 
			
		||||
	errERROR_EINVAL     error = syscall.EINVAL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// errnoErr returns common boxed Errno values, to prevent
 | 
			
		||||
@@ -26,7 +29,7 @@ var (
 | 
			
		||||
func errnoErr(e syscall.Errno) error {
 | 
			
		||||
	switch e {
 | 
			
		||||
	case 0:
 | 
			
		||||
		return nil
 | 
			
		||||
		return errERROR_EINVAL
 | 
			
		||||
	case errnoERROR_IO_PENDING:
 | 
			
		||||
		return errERROR_IO_PENDING
 | 
			
		||||
	}
 | 
			
		||||
@@ -39,42 +42,86 @@ func errnoErr(e syscall.Errno) error {
 | 
			
		||||
var (
 | 
			
		||||
	modcomputestorage = windows.NewLazySystemDLL("computestorage.dll")
 | 
			
		||||
 | 
			
		||||
	procHcsImportLayer              = modcomputestorage.NewProc("HcsImportLayer")
 | 
			
		||||
	procHcsExportLayer              = modcomputestorage.NewProc("HcsExportLayer")
 | 
			
		||||
	procHcsDestoryLayer             = modcomputestorage.NewProc("HcsDestoryLayer")
 | 
			
		||||
	procHcsSetupBaseOSLayer         = modcomputestorage.NewProc("HcsSetupBaseOSLayer")
 | 
			
		||||
	procHcsInitializeWritableLayer  = modcomputestorage.NewProc("HcsInitializeWritableLayer")
 | 
			
		||||
	procHcsAttachLayerStorageFilter = modcomputestorage.NewProc("HcsAttachLayerStorageFilter")
 | 
			
		||||
	procHcsDestoryLayer             = modcomputestorage.NewProc("HcsDestoryLayer")
 | 
			
		||||
	procHcsDetachLayerStorageFilter = modcomputestorage.NewProc("HcsDetachLayerStorageFilter")
 | 
			
		||||
	procHcsExportLayer              = modcomputestorage.NewProc("HcsExportLayer")
 | 
			
		||||
	procHcsFormatWritableLayerVhd   = modcomputestorage.NewProc("HcsFormatWritableLayerVhd")
 | 
			
		||||
	procHcsGetLayerVhdMountPath     = modcomputestorage.NewProc("HcsGetLayerVhdMountPath")
 | 
			
		||||
	procHcsImportLayer              = modcomputestorage.NewProc("HcsImportLayer")
 | 
			
		||||
	procHcsInitializeWritableLayer  = modcomputestorage.NewProc("HcsInitializeWritableLayer")
 | 
			
		||||
	procHcsSetupBaseOSLayer         = modcomputestorage.NewProc("HcsSetupBaseOSLayer")
 | 
			
		||||
	procHcsSetupBaseOSVolume        = modcomputestorage.NewProc("HcsSetupBaseOSVolume")
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func hcsImportLayer(layerPath string, sourceFolderPath string, layerData string) (hr error) {
 | 
			
		||||
func hcsAttachLayerStorageFilter(layerPath string, layerData string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(layerPath)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	var _p1 *uint16
 | 
			
		||||
	_p1, hr = syscall.UTF16PtrFromString(sourceFolderPath)
 | 
			
		||||
	_p1, hr = syscall.UTF16PtrFromString(layerData)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	var _p2 *uint16
 | 
			
		||||
	_p2, hr = syscall.UTF16PtrFromString(layerData)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsImportLayer(_p0, _p1, _p2)
 | 
			
		||||
	return _hcsAttachLayerStorageFilter(_p0, _p1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsImportLayer(layerPath *uint16, sourceFolderPath *uint16, layerData *uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsImportLayer.Find(); hr != nil {
 | 
			
		||||
func _hcsAttachLayerStorageFilter(layerPath *uint16, layerData *uint16) (hr error) {
 | 
			
		||||
	hr = procHcsAttachLayerStorageFilter.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsImportLayer.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(sourceFolderPath)), uintptr(unsafe.Pointer(layerData)))
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsAttachLayerStorageFilter.Addr(), 2, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(layerData)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsDestroyLayer(layerPath string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(layerPath)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsDestroyLayer(_p0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsDestroyLayer(layerPath *uint16) (hr error) {
 | 
			
		||||
	hr = procHcsDestoryLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsDestoryLayer.Addr(), 1, uintptr(unsafe.Pointer(layerPath)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsDetachLayerStorageFilter(layerPath string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(layerPath)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsDetachLayerStorageFilter(_p0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsDetachLayerStorageFilter(layerPath *uint16) (hr error) {
 | 
			
		||||
	hr = procHcsDetachLayerStorageFilter.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsDetachLayerStorageFilter.Addr(), 1, uintptr(unsafe.Pointer(layerPath)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
@@ -109,7 +156,8 @@ func hcsExportLayer(layerPath string, exportFolderPath string, layerData string,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsExportLayer(layerPath *uint16, exportFolderPath *uint16, layerData *uint16, options *uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsExportLayer.Find(); hr != nil {
 | 
			
		||||
	hr = procHcsExportLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procHcsExportLayer.Addr(), 4, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(exportFolderPath)), uintptr(unsafe.Pointer(layerData)), uintptr(unsafe.Pointer(options)), 0, 0)
 | 
			
		||||
@@ -122,20 +170,12 @@ func _hcsExportLayer(layerPath *uint16, exportFolderPath *uint16, layerData *uin
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsDestroyLayer(layerPath string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(layerPath)
 | 
			
		||||
func hcsFormatWritableLayerVhd(handle windows.Handle) (hr error) {
 | 
			
		||||
	hr = procHcsFormatWritableLayerVhd.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsDestroyLayer(_p0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsDestroyLayer(layerPath *uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsDestoryLayer.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsDestoryLayer.Addr(), 1, uintptr(unsafe.Pointer(layerPath)), 0, 0)
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsFormatWritableLayerVhd.Addr(), 1, uintptr(handle), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
@@ -145,25 +185,46 @@ func _hcsDestroyLayer(layerPath *uint16) (hr error) {
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsSetupBaseOSLayer(layerPath string, handle windows.Handle, options string) (hr error) {
 | 
			
		||||
func hcsGetLayerVhdMountPath(vhdHandle windows.Handle, mountPath **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsGetLayerVhdMountPath.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsGetLayerVhdMountPath.Addr(), 2, uintptr(vhdHandle), uintptr(unsafe.Pointer(mountPath)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsImportLayer(layerPath string, sourceFolderPath string, layerData string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(layerPath)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	var _p1 *uint16
 | 
			
		||||
	_p1, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	_p1, hr = syscall.UTF16PtrFromString(sourceFolderPath)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsSetupBaseOSLayer(_p0, handle, _p1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsSetupBaseOSLayer(layerPath *uint16, handle windows.Handle, options *uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsSetupBaseOSLayer.Find(); hr != nil {
 | 
			
		||||
	var _p2 *uint16
 | 
			
		||||
	_p2, hr = syscall.UTF16PtrFromString(layerData)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsSetupBaseOSLayer.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(handle), uintptr(unsafe.Pointer(options)))
 | 
			
		||||
	return _hcsImportLayer(_p0, _p1, _p2)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsImportLayer(layerPath *uint16, sourceFolderPath *uint16, layerData *uint16) (hr error) {
 | 
			
		||||
	hr = procHcsImportLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsImportLayer.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(sourceFolderPath)), uintptr(unsafe.Pointer(layerData)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
@@ -193,7 +254,8 @@ func hcsInitializeWritableLayer(writableLayerPath string, layerData string, opti
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsInitializeWritableLayer(writableLayerPath *uint16, layerData *uint16, options *uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsInitializeWritableLayer.Find(); hr != nil {
 | 
			
		||||
	hr = procHcsInitializeWritableLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsInitializeWritableLayer.Addr(), 3, uintptr(unsafe.Pointer(writableLayerPath)), uintptr(unsafe.Pointer(layerData)), uintptr(unsafe.Pointer(options)))
 | 
			
		||||
@@ -206,76 +268,26 @@ func _hcsInitializeWritableLayer(writableLayerPath *uint16, layerData *uint16, o
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsAttachLayerStorageFilter(layerPath string, layerData string) (hr error) {
 | 
			
		||||
func hcsSetupBaseOSLayer(layerPath string, handle windows.Handle, options string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(layerPath)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	var _p1 *uint16
 | 
			
		||||
	_p1, hr = syscall.UTF16PtrFromString(layerData)
 | 
			
		||||
	_p1, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsAttachLayerStorageFilter(_p0, _p1)
 | 
			
		||||
	return _hcsSetupBaseOSLayer(_p0, handle, _p1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsAttachLayerStorageFilter(layerPath *uint16, layerData *uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsAttachLayerStorageFilter.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsAttachLayerStorageFilter.Addr(), 2, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(layerData)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsDetachLayerStorageFilter(layerPath string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(layerPath)
 | 
			
		||||
func _hcsSetupBaseOSLayer(layerPath *uint16, handle windows.Handle, options *uint16) (hr error) {
 | 
			
		||||
	hr = procHcsSetupBaseOSLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsDetachLayerStorageFilter(_p0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsDetachLayerStorageFilter(layerPath *uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsDetachLayerStorageFilter.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsDetachLayerStorageFilter.Addr(), 1, uintptr(unsafe.Pointer(layerPath)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsFormatWritableLayerVhd(handle windows.Handle) (hr error) {
 | 
			
		||||
	if hr = procHcsFormatWritableLayerVhd.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsFormatWritableLayerVhd.Addr(), 1, uintptr(handle), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsGetLayerVhdMountPath(vhdHandle windows.Handle, mountPath **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsGetLayerVhdMountPath.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsGetLayerVhdMountPath.Addr(), 2, uintptr(vhdHandle), uintptr(unsafe.Pointer(mountPath)), 0)
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsSetupBaseOSLayer.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(handle), uintptr(unsafe.Pointer(options)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
@@ -305,7 +317,8 @@ func hcsSetupBaseOSVolume(layerPath string, volumePath string, options string) (
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsSetupBaseOSVolume(layerPath *uint16, volumePath *uint16, options *uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsSetupBaseOSVolume.Find(); hr != nil {
 | 
			
		||||
	hr = procHcsSetupBaseOSVolume.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsSetupBaseOSVolume.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(volumePath)), uintptr(unsafe.Pointer(options)))
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/Microsoft/hcsshim/ext4/tar2ext4/tar2ext4.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/Microsoft/hcsshim/ext4/tar2ext4/tar2ext4.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,9 +5,7 @@ import (
 | 
			
		||||
	"bufio"
 | 
			
		||||
	"encoding/binary"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"github.com/pkg/errors"
 | 
			
		||||
	"io"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path"
 | 
			
		||||
	"strings"
 | 
			
		||||
@@ -15,6 +13,7 @@ import (
 | 
			
		||||
	"github.com/Microsoft/hcsshim/ext4/dmverity"
 | 
			
		||||
	"github.com/Microsoft/hcsshim/ext4/internal/compactext4"
 | 
			
		||||
	"github.com/Microsoft/hcsshim/ext4/internal/format"
 | 
			
		||||
	"github.com/pkg/errors"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type params struct {
 | 
			
		||||
@@ -243,7 +242,7 @@ func ReadExt4SuperBlock(vhdPath string) (*format.SuperBlock, error) {
 | 
			
		||||
// merkle tree root digest. Convert is called with minimal options: ConvertWhiteout and MaximumDiskSize
 | 
			
		||||
// set to dmverity.RecommendedVHDSizeGB.
 | 
			
		||||
func ConvertAndComputeRootDigest(r io.Reader) (string, error) {
 | 
			
		||||
	out, err := ioutil.TempFile("", "")
 | 
			
		||||
	out, err := os.CreateTemp("", "")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return "", fmt.Errorf("failed to create temporary file: %s", err)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/hcn.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/hcn.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -10,7 +10,7 @@ import (
 | 
			
		||||
	"github.com/Microsoft/go-winio/pkg/guid"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//go:generate go run ../mksyscall_windows.go -output zsyscall_windows.go hcn.go
 | 
			
		||||
//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go hcn.go
 | 
			
		||||
 | 
			
		||||
/// HNS V1 API
 | 
			
		||||
 | 
			
		||||
@@ -228,7 +228,7 @@ func IPv6DualStackSupported() error {
 | 
			
		||||
	return platformDoesNotSupportError("IPv6 DualStack")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//L4proxySupported returns an error if the HCN version does not support L4Proxy
 | 
			
		||||
// L4proxySupported returns an error if the HCN version does not support L4Proxy
 | 
			
		||||
func L4proxyPolicySupported() error {
 | 
			
		||||
	supported, err := GetCachedSupportedFeatures()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										62
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/hcnendpoint.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										62
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/hcnendpoint.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -72,14 +72,14 @@ type PolicyEndpointRequest struct {
 | 
			
		||||
	Policies []EndpointPolicy `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getEndpoint(endpointGuid guid.GUID, query string) (*HostComputeEndpoint, error) {
 | 
			
		||||
func getEndpoint(endpointGUID guid.GUID, query string) (*HostComputeEndpoint, error) {
 | 
			
		||||
	// Open endpoint.
 | 
			
		||||
	var (
 | 
			
		||||
		endpointHandle   hcnEndpoint
 | 
			
		||||
		resultBuffer     *uint16
 | 
			
		||||
		propertiesBuffer *uint16
 | 
			
		||||
	)
 | 
			
		||||
	hr := hcnOpenEndpoint(&endpointGuid, &endpointHandle, &resultBuffer)
 | 
			
		||||
	hr := hcnOpenEndpoint(&endpointGUID, &endpointHandle, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnOpenEndpoint", hr, resultBuffer); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -121,8 +121,8 @@ func enumerateEndpoints(query string) ([]HostComputeEndpoint, error) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var outputEndpoints []HostComputeEndpoint
 | 
			
		||||
	for _, endpointGuid := range endpointIds {
 | 
			
		||||
		endpoint, err := getEndpoint(endpointGuid, query)
 | 
			
		||||
	for _, endpointGUID := range endpointIds {
 | 
			
		||||
		endpoint, err := getEndpoint(endpointGUID, query)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
@@ -131,22 +131,22 @@ func enumerateEndpoints(query string) ([]HostComputeEndpoint, error) {
 | 
			
		||||
	return outputEndpoints, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func createEndpoint(networkId string, endpointSettings string) (*HostComputeEndpoint, error) {
 | 
			
		||||
	networkGuid, err := guid.FromString(networkId)
 | 
			
		||||
func createEndpoint(networkID string, endpointSettings string) (*HostComputeEndpoint, error) {
 | 
			
		||||
	networkGUID, err := guid.FromString(networkID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, errInvalidNetworkID
 | 
			
		||||
	}
 | 
			
		||||
	// Open network.
 | 
			
		||||
	var networkHandle hcnNetwork
 | 
			
		||||
	var resultBuffer *uint16
 | 
			
		||||
	hr := hcnOpenNetwork(&networkGuid, &networkHandle, &resultBuffer)
 | 
			
		||||
	hr := hcnOpenNetwork(&networkGUID, &networkHandle, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnOpenNetwork", hr, resultBuffer); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	// Create endpoint.
 | 
			
		||||
	endpointId := guid.GUID{}
 | 
			
		||||
	endpointID := guid.GUID{}
 | 
			
		||||
	var endpointHandle hcnEndpoint
 | 
			
		||||
	hr = hcnCreateEndpoint(networkHandle, &endpointId, endpointSettings, &endpointHandle, &resultBuffer)
 | 
			
		||||
	hr = hcnCreateEndpoint(networkHandle, &endpointID, endpointSettings, &endpointHandle, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnCreateEndpoint", hr, resultBuffer); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -180,8 +180,8 @@ func createEndpoint(networkId string, endpointSettings string) (*HostComputeEndp
 | 
			
		||||
	return &outputEndpoint, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func modifyEndpoint(endpointId string, settings string) (*HostComputeEndpoint, error) {
 | 
			
		||||
	endpointGuid, err := guid.FromString(endpointId)
 | 
			
		||||
func modifyEndpoint(endpointID string, settings string) (*HostComputeEndpoint, error) {
 | 
			
		||||
	endpointGUID, err := guid.FromString(endpointID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, errInvalidEndpointID
 | 
			
		||||
	}
 | 
			
		||||
@@ -191,7 +191,7 @@ func modifyEndpoint(endpointId string, settings string) (*HostComputeEndpoint, e
 | 
			
		||||
		resultBuffer     *uint16
 | 
			
		||||
		propertiesBuffer *uint16
 | 
			
		||||
	)
 | 
			
		||||
	hr := hcnOpenEndpoint(&endpointGuid, &endpointHandle, &resultBuffer)
 | 
			
		||||
	hr := hcnOpenEndpoint(&endpointGUID, &endpointHandle, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnOpenEndpoint", hr, resultBuffer); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -224,13 +224,13 @@ func modifyEndpoint(endpointId string, settings string) (*HostComputeEndpoint, e
 | 
			
		||||
	return &outputEndpoint, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func deleteEndpoint(endpointId string) error {
 | 
			
		||||
	endpointGuid, err := guid.FromString(endpointId)
 | 
			
		||||
func deleteEndpoint(endpointID string) error {
 | 
			
		||||
	endpointGUID, err := guid.FromString(endpointID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return errInvalidEndpointID
 | 
			
		||||
	}
 | 
			
		||||
	var resultBuffer *uint16
 | 
			
		||||
	hr := hcnDeleteEndpoint(&endpointGuid, &resultBuffer)
 | 
			
		||||
	hr := hcnDeleteEndpoint(&endpointGUID, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnDeleteEndpoint", hr, resultBuffer); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
@@ -249,12 +249,12 @@ func ListEndpoints() ([]HostComputeEndpoint, error) {
 | 
			
		||||
 | 
			
		||||
// ListEndpointsQuery makes a call to query the list of available endpoints.
 | 
			
		||||
func ListEndpointsQuery(query HostComputeQuery) ([]HostComputeEndpoint, error) {
 | 
			
		||||
	queryJson, err := json.Marshal(query)
 | 
			
		||||
	queryJSON, err := json.Marshal(query)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	endpoints, err := enumerateEndpoints(string(queryJson))
 | 
			
		||||
	endpoints, err := enumerateEndpoints(string(queryJSON))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -262,10 +262,10 @@ func ListEndpointsQuery(query HostComputeQuery) ([]HostComputeEndpoint, error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ListEndpointsOfNetwork queries the list of endpoints on a network.
 | 
			
		||||
func ListEndpointsOfNetwork(networkId string) ([]HostComputeEndpoint, error) {
 | 
			
		||||
func ListEndpointsOfNetwork(networkID string) ([]HostComputeEndpoint, error) {
 | 
			
		||||
	hcnQuery := defaultQuery()
 | 
			
		||||
	// TODO: Once query can convert schema, change to {HostComputeNetwork:networkId}
 | 
			
		||||
	mapA := map[string]string{"VirtualNetwork": networkId}
 | 
			
		||||
	mapA := map[string]string{"VirtualNetwork": networkID}
 | 
			
		||||
	filter, err := json.Marshal(mapA)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
@@ -276,9 +276,9 @@ func ListEndpointsOfNetwork(networkId string) ([]HostComputeEndpoint, error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetEndpointByID returns an endpoint specified by Id
 | 
			
		||||
func GetEndpointByID(endpointId string) (*HostComputeEndpoint, error) {
 | 
			
		||||
func GetEndpointByID(endpointID string) (*HostComputeEndpoint, error) {
 | 
			
		||||
	hcnQuery := defaultQuery()
 | 
			
		||||
	mapA := map[string]string{"ID": endpointId}
 | 
			
		||||
	mapA := map[string]string{"ID": endpointID}
 | 
			
		||||
	filter, err := json.Marshal(mapA)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
@@ -290,7 +290,7 @@ func GetEndpointByID(endpointId string) (*HostComputeEndpoint, error) {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if len(endpoints) == 0 {
 | 
			
		||||
		return nil, EndpointNotFoundError{EndpointID: endpointId}
 | 
			
		||||
		return nil, EndpointNotFoundError{EndpointID: endpointID}
 | 
			
		||||
	}
 | 
			
		||||
	return &endpoints[0], err
 | 
			
		||||
}
 | 
			
		||||
@@ -347,15 +347,15 @@ func (endpoint *HostComputeEndpoint) Delete() error {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ModifyEndpointSettings updates the Port/Policy of an Endpoint.
 | 
			
		||||
func ModifyEndpointSettings(endpointId string, request *ModifyEndpointSettingRequest) error {
 | 
			
		||||
	logrus.Debugf("hcn::HostComputeEndpoint::ModifyEndpointSettings id=%s", endpointId)
 | 
			
		||||
func ModifyEndpointSettings(endpointID string, request *ModifyEndpointSettingRequest) error {
 | 
			
		||||
	logrus.Debugf("hcn::HostComputeEndpoint::ModifyEndpointSettings id=%s", endpointID)
 | 
			
		||||
 | 
			
		||||
	endpointSettingsRequest, err := json.Marshal(request)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_, err = modifyEndpoint(endpointId, string(endpointSettingsRequest))
 | 
			
		||||
	_, err = modifyEndpoint(endpointID, string(endpointSettingsRequest))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
@@ -366,25 +366,25 @@ func ModifyEndpointSettings(endpointId string, request *ModifyEndpointSettingReq
 | 
			
		||||
func (endpoint *HostComputeEndpoint) ApplyPolicy(requestType RequestType, endpointPolicy PolicyEndpointRequest) error {
 | 
			
		||||
	logrus.Debugf("hcn::HostComputeEndpoint::ApplyPolicy id=%s", endpoint.Id)
 | 
			
		||||
 | 
			
		||||
	settingsJson, err := json.Marshal(endpointPolicy)
 | 
			
		||||
	settingsJSON, err := json.Marshal(endpointPolicy)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	requestMessage := &ModifyEndpointSettingRequest{
 | 
			
		||||
		ResourceType: EndpointResourceTypePolicy,
 | 
			
		||||
		RequestType:  requestType,
 | 
			
		||||
		Settings:     settingsJson,
 | 
			
		||||
		Settings:     settingsJSON,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return ModifyEndpointSettings(endpoint.Id, requestMessage)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NamespaceAttach modifies a Namespace to add an endpoint.
 | 
			
		||||
func (endpoint *HostComputeEndpoint) NamespaceAttach(namespaceId string) error {
 | 
			
		||||
	return AddNamespaceEndpoint(namespaceId, endpoint.Id)
 | 
			
		||||
func (endpoint *HostComputeEndpoint) NamespaceAttach(namespaceID string) error {
 | 
			
		||||
	return AddNamespaceEndpoint(namespaceID, endpoint.Id)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NamespaceDetach modifies a Namespace to remove an endpoint.
 | 
			
		||||
func (endpoint *HostComputeEndpoint) NamespaceDetach(namespaceId string) error {
 | 
			
		||||
	return RemoveNamespaceEndpoint(namespaceId, endpoint.Id)
 | 
			
		||||
func (endpoint *HostComputeEndpoint) NamespaceDetach(namespaceID string) error {
 | 
			
		||||
	return RemoveNamespaceEndpoint(namespaceID, endpoint.Id)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/hcnerrors.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/hcnerrors.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -10,6 +10,7 @@ import (
 | 
			
		||||
	"github.com/Microsoft/hcsshim/internal/hcserror"
 | 
			
		||||
	"github.com/Microsoft/hcsshim/internal/interop"
 | 
			
		||||
	"github.com/sirupsen/logrus"
 | 
			
		||||
	"golang.org/x/sys/windows"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
@@ -48,8 +49,8 @@ type ErrorCode uint32
 | 
			
		||||
 | 
			
		||||
// For common errors, define the error as it is in windows, so we can quickly determine it later
 | 
			
		||||
const (
 | 
			
		||||
	ERROR_NOT_FOUND                     = 0x490
 | 
			
		||||
	HCN_E_PORT_ALREADY_EXISTS ErrorCode = 0x803b0013
 | 
			
		||||
	ERROR_NOT_FOUND                     = ErrorCode(windows.ERROR_NOT_FOUND)
 | 
			
		||||
	HCN_E_PORT_ALREADY_EXISTS ErrorCode = ErrorCode(windows.HCN_E_PORT_ALREADY_EXISTS)
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type HcnError struct {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										30
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/hcnloadbalancer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/hcnloadbalancer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -30,7 +30,7 @@ type HostComputeLoadBalancer struct {
 | 
			
		||||
	Flags                LoadBalancerFlags         `json:",omitempty"` // 0: None, 1: EnableDirectServerReturn
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//LoadBalancerFlags modify settings for a loadbalancer.
 | 
			
		||||
// LoadBalancerFlags modify settings for a loadbalancer.
 | 
			
		||||
type LoadBalancerFlags uint32
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
@@ -69,14 +69,14 @@ var (
 | 
			
		||||
	LoadBalancerDistributionSourceIP LoadBalancerDistribution = 2
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func getLoadBalancer(loadBalancerGuid guid.GUID, query string) (*HostComputeLoadBalancer, error) {
 | 
			
		||||
func getLoadBalancer(loadBalancerGUID guid.GUID, query string) (*HostComputeLoadBalancer, error) {
 | 
			
		||||
	// Open loadBalancer.
 | 
			
		||||
	var (
 | 
			
		||||
		loadBalancerHandle hcnLoadBalancer
 | 
			
		||||
		resultBuffer       *uint16
 | 
			
		||||
		propertiesBuffer   *uint16
 | 
			
		||||
	)
 | 
			
		||||
	hr := hcnOpenLoadBalancer(&loadBalancerGuid, &loadBalancerHandle, &resultBuffer)
 | 
			
		||||
	hr := hcnOpenLoadBalancer(&loadBalancerGUID, &loadBalancerHandle, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnOpenLoadBalancer", hr, resultBuffer); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -117,8 +117,8 @@ func enumerateLoadBalancers(query string) ([]HostComputeLoadBalancer, error) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var outputLoadBalancers []HostComputeLoadBalancer
 | 
			
		||||
	for _, loadBalancerGuid := range loadBalancerIds {
 | 
			
		||||
		loadBalancer, err := getLoadBalancer(loadBalancerGuid, query)
 | 
			
		||||
	for _, loadBalancerGUID := range loadBalancerIds {
 | 
			
		||||
		loadBalancer, err := getLoadBalancer(loadBalancerGUID, query)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
@@ -134,8 +134,8 @@ func createLoadBalancer(settings string) (*HostComputeLoadBalancer, error) {
 | 
			
		||||
		resultBuffer       *uint16
 | 
			
		||||
		propertiesBuffer   *uint16
 | 
			
		||||
	)
 | 
			
		||||
	loadBalancerGuid := guid.GUID{}
 | 
			
		||||
	hr := hcnCreateLoadBalancer(&loadBalancerGuid, settings, &loadBalancerHandle, &resultBuffer)
 | 
			
		||||
	loadBalancerGUID := guid.GUID{}
 | 
			
		||||
	hr := hcnCreateLoadBalancer(&loadBalancerGUID, settings, &loadBalancerHandle, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnCreateLoadBalancer", hr, resultBuffer); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -163,13 +163,13 @@ func createLoadBalancer(settings string) (*HostComputeLoadBalancer, error) {
 | 
			
		||||
	return &outputLoadBalancer, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func deleteLoadBalancer(loadBalancerId string) error {
 | 
			
		||||
	loadBalancerGuid, err := guid.FromString(loadBalancerId)
 | 
			
		||||
func deleteLoadBalancer(loadBalancerID string) error {
 | 
			
		||||
	loadBalancerGUID, err := guid.FromString(loadBalancerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return errInvalidLoadBalancerID
 | 
			
		||||
	}
 | 
			
		||||
	var resultBuffer *uint16
 | 
			
		||||
	hr := hcnDeleteLoadBalancer(&loadBalancerGuid, &resultBuffer)
 | 
			
		||||
	hr := hcnDeleteLoadBalancer(&loadBalancerGUID, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnDeleteLoadBalancer", hr, resultBuffer); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
@@ -188,12 +188,12 @@ func ListLoadBalancers() ([]HostComputeLoadBalancer, error) {
 | 
			
		||||
 | 
			
		||||
// ListLoadBalancersQuery makes a call to query the list of available loadBalancers.
 | 
			
		||||
func ListLoadBalancersQuery(query HostComputeQuery) ([]HostComputeLoadBalancer, error) {
 | 
			
		||||
	queryJson, err := json.Marshal(query)
 | 
			
		||||
	queryJSON, err := json.Marshal(query)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	loadBalancers, err := enumerateLoadBalancers(string(queryJson))
 | 
			
		||||
	loadBalancers, err := enumerateLoadBalancers(string(queryJSON))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -201,9 +201,9 @@ func ListLoadBalancersQuery(query HostComputeQuery) ([]HostComputeLoadBalancer,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetLoadBalancerByID returns the LoadBalancer specified by Id.
 | 
			
		||||
func GetLoadBalancerByID(loadBalancerId string) (*HostComputeLoadBalancer, error) {
 | 
			
		||||
func GetLoadBalancerByID(loadBalancerID string) (*HostComputeLoadBalancer, error) {
 | 
			
		||||
	hcnQuery := defaultQuery()
 | 
			
		||||
	mapA := map[string]string{"ID": loadBalancerId}
 | 
			
		||||
	mapA := map[string]string{"ID": loadBalancerID}
 | 
			
		||||
	filter, err := json.Marshal(mapA)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
@@ -215,7 +215,7 @@ func GetLoadBalancerByID(loadBalancerId string) (*HostComputeLoadBalancer, error
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if len(loadBalancers) == 0 {
 | 
			
		||||
		return nil, LoadBalancerNotFoundError{LoadBalancerId: loadBalancerId}
 | 
			
		||||
		return nil, LoadBalancerNotFoundError{LoadBalancerId: loadBalancerID}
 | 
			
		||||
	}
 | 
			
		||||
	return &loadBalancers[0], err
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										72
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/hcnnamespace.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										72
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/hcnnamespace.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -72,14 +72,14 @@ type ModifyNamespaceSettingRequest struct {
 | 
			
		||||
	Settings     json.RawMessage       `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getNamespace(namespaceGuid guid.GUID, query string) (*HostComputeNamespace, error) {
 | 
			
		||||
func getNamespace(namespaceGUID guid.GUID, query string) (*HostComputeNamespace, error) {
 | 
			
		||||
	// Open namespace.
 | 
			
		||||
	var (
 | 
			
		||||
		namespaceHandle  hcnNamespace
 | 
			
		||||
		resultBuffer     *uint16
 | 
			
		||||
		propertiesBuffer *uint16
 | 
			
		||||
	)
 | 
			
		||||
	hr := hcnOpenNamespace(&namespaceGuid, &namespaceHandle, &resultBuffer)
 | 
			
		||||
	hr := hcnOpenNamespace(&namespaceGUID, &namespaceHandle, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnOpenNamespace", hr, resultBuffer); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -120,8 +120,8 @@ func enumerateNamespaces(query string) ([]HostComputeNamespace, error) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var outputNamespaces []HostComputeNamespace
 | 
			
		||||
	for _, namespaceGuid := range namespaceIds {
 | 
			
		||||
		namespace, err := getNamespace(namespaceGuid, query)
 | 
			
		||||
	for _, namespaceGUID := range namespaceIds {
 | 
			
		||||
		namespace, err := getNamespace(namespaceGUID, query)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
@@ -137,8 +137,8 @@ func createNamespace(settings string) (*HostComputeNamespace, error) {
 | 
			
		||||
		resultBuffer     *uint16
 | 
			
		||||
		propertiesBuffer *uint16
 | 
			
		||||
	)
 | 
			
		||||
	namespaceGuid := guid.GUID{}
 | 
			
		||||
	hr := hcnCreateNamespace(&namespaceGuid, settings, &namespaceHandle, &resultBuffer)
 | 
			
		||||
	namespaceGUID := guid.GUID{}
 | 
			
		||||
	hr := hcnCreateNamespace(&namespaceGUID, settings, &namespaceHandle, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnCreateNamespace", hr, resultBuffer); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -166,8 +166,8 @@ func createNamespace(settings string) (*HostComputeNamespace, error) {
 | 
			
		||||
	return &outputNamespace, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func modifyNamespace(namespaceId string, settings string) (*HostComputeNamespace, error) {
 | 
			
		||||
	namespaceGuid, err := guid.FromString(namespaceId)
 | 
			
		||||
func modifyNamespace(namespaceID string, settings string) (*HostComputeNamespace, error) {
 | 
			
		||||
	namespaceGUID, err := guid.FromString(namespaceID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, errInvalidNamespaceID
 | 
			
		||||
	}
 | 
			
		||||
@@ -177,7 +177,7 @@ func modifyNamespace(namespaceId string, settings string) (*HostComputeNamespace
 | 
			
		||||
		resultBuffer     *uint16
 | 
			
		||||
		propertiesBuffer *uint16
 | 
			
		||||
	)
 | 
			
		||||
	hr := hcnOpenNamespace(&namespaceGuid, &namespaceHandle, &resultBuffer)
 | 
			
		||||
	hr := hcnOpenNamespace(&namespaceGUID, &namespaceHandle, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnOpenNamespace", hr, resultBuffer); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -210,13 +210,13 @@ func modifyNamespace(namespaceId string, settings string) (*HostComputeNamespace
 | 
			
		||||
	return &outputNamespace, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func deleteNamespace(namespaceId string) error {
 | 
			
		||||
	namespaceGuid, err := guid.FromString(namespaceId)
 | 
			
		||||
func deleteNamespace(namespaceID string) error {
 | 
			
		||||
	namespaceGUID, err := guid.FromString(namespaceID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return errInvalidNamespaceID
 | 
			
		||||
	}
 | 
			
		||||
	var resultBuffer *uint16
 | 
			
		||||
	hr := hcnDeleteNamespace(&namespaceGuid, &resultBuffer)
 | 
			
		||||
	hr := hcnDeleteNamespace(&namespaceGUID, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnDeleteNamespace", hr, resultBuffer); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
@@ -235,12 +235,12 @@ func ListNamespaces() ([]HostComputeNamespace, error) {
 | 
			
		||||
 | 
			
		||||
// ListNamespacesQuery makes a call to query the list of available namespaces.
 | 
			
		||||
func ListNamespacesQuery(query HostComputeQuery) ([]HostComputeNamespace, error) {
 | 
			
		||||
	queryJson, err := json.Marshal(query)
 | 
			
		||||
	queryJSON, err := json.Marshal(query)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	namespaces, err := enumerateNamespaces(string(queryJson))
 | 
			
		||||
	namespaces, err := enumerateNamespaces(string(queryJSON))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -248,9 +248,9 @@ func ListNamespacesQuery(query HostComputeQuery) ([]HostComputeNamespace, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetNamespaceByID returns the Namespace specified by Id.
 | 
			
		||||
func GetNamespaceByID(namespaceId string) (*HostComputeNamespace, error) {
 | 
			
		||||
func GetNamespaceByID(namespaceID string) (*HostComputeNamespace, error) {
 | 
			
		||||
	hcnQuery := defaultQuery()
 | 
			
		||||
	mapA := map[string]string{"ID": namespaceId}
 | 
			
		||||
	mapA := map[string]string{"ID": namespaceID}
 | 
			
		||||
	filter, err := json.Marshal(mapA)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
@@ -262,15 +262,15 @@ func GetNamespaceByID(namespaceId string) (*HostComputeNamespace, error) {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if len(namespaces) == 0 {
 | 
			
		||||
		return nil, NamespaceNotFoundError{NamespaceID: namespaceId}
 | 
			
		||||
		return nil, NamespaceNotFoundError{NamespaceID: namespaceID}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &namespaces[0], err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetNamespaceEndpointIds returns the endpoints of the Namespace specified by Id.
 | 
			
		||||
func GetNamespaceEndpointIds(namespaceId string) ([]string, error) {
 | 
			
		||||
	namespace, err := GetNamespaceByID(namespaceId)
 | 
			
		||||
func GetNamespaceEndpointIds(namespaceID string) ([]string, error) {
 | 
			
		||||
	namespace, err := GetNamespaceByID(namespaceID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -288,8 +288,8 @@ func GetNamespaceEndpointIds(namespaceId string) ([]string, error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetNamespaceContainerIds returns the containers of the Namespace specified by Id.
 | 
			
		||||
func GetNamespaceContainerIds(namespaceId string) ([]string, error) {
 | 
			
		||||
	namespace, err := GetNamespaceByID(namespaceId)
 | 
			
		||||
func GetNamespaceContainerIds(namespaceID string) ([]string, error) {
 | 
			
		||||
	namespace, err := GetNamespaceByID(namespaceID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -396,15 +396,15 @@ func (namespace *HostComputeNamespace) Sync() error {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ModifyNamespaceSettings updates the Endpoints/Containers of a Namespace.
 | 
			
		||||
func ModifyNamespaceSettings(namespaceId string, request *ModifyNamespaceSettingRequest) error {
 | 
			
		||||
	logrus.Debugf("hcn::HostComputeNamespace::ModifyNamespaceSettings id=%s", namespaceId)
 | 
			
		||||
func ModifyNamespaceSettings(namespaceID string, request *ModifyNamespaceSettingRequest) error {
 | 
			
		||||
	logrus.Debugf("hcn::HostComputeNamespace::ModifyNamespaceSettings id=%s", namespaceID)
 | 
			
		||||
 | 
			
		||||
	namespaceSettings, err := json.Marshal(request)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_, err = modifyNamespace(namespaceId, string(namespaceSettings))
 | 
			
		||||
	_, err = modifyNamespace(namespaceID, string(namespaceSettings))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
@@ -412,37 +412,37 @@ func ModifyNamespaceSettings(namespaceId string, request *ModifyNamespaceSetting
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// AddNamespaceEndpoint adds an endpoint to a Namespace.
 | 
			
		||||
func AddNamespaceEndpoint(namespaceId string, endpointId string) error {
 | 
			
		||||
	logrus.Debugf("hcn::HostComputeEndpoint::AddNamespaceEndpoint id=%s", endpointId)
 | 
			
		||||
func AddNamespaceEndpoint(namespaceID string, endpointID string) error {
 | 
			
		||||
	logrus.Debugf("hcn::HostComputeEndpoint::AddNamespaceEndpoint id=%s", endpointID)
 | 
			
		||||
 | 
			
		||||
	mapA := map[string]string{"EndpointId": endpointId}
 | 
			
		||||
	settingsJson, err := json.Marshal(mapA)
 | 
			
		||||
	mapA := map[string]string{"EndpointId": endpointID}
 | 
			
		||||
	settingsJSON, err := json.Marshal(mapA)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	requestMessage := &ModifyNamespaceSettingRequest{
 | 
			
		||||
		ResourceType: NamespaceResourceTypeEndpoint,
 | 
			
		||||
		RequestType:  RequestTypeAdd,
 | 
			
		||||
		Settings:     settingsJson,
 | 
			
		||||
		Settings:     settingsJSON,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return ModifyNamespaceSettings(namespaceId, requestMessage)
 | 
			
		||||
	return ModifyNamespaceSettings(namespaceID, requestMessage)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RemoveNamespaceEndpoint removes an endpoint from a Namespace.
 | 
			
		||||
func RemoveNamespaceEndpoint(namespaceId string, endpointId string) error {
 | 
			
		||||
	logrus.Debugf("hcn::HostComputeNamespace::RemoveNamespaceEndpoint id=%s", endpointId)
 | 
			
		||||
func RemoveNamespaceEndpoint(namespaceID string, endpointID string) error {
 | 
			
		||||
	logrus.Debugf("hcn::HostComputeNamespace::RemoveNamespaceEndpoint id=%s", endpointID)
 | 
			
		||||
 | 
			
		||||
	mapA := map[string]string{"EndpointId": endpointId}
 | 
			
		||||
	settingsJson, err := json.Marshal(mapA)
 | 
			
		||||
	mapA := map[string]string{"EndpointId": endpointID}
 | 
			
		||||
	settingsJSON, err := json.Marshal(mapA)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	requestMessage := &ModifyNamespaceSettingRequest{
 | 
			
		||||
		ResourceType: NamespaceResourceTypeEndpoint,
 | 
			
		||||
		RequestType:  RequestTypeRemove,
 | 
			
		||||
		Settings:     settingsJson,
 | 
			
		||||
		Settings:     settingsJSON,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return ModifyNamespaceSettings(namespaceId, requestMessage)
 | 
			
		||||
	return ModifyNamespaceSettings(namespaceID, requestMessage)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										36
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/hcnnetwork.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/hcnnetwork.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -112,14 +112,14 @@ type PolicyNetworkRequest struct {
 | 
			
		||||
	Policies []NetworkPolicy `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getNetwork(networkGuid guid.GUID, query string) (*HostComputeNetwork, error) {
 | 
			
		||||
func getNetwork(networkGUID guid.GUID, query string) (*HostComputeNetwork, error) {
 | 
			
		||||
	// Open network.
 | 
			
		||||
	var (
 | 
			
		||||
		networkHandle    hcnNetwork
 | 
			
		||||
		resultBuffer     *uint16
 | 
			
		||||
		propertiesBuffer *uint16
 | 
			
		||||
	)
 | 
			
		||||
	hr := hcnOpenNetwork(&networkGuid, &networkHandle, &resultBuffer)
 | 
			
		||||
	hr := hcnOpenNetwork(&networkGUID, &networkHandle, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnOpenNetwork", hr, resultBuffer); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -166,8 +166,8 @@ func enumerateNetworks(query string) ([]HostComputeNetwork, error) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var outputNetworks []HostComputeNetwork
 | 
			
		||||
	for _, networkGuid := range networkIds {
 | 
			
		||||
		network, err := getNetwork(networkGuid, query)
 | 
			
		||||
	for _, networkGUID := range networkIds {
 | 
			
		||||
		network, err := getNetwork(networkGUID, query)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
@@ -183,8 +183,8 @@ func createNetwork(settings string) (*HostComputeNetwork, error) {
 | 
			
		||||
		resultBuffer     *uint16
 | 
			
		||||
		propertiesBuffer *uint16
 | 
			
		||||
	)
 | 
			
		||||
	networkGuid := guid.GUID{}
 | 
			
		||||
	hr := hcnCreateNetwork(&networkGuid, settings, &networkHandle, &resultBuffer)
 | 
			
		||||
	networkGUID := guid.GUID{}
 | 
			
		||||
	hr := hcnCreateNetwork(&networkGUID, settings, &networkHandle, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnCreateNetwork", hr, resultBuffer); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -218,8 +218,8 @@ func createNetwork(settings string) (*HostComputeNetwork, error) {
 | 
			
		||||
	return &outputNetwork, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func modifyNetwork(networkId string, settings string) (*HostComputeNetwork, error) {
 | 
			
		||||
	networkGuid, err := guid.FromString(networkId)
 | 
			
		||||
func modifyNetwork(networkID string, settings string) (*HostComputeNetwork, error) {
 | 
			
		||||
	networkGUID, err := guid.FromString(networkID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, errInvalidNetworkID
 | 
			
		||||
	}
 | 
			
		||||
@@ -229,7 +229,7 @@ func modifyNetwork(networkId string, settings string) (*HostComputeNetwork, erro
 | 
			
		||||
		resultBuffer     *uint16
 | 
			
		||||
		propertiesBuffer *uint16
 | 
			
		||||
	)
 | 
			
		||||
	hr := hcnOpenNetwork(&networkGuid, &networkHandle, &resultBuffer)
 | 
			
		||||
	hr := hcnOpenNetwork(&networkGUID, &networkHandle, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnOpenNetwork", hr, resultBuffer); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -268,13 +268,13 @@ func modifyNetwork(networkId string, settings string) (*HostComputeNetwork, erro
 | 
			
		||||
	return &outputNetwork, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func deleteNetwork(networkId string) error {
 | 
			
		||||
	networkGuid, err := guid.FromString(networkId)
 | 
			
		||||
func deleteNetwork(networkID string) error {
 | 
			
		||||
	networkGUID, err := guid.FromString(networkID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return errInvalidNetworkID
 | 
			
		||||
	}
 | 
			
		||||
	var resultBuffer *uint16
 | 
			
		||||
	hr := hcnDeleteNetwork(&networkGuid, &resultBuffer)
 | 
			
		||||
	hr := hcnDeleteNetwork(&networkGUID, &resultBuffer)
 | 
			
		||||
	if err := checkForErrors("hcnDeleteNetwork", hr, resultBuffer); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
@@ -293,12 +293,12 @@ func ListNetworks() ([]HostComputeNetwork, error) {
 | 
			
		||||
 | 
			
		||||
// ListNetworksQuery makes a call to query the list of available networks.
 | 
			
		||||
func ListNetworksQuery(query HostComputeQuery) ([]HostComputeNetwork, error) {
 | 
			
		||||
	queryJson, err := json.Marshal(query)
 | 
			
		||||
	queryJSON, err := json.Marshal(query)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	networks, err := enumerateNetworks(string(queryJson))
 | 
			
		||||
	networks, err := enumerateNetworks(string(queryJSON))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -410,14 +410,14 @@ func (network *HostComputeNetwork) ModifyNetworkSettings(request *ModifyNetworkS
 | 
			
		||||
func (network *HostComputeNetwork) AddPolicy(networkPolicy PolicyNetworkRequest) error {
 | 
			
		||||
	logrus.Debugf("hcn::HostComputeNetwork::AddPolicy id=%s", network.Id)
 | 
			
		||||
 | 
			
		||||
	settingsJson, err := json.Marshal(networkPolicy)
 | 
			
		||||
	settingsJSON, err := json.Marshal(networkPolicy)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	requestMessage := &ModifyNetworkSettingRequest{
 | 
			
		||||
		ResourceType: NetworkResourceTypePolicy,
 | 
			
		||||
		RequestType:  RequestTypeAdd,
 | 
			
		||||
		Settings:     settingsJson,
 | 
			
		||||
		Settings:     settingsJSON,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return network.ModifyNetworkSettings(requestMessage)
 | 
			
		||||
@@ -427,14 +427,14 @@ func (network *HostComputeNetwork) AddPolicy(networkPolicy PolicyNetworkRequest)
 | 
			
		||||
func (network *HostComputeNetwork) RemovePolicy(networkPolicy PolicyNetworkRequest) error {
 | 
			
		||||
	logrus.Debugf("hcn::HostComputeNetwork::RemovePolicy id=%s", network.Id)
 | 
			
		||||
 | 
			
		||||
	settingsJson, err := json.Marshal(networkPolicy)
 | 
			
		||||
	settingsJSON, err := json.Marshal(networkPolicy)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	requestMessage := &ModifyNetworkSettingRequest{
 | 
			
		||||
		ResourceType: NetworkResourceTypePolicy,
 | 
			
		||||
		RequestType:  RequestTypeRemove,
 | 
			
		||||
		Settings:     settingsJson,
 | 
			
		||||
		Settings:     settingsJSON,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return network.ModifyNetworkSettings(requestMessage)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/hcnpolicy.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/hcnpolicy.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -315,7 +315,7 @@ const (
 | 
			
		||||
	ProtocolTypeICMPv6  ProtocolType = 58
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//L4ProxyPolicySetting applies proxy policy on network/endpoint
 | 
			
		||||
// L4ProxyPolicySetting applies proxy policy on network/endpoint
 | 
			
		||||
type L4ProxyPolicySetting struct {
 | 
			
		||||
	IP          string       `json:",omitempty"`
 | 
			
		||||
	Port        string       `json:",omitempty"`
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1457
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1457
									
								
								vendor/github.com/Microsoft/hcsshim/hcn/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										10
									
								
								vendor/github.com/Microsoft/hcsshim/hcsshim.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/Microsoft/hcsshim/hcsshim.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -6,12 +6,12 @@
 | 
			
		||||
package hcsshim
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"syscall"
 | 
			
		||||
	"golang.org/x/sys/windows"
 | 
			
		||||
 | 
			
		||||
	"github.com/Microsoft/hcsshim/internal/hcserror"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//go:generate go run mksyscall_windows.go -output zsyscall_windows.go hcsshim.go
 | 
			
		||||
//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go hcsshim.go
 | 
			
		||||
 | 
			
		||||
//sys SetCurrentThreadCompartmentId(compartmentId uint32) (hr error) = iphlpapi.SetCurrentThreadCompartmentId
 | 
			
		||||
 | 
			
		||||
@@ -19,9 +19,9 @@ const (
 | 
			
		||||
	// Specific user-visible exit codes
 | 
			
		||||
	WaitErrExecFailed = 32767
 | 
			
		||||
 | 
			
		||||
	ERROR_GEN_FAILURE          = hcserror.ERROR_GEN_FAILURE
 | 
			
		||||
	ERROR_SHUTDOWN_IN_PROGRESS = syscall.Errno(1115)
 | 
			
		||||
	WSAEINVAL                  = syscall.Errno(10022)
 | 
			
		||||
	ERROR_GEN_FAILURE          = windows.ERROR_GEN_FAILURE
 | 
			
		||||
	ERROR_SHUTDOWN_IN_PROGRESS = windows.ERROR_SHUTDOWN_IN_PROGRESS
 | 
			
		||||
	WSAEINVAL                  = windows.WSAEINVAL
 | 
			
		||||
 | 
			
		||||
	// Timeout on wait calls
 | 
			
		||||
	TimeoutInfinite = 0xFFFFFFFF
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/hnsendpoint.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/hnsendpoint.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -15,7 +15,7 @@ type HNSEndpointStats = hns.EndpointStats
 | 
			
		||||
// Namespace represents a Compartment.
 | 
			
		||||
type Namespace = hns.Namespace
 | 
			
		||||
 | 
			
		||||
//SystemType represents the type of the system on which actions are done
 | 
			
		||||
// SystemType represents the type of the system on which actions are done
 | 
			
		||||
type SystemType string
 | 
			
		||||
 | 
			
		||||
// SystemType const
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/github.com/Microsoft/hcsshim/internal/cow/cow.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/Microsoft/hcsshim/internal/cow/cow.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -88,6 +88,12 @@ type Container interface {
 | 
			
		||||
	// container to be terminated by some error condition (including calling
 | 
			
		||||
	// Close).
 | 
			
		||||
	Wait() error
 | 
			
		||||
	// WaitChannel returns the wait channel of the container
 | 
			
		||||
	WaitChannel() <-chan struct{}
 | 
			
		||||
	// WaitError returns the container termination error.
 | 
			
		||||
	// This function should only be called after the channel in WaitChannel()
 | 
			
		||||
	// is closed. Otherwise it is not thread safe.
 | 
			
		||||
	WaitError() error
 | 
			
		||||
	// Modify sends a request to modify container resources
 | 
			
		||||
	Modify(ctx context.Context, config interface{}) error
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										144
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hcs/errors.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										144
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hcs/errors.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -87,7 +87,7 @@ var (
 | 
			
		||||
	// ErrProcessAlreadyStopped is returned by hcs if the process we're trying to kill has already been stopped.
 | 
			
		||||
	ErrProcessAlreadyStopped = syscall.Errno(0x8037011f)
 | 
			
		||||
 | 
			
		||||
	// ErrInvalidHandle is an error that can be encountrered when querying the properties of a compute system when the handle to that
 | 
			
		||||
	// ErrInvalidHandle is an error that can be encountered when querying the properties of a compute system when the handle to that
 | 
			
		||||
	// compute system has already been closed.
 | 
			
		||||
	ErrInvalidHandle = syscall.Errno(0x6)
 | 
			
		||||
)
 | 
			
		||||
@@ -157,33 +157,38 @@ func (e *HcsError) Error() string {
 | 
			
		||||
	return s
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (e *HcsError) Is(target error) bool {
 | 
			
		||||
	return errors.Is(e.Err, target)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// unwrap isnt really needed, but helpful convince function
 | 
			
		||||
 | 
			
		||||
func (e *HcsError) Unwrap() error {
 | 
			
		||||
	return e.Err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: net.Error.Temporary is deprecated.
 | 
			
		||||
func (e *HcsError) Temporary() bool {
 | 
			
		||||
	err, ok := e.Err.(net.Error)
 | 
			
		||||
	return ok && err.Temporary()
 | 
			
		||||
	err := e.netError()
 | 
			
		||||
	return (err != nil) && err.Temporary()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (e *HcsError) Timeout() bool {
 | 
			
		||||
	err, ok := e.Err.(net.Error)
 | 
			
		||||
	return ok && err.Timeout()
 | 
			
		||||
	err := e.netError()
 | 
			
		||||
	return (err != nil) && err.Timeout()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ProcessError is an error encountered in HCS during an operation on a Process object
 | 
			
		||||
type ProcessError struct {
 | 
			
		||||
	SystemID string
 | 
			
		||||
	Pid      int
 | 
			
		||||
	Op       string
 | 
			
		||||
	Err      error
 | 
			
		||||
	Events   []ErrorEvent
 | 
			
		||||
func (e *HcsError) netError() (err net.Error) {
 | 
			
		||||
	if errors.As(e.Unwrap(), &err) {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ net.Error = &ProcessError{}
 | 
			
		||||
 | 
			
		||||
// SystemError is an error encountered in HCS during an operation on a Container object
 | 
			
		||||
type SystemError struct {
 | 
			
		||||
	ID     string
 | 
			
		||||
	Op     string
 | 
			
		||||
	Err    error
 | 
			
		||||
	Events []ErrorEvent
 | 
			
		||||
	HcsError
 | 
			
		||||
	ID string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ net.Error = &SystemError{}
 | 
			
		||||
@@ -196,29 +201,32 @@ func (e *SystemError) Error() string {
 | 
			
		||||
	return s
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (e *SystemError) Temporary() bool {
 | 
			
		||||
	err, ok := e.Err.(net.Error)
 | 
			
		||||
	return ok && err.Temporary()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (e *SystemError) Timeout() bool {
 | 
			
		||||
	err, ok := e.Err.(net.Error)
 | 
			
		||||
	return ok && err.Timeout()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func makeSystemError(system *System, op string, err error, events []ErrorEvent) error {
 | 
			
		||||
	// Don't double wrap errors
 | 
			
		||||
	if _, ok := err.(*SystemError); ok {
 | 
			
		||||
	var e *SystemError
 | 
			
		||||
	if errors.As(err, &e) {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &SystemError{
 | 
			
		||||
		ID:     system.ID(),
 | 
			
		||||
		Op:     op,
 | 
			
		||||
		Err:    err,
 | 
			
		||||
		Events: events,
 | 
			
		||||
		ID: system.ID(),
 | 
			
		||||
		HcsError: HcsError{
 | 
			
		||||
			Op:     op,
 | 
			
		||||
			Err:    err,
 | 
			
		||||
			Events: events,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ProcessError is an error encountered in HCS during an operation on a Process object
 | 
			
		||||
type ProcessError struct {
 | 
			
		||||
	HcsError
 | 
			
		||||
	SystemID string
 | 
			
		||||
	Pid      int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ net.Error = &ProcessError{}
 | 
			
		||||
 | 
			
		||||
func (e *ProcessError) Error() string {
 | 
			
		||||
	s := fmt.Sprintf("%s %s:%d: %s", e.Op, e.SystemID, e.Pid, e.Err.Error())
 | 
			
		||||
	for _, ev := range e.Events {
 | 
			
		||||
@@ -227,27 +235,20 @@ func (e *ProcessError) Error() string {
 | 
			
		||||
	return s
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (e *ProcessError) Temporary() bool {
 | 
			
		||||
	err, ok := e.Err.(net.Error)
 | 
			
		||||
	return ok && err.Temporary()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (e *ProcessError) Timeout() bool {
 | 
			
		||||
	err, ok := e.Err.(net.Error)
 | 
			
		||||
	return ok && err.Timeout()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func makeProcessError(process *Process, op string, err error, events []ErrorEvent) error {
 | 
			
		||||
	// Don't double wrap errors
 | 
			
		||||
	if _, ok := err.(*ProcessError); ok {
 | 
			
		||||
	var e *ProcessError
 | 
			
		||||
	if errors.As(err, &e) {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	return &ProcessError{
 | 
			
		||||
		Pid:      process.Pid(),
 | 
			
		||||
		SystemID: process.SystemID(),
 | 
			
		||||
		Op:       op,
 | 
			
		||||
		Err:      err,
 | 
			
		||||
		Events:   events,
 | 
			
		||||
		HcsError: HcsError{
 | 
			
		||||
			Op:     op,
 | 
			
		||||
			Err:    err,
 | 
			
		||||
			Events: events,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -256,41 +257,41 @@ func makeProcessError(process *Process, op string, err error, events []ErrorEven
 | 
			
		||||
// already exited, or does not exist. Both IsAlreadyStopped and IsNotExist
 | 
			
		||||
// will currently return true when the error is ErrElementNotFound.
 | 
			
		||||
func IsNotExist(err error) bool {
 | 
			
		||||
	err = getInnerError(err)
 | 
			
		||||
	return errors.Is(err, ErrComputeSystemDoesNotExist) ||
 | 
			
		||||
		errors.Is(err, ErrElementNotFound)
 | 
			
		||||
	return IsAny(err, ErrComputeSystemDoesNotExist, ErrElementNotFound)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsErrorInvalidHandle checks whether the error is the result of an operation carried
 | 
			
		||||
// out on a handle that is invalid/closed. This error popped up while trying to query
 | 
			
		||||
// stats on a container in the process of being stopped.
 | 
			
		||||
func IsErrorInvalidHandle(err error) bool {
 | 
			
		||||
	err = getInnerError(err)
 | 
			
		||||
	return errors.Is(err, ErrInvalidHandle)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsAlreadyClosed checks if an error is caused by the Container or Process having been
 | 
			
		||||
// already closed by a call to the Close() method.
 | 
			
		||||
func IsAlreadyClosed(err error) bool {
 | 
			
		||||
	err = getInnerError(err)
 | 
			
		||||
	return errors.Is(err, ErrAlreadyClosed)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsPending returns a boolean indicating whether the error is that
 | 
			
		||||
// the requested operation is being completed in the background.
 | 
			
		||||
func IsPending(err error) bool {
 | 
			
		||||
	err = getInnerError(err)
 | 
			
		||||
	return errors.Is(err, ErrVmcomputeOperationPending)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsTimeout returns a boolean indicating whether the error is caused by
 | 
			
		||||
// a timeout waiting for the operation to complete.
 | 
			
		||||
func IsTimeout(err error) bool {
 | 
			
		||||
	if err, ok := err.(net.Error); ok && err.Timeout() {
 | 
			
		||||
	// HcsError and co. implement Timeout regardless of whether the errors they wrap do,
 | 
			
		||||
	// so `errors.As(err, net.Error)`` will always be true.
 | 
			
		||||
	// Using `errors.As(err.Unwrap(), net.Err)` wont work for general errors.
 | 
			
		||||
	// So first check if there an `ErrTimeout` in the chain, then convert to a net error.
 | 
			
		||||
	if errors.Is(err, ErrTimeout) {
 | 
			
		||||
		return true
 | 
			
		||||
	}
 | 
			
		||||
	err = getInnerError(err)
 | 
			
		||||
	return errors.Is(err, ErrTimeout)
 | 
			
		||||
 | 
			
		||||
	var nerr net.Error
 | 
			
		||||
	return errors.As(err, &nerr) && nerr.Timeout()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsAlreadyStopped returns a boolean indicating whether the error is caused by
 | 
			
		||||
@@ -299,10 +300,7 @@ func IsTimeout(err error) bool {
 | 
			
		||||
// already exited, or does not exist. Both IsAlreadyStopped and IsNotExist
 | 
			
		||||
// will currently return true when the error is ErrElementNotFound.
 | 
			
		||||
func IsAlreadyStopped(err error) bool {
 | 
			
		||||
	err = getInnerError(err)
 | 
			
		||||
	return errors.Is(err, ErrVmcomputeAlreadyStopped) ||
 | 
			
		||||
		errors.Is(err, ErrProcessAlreadyStopped) ||
 | 
			
		||||
		errors.Is(err, ErrElementNotFound)
 | 
			
		||||
	return IsAny(err, ErrVmcomputeAlreadyStopped, ErrProcessAlreadyStopped, ErrElementNotFound)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsNotSupported returns a boolean indicating whether the error is caused by
 | 
			
		||||
@@ -311,38 +309,28 @@ func IsAlreadyStopped(err error) bool {
 | 
			
		||||
// ErrVmcomputeInvalidJSON, ErrInvalidData, ErrNotSupported or ErrVmcomputeUnknownMessage
 | 
			
		||||
// is thrown from the Platform
 | 
			
		||||
func IsNotSupported(err error) bool {
 | 
			
		||||
	err = getInnerError(err)
 | 
			
		||||
	// If Platform doesn't recognize or support the request sent, below errors are seen
 | 
			
		||||
	return errors.Is(err, ErrVmcomputeInvalidJSON) ||
 | 
			
		||||
		errors.Is(err, ErrInvalidData) ||
 | 
			
		||||
		errors.Is(err, ErrNotSupported) ||
 | 
			
		||||
		errors.Is(err, ErrVmcomputeUnknownMessage)
 | 
			
		||||
	return IsAny(err, ErrVmcomputeInvalidJSON, ErrInvalidData, ErrNotSupported, ErrVmcomputeUnknownMessage)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsOperationInvalidState returns true when err is caused by
 | 
			
		||||
// `ErrVmcomputeOperationInvalidState`.
 | 
			
		||||
func IsOperationInvalidState(err error) bool {
 | 
			
		||||
	err = getInnerError(err)
 | 
			
		||||
	return errors.Is(err, ErrVmcomputeOperationInvalidState)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsAccessIsDenied returns true when err is caused by
 | 
			
		||||
// `ErrVmcomputeOperationAccessIsDenied`.
 | 
			
		||||
func IsAccessIsDenied(err error) bool {
 | 
			
		||||
	err = getInnerError(err)
 | 
			
		||||
	return errors.Is(err, ErrVmcomputeOperationAccessIsDenied)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getInnerError(err error) error {
 | 
			
		||||
	switch pe := err.(type) {
 | 
			
		||||
	case nil:
 | 
			
		||||
		return nil
 | 
			
		||||
	case *HcsError:
 | 
			
		||||
		err = pe.Err
 | 
			
		||||
	case *SystemError:
 | 
			
		||||
		err = pe.Err
 | 
			
		||||
	case *ProcessError:
 | 
			
		||||
		err = pe.Err
 | 
			
		||||
// IsAny is a vectorized version of [errors.Is], it returns true if err is one of targets.
 | 
			
		||||
func IsAny(err error, targets ...error) bool {
 | 
			
		||||
	for _, e := range targets {
 | 
			
		||||
		if errors.Is(err, e) {
 | 
			
		||||
			return true
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return err
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										139
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hcs/process.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										139
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hcs/process.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,6 +12,7 @@ import (
 | 
			
		||||
	"syscall"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/Microsoft/hcsshim/internal/cow"
 | 
			
		||||
	"github.com/Microsoft/hcsshim/internal/log"
 | 
			
		||||
	"github.com/Microsoft/hcsshim/internal/oc"
 | 
			
		||||
	"github.com/Microsoft/hcsshim/internal/vmcompute"
 | 
			
		||||
@@ -38,6 +39,8 @@ type Process struct {
 | 
			
		||||
	waitError      error
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ cow.Process = &Process{}
 | 
			
		||||
 | 
			
		||||
func newProcess(process vmcompute.HcsProcess, processID int, computeSystem *System) *Process {
 | 
			
		||||
	return &Process{
 | 
			
		||||
		handle:    process,
 | 
			
		||||
@@ -91,10 +94,7 @@ func (process *Process) processSignalResult(ctx context.Context, err error) (boo
 | 
			
		||||
	case nil:
 | 
			
		||||
		return true, nil
 | 
			
		||||
	case ErrVmcomputeOperationInvalidState, ErrComputeSystemDoesNotExist, ErrElementNotFound:
 | 
			
		||||
		select {
 | 
			
		||||
		case <-process.waitBlock:
 | 
			
		||||
			// The process exit notification has already arrived.
 | 
			
		||||
		default:
 | 
			
		||||
		if !process.stopped() {
 | 
			
		||||
			// The process should be gone, but we have not received the notification.
 | 
			
		||||
			// After a second, force unblock the process wait to work around a possible
 | 
			
		||||
			// deadlock in the HCS.
 | 
			
		||||
@@ -154,6 +154,10 @@ func (process *Process) Kill(ctx context.Context) (bool, error) {
 | 
			
		||||
		return false, makeProcessError(process, operation, ErrAlreadyClosed, nil)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if process.stopped() {
 | 
			
		||||
		return false, makeProcessError(process, operation, ErrProcessAlreadyStopped, nil)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if process.killSignalDelivered {
 | 
			
		||||
		// A kill signal has already been sent to this process. Sending a second
 | 
			
		||||
		// one offers no real benefit, as processes cannot stop themselves from
 | 
			
		||||
@@ -163,7 +167,39 @@ func (process *Process) Kill(ctx context.Context) (bool, error) {
 | 
			
		||||
		return true, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	resultJSON, err := vmcompute.HcsTerminateProcess(ctx, process.handle)
 | 
			
		||||
	// HCS serializes the signals sent to a target pid per compute system handle.
 | 
			
		||||
	// To avoid SIGKILL being serialized behind other signals, we open a new compute
 | 
			
		||||
	// system handle to deliver the kill signal.
 | 
			
		||||
	// If the calls to opening a new compute system handle fail, we forcefully
 | 
			
		||||
	// terminate the container itself so that no container is left behind
 | 
			
		||||
	hcsSystem, err := OpenComputeSystem(ctx, process.system.id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		// log error and force termination of container
 | 
			
		||||
		log.G(ctx).WithField("err", err).Error("OpenComputeSystem() call failed")
 | 
			
		||||
		err = process.system.Terminate(ctx)
 | 
			
		||||
		// if the Terminate() call itself ever failed, log and return error
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.G(ctx).WithField("err", err).Error("Terminate() call failed")
 | 
			
		||||
			return false, err
 | 
			
		||||
		}
 | 
			
		||||
		process.system.Close()
 | 
			
		||||
		return true, nil
 | 
			
		||||
	}
 | 
			
		||||
	defer hcsSystem.Close()
 | 
			
		||||
 | 
			
		||||
	newProcessHandle, err := hcsSystem.OpenProcess(ctx, process.Pid())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		// Return true only if the target process has either already
 | 
			
		||||
		// exited, or does not exist.
 | 
			
		||||
		if IsAlreadyStopped(err) {
 | 
			
		||||
			return true, nil
 | 
			
		||||
		} else {
 | 
			
		||||
			return false, err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	defer newProcessHandle.Close()
 | 
			
		||||
 | 
			
		||||
	resultJSON, err := vmcompute.HcsTerminateProcess(ctx, newProcessHandle.handle)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		// We still need to check these two cases, as processes may still be killed by an
 | 
			
		||||
		// external actor (human operator, OOM, random script etc).
 | 
			
		||||
@@ -187,9 +223,9 @@ func (process *Process) Kill(ctx context.Context) (bool, error) {
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	events := processHcsResult(ctx, resultJSON)
 | 
			
		||||
	delivered, err := process.processSignalResult(ctx, err)
 | 
			
		||||
	delivered, err := newProcessHandle.processSignalResult(ctx, err)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		err = makeProcessError(process, operation, err, events)
 | 
			
		||||
		err = makeProcessError(newProcessHandle, operation, err, events)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	process.killSignalDelivered = delivered
 | 
			
		||||
@@ -229,12 +265,12 @@ func (process *Process) waitBackground() {
 | 
			
		||||
			propertiesJSON, resultJSON, err = vmcompute.HcsGetProcessProperties(ctx, process.handle)
 | 
			
		||||
			events := processHcsResult(ctx, resultJSON)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				err = makeProcessError(process, operation, err, events) //nolint:ineffassign
 | 
			
		||||
				err = makeProcessError(process, operation, err, events)
 | 
			
		||||
			} else {
 | 
			
		||||
				properties := &processStatus{}
 | 
			
		||||
				err = json.Unmarshal([]byte(propertiesJSON), properties)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					err = makeProcessError(process, operation, err, nil) //nolint:ineffassign
 | 
			
		||||
					err = makeProcessError(process, operation, err, nil)
 | 
			
		||||
				} else {
 | 
			
		||||
					if properties.LastWaitResult != 0 {
 | 
			
		||||
						log.G(ctx).WithField("wait-result", properties.LastWaitResult).Warning("non-zero last wait result")
 | 
			
		||||
@@ -262,6 +298,16 @@ func (process *Process) Wait() error {
 | 
			
		||||
	return process.waitError
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Exited returns if the process has stopped
 | 
			
		||||
func (process *Process) stopped() bool {
 | 
			
		||||
	select {
 | 
			
		||||
	case <-process.waitBlock:
 | 
			
		||||
		return true
 | 
			
		||||
	default:
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ResizeConsole resizes the console of the process.
 | 
			
		||||
func (process *Process) ResizeConsole(ctx context.Context, width, height uint16) error {
 | 
			
		||||
	process.handleLock.RLock()
 | 
			
		||||
@@ -298,15 +344,13 @@ func (process *Process) ResizeConsole(ctx context.Context, width, height uint16)
 | 
			
		||||
// ExitCode returns the exit code of the process. The process must have
 | 
			
		||||
// already terminated.
 | 
			
		||||
func (process *Process) ExitCode() (int, error) {
 | 
			
		||||
	select {
 | 
			
		||||
	case <-process.waitBlock:
 | 
			
		||||
		if process.waitError != nil {
 | 
			
		||||
			return -1, process.waitError
 | 
			
		||||
		}
 | 
			
		||||
		return process.exitCode, nil
 | 
			
		||||
	default:
 | 
			
		||||
	if !process.stopped() {
 | 
			
		||||
		return -1, makeProcessError(process, "hcs::Process::ExitCode", ErrInvalidProcessState, nil)
 | 
			
		||||
	}
 | 
			
		||||
	if process.waitError != nil {
 | 
			
		||||
		return -1, process.waitError
 | 
			
		||||
	}
 | 
			
		||||
	return process.exitCode, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// StdioLegacy returns the stdin, stdout, and stderr pipes, respectively. Closing
 | 
			
		||||
@@ -352,7 +396,7 @@ func (process *Process) StdioLegacy() (_ io.WriteCloser, _ io.ReadCloser, _ io.R
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Stdio returns the stdin, stdout, and stderr pipes, respectively.
 | 
			
		||||
// To close them, close the process handle.
 | 
			
		||||
// To close them, close the process handle, or use the `CloseStd*` functions.
 | 
			
		||||
func (process *Process) Stdio() (stdin io.Writer, stdout, stderr io.Reader) {
 | 
			
		||||
	process.stdioLock.Lock()
 | 
			
		||||
	defer process.stdioLock.Unlock()
 | 
			
		||||
@@ -361,40 +405,51 @@ func (process *Process) Stdio() (stdin io.Writer, stdout, stderr io.Reader) {
 | 
			
		||||
 | 
			
		||||
// CloseStdin closes the write side of the stdin pipe so that the process is
 | 
			
		||||
// notified on the read side that there is no more data in stdin.
 | 
			
		||||
func (process *Process) CloseStdin(ctx context.Context) error {
 | 
			
		||||
func (process *Process) CloseStdin(ctx context.Context) (err error) {
 | 
			
		||||
	operation := "hcs::Process::CloseStdin"
 | 
			
		||||
	ctx, span := trace.StartSpan(ctx, operation)
 | 
			
		||||
	defer span.End()
 | 
			
		||||
	defer func() { oc.SetSpanStatus(span, err) }()
 | 
			
		||||
	span.AddAttributes(
 | 
			
		||||
		trace.StringAttribute("cid", process.SystemID()),
 | 
			
		||||
		trace.Int64Attribute("pid", int64(process.processID)))
 | 
			
		||||
 | 
			
		||||
	process.handleLock.RLock()
 | 
			
		||||
	defer process.handleLock.RUnlock()
 | 
			
		||||
 | 
			
		||||
	operation := "hcs::Process::CloseStdin"
 | 
			
		||||
 | 
			
		||||
	if process.handle == 0 {
 | 
			
		||||
		return makeProcessError(process, operation, ErrAlreadyClosed, nil)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	modifyRequest := processModifyRequest{
 | 
			
		||||
		Operation: modifyCloseHandle,
 | 
			
		||||
		CloseHandle: &closeHandle{
 | 
			
		||||
			Handle: stdIn,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	modifyRequestb, err := json.Marshal(modifyRequest)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	resultJSON, err := vmcompute.HcsModifyProcess(ctx, process.handle, string(modifyRequestb))
 | 
			
		||||
	events := processHcsResult(ctx, resultJSON)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return makeProcessError(process, operation, err, events)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	process.stdioLock.Lock()
 | 
			
		||||
	if process.stdin != nil {
 | 
			
		||||
		process.stdin.Close()
 | 
			
		||||
		process.stdin = nil
 | 
			
		||||
	defer process.stdioLock.Unlock()
 | 
			
		||||
	if process.stdin == nil {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
	process.stdioLock.Unlock()
 | 
			
		||||
 | 
			
		||||
	//HcsModifyProcess request to close stdin will fail if the process has already exited
 | 
			
		||||
	if !process.stopped() {
 | 
			
		||||
		modifyRequest := processModifyRequest{
 | 
			
		||||
			Operation: modifyCloseHandle,
 | 
			
		||||
			CloseHandle: &closeHandle{
 | 
			
		||||
				Handle: stdIn,
 | 
			
		||||
			},
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		modifyRequestb, err := json.Marshal(modifyRequest)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		resultJSON, err := vmcompute.HcsModifyProcess(ctx, process.handle, string(modifyRequestb))
 | 
			
		||||
		events := processHcsResult(ctx, resultJSON)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return makeProcessError(process, operation, err, events)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	process.stdin.Close()
 | 
			
		||||
	process.stdin = nil
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/debug_options.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/debug_options.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
/*
 | 
			
		||||
 * HCS API
 | 
			
		||||
 *
 | 
			
		||||
 * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
 | 
			
		||||
 *
 | 
			
		||||
 * API version: 2.1
 | 
			
		||||
 * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
package hcsschema
 | 
			
		||||
 | 
			
		||||
type DebugOptions struct {
 | 
			
		||||
	// BugcheckSavedStateFileName is the path for the file in which the guest VM state will be saved when
 | 
			
		||||
	// the guest crashes.
 | 
			
		||||
	BugcheckSavedStateFileName string `json:"BugcheckSavedStateFileName,omitempty"`
 | 
			
		||||
	// BugcheckNoCrashdumpSavedStateFileName is the path of the file in which the guest VM state will be
 | 
			
		||||
	// saved when the guest crashes but the guest isn't able to generate the crash dump. This usually
 | 
			
		||||
	// happens in early boot failures.
 | 
			
		||||
	BugcheckNoCrashdumpSavedStateFileName string `json:"BugcheckNoCrashdumpSavedStateFileName,omitempty"`
 | 
			
		||||
	TripleFaultSavedStateFileName         string `json:"TripleFaultSavedStateFileName,omitempty"`
 | 
			
		||||
	FirmwareDumpFileName                  string `json:"FirmwareDumpFileName,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/virtual_machine.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/virtual_machine.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -31,4 +31,6 @@ type VirtualMachine struct {
 | 
			
		||||
	GuestConnection *GuestConnection `json:"GuestConnection,omitempty"`
 | 
			
		||||
 | 
			
		||||
	SecuritySettings *SecuritySettings `json:"SecuritySettings,omitempty"`
 | 
			
		||||
 | 
			
		||||
	DebugOptions *DebugOptions `json:"DebugOptions,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										79
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hcs/system.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										79
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hcs/system.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -39,6 +39,9 @@ type System struct {
 | 
			
		||||
	startTime      time.Time
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ cow.Container = &System{}
 | 
			
		||||
var _ cow.ProcessHost = &System{}
 | 
			
		||||
 | 
			
		||||
func newSystem(id string) *System {
 | 
			
		||||
	return &System{
 | 
			
		||||
		id:        id,
 | 
			
		||||
@@ -91,7 +94,8 @@ func CreateComputeSystem(ctx context.Context, id string, hcsDocumentInterface in
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	events, err := processAsyncHcsResult(ctx, createError, resultJSON, computeSystem.callbackNumber, hcsNotificationSystemCreateCompleted, &timeout.SystemCreate)
 | 
			
		||||
	events, err := processAsyncHcsResult(ctx, createError, resultJSON, computeSystem.callbackNumber,
 | 
			
		||||
		hcsNotificationSystemCreateCompleted, &timeout.SystemCreate)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if err == ErrTimeout {
 | 
			
		||||
			// Terminate the compute system if it still exists. We're okay to
 | 
			
		||||
@@ -200,12 +204,15 @@ func (computeSystem *System) Start(ctx context.Context) (err error) {
 | 
			
		||||
	computeSystem.handleLock.RLock()
 | 
			
		||||
	defer computeSystem.handleLock.RUnlock()
 | 
			
		||||
 | 
			
		||||
	// prevent starting an exited system because waitblock we do not recreate waitBlock
 | 
			
		||||
	// or rerun waitBackground, so we have no way to be notified of it closing again
 | 
			
		||||
	if computeSystem.handle == 0 {
 | 
			
		||||
		return makeSystemError(computeSystem, operation, ErrAlreadyClosed, nil)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	resultJSON, err := vmcompute.HcsStartComputeSystem(ctx, computeSystem.handle, "")
 | 
			
		||||
	events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber, hcsNotificationSystemStartCompleted, &timeout.SystemStart)
 | 
			
		||||
	events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber,
 | 
			
		||||
		hcsNotificationSystemStartCompleted, &timeout.SystemStart)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return makeSystemError(computeSystem, operation, err, events)
 | 
			
		||||
	}
 | 
			
		||||
@@ -225,7 +232,7 @@ func (computeSystem *System) Shutdown(ctx context.Context) error {
 | 
			
		||||
 | 
			
		||||
	operation := "hcs::System::Shutdown"
 | 
			
		||||
 | 
			
		||||
	if computeSystem.handle == 0 {
 | 
			
		||||
	if computeSystem.handle == 0 || computeSystem.stopped() {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -246,7 +253,7 @@ func (computeSystem *System) Terminate(ctx context.Context) error {
 | 
			
		||||
 | 
			
		||||
	operation := "hcs::System::Terminate"
 | 
			
		||||
 | 
			
		||||
	if computeSystem.handle == 0 {
 | 
			
		||||
	if computeSystem.handle == 0 || computeSystem.stopped() {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -289,24 +296,40 @@ func (computeSystem *System) waitBackground() {
 | 
			
		||||
	oc.SetSpanStatus(span, err)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (computeSystem *System) WaitChannel() <-chan struct{} {
 | 
			
		||||
	return computeSystem.waitBlock
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (computeSystem *System) WaitError() error {
 | 
			
		||||
	return computeSystem.waitError
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Wait synchronously waits for the compute system to shutdown or terminate. If
 | 
			
		||||
// the compute system has already exited returns the previous error (if any).
 | 
			
		||||
func (computeSystem *System) Wait() error {
 | 
			
		||||
	<-computeSystem.waitBlock
 | 
			
		||||
	return computeSystem.waitError
 | 
			
		||||
	<-computeSystem.WaitChannel()
 | 
			
		||||
	return computeSystem.WaitError()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// stopped returns true if the compute system stopped.
 | 
			
		||||
func (computeSystem *System) stopped() bool {
 | 
			
		||||
	select {
 | 
			
		||||
	case <-computeSystem.waitBlock:
 | 
			
		||||
		return true
 | 
			
		||||
	default:
 | 
			
		||||
	}
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ExitError returns an error describing the reason the compute system terminated.
 | 
			
		||||
func (computeSystem *System) ExitError() error {
 | 
			
		||||
	select {
 | 
			
		||||
	case <-computeSystem.waitBlock:
 | 
			
		||||
		if computeSystem.waitError != nil {
 | 
			
		||||
			return computeSystem.waitError
 | 
			
		||||
		}
 | 
			
		||||
		return computeSystem.exitError
 | 
			
		||||
	default:
 | 
			
		||||
	if !computeSystem.stopped() {
 | 
			
		||||
		return errors.New("container not exited")
 | 
			
		||||
	}
 | 
			
		||||
	if computeSystem.waitError != nil {
 | 
			
		||||
		return computeSystem.waitError
 | 
			
		||||
	}
 | 
			
		||||
	return computeSystem.exitError
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Properties returns the requested container properties targeting a V1 schema container.
 | 
			
		||||
@@ -316,6 +339,10 @@ func (computeSystem *System) Properties(ctx context.Context, types ...schema1.Pr
 | 
			
		||||
 | 
			
		||||
	operation := "hcs::System::Properties"
 | 
			
		||||
 | 
			
		||||
	if computeSystem.handle == 0 {
 | 
			
		||||
		return nil, makeSystemError(computeSystem, operation, ErrAlreadyClosed, nil)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	queryBytes, err := json.Marshal(schema1.PropertyQuery{PropertyTypes: types})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, makeSystemError(computeSystem, operation, err, nil)
 | 
			
		||||
@@ -343,7 +370,11 @@ func (computeSystem *System) Properties(ctx context.Context, types ...schema1.Pr
 | 
			
		||||
// failed to be queried they will be tallied up and returned in as the first return value. Failures on
 | 
			
		||||
// query are NOT considered errors; the only failure case for this method is if the containers job object
 | 
			
		||||
// cannot be opened.
 | 
			
		||||
func (computeSystem *System) queryInProc(ctx context.Context, props *hcsschema.Properties, types []hcsschema.PropertyType) ([]hcsschema.PropertyType, error) {
 | 
			
		||||
func (computeSystem *System) queryInProc(
 | 
			
		||||
	ctx context.Context,
 | 
			
		||||
	props *hcsschema.Properties,
 | 
			
		||||
	types []hcsschema.PropertyType,
 | 
			
		||||
) ([]hcsschema.PropertyType, error) {
 | 
			
		||||
	// In the future we can make use of some new functionality in the HCS that allows you
 | 
			
		||||
	// to pass a job object for HCS to use for the container. Currently, the only way we'll
 | 
			
		||||
	// be able to open the job/silo is if we're running as SYSTEM.
 | 
			
		||||
@@ -409,7 +440,7 @@ func (computeSystem *System) statisticsInProc(job *jobobject.JobObject) (*hcssch
 | 
			
		||||
	// as well which isn't great and is wasted work to fetch.
 | 
			
		||||
	//
 | 
			
		||||
	// HCS only let's you grab statistics in an all or nothing fashion, so we can't just grab the private
 | 
			
		||||
	// working set ourselves and ask for everything else seperately. The optimization we can make here is
 | 
			
		||||
	// working set ourselves and ask for everything else separately. The optimization we can make here is
 | 
			
		||||
	// to open the silo ourselves and do the same queries for the rest of the info, as well as calculating
 | 
			
		||||
	// the private working set in a more efficient manner by:
 | 
			
		||||
	//
 | 
			
		||||
@@ -449,6 +480,10 @@ func (computeSystem *System) statisticsInProc(job *jobobject.JobObject) (*hcssch
 | 
			
		||||
func (computeSystem *System) hcsPropertiesV2Query(ctx context.Context, types []hcsschema.PropertyType) (*hcsschema.Properties, error) {
 | 
			
		||||
	operation := "hcs::System::PropertiesV2"
 | 
			
		||||
 | 
			
		||||
	if computeSystem.handle == 0 {
 | 
			
		||||
		return nil, makeSystemError(computeSystem, operation, ErrAlreadyClosed, nil)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	queryBytes, err := json.Marshal(hcsschema.PropertyQuery{PropertyTypes: types})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, makeSystemError(computeSystem, operation, err, nil)
 | 
			
		||||
@@ -529,7 +564,7 @@ func (computeSystem *System) PropertiesV2(ctx context.Context, types ...hcsschem
 | 
			
		||||
func (computeSystem *System) Pause(ctx context.Context) (err error) {
 | 
			
		||||
	operation := "hcs::System::Pause"
 | 
			
		||||
 | 
			
		||||
	// hcsPauseComputeSystemContext is an async peration. Start the outer span
 | 
			
		||||
	// hcsPauseComputeSystemContext is an async operation. Start the outer span
 | 
			
		||||
	// here to measure the full pause time.
 | 
			
		||||
	ctx, span := oc.StartSpan(ctx, operation)
 | 
			
		||||
	defer span.End()
 | 
			
		||||
@@ -544,7 +579,8 @@ func (computeSystem *System) Pause(ctx context.Context) (err error) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	resultJSON, err := vmcompute.HcsPauseComputeSystem(ctx, computeSystem.handle, "")
 | 
			
		||||
	events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber, hcsNotificationSystemPauseCompleted, &timeout.SystemPause)
 | 
			
		||||
	events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber,
 | 
			
		||||
		hcsNotificationSystemPauseCompleted, &timeout.SystemPause)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return makeSystemError(computeSystem, operation, err, events)
 | 
			
		||||
	}
 | 
			
		||||
@@ -571,7 +607,8 @@ func (computeSystem *System) Resume(ctx context.Context) (err error) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	resultJSON, err := vmcompute.HcsResumeComputeSystem(ctx, computeSystem.handle, "")
 | 
			
		||||
	events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber, hcsNotificationSystemResumeCompleted, &timeout.SystemResume)
 | 
			
		||||
	events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber,
 | 
			
		||||
		hcsNotificationSystemResumeCompleted, &timeout.SystemResume)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return makeSystemError(computeSystem, operation, err, events)
 | 
			
		||||
	}
 | 
			
		||||
@@ -603,7 +640,8 @@ func (computeSystem *System) Save(ctx context.Context, options interface{}) (err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	result, err := vmcompute.HcsSaveComputeSystem(ctx, computeSystem.handle, string(saveOptions))
 | 
			
		||||
	events, err := processAsyncHcsResult(ctx, err, result, computeSystem.callbackNumber, hcsNotificationSystemSaveCompleted, &timeout.SystemSave)
 | 
			
		||||
	events, err := processAsyncHcsResult(ctx, err, result, computeSystem.callbackNumber,
 | 
			
		||||
		hcsNotificationSystemSaveCompleted, &timeout.SystemSave)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return makeSystemError(computeSystem, operation, err, events)
 | 
			
		||||
	}
 | 
			
		||||
@@ -742,7 +780,8 @@ func (computeSystem *System) registerCallback(ctx context.Context) error {
 | 
			
		||||
	callbackMap[callbackNumber] = callbackContext
 | 
			
		||||
	callbackMapLock.Unlock()
 | 
			
		||||
 | 
			
		||||
	callbackHandle, err := vmcompute.HcsRegisterComputeSystemCallback(ctx, computeSystem.handle, notificationWatcherCallback, callbackNumber)
 | 
			
		||||
	callbackHandle, err := vmcompute.HcsRegisterComputeSystemCallback(ctx, computeSystem.handle,
 | 
			
		||||
		notificationWatcherCallback, callbackNumber)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hcs/waithelper.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hcs/waithelper.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -9,7 +9,14 @@ import (
 | 
			
		||||
	"github.com/Microsoft/hcsshim/internal/log"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func processAsyncHcsResult(ctx context.Context, err error, resultJSON string, callbackNumber uintptr, expectedNotification hcsNotification, timeout *time.Duration) ([]ErrorEvent, error) {
 | 
			
		||||
func processAsyncHcsResult(
 | 
			
		||||
	ctx context.Context,
 | 
			
		||||
	err error,
 | 
			
		||||
	resultJSON string,
 | 
			
		||||
	callbackNumber uintptr,
 | 
			
		||||
	expectedNotification hcsNotification,
 | 
			
		||||
	timeout *time.Duration,
 | 
			
		||||
) ([]ErrorEvent, error) {
 | 
			
		||||
	events := processHcsResult(ctx, resultJSON)
 | 
			
		||||
	if IsPending(err) {
 | 
			
		||||
		return nil, waitForNotification(ctx, callbackNumber, expectedNotification, timeout)
 | 
			
		||||
@@ -18,7 +25,12 @@ func processAsyncHcsResult(ctx context.Context, err error, resultJSON string, ca
 | 
			
		||||
	return events, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func waitForNotification(ctx context.Context, callbackNumber uintptr, expectedNotification hcsNotification, timeout *time.Duration) error {
 | 
			
		||||
func waitForNotification(
 | 
			
		||||
	ctx context.Context,
 | 
			
		||||
	callbackNumber uintptr,
 | 
			
		||||
	expectedNotification hcsNotification,
 | 
			
		||||
	timeout *time.Duration,
 | 
			
		||||
) error {
 | 
			
		||||
	callbackMapLock.RLock()
 | 
			
		||||
	if _, ok := callbackMap[callbackNumber]; !ok {
 | 
			
		||||
		callbackMapLock.RUnlock()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hcserror/hcserror.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hcserror/hcserror.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -3,11 +3,11 @@
 | 
			
		||||
package hcserror
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"syscall"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const ERROR_GEN_FAILURE = syscall.Errno(31)
 | 
			
		||||
	"golang.org/x/sys/windows"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type HcsError struct {
 | 
			
		||||
	title string
 | 
			
		||||
@@ -32,18 +32,21 @@ func (e *HcsError) Error() string {
 | 
			
		||||
 | 
			
		||||
func New(err error, title, rest string) error {
 | 
			
		||||
	// Pass through DLL errors directly since they do not originate from HCS.
 | 
			
		||||
	if _, ok := err.(*syscall.DLLError); ok {
 | 
			
		||||
	var e *windows.DLLError
 | 
			
		||||
	if errors.As(err, &e) {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	return &HcsError{title, rest, err}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func Win32FromError(err error) uint32 {
 | 
			
		||||
	if herr, ok := err.(*HcsError); ok {
 | 
			
		||||
	var herr *HcsError
 | 
			
		||||
	if errors.As(err, &herr) {
 | 
			
		||||
		return Win32FromError(herr.Err)
 | 
			
		||||
	}
 | 
			
		||||
	if code, ok := err.(syscall.Errno); ok {
 | 
			
		||||
	var code windows.Errno
 | 
			
		||||
	if errors.As(err, &code) {
 | 
			
		||||
		return uint32(code)
 | 
			
		||||
	}
 | 
			
		||||
	return uint32(ERROR_GEN_FAILURE)
 | 
			
		||||
	return uint32(windows.ERROR_GEN_FAILURE)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hns/hns.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hns/hns.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -2,7 +2,7 @@ package hns
 | 
			
		||||
 | 
			
		||||
import "fmt"
 | 
			
		||||
 | 
			
		||||
//go:generate go run ../../mksyscall_windows.go -output zsyscall_windows.go hns.go
 | 
			
		||||
//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go hns.go
 | 
			
		||||
 | 
			
		||||
//sys _hnsCall(method string, path string, object string, response **uint16) (hr error) = vmcompute.HNSCall?
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -36,7 +36,7 @@ type HNSEndpoint struct {
 | 
			
		||||
	SharedContainers   []string          `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//SystemType represents the type of the system on which actions are done
 | 
			
		||||
// SystemType represents the type of the system on which actions are done
 | 
			
		||||
type SystemType string
 | 
			
		||||
 | 
			
		||||
// SystemType const
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hns/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/Microsoft/hcsshim/internal/hns/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,6 @@
 | 
			
		||||
// Code generated mksyscall_windows.exe DO NOT EDIT
 | 
			
		||||
//go:build windows
 | 
			
		||||
 | 
			
		||||
// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
 | 
			
		||||
 | 
			
		||||
package hns
 | 
			
		||||
 | 
			
		||||
@@ -19,6 +21,7 @@ const (
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
 | 
			
		||||
	errERROR_EINVAL     error = syscall.EINVAL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// errnoErr returns common boxed Errno values, to prevent
 | 
			
		||||
@@ -26,7 +29,7 @@ var (
 | 
			
		||||
func errnoErr(e syscall.Errno) error {
 | 
			
		||||
	switch e {
 | 
			
		||||
	case 0:
 | 
			
		||||
		return nil
 | 
			
		||||
		return errERROR_EINVAL
 | 
			
		||||
	case errnoERROR_IO_PENDING:
 | 
			
		||||
		return errERROR_IO_PENDING
 | 
			
		||||
	}
 | 
			
		||||
@@ -62,7 +65,8 @@ func _hnsCall(method string, path string, object string, response **uint16) (hr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func __hnsCall(method *uint16, path *uint16, object *uint16, response **uint16) (hr error) {
 | 
			
		||||
	if hr = procHNSCall.Find(); hr != nil {
 | 
			
		||||
	hr = procHNSCall.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procHNSCall.Addr(), 4, uintptr(unsafe.Pointer(method)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(object)), uintptr(unsafe.Pointer(response)), 0, 0)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/interop/interop.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/interop/interop.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,7 +7,7 @@ import (
 | 
			
		||||
	"unsafe"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//go:generate go run ../../mksyscall_windows.go -output zsyscall_windows.go interop.go
 | 
			
		||||
//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go interop.go
 | 
			
		||||
 | 
			
		||||
//sys coTaskMemFree(buffer unsafe.Pointer) = api_ms_win_core_com_l1_1_0.CoTaskMemFree
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								vendor/github.com/Microsoft/hcsshim/internal/interop/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/Microsoft/hcsshim/internal/interop/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,6 @@
 | 
			
		||||
// Code generated mksyscall_windows.exe DO NOT EDIT
 | 
			
		||||
//go:build windows
 | 
			
		||||
 | 
			
		||||
// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
 | 
			
		||||
 | 
			
		||||
package interop
 | 
			
		||||
 | 
			
		||||
@@ -19,6 +21,7 @@ const (
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
 | 
			
		||||
	errERROR_EINVAL     error = syscall.EINVAL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// errnoErr returns common boxed Errno values, to prevent
 | 
			
		||||
@@ -26,7 +29,7 @@ var (
 | 
			
		||||
func errnoErr(e syscall.Errno) error {
 | 
			
		||||
	switch e {
 | 
			
		||||
	case 0:
 | 
			
		||||
		return nil
 | 
			
		||||
		return errERROR_EINVAL
 | 
			
		||||
	case errnoERROR_IO_PENDING:
 | 
			
		||||
		return errERROR_IO_PENDING
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/github.com/Microsoft/hcsshim/internal/jobobject/jobobject.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/Microsoft/hcsshim/internal/jobobject/jobobject.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -471,7 +471,7 @@ func (job *JobObject) QueryStorageStats() (*winapi.JOBOBJECT_IO_ATTRIBUTION_INFO
 | 
			
		||||
// ApplyFileBinding makes a file binding using the Bind Filter from target to root. If the job has
 | 
			
		||||
// not been upgraded to a silo this call will fail. The binding is only applied and visible for processes
 | 
			
		||||
// running in the job, any processes on the host or in another job will not be able to see the binding.
 | 
			
		||||
func (job *JobObject) ApplyFileBinding(root, target string, merged bool) error {
 | 
			
		||||
func (job *JobObject) ApplyFileBinding(root, target string, readOnly bool) error {
 | 
			
		||||
	job.handleLock.RLock()
 | 
			
		||||
	defer job.handleLock.RUnlock()
 | 
			
		||||
 | 
			
		||||
@@ -501,8 +501,8 @@ func (job *JobObject) ApplyFileBinding(root, target string, merged bool) error {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	flags := winapi.BINDFLT_FLAG_USE_CURRENT_SILO_MAPPING
 | 
			
		||||
	if merged {
 | 
			
		||||
		flags |= winapi.BINDFLT_FLAG_MERGED_BIND_MAPPING
 | 
			
		||||
	if readOnly {
 | 
			
		||||
		flags |= winapi.BINDFLT_FLAG_READ_ONLY_MAPPING
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err := winapi.BfSetupFilter(
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								vendor/github.com/Microsoft/hcsshim/internal/log/context.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/Microsoft/hcsshim/internal/log/context.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -48,9 +48,10 @@ func GetEntry(ctx context.Context) *logrus.Entry {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SetEntry updates the log entry in the context with the provided fields, and
 | 
			
		||||
// returns both. It is equivlent to:
 | 
			
		||||
//   entry := GetEntry(ctx).WithFields(fields)
 | 
			
		||||
//   ctx = WithContext(ctx, entry)
 | 
			
		||||
// returns both. It is equivalent to:
 | 
			
		||||
//
 | 
			
		||||
//	entry := GetEntry(ctx).WithFields(fields)
 | 
			
		||||
//	ctx = WithContext(ctx, entry)
 | 
			
		||||
//
 | 
			
		||||
// See WithContext for more information.
 | 
			
		||||
func SetEntry(ctx context.Context, fields logrus.Fields) (context.Context, *logrus.Entry) {
 | 
			
		||||
@@ -63,9 +64,10 @@ func SetEntry(ctx context.Context, fields logrus.Fields) (context.Context, *logr
 | 
			
		||||
 | 
			
		||||
// UpdateContext extracts the log entry from the context, and, if the entry's
 | 
			
		||||
// context points to a parent's of the current context, ands the entry
 | 
			
		||||
// to the most recent context. It is equivlent to:
 | 
			
		||||
//   entry :=GetEntry(ctx)
 | 
			
		||||
//   ctx = WithContext(ctx, entry)
 | 
			
		||||
// to the most recent context. It is equivalent to:
 | 
			
		||||
//
 | 
			
		||||
//	entry := GetEntry(ctx)
 | 
			
		||||
//	ctx = WithContext(ctx, entry)
 | 
			
		||||
//
 | 
			
		||||
// This allows the entry to reference the most recent context and any new
 | 
			
		||||
// values (such as span contexts) added to it.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/regstate/regstate.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/regstate/regstate.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -15,7 +15,7 @@ import (
 | 
			
		||||
	"golang.org/x/sys/windows/registry"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go regstate.go
 | 
			
		||||
//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go regstate.go
 | 
			
		||||
 | 
			
		||||
//sys	regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) = advapi32.RegCreateKeyExW
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								vendor/github.com/Microsoft/hcsshim/internal/regstate/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/Microsoft/hcsshim/internal/regstate/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,6 @@
 | 
			
		||||
// Code generated by 'go generate'; DO NOT EDIT.
 | 
			
		||||
//go:build windows
 | 
			
		||||
 | 
			
		||||
// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
 | 
			
		||||
 | 
			
		||||
package regstate
 | 
			
		||||
 | 
			
		||||
@@ -19,6 +21,7 @@ const (
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
 | 
			
		||||
	errERROR_EINVAL     error = syscall.EINVAL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// errnoErr returns common boxed Errno values, to prevent
 | 
			
		||||
@@ -26,7 +29,7 @@ var (
 | 
			
		||||
func errnoErr(e syscall.Errno) error {
 | 
			
		||||
	switch e {
 | 
			
		||||
	case 0:
 | 
			
		||||
		return nil
 | 
			
		||||
		return errERROR_EINVAL
 | 
			
		||||
	case errnoERROR_IO_PENDING:
 | 
			
		||||
		return errERROR_IO_PENDING
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/github.com/Microsoft/hcsshim/internal/runhcs/container.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/Microsoft/hcsshim/internal/runhcs/container.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,7 +7,6 @@ import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"os"
 | 
			
		||||
	"syscall"
 | 
			
		||||
	"time"
 | 
			
		||||
@@ -42,7 +41,7 @@ type ContainerState struct {
 | 
			
		||||
// returned success or error. If error converts that to an error and returns. If
 | 
			
		||||
// `p` is not nill will issue a `Kill` and `Wait` for exit.
 | 
			
		||||
func GetErrorFromPipe(pipe io.Reader, p *os.Process) error {
 | 
			
		||||
	serr, err := ioutil.ReadAll(pipe)
 | 
			
		||||
	serr, err := io.ReadAll(pipe)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								vendor/github.com/Microsoft/hcsshim/internal/safefile/safeopen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/Microsoft/hcsshim/internal/safefile/safeopen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -345,7 +345,6 @@ func MkdirRelative(path string, root *os.File) error {
 | 
			
		||||
func MkdirAllRelative(path string, root *os.File) error {
 | 
			
		||||
	pathParts := strings.Split(filepath.Clean(path), (string)(filepath.Separator))
 | 
			
		||||
	for index := range pathParts {
 | 
			
		||||
 | 
			
		||||
		partialPath := filepath.Join(pathParts[0 : index+1]...)
 | 
			
		||||
		stat, err := LstatRelative(partialPath, root)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/security/syscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/security/syscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,6 +1,6 @@
 | 
			
		||||
package security
 | 
			
		||||
 | 
			
		||||
//go:generate go run $GOPATH/src/golang.org/x/sys/windows/mkwinsyscall/mkwinsyscall.go -output zsyscall_windows.go syscall_windows.go
 | 
			
		||||
//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go syscall_windows.go
 | 
			
		||||
 | 
			
		||||
//sys getSecurityInfo(handle syscall.Handle, objectType uint32, si uint32, ppsidOwner **uintptr, ppsidGroup **uintptr, ppDacl *uintptr, ppSacl *uintptr, ppSecurityDescriptor *uintptr) (win32err error) = advapi32.GetSecurityInfo
 | 
			
		||||
//sys setSecurityInfo(handle syscall.Handle, objectType uint32, si uint32, psidOwner uintptr, psidGroup uintptr, pDacl uintptr, pSacl uintptr) (win32err error) = advapi32.SetSecurityInfo
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/Microsoft/hcsshim/internal/security/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/Microsoft/hcsshim/internal/security/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,6 @@
 | 
			
		||||
// Code generated by 'go generate'; DO NOT EDIT.
 | 
			
		||||
//go:build windows
 | 
			
		||||
 | 
			
		||||
// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
 | 
			
		||||
 | 
			
		||||
package security
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										27
									
								
								vendor/github.com/Microsoft/hcsshim/internal/vmcompute/vmcompute.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								vendor/github.com/Microsoft/hcsshim/internal/vmcompute/vmcompute.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,6 +7,7 @@ import (
 | 
			
		||||
	"syscall"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/sirupsen/logrus"
 | 
			
		||||
	"go.opencensus.io/trace"
 | 
			
		||||
 | 
			
		||||
	"github.com/Microsoft/hcsshim/internal/interop"
 | 
			
		||||
@@ -16,7 +17,7 @@ import (
 | 
			
		||||
	"github.com/Microsoft/hcsshim/internal/timeout"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//go:generate go run ../../mksyscall_windows.go -output zsyscall_windows.go vmcompute.go
 | 
			
		||||
//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go vmcompute.go
 | 
			
		||||
 | 
			
		||||
//sys hcsEnumerateComputeSystems(query string, computeSystems **uint16, result **uint16) (hr error) = vmcompute.HcsEnumerateComputeSystems?
 | 
			
		||||
//sys hcsCreateComputeSystem(id string, configuration string, identity syscall.Handle, computeSystem *HcsSystem, result **uint16) (hr error) = vmcompute.HcsCreateComputeSystem?
 | 
			
		||||
@@ -65,7 +66,7 @@ type HcsCallback syscall.Handle
 | 
			
		||||
type HcsProcessInformation struct {
 | 
			
		||||
	// ProcessId is the pid of the created process.
 | 
			
		||||
	ProcessId uint32
 | 
			
		||||
	reserved  uint32 //nolint:structcheck
 | 
			
		||||
	_         uint32 // reserved padding
 | 
			
		||||
	// StdInput is the handle associated with the stdin of the process.
 | 
			
		||||
	StdInput syscall.Handle
 | 
			
		||||
	// StdOutput is the handle associated with the stdout of the process.
 | 
			
		||||
@@ -75,12 +76,28 @@ type HcsProcessInformation struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func execute(ctx gcontext.Context, timeout time.Duration, f func() error) error {
 | 
			
		||||
	now := time.Now()
 | 
			
		||||
	if timeout > 0 {
 | 
			
		||||
		var cancel gcontext.CancelFunc
 | 
			
		||||
		ctx, cancel = gcontext.WithTimeout(ctx, timeout)
 | 
			
		||||
		defer cancel()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// if ctx already has prior deadlines, the shortest timeout takes precedence and is used.
 | 
			
		||||
	// find the true timeout for reporting
 | 
			
		||||
	//
 | 
			
		||||
	// this is mostly an issue with (*UtilityVM).Start(context.Context), which sets its
 | 
			
		||||
	// own (2 minute) timeout.
 | 
			
		||||
	deadline, ok := ctx.Deadline()
 | 
			
		||||
	trueTimeout := timeout
 | 
			
		||||
	if ok {
 | 
			
		||||
		trueTimeout = deadline.Sub(now)
 | 
			
		||||
		log.G(ctx).WithFields(logrus.Fields{
 | 
			
		||||
			logfields.Timeout: trueTimeout,
 | 
			
		||||
			"desiredTimeout":  timeout,
 | 
			
		||||
		}).Trace("Executing syscall with deadline")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	done := make(chan error, 1)
 | 
			
		||||
	go func() {
 | 
			
		||||
		done <- f()
 | 
			
		||||
@@ -88,8 +105,10 @@ func execute(ctx gcontext.Context, timeout time.Duration, f func() error) error
 | 
			
		||||
	select {
 | 
			
		||||
	case <-ctx.Done():
 | 
			
		||||
		if ctx.Err() == gcontext.DeadlineExceeded {
 | 
			
		||||
			log.G(ctx).WithField(logfields.Timeout, timeout).
 | 
			
		||||
				Warning("Syscall did not complete within operation timeout. This may indicate a platform issue. If it appears to be making no forward progress, obtain the stacks and see if there is a syscall stuck in the platform API for a significant length of time.")
 | 
			
		||||
			log.G(ctx).WithField(logfields.Timeout, trueTimeout).
 | 
			
		||||
				Warning("Syscall did not complete within operation timeout. This may indicate a platform issue. " +
 | 
			
		||||
					"If it appears to be making no forward progress, obtain the stacks and see if there is a syscall " +
 | 
			
		||||
					"stuck in the platform API for a significant length of time.")
 | 
			
		||||
		}
 | 
			
		||||
		return ctx.Err()
 | 
			
		||||
	case err := <-done:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										785
									
								
								vendor/github.com/Microsoft/hcsshim/internal/vmcompute/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										785
									
								
								vendor/github.com/Microsoft/hcsshim/internal/vmcompute/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,6 @@
 | 
			
		||||
// Code generated mksyscall_windows.exe DO NOT EDIT
 | 
			
		||||
//go:build windows
 | 
			
		||||
 | 
			
		||||
// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
 | 
			
		||||
 | 
			
		||||
package vmcompute
 | 
			
		||||
 | 
			
		||||
@@ -19,6 +21,7 @@ const (
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
 | 
			
		||||
	errERROR_EINVAL     error = syscall.EINVAL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// errnoErr returns common boxed Errno values, to prevent
 | 
			
		||||
@@ -26,7 +29,7 @@ var (
 | 
			
		||||
func errnoErr(e syscall.Errno) error {
 | 
			
		||||
	switch e {
 | 
			
		||||
	case 0:
 | 
			
		||||
		return nil
 | 
			
		||||
		return errERROR_EINVAL
 | 
			
		||||
	case errnoERROR_IO_PENDING:
 | 
			
		||||
		return errERROR_IO_PENDING
 | 
			
		||||
	}
 | 
			
		||||
@@ -39,48 +42,55 @@ func errnoErr(e syscall.Errno) error {
 | 
			
		||||
var (
 | 
			
		||||
	modvmcompute = windows.NewLazySystemDLL("vmcompute.dll")
 | 
			
		||||
 | 
			
		||||
	procHcsEnumerateComputeSystems         = modvmcompute.NewProc("HcsEnumerateComputeSystems")
 | 
			
		||||
	procHcsCreateComputeSystem             = modvmcompute.NewProc("HcsCreateComputeSystem")
 | 
			
		||||
	procHcsOpenComputeSystem               = modvmcompute.NewProc("HcsOpenComputeSystem")
 | 
			
		||||
	procHcsCloseComputeSystem              = modvmcompute.NewProc("HcsCloseComputeSystem")
 | 
			
		||||
	procHcsStartComputeSystem              = modvmcompute.NewProc("HcsStartComputeSystem")
 | 
			
		||||
	procHcsShutdownComputeSystem           = modvmcompute.NewProc("HcsShutdownComputeSystem")
 | 
			
		||||
	procHcsTerminateComputeSystem          = modvmcompute.NewProc("HcsTerminateComputeSystem")
 | 
			
		||||
	procHcsPauseComputeSystem              = modvmcompute.NewProc("HcsPauseComputeSystem")
 | 
			
		||||
	procHcsResumeComputeSystem             = modvmcompute.NewProc("HcsResumeComputeSystem")
 | 
			
		||||
	procHcsGetComputeSystemProperties      = modvmcompute.NewProc("HcsGetComputeSystemProperties")
 | 
			
		||||
	procHcsModifyComputeSystem             = modvmcompute.NewProc("HcsModifyComputeSystem")
 | 
			
		||||
	procHcsModifyServiceSettings           = modvmcompute.NewProc("HcsModifyServiceSettings")
 | 
			
		||||
	procHcsRegisterComputeSystemCallback   = modvmcompute.NewProc("HcsRegisterComputeSystemCallback")
 | 
			
		||||
	procHcsUnregisterComputeSystemCallback = modvmcompute.NewProc("HcsUnregisterComputeSystemCallback")
 | 
			
		||||
	procHcsSaveComputeSystem               = modvmcompute.NewProc("HcsSaveComputeSystem")
 | 
			
		||||
	procHcsCreateProcess                   = modvmcompute.NewProc("HcsCreateProcess")
 | 
			
		||||
	procHcsOpenProcess                     = modvmcompute.NewProc("HcsOpenProcess")
 | 
			
		||||
	procHcsCloseProcess                    = modvmcompute.NewProc("HcsCloseProcess")
 | 
			
		||||
	procHcsTerminateProcess                = modvmcompute.NewProc("HcsTerminateProcess")
 | 
			
		||||
	procHcsSignalProcess                   = modvmcompute.NewProc("HcsSignalProcess")
 | 
			
		||||
	procHcsCreateComputeSystem             = modvmcompute.NewProc("HcsCreateComputeSystem")
 | 
			
		||||
	procHcsCreateProcess                   = modvmcompute.NewProc("HcsCreateProcess")
 | 
			
		||||
	procHcsEnumerateComputeSystems         = modvmcompute.NewProc("HcsEnumerateComputeSystems")
 | 
			
		||||
	procHcsGetComputeSystemProperties      = modvmcompute.NewProc("HcsGetComputeSystemProperties")
 | 
			
		||||
	procHcsGetProcessInfo                  = modvmcompute.NewProc("HcsGetProcessInfo")
 | 
			
		||||
	procHcsGetProcessProperties            = modvmcompute.NewProc("HcsGetProcessProperties")
 | 
			
		||||
	procHcsModifyProcess                   = modvmcompute.NewProc("HcsModifyProcess")
 | 
			
		||||
	procHcsGetServiceProperties            = modvmcompute.NewProc("HcsGetServiceProperties")
 | 
			
		||||
	procHcsModifyComputeSystem             = modvmcompute.NewProc("HcsModifyComputeSystem")
 | 
			
		||||
	procHcsModifyProcess                   = modvmcompute.NewProc("HcsModifyProcess")
 | 
			
		||||
	procHcsModifyServiceSettings           = modvmcompute.NewProc("HcsModifyServiceSettings")
 | 
			
		||||
	procHcsOpenComputeSystem               = modvmcompute.NewProc("HcsOpenComputeSystem")
 | 
			
		||||
	procHcsOpenProcess                     = modvmcompute.NewProc("HcsOpenProcess")
 | 
			
		||||
	procHcsPauseComputeSystem              = modvmcompute.NewProc("HcsPauseComputeSystem")
 | 
			
		||||
	procHcsRegisterComputeSystemCallback   = modvmcompute.NewProc("HcsRegisterComputeSystemCallback")
 | 
			
		||||
	procHcsRegisterProcessCallback         = modvmcompute.NewProc("HcsRegisterProcessCallback")
 | 
			
		||||
	procHcsResumeComputeSystem             = modvmcompute.NewProc("HcsResumeComputeSystem")
 | 
			
		||||
	procHcsSaveComputeSystem               = modvmcompute.NewProc("HcsSaveComputeSystem")
 | 
			
		||||
	procHcsShutdownComputeSystem           = modvmcompute.NewProc("HcsShutdownComputeSystem")
 | 
			
		||||
	procHcsSignalProcess                   = modvmcompute.NewProc("HcsSignalProcess")
 | 
			
		||||
	procHcsStartComputeSystem              = modvmcompute.NewProc("HcsStartComputeSystem")
 | 
			
		||||
	procHcsTerminateComputeSystem          = modvmcompute.NewProc("HcsTerminateComputeSystem")
 | 
			
		||||
	procHcsTerminateProcess                = modvmcompute.NewProc("HcsTerminateProcess")
 | 
			
		||||
	procHcsUnregisterComputeSystemCallback = modvmcompute.NewProc("HcsUnregisterComputeSystemCallback")
 | 
			
		||||
	procHcsUnregisterProcessCallback       = modvmcompute.NewProc("HcsUnregisterProcessCallback")
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func hcsEnumerateComputeSystems(query string, computeSystems **uint16, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(query)
 | 
			
		||||
func hcsCloseComputeSystem(computeSystem HcsSystem) (hr error) {
 | 
			
		||||
	hr = procHcsCloseComputeSystem.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsEnumerateComputeSystems(_p0, computeSystems, result)
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsCloseComputeSystem.Addr(), 1, uintptr(computeSystem), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsEnumerateComputeSystems(query *uint16, computeSystems **uint16, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsEnumerateComputeSystems.Find(); hr != nil {
 | 
			
		||||
func hcsCloseProcess(process HcsProcess) (hr error) {
 | 
			
		||||
	hr = procHcsCloseProcess.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsEnumerateComputeSystems.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(computeSystems)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsCloseProcess.Addr(), 1, uintptr(process), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
@@ -105,7 +115,8 @@ func hcsCreateComputeSystem(id string, configuration string, identity syscall.Ha
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsCreateComputeSystem(id *uint16, configuration *uint16, identity syscall.Handle, computeSystem *HcsSystem, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsCreateComputeSystem.Find(); hr != nil {
 | 
			
		||||
	hr = procHcsCreateComputeSystem.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procHcsCreateComputeSystem.Addr(), 5, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(configuration)), uintptr(identity), uintptr(unsafe.Pointer(computeSystem)), uintptr(unsafe.Pointer(result)), 0)
 | 
			
		||||
@@ -118,278 +129,6 @@ func _hcsCreateComputeSystem(id *uint16, configuration *uint16, identity syscall
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsOpenComputeSystem(id string, computeSystem *HcsSystem, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsOpenComputeSystem(_p0, computeSystem, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsOpenComputeSystem(id *uint16, computeSystem *HcsSystem, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsOpenComputeSystem.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsOpenComputeSystem.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(computeSystem)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsCloseComputeSystem(computeSystem HcsSystem) (hr error) {
 | 
			
		||||
	if hr = procHcsCloseComputeSystem.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsCloseComputeSystem.Addr(), 1, uintptr(computeSystem), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsStartComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsStartComputeSystem(computeSystem, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsStartComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsStartComputeSystem.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsStartComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsShutdownComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsShutdownComputeSystem(computeSystem, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsShutdownComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsShutdownComputeSystem.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsShutdownComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsTerminateComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsTerminateComputeSystem(computeSystem, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsTerminateComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsTerminateComputeSystem.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsTerminateComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsPauseComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsPauseComputeSystem(computeSystem, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsPauseComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsPauseComputeSystem.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsPauseComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsResumeComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsResumeComputeSystem(computeSystem, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsResumeComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsResumeComputeSystem.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsResumeComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsGetComputeSystemProperties(computeSystem HcsSystem, propertyQuery string, properties **uint16, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(propertyQuery)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsGetComputeSystemProperties(computeSystem, _p0, properties, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsGetComputeSystemProperties(computeSystem HcsSystem, propertyQuery *uint16, properties **uint16, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsGetComputeSystemProperties.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procHcsGetComputeSystemProperties.Addr(), 4, uintptr(computeSystem), uintptr(unsafe.Pointer(propertyQuery)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsModifyComputeSystem(computeSystem HcsSystem, configuration string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(configuration)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsModifyComputeSystem(computeSystem, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsModifyComputeSystem(computeSystem HcsSystem, configuration *uint16, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsModifyComputeSystem.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsModifyComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(configuration)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsModifyServiceSettings(settings string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(settings)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsModifyServiceSettings(_p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsModifyServiceSettings(settings *uint16, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsModifyServiceSettings.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsModifyServiceSettings.Addr(), 2, uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsRegisterComputeSystemCallback(computeSystem HcsSystem, callback uintptr, context uintptr, callbackHandle *HcsCallback) (hr error) {
 | 
			
		||||
	if hr = procHcsRegisterComputeSystemCallback.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procHcsRegisterComputeSystemCallback.Addr(), 4, uintptr(computeSystem), uintptr(callback), uintptr(context), uintptr(unsafe.Pointer(callbackHandle)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsUnregisterComputeSystemCallback(callbackHandle HcsCallback) (hr error) {
 | 
			
		||||
	if hr = procHcsUnregisterComputeSystemCallback.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsUnregisterComputeSystemCallback.Addr(), 1, uintptr(callbackHandle), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsSaveComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsSaveComputeSystem(computeSystem, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsSaveComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsSaveComputeSystem.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsSaveComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsCreateProcess(computeSystem HcsSystem, processParameters string, processInformation *HcsProcessInformation, process *HcsProcess, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(processParameters)
 | 
			
		||||
@@ -400,7 +139,8 @@ func hcsCreateProcess(computeSystem HcsSystem, processParameters string, process
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsCreateProcess(computeSystem HcsSystem, processParameters *uint16, processInformation *HcsProcessInformation, process *HcsProcess, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsCreateProcess.Find(); hr != nil {
 | 
			
		||||
	hr = procHcsCreateProcess.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procHcsCreateProcess.Addr(), 5, uintptr(computeSystem), uintptr(unsafe.Pointer(processParameters)), uintptr(unsafe.Pointer(processInformation)), uintptr(unsafe.Pointer(process)), uintptr(unsafe.Pointer(result)), 0)
 | 
			
		||||
@@ -413,62 +153,45 @@ func _hcsCreateProcess(computeSystem HcsSystem, processParameters *uint16, proce
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsOpenProcess(computeSystem HcsSystem, pid uint32, process *HcsProcess, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsOpenProcess.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procHcsOpenProcess.Addr(), 4, uintptr(computeSystem), uintptr(pid), uintptr(unsafe.Pointer(process)), uintptr(unsafe.Pointer(result)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsCloseProcess(process HcsProcess) (hr error) {
 | 
			
		||||
	if hr = procHcsCloseProcess.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsCloseProcess.Addr(), 1, uintptr(process), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsTerminateProcess(process HcsProcess, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsTerminateProcess.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsTerminateProcess.Addr(), 2, uintptr(process), uintptr(unsafe.Pointer(result)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsSignalProcess(process HcsProcess, options string, result **uint16) (hr error) {
 | 
			
		||||
func hcsEnumerateComputeSystems(query string, computeSystems **uint16, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(query)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsSignalProcess(process, _p0, result)
 | 
			
		||||
	return _hcsEnumerateComputeSystems(_p0, computeSystems, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsSignalProcess(process HcsProcess, options *uint16, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsSignalProcess.Find(); hr != nil {
 | 
			
		||||
func _hcsEnumerateComputeSystems(query *uint16, computeSystems **uint16, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsEnumerateComputeSystems.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsSignalProcess.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsEnumerateComputeSystems.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(computeSystems)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsGetComputeSystemProperties(computeSystem HcsSystem, propertyQuery string, properties **uint16, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(propertyQuery)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsGetComputeSystemProperties(computeSystem, _p0, properties, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsGetComputeSystemProperties(computeSystem HcsSystem, propertyQuery *uint16, properties **uint16, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsGetComputeSystemProperties.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procHcsGetComputeSystemProperties.Addr(), 4, uintptr(computeSystem), uintptr(unsafe.Pointer(propertyQuery)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
@@ -479,7 +202,8 @@ func _hcsSignalProcess(process HcsProcess, options *uint16, result **uint16) (hr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsGetProcessInfo(process HcsProcess, processInformation *HcsProcessInformation, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsGetProcessInfo.Find(); hr != nil {
 | 
			
		||||
	hr = procHcsGetProcessInfo.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsGetProcessInfo.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(processInformation)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
@@ -493,33 +217,11 @@ func hcsGetProcessInfo(process HcsProcess, processInformation *HcsProcessInforma
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsGetProcessProperties(process HcsProcess, processProperties **uint16, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsGetProcessProperties.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsGetProcessProperties.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(processProperties)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsModifyProcess(process HcsProcess, settings string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(settings)
 | 
			
		||||
	hr = procHcsGetProcessProperties.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsModifyProcess(process, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsModifyProcess(process HcsProcess, settings *uint16, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsModifyProcess.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsModifyProcess.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsGetProcessProperties.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(processProperties)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
@@ -539,7 +241,8 @@ func hcsGetServiceProperties(propertyQuery string, properties **uint16, result *
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsGetServiceProperties(propertyQuery *uint16, properties **uint16, result **uint16) (hr error) {
 | 
			
		||||
	if hr = procHcsGetServiceProperties.Find(); hr != nil {
 | 
			
		||||
	hr = procHcsGetServiceProperties.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsGetServiceProperties.Addr(), 3, uintptr(unsafe.Pointer(propertyQuery)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
@@ -552,8 +255,159 @@ func _hcsGetServiceProperties(propertyQuery *uint16, properties **uint16, result
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsModifyComputeSystem(computeSystem HcsSystem, configuration string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(configuration)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsModifyComputeSystem(computeSystem, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsModifyComputeSystem(computeSystem HcsSystem, configuration *uint16, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsModifyComputeSystem.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsModifyComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(configuration)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsModifyProcess(process HcsProcess, settings string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(settings)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsModifyProcess(process, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsModifyProcess(process HcsProcess, settings *uint16, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsModifyProcess.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsModifyProcess.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsModifyServiceSettings(settings string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(settings)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsModifyServiceSettings(_p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsModifyServiceSettings(settings *uint16, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsModifyServiceSettings.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsModifyServiceSettings.Addr(), 2, uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsOpenComputeSystem(id string, computeSystem *HcsSystem, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsOpenComputeSystem(_p0, computeSystem, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsOpenComputeSystem(id *uint16, computeSystem *HcsSystem, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsOpenComputeSystem.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsOpenComputeSystem.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(computeSystem)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsOpenProcess(computeSystem HcsSystem, pid uint32, process *HcsProcess, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsOpenProcess.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procHcsOpenProcess.Addr(), 4, uintptr(computeSystem), uintptr(pid), uintptr(unsafe.Pointer(process)), uintptr(unsafe.Pointer(result)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsPauseComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsPauseComputeSystem(computeSystem, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsPauseComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsPauseComputeSystem.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsPauseComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsRegisterComputeSystemCallback(computeSystem HcsSystem, callback uintptr, context uintptr, callbackHandle *HcsCallback) (hr error) {
 | 
			
		||||
	hr = procHcsRegisterComputeSystemCallback.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procHcsRegisterComputeSystemCallback.Addr(), 4, uintptr(computeSystem), uintptr(callback), uintptr(context), uintptr(unsafe.Pointer(callbackHandle)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsRegisterProcessCallback(process HcsProcess, callback uintptr, context uintptr, callbackHandle *HcsCallback) (hr error) {
 | 
			
		||||
	if hr = procHcsRegisterProcessCallback.Find(); hr != nil {
 | 
			
		||||
	hr = procHcsRegisterProcessCallback.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procHcsRegisterProcessCallback.Addr(), 4, uintptr(process), uintptr(callback), uintptr(context), uintptr(unsafe.Pointer(callbackHandle)), 0, 0)
 | 
			
		||||
@@ -566,8 +420,183 @@ func hcsRegisterProcessCallback(process HcsProcess, callback uintptr, context ui
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsResumeComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsResumeComputeSystem(computeSystem, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsResumeComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsResumeComputeSystem.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsResumeComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsSaveComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsSaveComputeSystem(computeSystem, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsSaveComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsSaveComputeSystem.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsSaveComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsShutdownComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsShutdownComputeSystem(computeSystem, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsShutdownComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsShutdownComputeSystem.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsShutdownComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsSignalProcess(process HcsProcess, options string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsSignalProcess(process, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsSignalProcess(process HcsProcess, options *uint16, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsSignalProcess.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsSignalProcess.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsStartComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsStartComputeSystem(computeSystem, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsStartComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsStartComputeSystem.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsStartComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsTerminateComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(options)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _hcsTerminateComputeSystem(computeSystem, _p0, result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _hcsTerminateComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsTerminateComputeSystem.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsTerminateComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsTerminateProcess(process HcsProcess, result **uint16) (hr error) {
 | 
			
		||||
	hr = procHcsTerminateProcess.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsTerminateProcess.Addr(), 2, uintptr(process), uintptr(unsafe.Pointer(result)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsUnregisterComputeSystemCallback(callbackHandle HcsCallback) (hr error) {
 | 
			
		||||
	hr = procHcsUnregisterComputeSystemCallback.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsUnregisterComputeSystemCallback.Addr(), 1, uintptr(callbackHandle), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func hcsUnregisterProcessCallback(callbackHandle HcsCallback) (hr error) {
 | 
			
		||||
	if hr = procHcsUnregisterProcessCallback.Find(); hr != nil {
 | 
			
		||||
	hr = procHcsUnregisterProcessCallback.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procHcsUnregisterProcessCallback.Addr(), 1, uintptr(callbackHandle), 0, 0)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/github.com/Microsoft/hcsshim/internal/wclayer/exportlayer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/Microsoft/hcsshim/internal/wclayer/exportlayer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,7 +4,6 @@ package wclayer
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"os"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
@@ -68,7 +67,7 @@ func NewLayerReader(ctx context.Context, path string, parentLayerPaths []string)
 | 
			
		||||
		trace.StringAttribute("path", path),
 | 
			
		||||
		trace.StringAttribute("parentLayerPaths", strings.Join(parentLayerPaths, ", ")))
 | 
			
		||||
 | 
			
		||||
	exportPath, err := ioutil.TempDir("", "hcs")
 | 
			
		||||
	exportPath, err := os.MkdirTemp("", "hcs")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/github.com/Microsoft/hcsshim/internal/wclayer/importlayer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/Microsoft/hcsshim/internal/wclayer/importlayer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,7 +4,6 @@ package wclayer
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
	"strings"
 | 
			
		||||
@@ -150,7 +149,7 @@ func NewLayerWriter(ctx context.Context, path string, parentLayerPaths []string)
 | 
			
		||||
		}, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	importPath, err := ioutil.TempDir("", "hcs")
 | 
			
		||||
	importPath, err := os.MkdirTemp("", "hcs")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										44
									
								
								vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerutils.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										44
									
								
								vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerutils.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -13,7 +13,9 @@ import (
 | 
			
		||||
	"github.com/sirupsen/logrus"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
/* To pass into syscall, we need a struct matching the following:
 | 
			
		||||
/*
 | 
			
		||||
To pass into syscall, we need a struct matching the following:
 | 
			
		||||
 | 
			
		||||
enum GraphDriverType
 | 
			
		||||
{
 | 
			
		||||
    DiffDriver,
 | 
			
		||||
@@ -36,32 +38,34 @@ var (
 | 
			
		||||
	stdDriverInfo    = driverInfo{1, &utf16EmptyString}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
/* To pass into syscall, we need a struct matching the following:
 | 
			
		||||
/*
 | 
			
		||||
To pass into syscall, we need a struct matching the following:
 | 
			
		||||
 | 
			
		||||
typedef struct _WC_LAYER_DESCRIPTOR {
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // The ID of the layer
 | 
			
		||||
    //
 | 
			
		||||
	//
 | 
			
		||||
	// The ID of the layer
 | 
			
		||||
	//
 | 
			
		||||
 | 
			
		||||
    GUID LayerId;
 | 
			
		||||
	GUID LayerId;
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // Additional flags
 | 
			
		||||
    //
 | 
			
		||||
	//
 | 
			
		||||
	// Additional flags
 | 
			
		||||
	//
 | 
			
		||||
 | 
			
		||||
    union {
 | 
			
		||||
        struct {
 | 
			
		||||
            ULONG Reserved : 31;
 | 
			
		||||
            ULONG Dirty : 1;    // Created from sandbox as a result of snapshot
 | 
			
		||||
        };
 | 
			
		||||
        ULONG Value;
 | 
			
		||||
    } Flags;
 | 
			
		||||
	union {
 | 
			
		||||
	    struct {
 | 
			
		||||
	        ULONG Reserved : 31;
 | 
			
		||||
	        ULONG Dirty : 1;    // Created from sandbox as a result of snapshot
 | 
			
		||||
	    };
 | 
			
		||||
	    ULONG Value;
 | 
			
		||||
	} Flags;
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // Path to the layer root directory, null-terminated
 | 
			
		||||
    //
 | 
			
		||||
	//
 | 
			
		||||
	// Path to the layer root directory, null-terminated
 | 
			
		||||
	//
 | 
			
		||||
 | 
			
		||||
    PCWSTR Path;
 | 
			
		||||
	PCWSTR Path;
 | 
			
		||||
 | 
			
		||||
} WC_LAYER_DESCRIPTOR, *PWC_LAYER_DESCRIPTOR;
 | 
			
		||||
*/
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								vendor/github.com/Microsoft/hcsshim/internal/wclayer/legacy.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/Microsoft/hcsshim/internal/wclayer/legacy.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -8,7 +8,6 @@ import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
	"strings"
 | 
			
		||||
@@ -377,7 +376,7 @@ func newLegacyLayerWriter(root string, parentRoots []string, destRoot string) (w
 | 
			
		||||
		}
 | 
			
		||||
		w.parentRoots = append(w.parentRoots, f)
 | 
			
		||||
	}
 | 
			
		||||
	w.bufWriter = bufio.NewWriterSize(ioutil.Discard, 65536)
 | 
			
		||||
	w.bufWriter = bufio.NewWriterSize(io.Discard, 65536)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -420,7 +419,7 @@ func (w *legacyLayerWriter) reset() error {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	w.bufWriter.Reset(ioutil.Discard)
 | 
			
		||||
	w.bufWriter.Reset(io.Discard)
 | 
			
		||||
	if w.currentIsDir {
 | 
			
		||||
		r := w.currentFile
 | 
			
		||||
		br := winio.NewBackupStreamReader(r)
 | 
			
		||||
@@ -696,7 +695,7 @@ func (w *legacyLayerWriter) Add(name string, fileInfo *winio.FileBasicInfo) erro
 | 
			
		||||
		// The file attributes are written before the stream.
 | 
			
		||||
		err = binary.Write(w.bufWriter, binary.LittleEndian, uint32(fileInfo.FileAttributes))
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			w.bufWriter.Reset(ioutil.Discard)
 | 
			
		||||
			w.bufWriter.Reset(io.Discard)
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/wclayer/wclayer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/wclayer/wclayer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,7 +4,7 @@ package wclayer
 | 
			
		||||
 | 
			
		||||
import "github.com/Microsoft/go-winio/pkg/guid"
 | 
			
		||||
 | 
			
		||||
//go:generate go run ../../mksyscall_windows.go -output zsyscall_windows.go wclayer.go
 | 
			
		||||
//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go wclayer.go
 | 
			
		||||
 | 
			
		||||
//sys activateLayer(info *driverInfo, id string) (hr error) = vmcompute.ActivateLayer?
 | 
			
		||||
//sys copyLayer(info *driverInfo, srcId string, dstId string, descriptors []WC_LAYER_DESCRIPTOR) (hr error) = vmcompute.CopyLayer?
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										565
									
								
								vendor/github.com/Microsoft/hcsshim/internal/wclayer/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										565
									
								
								vendor/github.com/Microsoft/hcsshim/internal/wclayer/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,6 @@
 | 
			
		||||
// Code generated mksyscall_windows.exe DO NOT EDIT
 | 
			
		||||
//go:build windows
 | 
			
		||||
 | 
			
		||||
// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
 | 
			
		||||
 | 
			
		||||
package wclayer
 | 
			
		||||
 | 
			
		||||
@@ -19,6 +21,7 @@ const (
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
 | 
			
		||||
	errERROR_EINVAL     error = syscall.EINVAL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// errnoErr returns common boxed Errno values, to prevent
 | 
			
		||||
@@ -26,7 +29,7 @@ var (
 | 
			
		||||
func errnoErr(e syscall.Errno) error {
 | 
			
		||||
	switch e {
 | 
			
		||||
	case 0:
 | 
			
		||||
		return nil
 | 
			
		||||
		return errERROR_EINVAL
 | 
			
		||||
	case errnoERROR_IO_PENDING:
 | 
			
		||||
		return errERROR_IO_PENDING
 | 
			
		||||
	}
 | 
			
		||||
@@ -37,33 +40,75 @@ func errnoErr(e syscall.Errno) error {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	modvmcompute = windows.NewLazySystemDLL("vmcompute.dll")
 | 
			
		||||
	modvirtdisk  = windows.NewLazySystemDLL("virtdisk.dll")
 | 
			
		||||
	modkernel32  = windows.NewLazySystemDLL("kernel32.dll")
 | 
			
		||||
	modvirtdisk  = windows.NewLazySystemDLL("virtdisk.dll")
 | 
			
		||||
	modvmcompute = windows.NewLazySystemDLL("vmcompute.dll")
 | 
			
		||||
 | 
			
		||||
	procGetDiskFreeSpaceExW = modkernel32.NewProc("GetDiskFreeSpaceExW")
 | 
			
		||||
	procAttachVirtualDisk   = modvirtdisk.NewProc("AttachVirtualDisk")
 | 
			
		||||
	procOpenVirtualDisk     = modvirtdisk.NewProc("OpenVirtualDisk")
 | 
			
		||||
	procActivateLayer       = modvmcompute.NewProc("ActivateLayer")
 | 
			
		||||
	procCopyLayer           = modvmcompute.NewProc("CopyLayer")
 | 
			
		||||
	procCreateLayer         = modvmcompute.NewProc("CreateLayer")
 | 
			
		||||
	procCreateSandboxLayer  = modvmcompute.NewProc("CreateSandboxLayer")
 | 
			
		||||
	procExpandSandboxSize   = modvmcompute.NewProc("ExpandSandboxSize")
 | 
			
		||||
	procDeactivateLayer     = modvmcompute.NewProc("DeactivateLayer")
 | 
			
		||||
	procDestroyLayer        = modvmcompute.NewProc("DestroyLayer")
 | 
			
		||||
	procExpandSandboxSize   = modvmcompute.NewProc("ExpandSandboxSize")
 | 
			
		||||
	procExportLayer         = modvmcompute.NewProc("ExportLayer")
 | 
			
		||||
	procGetLayerMountPath   = modvmcompute.NewProc("GetLayerMountPath")
 | 
			
		||||
	procGetBaseImages       = modvmcompute.NewProc("GetBaseImages")
 | 
			
		||||
	procGetLayerMountPath   = modvmcompute.NewProc("GetLayerMountPath")
 | 
			
		||||
	procGrantVmAccess       = modvmcompute.NewProc("GrantVmAccess")
 | 
			
		||||
	procImportLayer         = modvmcompute.NewProc("ImportLayer")
 | 
			
		||||
	procLayerExists         = modvmcompute.NewProc("LayerExists")
 | 
			
		||||
	procNameToGuid          = modvmcompute.NewProc("NameToGuid")
 | 
			
		||||
	procPrepareLayer        = modvmcompute.NewProc("PrepareLayer")
 | 
			
		||||
	procUnprepareLayer      = modvmcompute.NewProc("UnprepareLayer")
 | 
			
		||||
	procProcessBaseImage    = modvmcompute.NewProc("ProcessBaseImage")
 | 
			
		||||
	procProcessUtilityImage = modvmcompute.NewProc("ProcessUtilityImage")
 | 
			
		||||
	procGrantVmAccess       = modvmcompute.NewProc("GrantVmAccess")
 | 
			
		||||
	procOpenVirtualDisk     = modvirtdisk.NewProc("OpenVirtualDisk")
 | 
			
		||||
	procAttachVirtualDisk   = modvirtdisk.NewProc("AttachVirtualDisk")
 | 
			
		||||
	procGetDiskFreeSpaceExW = modkernel32.NewProc("GetDiskFreeSpaceExW")
 | 
			
		||||
	procUnprepareLayer      = modvmcompute.NewProc("UnprepareLayer")
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func getDiskFreeSpaceEx(directoryName string, freeBytesAvailableToCaller *int64, totalNumberOfBytes *int64, totalNumberOfFreeBytes *int64) (err error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, err = syscall.UTF16PtrFromString(directoryName)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _getDiskFreeSpaceEx(_p0, freeBytesAvailableToCaller, totalNumberOfBytes, totalNumberOfFreeBytes)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _getDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *int64, totalNumberOfBytes *int64, totalNumberOfFreeBytes *int64) (err error) {
 | 
			
		||||
	r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0)
 | 
			
		||||
	if r1 == 0 {
 | 
			
		||||
		err = errnoErr(e1)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func attachVirtualDisk(handle syscall.Handle, sd uintptr, flags uint32, providerFlags uint32, params uintptr, overlapped uintptr) (err error) {
 | 
			
		||||
	r1, _, e1 := syscall.Syscall6(procAttachVirtualDisk.Addr(), 6, uintptr(handle), uintptr(sd), uintptr(flags), uintptr(providerFlags), uintptr(params), uintptr(overlapped))
 | 
			
		||||
	if r1 != 0 {
 | 
			
		||||
		err = errnoErr(e1)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func openVirtualDisk(virtualStorageType *virtualStorageType, path string, virtualDiskAccessMask uint32, flags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (err error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, err = syscall.UTF16PtrFromString(path)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _openVirtualDisk(virtualStorageType, _p0, virtualDiskAccessMask, flags, parameters, handle)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _openVirtualDisk(virtualStorageType *virtualStorageType, path *uint16, virtualDiskAccessMask uint32, flags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (err error) {
 | 
			
		||||
	r1, _, e1 := syscall.Syscall6(procOpenVirtualDisk.Addr(), 6, uintptr(unsafe.Pointer(virtualStorageType)), uintptr(unsafe.Pointer(path)), uintptr(virtualDiskAccessMask), uintptr(flags), uintptr(unsafe.Pointer(parameters)), uintptr(unsafe.Pointer(handle)))
 | 
			
		||||
	if r1 != 0 {
 | 
			
		||||
		err = errnoErr(e1)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func activateLayer(info *driverInfo, id string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
@@ -74,7 +119,8 @@ func activateLayer(info *driverInfo, id string) (hr error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _activateLayer(info *driverInfo, id *uint16) (hr error) {
 | 
			
		||||
	if hr = procActivateLayer.Find(); hr != nil {
 | 
			
		||||
	hr = procActivateLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procActivateLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0)
 | 
			
		||||
@@ -102,13 +148,14 @@ func copyLayer(info *driverInfo, srcId string, dstId string, descriptors []WC_LA
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _copyLayer(info *driverInfo, srcId *uint16, dstId *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
			
		||||
	hr = procCopyLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	var _p2 *WC_LAYER_DESCRIPTOR
 | 
			
		||||
	if len(descriptors) > 0 {
 | 
			
		||||
		_p2 = &descriptors[0]
 | 
			
		||||
	}
 | 
			
		||||
	if hr = procCopyLayer.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procCopyLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(srcId)), uintptr(unsafe.Pointer(dstId)), uintptr(unsafe.Pointer(_p2)), uintptr(len(descriptors)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
@@ -134,7 +181,8 @@ func createLayer(info *driverInfo, id string, parent string) (hr error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _createLayer(info *driverInfo, id *uint16, parent *uint16) (hr error) {
 | 
			
		||||
	if hr = procCreateLayer.Find(); hr != nil {
 | 
			
		||||
	hr = procCreateLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procCreateLayer.Addr(), 3, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(parent)))
 | 
			
		||||
@@ -157,13 +205,14 @@ func createSandboxLayer(info *driverInfo, id string, parent uintptr, descriptors
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _createSandboxLayer(info *driverInfo, id *uint16, parent uintptr, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
			
		||||
	hr = procCreateSandboxLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	var _p1 *WC_LAYER_DESCRIPTOR
 | 
			
		||||
	if len(descriptors) > 0 {
 | 
			
		||||
		_p1 = &descriptors[0]
 | 
			
		||||
	}
 | 
			
		||||
	if hr = procCreateSandboxLayer.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procCreateSandboxLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(parent), uintptr(unsafe.Pointer(_p1)), uintptr(len(descriptors)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
@@ -174,29 +223,6 @@ func _createSandboxLayer(info *driverInfo, id *uint16, parent uintptr, descripto
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func expandSandboxSize(info *driverInfo, id string, size uint64) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _expandSandboxSize(info, _p0, size)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _expandSandboxSize(info *driverInfo, id *uint16, size uint64) (hr error) {
 | 
			
		||||
	if hr = procExpandSandboxSize.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procExpandSandboxSize.Addr(), 3, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(size))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func deactivateLayer(info *driverInfo, id string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
@@ -207,7 +233,8 @@ func deactivateLayer(info *driverInfo, id string) (hr error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _deactivateLayer(info *driverInfo, id *uint16) (hr error) {
 | 
			
		||||
	if hr = procDeactivateLayer.Find(); hr != nil {
 | 
			
		||||
	hr = procDeactivateLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procDeactivateLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0)
 | 
			
		||||
@@ -230,7 +257,8 @@ func destroyLayer(info *driverInfo, id string) (hr error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _destroyLayer(info *driverInfo, id *uint16) (hr error) {
 | 
			
		||||
	if hr = procDestroyLayer.Find(); hr != nil {
 | 
			
		||||
	hr = procDestroyLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procDestroyLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0)
 | 
			
		||||
@@ -243,6 +271,30 @@ func _destroyLayer(info *driverInfo, id *uint16) (hr error) {
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func expandSandboxSize(info *driverInfo, id string, size uint64) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _expandSandboxSize(info, _p0, size)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _expandSandboxSize(info *driverInfo, id *uint16, size uint64) (hr error) {
 | 
			
		||||
	hr = procExpandSandboxSize.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procExpandSandboxSize.Addr(), 3, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(size))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func exportLayer(info *driverInfo, id string, path string, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
@@ -258,14 +310,30 @@ func exportLayer(info *driverInfo, id string, path string, descriptors []WC_LAYE
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _exportLayer(info *driverInfo, id *uint16, path *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
			
		||||
	hr = procExportLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	var _p2 *WC_LAYER_DESCRIPTOR
 | 
			
		||||
	if len(descriptors) > 0 {
 | 
			
		||||
		_p2 = &descriptors[0]
 | 
			
		||||
	}
 | 
			
		||||
	if hr = procExportLayer.Find(); hr != nil {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procExportLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(_p2)), uintptr(len(descriptors)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getBaseImages(buffer **uint16) (hr error) {
 | 
			
		||||
	hr = procGetBaseImages.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procExportLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(_p2)), uintptr(len(descriptors)), 0)
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procGetBaseImages.Addr(), 1, uintptr(unsafe.Pointer(buffer)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
@@ -285,7 +353,8 @@ func getLayerMountPath(info *driverInfo, id string, length *uintptr, buffer *uin
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _getLayerMountPath(info *driverInfo, id *uint16, length *uintptr, buffer *uint16) (hr error) {
 | 
			
		||||
	if hr = procGetLayerMountPath.Find(); hr != nil {
 | 
			
		||||
	hr = procGetLayerMountPath.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procGetLayerMountPath.Addr(), 4, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(length)), uintptr(unsafe.Pointer(buffer)), 0, 0)
 | 
			
		||||
@@ -298,194 +367,6 @@ func _getLayerMountPath(info *driverInfo, id *uint16, length *uintptr, buffer *u
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getBaseImages(buffer **uint16) (hr error) {
 | 
			
		||||
	if hr = procGetBaseImages.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procGetBaseImages.Addr(), 1, uintptr(unsafe.Pointer(buffer)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func importLayer(info *driverInfo, id string, path string, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	var _p1 *uint16
 | 
			
		||||
	_p1, hr = syscall.UTF16PtrFromString(path)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _importLayer(info, _p0, _p1, descriptors)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _importLayer(info *driverInfo, id *uint16, path *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
			
		||||
	var _p2 *WC_LAYER_DESCRIPTOR
 | 
			
		||||
	if len(descriptors) > 0 {
 | 
			
		||||
		_p2 = &descriptors[0]
 | 
			
		||||
	}
 | 
			
		||||
	if hr = procImportLayer.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procImportLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(_p2)), uintptr(len(descriptors)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func layerExists(info *driverInfo, id string, exists *uint32) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _layerExists(info, _p0, exists)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _layerExists(info *driverInfo, id *uint16, exists *uint32) (hr error) {
 | 
			
		||||
	if hr = procLayerExists.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procLayerExists.Addr(), 3, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(exists)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func nameToGuid(name string, guid *_guid) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(name)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _nameToGuid(_p0, guid)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _nameToGuid(name *uint16, guid *_guid) (hr error) {
 | 
			
		||||
	if hr = procNameToGuid.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procNameToGuid.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(guid)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func prepareLayer(info *driverInfo, id string, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _prepareLayer(info, _p0, descriptors)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _prepareLayer(info *driverInfo, id *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
			
		||||
	var _p1 *WC_LAYER_DESCRIPTOR
 | 
			
		||||
	if len(descriptors) > 0 {
 | 
			
		||||
		_p1 = &descriptors[0]
 | 
			
		||||
	}
 | 
			
		||||
	if hr = procPrepareLayer.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procPrepareLayer.Addr(), 4, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(_p1)), uintptr(len(descriptors)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func unprepareLayer(info *driverInfo, id string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _unprepareLayer(info, _p0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _unprepareLayer(info *driverInfo, id *uint16) (hr error) {
 | 
			
		||||
	if hr = procUnprepareLayer.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procUnprepareLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func processBaseImage(path string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(path)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _processBaseImage(_p0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _processBaseImage(path *uint16) (hr error) {
 | 
			
		||||
	if hr = procProcessBaseImage.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procProcessBaseImage.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func processUtilityImage(path string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(path)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _processUtilityImage(_p0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _processUtilityImage(path *uint16) (hr error) {
 | 
			
		||||
	if hr = procProcessUtilityImage.Find(); hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procProcessUtilityImage.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func grantVmAccess(vmid string, filepath string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(vmid)
 | 
			
		||||
@@ -501,7 +382,8 @@ func grantVmAccess(vmid string, filepath string) (hr error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _grantVmAccess(vmid *uint16, filepath *uint16) (hr error) {
 | 
			
		||||
	if hr = procGrantVmAccess.Find(); hr != nil {
 | 
			
		||||
	hr = procGrantVmAccess.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procGrantVmAccess.Addr(), 2, uintptr(unsafe.Pointer(vmid)), uintptr(unsafe.Pointer(filepath)), 0)
 | 
			
		||||
@@ -514,56 +396,183 @@ func _grantVmAccess(vmid *uint16, filepath *uint16) (hr error) {
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func openVirtualDisk(virtualStorageType *virtualStorageType, path string, virtualDiskAccessMask uint32, flags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (err error) {
 | 
			
		||||
func importLayer(info *driverInfo, id string, path string, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, err = syscall.UTF16PtrFromString(path)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _openVirtualDisk(virtualStorageType, _p0, virtualDiskAccessMask, flags, parameters, handle)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _openVirtualDisk(virtualStorageType *virtualStorageType, path *uint16, virtualDiskAccessMask uint32, flags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (err error) {
 | 
			
		||||
	r1, _, e1 := syscall.Syscall6(procOpenVirtualDisk.Addr(), 6, uintptr(unsafe.Pointer(virtualStorageType)), uintptr(unsafe.Pointer(path)), uintptr(virtualDiskAccessMask), uintptr(flags), uintptr(unsafe.Pointer(parameters)), uintptr(unsafe.Pointer(handle)))
 | 
			
		||||
	if r1 != 0 {
 | 
			
		||||
		if e1 != 0 {
 | 
			
		||||
			err = errnoErr(e1)
 | 
			
		||||
		} else {
 | 
			
		||||
			err = syscall.EINVAL
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func attachVirtualDisk(handle syscall.Handle, sd uintptr, flags uint32, providerFlags uint32, params uintptr, overlapped uintptr) (err error) {
 | 
			
		||||
	r1, _, e1 := syscall.Syscall6(procAttachVirtualDisk.Addr(), 6, uintptr(handle), uintptr(sd), uintptr(flags), uintptr(providerFlags), uintptr(params), uintptr(overlapped))
 | 
			
		||||
	if r1 != 0 {
 | 
			
		||||
		if e1 != 0 {
 | 
			
		||||
			err = errnoErr(e1)
 | 
			
		||||
		} else {
 | 
			
		||||
			err = syscall.EINVAL
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getDiskFreeSpaceEx(directoryName string, freeBytesAvailableToCaller *int64, totalNumberOfBytes *int64, totalNumberOfFreeBytes *int64) (err error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, err = syscall.UTF16PtrFromString(directoryName)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
	var _p1 *uint16
 | 
			
		||||
	_p1, hr = syscall.UTF16PtrFromString(path)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _getDiskFreeSpaceEx(_p0, freeBytesAvailableToCaller, totalNumberOfBytes, totalNumberOfFreeBytes)
 | 
			
		||||
	return _importLayer(info, _p0, _p1, descriptors)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _getDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *int64, totalNumberOfBytes *int64, totalNumberOfFreeBytes *int64) (err error) {
 | 
			
		||||
	r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0)
 | 
			
		||||
	if r1 == 0 {
 | 
			
		||||
		if e1 != 0 {
 | 
			
		||||
			err = errnoErr(e1)
 | 
			
		||||
		} else {
 | 
			
		||||
			err = syscall.EINVAL
 | 
			
		||||
func _importLayer(info *driverInfo, id *uint16, path *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
			
		||||
	hr = procImportLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	var _p2 *WC_LAYER_DESCRIPTOR
 | 
			
		||||
	if len(descriptors) > 0 {
 | 
			
		||||
		_p2 = &descriptors[0]
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procImportLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(_p2)), uintptr(len(descriptors)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func layerExists(info *driverInfo, id string, exists *uint32) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _layerExists(info, _p0, exists)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _layerExists(info *driverInfo, id *uint16, exists *uint32) (hr error) {
 | 
			
		||||
	hr = procLayerExists.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procLayerExists.Addr(), 3, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(exists)))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func nameToGuid(name string, guid *_guid) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(name)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _nameToGuid(_p0, guid)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _nameToGuid(name *uint16, guid *_guid) (hr error) {
 | 
			
		||||
	hr = procNameToGuid.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procNameToGuid.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(guid)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func prepareLayer(info *driverInfo, id string, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _prepareLayer(info, _p0, descriptors)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _prepareLayer(info *driverInfo, id *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
			
		||||
	hr = procPrepareLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	var _p1 *WC_LAYER_DESCRIPTOR
 | 
			
		||||
	if len(descriptors) > 0 {
 | 
			
		||||
		_p1 = &descriptors[0]
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procPrepareLayer.Addr(), 4, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(_p1)), uintptr(len(descriptors)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func processBaseImage(path string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(path)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _processBaseImage(_p0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _processBaseImage(path *uint16) (hr error) {
 | 
			
		||||
	hr = procProcessBaseImage.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procProcessBaseImage.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func processUtilityImage(path string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(path)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _processUtilityImage(_p0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _processUtilityImage(path *uint16) (hr error) {
 | 
			
		||||
	hr = procProcessUtilityImage.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procProcessUtilityImage.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func unprepareLayer(info *driverInfo, id string) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	return _unprepareLayer(info, _p0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _unprepareLayer(info *driverInfo, id *uint16) (hr error) {
 | 
			
		||||
	hr = procUnprepareLayer.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procUnprepareLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										67
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/filesystem.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										67
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/filesystem.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -2,6 +2,7 @@
 | 
			
		||||
 | 
			
		||||
package winapi
 | 
			
		||||
 | 
			
		||||
//sys CopyFileW(existingFileName *uint16, newFileName *uint16, failIfExists int32) (err error) = kernel32.CopyFileW
 | 
			
		||||
//sys NtCreateFile(handle *uintptr, accessMask uint32, oa *ObjectAttributes, iosb *IOStatusBlock, allocationSize *uint64, fileAttributes uint32, shareAccess uint32, createDisposition uint32, createOptions uint32, eaBuffer *byte, eaLength uint32) (status uint32) = ntdll.NtCreateFile
 | 
			
		||||
//sys NtSetInformationFile(handle uintptr, iosb *IOStatusBlock, information uintptr, length uint32, class uint32) (status uint32) = ntdll.NtSetInformationFile
 | 
			
		||||
 | 
			
		||||
@@ -36,34 +37,35 @@ const (
 | 
			
		||||
// Select entries from FILE_INFO_BY_HANDLE_CLASS.
 | 
			
		||||
//
 | 
			
		||||
// C declaration:
 | 
			
		||||
//   typedef enum _FILE_INFO_BY_HANDLE_CLASS {
 | 
			
		||||
//       FileBasicInfo,
 | 
			
		||||
//       FileStandardInfo,
 | 
			
		||||
//       FileNameInfo,
 | 
			
		||||
//       FileRenameInfo,
 | 
			
		||||
//       FileDispositionInfo,
 | 
			
		||||
//       FileAllocationInfo,
 | 
			
		||||
//       FileEndOfFileInfo,
 | 
			
		||||
//       FileStreamInfo,
 | 
			
		||||
//       FileCompressionInfo,
 | 
			
		||||
//       FileAttributeTagInfo,
 | 
			
		||||
//       FileIdBothDirectoryInfo,
 | 
			
		||||
//       FileIdBothDirectoryRestartInfo,
 | 
			
		||||
//       FileIoPriorityHintInfo,
 | 
			
		||||
//       FileRemoteProtocolInfo,
 | 
			
		||||
//       FileFullDirectoryInfo,
 | 
			
		||||
//       FileFullDirectoryRestartInfo,
 | 
			
		||||
//       FileStorageInfo,
 | 
			
		||||
//       FileAlignmentInfo,
 | 
			
		||||
//       FileIdInfo,
 | 
			
		||||
//       FileIdExtdDirectoryInfo,
 | 
			
		||||
//       FileIdExtdDirectoryRestartInfo,
 | 
			
		||||
//       FileDispositionInfoEx,
 | 
			
		||||
//       FileRenameInfoEx,
 | 
			
		||||
//       FileCaseSensitiveInfo,
 | 
			
		||||
//       FileNormalizedNameInfo,
 | 
			
		||||
//       MaximumFileInfoByHandleClass
 | 
			
		||||
//   } FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
 | 
			
		||||
//
 | 
			
		||||
//	typedef enum _FILE_INFO_BY_HANDLE_CLASS {
 | 
			
		||||
//	    FileBasicInfo,
 | 
			
		||||
//	    FileStandardInfo,
 | 
			
		||||
//	    FileNameInfo,
 | 
			
		||||
//	    FileRenameInfo,
 | 
			
		||||
//	    FileDispositionInfo,
 | 
			
		||||
//	    FileAllocationInfo,
 | 
			
		||||
//	    FileEndOfFileInfo,
 | 
			
		||||
//	    FileStreamInfo,
 | 
			
		||||
//	    FileCompressionInfo,
 | 
			
		||||
//	    FileAttributeTagInfo,
 | 
			
		||||
//	    FileIdBothDirectoryInfo,
 | 
			
		||||
//	    FileIdBothDirectoryRestartInfo,
 | 
			
		||||
//	    FileIoPriorityHintInfo,
 | 
			
		||||
//	    FileRemoteProtocolInfo,
 | 
			
		||||
//	    FileFullDirectoryInfo,
 | 
			
		||||
//	    FileFullDirectoryRestartInfo,
 | 
			
		||||
//	    FileStorageInfo,
 | 
			
		||||
//	    FileAlignmentInfo,
 | 
			
		||||
//	    FileIdInfo,
 | 
			
		||||
//	    FileIdExtdDirectoryInfo,
 | 
			
		||||
//	    FileIdExtdDirectoryRestartInfo,
 | 
			
		||||
//	    FileDispositionInfoEx,
 | 
			
		||||
//	    FileRenameInfoEx,
 | 
			
		||||
//	    FileCaseSensitiveInfo,
 | 
			
		||||
//	    FileNormalizedNameInfo,
 | 
			
		||||
//	    MaximumFileInfoByHandleClass
 | 
			
		||||
//	} FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
 | 
			
		||||
//
 | 
			
		||||
// Documentation: https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ne-minwinbase-file_info_by_handle_class
 | 
			
		||||
const (
 | 
			
		||||
@@ -100,10 +102,11 @@ type FileLinkInformation struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// C declaration:
 | 
			
		||||
//   typedef struct _FILE_ID_INFO {
 | 
			
		||||
//       ULONGLONG   VolumeSerialNumber;
 | 
			
		||||
//       FILE_ID_128 FileId;
 | 
			
		||||
//   } FILE_ID_INFO, *PFILE_ID_INFO;
 | 
			
		||||
//
 | 
			
		||||
//	typedef struct _FILE_ID_INFO {
 | 
			
		||||
//		ULONGLONG   VolumeSerialNumber;
 | 
			
		||||
//		FILE_ID_128 FileId;
 | 
			
		||||
//	} FILE_ID_INFO, *PFILE_ID_INFO;
 | 
			
		||||
//
 | 
			
		||||
// Documentation: https://docs.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-file_id_info
 | 
			
		||||
type FILE_ID_INFO struct {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/jobobject.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/jobobject.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -122,8 +122,8 @@ type JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//	typedef struct _JOBOBJECT_MEMORY_USAGE_INFORMATION {
 | 
			
		||||
//	    ULONG64 JobMemory;
 | 
			
		||||
//	    ULONG64 PeakJobMemoryUsed;
 | 
			
		||||
//		ULONG64 JobMemory;
 | 
			
		||||
//		ULONG64 PeakJobMemoryUsed;
 | 
			
		||||
//	} JOBOBJECT_MEMORY_USAGE_INFORMATION, *PJOBOBJECT_MEMORY_USAGE_INFORMATION;
 | 
			
		||||
type JOBOBJECT_MEMORY_USAGE_INFORMATION struct {
 | 
			
		||||
	JobMemory         uint64
 | 
			
		||||
@@ -131,10 +131,10 @@ type JOBOBJECT_MEMORY_USAGE_INFORMATION struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//	typedef struct _JOBOBJECT_IO_ATTRIBUTION_STATS {
 | 
			
		||||
//	    ULONG_PTR IoCount;
 | 
			
		||||
//	    ULONGLONG TotalNonOverlappedQueueTime;
 | 
			
		||||
//	    ULONGLONG TotalNonOverlappedServiceTime;
 | 
			
		||||
//	    ULONGLONG TotalSize;
 | 
			
		||||
//		ULONG_PTR IoCount;
 | 
			
		||||
//		ULONGLONG TotalNonOverlappedQueueTime;
 | 
			
		||||
//		ULONGLONG TotalNonOverlappedServiceTime;
 | 
			
		||||
//		ULONGLONG TotalSize;
 | 
			
		||||
//	} JOBOBJECT_IO_ATTRIBUTION_STATS, *PJOBOBJECT_IO_ATTRIBUTION_STATS;
 | 
			
		||||
type JOBOBJECT_IO_ATTRIBUTION_STATS struct {
 | 
			
		||||
	IoCount                       uintptr
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										42
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/process.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										42
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/process.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -20,22 +20,20 @@ const ProcessVmCounters = 3
 | 
			
		||||
//
 | 
			
		||||
//sys NtQueryInformationProcess(processHandle windows.Handle, processInfoClass uint32, processInfo unsafe.Pointer, processInfoLength uint32, returnLength *uint32) (status uint32) = ntdll.NtQueryInformationProcess
 | 
			
		||||
 | 
			
		||||
// typedef struct _VM_COUNTERS_EX
 | 
			
		||||
// {
 | 
			
		||||
//    SIZE_T PeakVirtualSize;
 | 
			
		||||
//    SIZE_T VirtualSize;
 | 
			
		||||
//    ULONG PageFaultCount;
 | 
			
		||||
//    SIZE_T PeakWorkingSetSize;
 | 
			
		||||
//    SIZE_T WorkingSetSize;
 | 
			
		||||
//    SIZE_T QuotaPeakPagedPoolUsage;
 | 
			
		||||
//    SIZE_T QuotaPagedPoolUsage;
 | 
			
		||||
//    SIZE_T QuotaPeakNonPagedPoolUsage;
 | 
			
		||||
//    SIZE_T QuotaNonPagedPoolUsage;
 | 
			
		||||
//    SIZE_T PagefileUsage;
 | 
			
		||||
//    SIZE_T PeakPagefileUsage;
 | 
			
		||||
//    SIZE_T PrivateUsage;
 | 
			
		||||
// } VM_COUNTERS_EX, *PVM_COUNTERS_EX;
 | 
			
		||||
//
 | 
			
		||||
//	typedef struct _VM_COUNTERS_EX {
 | 
			
		||||
//		   SIZE_T PeakVirtualSize;
 | 
			
		||||
//		   SIZE_T VirtualSize;
 | 
			
		||||
//		   ULONG PageFaultCount;
 | 
			
		||||
//		   SIZE_T PeakWorkingSetSize;
 | 
			
		||||
//		   SIZE_T WorkingSetSize;
 | 
			
		||||
//		   SIZE_T QuotaPeakPagedPoolUsage;
 | 
			
		||||
//		   SIZE_T QuotaPagedPoolUsage;
 | 
			
		||||
//		   SIZE_T QuotaPeakNonPagedPoolUsage;
 | 
			
		||||
//		   SIZE_T QuotaNonPagedPoolUsage;
 | 
			
		||||
//		   SIZE_T PagefileUsage;
 | 
			
		||||
//		   SIZE_T PeakPagefileUsage;
 | 
			
		||||
//		   SIZE_T PrivateUsage;
 | 
			
		||||
//	} VM_COUNTERS_EX, *PVM_COUNTERS_EX;
 | 
			
		||||
type VM_COUNTERS_EX struct {
 | 
			
		||||
	PeakVirtualSize            uintptr
 | 
			
		||||
	VirtualSize                uintptr
 | 
			
		||||
@@ -51,13 +49,11 @@ type VM_COUNTERS_EX struct {
 | 
			
		||||
	PrivateUsage               uintptr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// typedef struct _VM_COUNTERS_EX2
 | 
			
		||||
// {
 | 
			
		||||
//    VM_COUNTERS_EX CountersEx;
 | 
			
		||||
//    SIZE_T PrivateWorkingSetSize;
 | 
			
		||||
//    SIZE_T SharedCommitUsage;
 | 
			
		||||
// } VM_COUNTERS_EX2, *PVM_COUNTERS_EX2;
 | 
			
		||||
//
 | 
			
		||||
//	typedef struct _VM_COUNTERS_EX2 {
 | 
			
		||||
//		   VM_COUNTERS_EX CountersEx;
 | 
			
		||||
//		   SIZE_T PrivateWorkingSetSize;
 | 
			
		||||
//		   SIZE_T SharedCommitUsage;
 | 
			
		||||
//	} VM_COUNTERS_EX2, *PVM_COUNTERS_EX2;
 | 
			
		||||
type VM_COUNTERS_EX2 struct {
 | 
			
		||||
	CountersEx            VM_COUNTERS_EX
 | 
			
		||||
	PrivateWorkingSetSize uintptr
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										34
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/user.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/user.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -23,32 +23,32 @@ const (
 | 
			
		||||
 | 
			
		||||
const NERR_UserNotFound = syscall.Errno(0x8AD)
 | 
			
		||||
 | 
			
		||||
// typedef struct _LOCALGROUP_MEMBERS_INFO_0 {
 | 
			
		||||
// 	PSID lgrmi0_sid;
 | 
			
		||||
// } LOCALGROUP_MEMBERS_INFO_0, *PLOCALGROUP_MEMBERS_INFO_0, *LPLOCALGROUP_MEMBERS_INFO_0;
 | 
			
		||||
//	typedef struct _LOCALGROUP_MEMBERS_INFO_0 {
 | 
			
		||||
//		PSID lgrmi0_sid;
 | 
			
		||||
//	} LOCALGROUP_MEMBERS_INFO_0, *PLOCALGROUP_MEMBERS_INFO_0, *LPLOCALGROUP_MEMBERS_INFO_0;
 | 
			
		||||
type LocalGroupMembersInfo0 struct {
 | 
			
		||||
	Sid *windows.SID
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// typedef struct _LOCALGROUP_INFO_1 {
 | 
			
		||||
// 	LPWSTR lgrpi1_name;
 | 
			
		||||
// 	LPWSTR lgrpi1_comment;
 | 
			
		||||
// } LOCALGROUP_INFO_1, *PLOCALGROUP_INFO_1, *LPLOCALGROUP_INFO_1;
 | 
			
		||||
//	typedef struct _LOCALGROUP_INFO_1 {
 | 
			
		||||
//		LPWSTR lgrpi1_name;
 | 
			
		||||
//		LPWSTR lgrpi1_comment;
 | 
			
		||||
//	} LOCALGROUP_INFO_1, *PLOCALGROUP_INFO_1, *LPLOCALGROUP_INFO_1;
 | 
			
		||||
type LocalGroupInfo1 struct {
 | 
			
		||||
	Name    *uint16
 | 
			
		||||
	Comment *uint16
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// typedef struct _USER_INFO_1 {
 | 
			
		||||
// 	LPWSTR usri1_name;
 | 
			
		||||
// 	LPWSTR usri1_password;
 | 
			
		||||
// 	DWORD  usri1_password_age;
 | 
			
		||||
// 	DWORD  usri1_priv;
 | 
			
		||||
// 	LPWSTR usri1_home_dir;
 | 
			
		||||
// 	LPWSTR usri1_comment;
 | 
			
		||||
// 	DWORD  usri1_flags;
 | 
			
		||||
// 	LPWSTR usri1_script_path;
 | 
			
		||||
// } USER_INFO_1, *PUSER_INFO_1, *LPUSER_INFO_1;
 | 
			
		||||
//	typedef struct _USER_INFO_1 {
 | 
			
		||||
//		LPWSTR usri1_name;
 | 
			
		||||
//		LPWSTR usri1_password;
 | 
			
		||||
//		DWORD  usri1_password_age;
 | 
			
		||||
//		DWORD  usri1_priv;
 | 
			
		||||
//		LPWSTR usri1_home_dir;
 | 
			
		||||
//		LPWSTR usri1_comment;
 | 
			
		||||
//		DWORD  usri1_flags;
 | 
			
		||||
//		LPWSTR usri1_script_path;
 | 
			
		||||
//	} USER_INFO_1, *PUSER_INFO_1, *LPUSER_INFO_1;
 | 
			
		||||
type UserInfo1 struct {
 | 
			
		||||
	Name        *uint16
 | 
			
		||||
	Password    *uint16
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/utils.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/utils.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -34,7 +34,7 @@ type UnicodeString struct {
 | 
			
		||||
// denotes the maximum number of wide chars a path can have.
 | 
			
		||||
const NTSTRSAFE_UNICODE_STRING_MAX_CCH = 32767
 | 
			
		||||
 | 
			
		||||
//String converts a UnicodeString to a golang string
 | 
			
		||||
// String converts a UnicodeString to a golang string
 | 
			
		||||
func (uni UnicodeString) String() string {
 | 
			
		||||
	// UnicodeString is not guaranteed to be null terminated, therefore
 | 
			
		||||
	// use the UnicodeString's Length field
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/winapi.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/winapi.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,3 +1,3 @@
 | 
			
		||||
package winapi
 | 
			
		||||
 | 
			
		||||
//go:generate go run ..\..\mksyscall_windows.go -output zsyscall_windows.go bindflt.go user.go console.go system.go net.go path.go thread.go jobobject.go logon.go memory.go process.go processor.go devices.go filesystem.go errors.go
 | 
			
		||||
//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go ./*.go
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										481
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										481
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,6 @@
 | 
			
		||||
// Code generated mksyscall_windows.exe DO NOT EDIT
 | 
			
		||||
//go:build windows
 | 
			
		||||
 | 
			
		||||
// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
 | 
			
		||||
 | 
			
		||||
package winapi
 | 
			
		||||
 | 
			
		||||
@@ -19,6 +21,7 @@ const (
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
 | 
			
		||||
	errERROR_EINVAL     error = syscall.EINVAL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// errnoErr returns common boxed Errno values, to prevent
 | 
			
		||||
@@ -26,7 +29,7 @@ var (
 | 
			
		||||
func errnoErr(e syscall.Errno) error {
 | 
			
		||||
	switch e {
 | 
			
		||||
	case 0:
 | 
			
		||||
		return nil
 | 
			
		||||
		return errERROR_EINVAL
 | 
			
		||||
	case errnoERROR_IO_PENDING:
 | 
			
		||||
		return errERROR_IO_PENDING
 | 
			
		||||
	}
 | 
			
		||||
@@ -37,51 +40,61 @@ func errnoErr(e syscall.Errno) error {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	modbindfltapi = windows.NewLazySystemDLL("bindfltapi.dll")
 | 
			
		||||
	modnetapi32   = windows.NewLazySystemDLL("netapi32.dll")
 | 
			
		||||
	modkernel32   = windows.NewLazySystemDLL("kernel32.dll")
 | 
			
		||||
	modntdll      = windows.NewLazySystemDLL("ntdll.dll")
 | 
			
		||||
	modiphlpapi   = windows.NewLazySystemDLL("iphlpapi.dll")
 | 
			
		||||
	modadvapi32   = windows.NewLazySystemDLL("advapi32.dll")
 | 
			
		||||
	modbindfltapi = windows.NewLazySystemDLL("bindfltapi.dll")
 | 
			
		||||
	modcfgmgr32   = windows.NewLazySystemDLL("cfgmgr32.dll")
 | 
			
		||||
	modiphlpapi   = windows.NewLazySystemDLL("iphlpapi.dll")
 | 
			
		||||
	modkernel32   = windows.NewLazySystemDLL("kernel32.dll")
 | 
			
		||||
	modnetapi32   = windows.NewLazySystemDLL("netapi32.dll")
 | 
			
		||||
	modntdll      = windows.NewLazySystemDLL("ntdll.dll")
 | 
			
		||||
 | 
			
		||||
	procLogonUserW                             = modadvapi32.NewProc("LogonUserW")
 | 
			
		||||
	procBfSetupFilter                          = modbindfltapi.NewProc("BfSetupFilter")
 | 
			
		||||
	procCM_Get_DevNode_PropertyW               = modcfgmgr32.NewProc("CM_Get_DevNode_PropertyW")
 | 
			
		||||
	procCM_Get_Device_ID_ListA                 = modcfgmgr32.NewProc("CM_Get_Device_ID_ListA")
 | 
			
		||||
	procCM_Get_Device_ID_List_SizeA            = modcfgmgr32.NewProc("CM_Get_Device_ID_List_SizeA")
 | 
			
		||||
	procCM_Locate_DevNodeW                     = modcfgmgr32.NewProc("CM_Locate_DevNodeW")
 | 
			
		||||
	procSetJobCompartmentId                    = modiphlpapi.NewProc("SetJobCompartmentId")
 | 
			
		||||
	procClosePseudoConsole                     = modkernel32.NewProc("ClosePseudoConsole")
 | 
			
		||||
	procCopyFileW                              = modkernel32.NewProc("CopyFileW")
 | 
			
		||||
	procCreatePseudoConsole                    = modkernel32.NewProc("CreatePseudoConsole")
 | 
			
		||||
	procCreateRemoteThread                     = modkernel32.NewProc("CreateRemoteThread")
 | 
			
		||||
	procGetActiveProcessorCount                = modkernel32.NewProc("GetActiveProcessorCount")
 | 
			
		||||
	procIsProcessInJob                         = modkernel32.NewProc("IsProcessInJob")
 | 
			
		||||
	procLocalAlloc                             = modkernel32.NewProc("LocalAlloc")
 | 
			
		||||
	procLocalFree                              = modkernel32.NewProc("LocalFree")
 | 
			
		||||
	procOpenJobObjectW                         = modkernel32.NewProc("OpenJobObjectW")
 | 
			
		||||
	procQueryInformationJobObject              = modkernel32.NewProc("QueryInformationJobObject")
 | 
			
		||||
	procQueryIoRateControlInformationJobObject = modkernel32.NewProc("QueryIoRateControlInformationJobObject")
 | 
			
		||||
	procResizePseudoConsole                    = modkernel32.NewProc("ResizePseudoConsole")
 | 
			
		||||
	procSearchPathW                            = modkernel32.NewProc("SearchPathW")
 | 
			
		||||
	procSetIoRateControlInformationJobObject   = modkernel32.NewProc("SetIoRateControlInformationJobObject")
 | 
			
		||||
	procNetLocalGroupAddMembers                = modnetapi32.NewProc("NetLocalGroupAddMembers")
 | 
			
		||||
	procNetLocalGroupGetInfo                   = modnetapi32.NewProc("NetLocalGroupGetInfo")
 | 
			
		||||
	procNetUserAdd                             = modnetapi32.NewProc("NetUserAdd")
 | 
			
		||||
	procNetUserDel                             = modnetapi32.NewProc("NetUserDel")
 | 
			
		||||
	procNetLocalGroupAddMembers                = modnetapi32.NewProc("NetLocalGroupAddMembers")
 | 
			
		||||
	procCreatePseudoConsole                    = modkernel32.NewProc("CreatePseudoConsole")
 | 
			
		||||
	procClosePseudoConsole                     = modkernel32.NewProc("ClosePseudoConsole")
 | 
			
		||||
	procResizePseudoConsole                    = modkernel32.NewProc("ResizePseudoConsole")
 | 
			
		||||
	procNtQuerySystemInformation               = modntdll.NewProc("NtQuerySystemInformation")
 | 
			
		||||
	procSetJobCompartmentId                    = modiphlpapi.NewProc("SetJobCompartmentId")
 | 
			
		||||
	procSearchPathW                            = modkernel32.NewProc("SearchPathW")
 | 
			
		||||
	procCreateRemoteThread                     = modkernel32.NewProc("CreateRemoteThread")
 | 
			
		||||
	procIsProcessInJob                         = modkernel32.NewProc("IsProcessInJob")
 | 
			
		||||
	procQueryInformationJobObject              = modkernel32.NewProc("QueryInformationJobObject")
 | 
			
		||||
	procOpenJobObjectW                         = modkernel32.NewProc("OpenJobObjectW")
 | 
			
		||||
	procSetIoRateControlInformationJobObject   = modkernel32.NewProc("SetIoRateControlInformationJobObject")
 | 
			
		||||
	procQueryIoRateControlInformationJobObject = modkernel32.NewProc("QueryIoRateControlInformationJobObject")
 | 
			
		||||
	procNtOpenJobObject                        = modntdll.NewProc("NtOpenJobObject")
 | 
			
		||||
	procNtCreateJobObject                      = modntdll.NewProc("NtCreateJobObject")
 | 
			
		||||
	procLogonUserW                             = modadvapi32.NewProc("LogonUserW")
 | 
			
		||||
	procLocalAlloc                             = modkernel32.NewProc("LocalAlloc")
 | 
			
		||||
	procLocalFree                              = modkernel32.NewProc("LocalFree")
 | 
			
		||||
	procNtQueryInformationProcess              = modntdll.NewProc("NtQueryInformationProcess")
 | 
			
		||||
	procGetActiveProcessorCount                = modkernel32.NewProc("GetActiveProcessorCount")
 | 
			
		||||
	procCM_Get_Device_ID_List_SizeA            = modcfgmgr32.NewProc("CM_Get_Device_ID_List_SizeA")
 | 
			
		||||
	procCM_Get_Device_ID_ListA                 = modcfgmgr32.NewProc("CM_Get_Device_ID_ListA")
 | 
			
		||||
	procCM_Locate_DevNodeW                     = modcfgmgr32.NewProc("CM_Locate_DevNodeW")
 | 
			
		||||
	procCM_Get_DevNode_PropertyW               = modcfgmgr32.NewProc("CM_Get_DevNode_PropertyW")
 | 
			
		||||
	procNtCreateFile                           = modntdll.NewProc("NtCreateFile")
 | 
			
		||||
	procNtSetInformationFile                   = modntdll.NewProc("NtSetInformationFile")
 | 
			
		||||
	procNtCreateJobObject                      = modntdll.NewProc("NtCreateJobObject")
 | 
			
		||||
	procNtOpenDirectoryObject                  = modntdll.NewProc("NtOpenDirectoryObject")
 | 
			
		||||
	procNtOpenJobObject                        = modntdll.NewProc("NtOpenJobObject")
 | 
			
		||||
	procNtQueryDirectoryObject                 = modntdll.NewProc("NtQueryDirectoryObject")
 | 
			
		||||
	procNtQueryInformationProcess              = modntdll.NewProc("NtQueryInformationProcess")
 | 
			
		||||
	procNtQuerySystemInformation               = modntdll.NewProc("NtQuerySystemInformation")
 | 
			
		||||
	procNtSetInformationFile                   = modntdll.NewProc("NtSetInformationFile")
 | 
			
		||||
	procRtlNtStatusToDosError                  = modntdll.NewProc("RtlNtStatusToDosError")
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func LogonUser(username *uint16, domain *uint16, password *uint16, logonType uint32, logonProvider uint32, token *windows.Token) (err error) {
 | 
			
		||||
	r1, _, e1 := syscall.Syscall6(procLogonUserW.Addr(), 6, uintptr(unsafe.Pointer(username)), uintptr(unsafe.Pointer(domain)), uintptr(unsafe.Pointer(password)), uintptr(logonType), uintptr(logonProvider), uintptr(unsafe.Pointer(token)))
 | 
			
		||||
	if r1 == 0 {
 | 
			
		||||
		err = errnoErr(e1)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func BfSetupFilter(jobHandle windows.Handle, flags uint32, virtRootPath *uint16, virtTargetPath *uint16, virtExceptions **uint16, virtExceptionPathCount uint32) (hr error) {
 | 
			
		||||
	if hr = procBfSetupFilter.Find(); hr != nil {
 | 
			
		||||
	hr = procBfSetupFilter.Find()
 | 
			
		||||
	if hr != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procBfSetupFilter.Addr(), 6, uintptr(jobHandle), uintptr(flags), uintptr(unsafe.Pointer(virtRootPath)), uintptr(unsafe.Pointer(virtTargetPath)), uintptr(unsafe.Pointer(virtExceptions)), uintptr(virtExceptionPathCount))
 | 
			
		||||
@@ -94,217 +107,8 @@ func BfSetupFilter(jobHandle windows.Handle, flags uint32, virtRootPath *uint16,
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func netLocalGroupGetInfo(serverName *uint16, groupName *uint16, level uint32, bufptr **byte) (status error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procNetLocalGroupGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(groupName)), uintptr(level), uintptr(unsafe.Pointer(bufptr)), 0, 0)
 | 
			
		||||
	if r0 != 0 {
 | 
			
		||||
		status = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func netUserAdd(serverName *uint16, level uint32, buf *byte, parm_err *uint32) (status error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procNetUserAdd.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(parm_err)), 0, 0)
 | 
			
		||||
	if r0 != 0 {
 | 
			
		||||
		status = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func netUserDel(serverName *uint16, username *uint16) (status error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procNetUserDel.Addr(), 2, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(username)), 0)
 | 
			
		||||
	if r0 != 0 {
 | 
			
		||||
		status = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func netLocalGroupAddMembers(serverName *uint16, groupName *uint16, level uint32, buf *byte, totalEntries uint32) (status error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procNetLocalGroupAddMembers.Addr(), 5, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(groupName)), uintptr(level), uintptr(unsafe.Pointer(buf)), uintptr(totalEntries), 0)
 | 
			
		||||
	if r0 != 0 {
 | 
			
		||||
		status = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func createPseudoConsole(size uint32, hInput windows.Handle, hOutput windows.Handle, dwFlags uint32, hpcon *windows.Handle) (hr error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(hInput), uintptr(hOutput), uintptr(dwFlags), uintptr(unsafe.Pointer(hpcon)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func ClosePseudoConsole(hpc windows.Handle) {
 | 
			
		||||
	syscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(hpc), 0, 0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func resizePseudoConsole(hPc windows.Handle, size uint32) (hr error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(hPc), uintptr(size), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NtQuerySystemInformation(systemInfoClass int, systemInformation unsafe.Pointer, systemInfoLength uint32, returnLength *uint32) (status uint32) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(systemInfoClass), uintptr(systemInformation), uintptr(systemInfoLength), uintptr(unsafe.Pointer(returnLength)), 0, 0)
 | 
			
		||||
	status = uint32(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SetJobCompartmentId(handle windows.Handle, compartmentId uint32) (win32Err error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procSetJobCompartmentId.Addr(), 2, uintptr(handle), uintptr(compartmentId), 0)
 | 
			
		||||
	if r0 != 0 {
 | 
			
		||||
		win32Err = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SearchPath(lpPath *uint16, lpFileName *uint16, lpExtension *uint16, nBufferLength uint32, lpBuffer *uint16, lpFilePath *uint16) (size uint32, err error) {
 | 
			
		||||
	r0, _, e1 := syscall.Syscall6(procSearchPathW.Addr(), 6, uintptr(unsafe.Pointer(lpPath)), uintptr(unsafe.Pointer(lpFileName)), uintptr(unsafe.Pointer(lpExtension)), uintptr(nBufferLength), uintptr(unsafe.Pointer(lpBuffer)), uintptr(unsafe.Pointer(lpFilePath)))
 | 
			
		||||
	size = uint32(r0)
 | 
			
		||||
	if size == 0 {
 | 
			
		||||
		if e1 != 0 {
 | 
			
		||||
			err = errnoErr(e1)
 | 
			
		||||
		} else {
 | 
			
		||||
			err = syscall.EINVAL
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CreateRemoteThread(process windows.Handle, sa *windows.SecurityAttributes, stackSize uint32, startAddr uintptr, parameter uintptr, creationFlags uint32, threadID *uint32) (handle windows.Handle, err error) {
 | 
			
		||||
	r0, _, e1 := syscall.Syscall9(procCreateRemoteThread.Addr(), 7, uintptr(process), uintptr(unsafe.Pointer(sa)), uintptr(stackSize), uintptr(startAddr), uintptr(parameter), uintptr(creationFlags), uintptr(unsafe.Pointer(threadID)), 0, 0)
 | 
			
		||||
	handle = windows.Handle(r0)
 | 
			
		||||
	if handle == 0 {
 | 
			
		||||
		if e1 != 0 {
 | 
			
		||||
			err = errnoErr(e1)
 | 
			
		||||
		} else {
 | 
			
		||||
			err = syscall.EINVAL
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func IsProcessInJob(procHandle windows.Handle, jobHandle windows.Handle, result *int32) (err error) {
 | 
			
		||||
	r1, _, e1 := syscall.Syscall(procIsProcessInJob.Addr(), 3, uintptr(procHandle), uintptr(jobHandle), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if r1 == 0 {
 | 
			
		||||
		if e1 != 0 {
 | 
			
		||||
			err = errnoErr(e1)
 | 
			
		||||
		} else {
 | 
			
		||||
			err = syscall.EINVAL
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func QueryInformationJobObject(jobHandle windows.Handle, infoClass uint32, jobObjectInfo unsafe.Pointer, jobObjectInformationLength uint32, lpReturnLength *uint32) (err error) {
 | 
			
		||||
	r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(jobHandle), uintptr(infoClass), uintptr(jobObjectInfo), uintptr(jobObjectInformationLength), uintptr(unsafe.Pointer(lpReturnLength)), 0)
 | 
			
		||||
	if r1 == 0 {
 | 
			
		||||
		if e1 != 0 {
 | 
			
		||||
			err = errnoErr(e1)
 | 
			
		||||
		} else {
 | 
			
		||||
			err = syscall.EINVAL
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func OpenJobObject(desiredAccess uint32, inheritHandle int32, lpName *uint16) (handle windows.Handle, err error) {
 | 
			
		||||
	r0, _, e1 := syscall.Syscall(procOpenJobObjectW.Addr(), 3, uintptr(desiredAccess), uintptr(inheritHandle), uintptr(unsafe.Pointer(lpName)))
 | 
			
		||||
	handle = windows.Handle(r0)
 | 
			
		||||
	if handle == 0 {
 | 
			
		||||
		if e1 != 0 {
 | 
			
		||||
			err = errnoErr(e1)
 | 
			
		||||
		} else {
 | 
			
		||||
			err = syscall.EINVAL
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SetIoRateControlInformationJobObject(jobHandle windows.Handle, ioRateControlInfo *JOBOBJECT_IO_RATE_CONTROL_INFORMATION) (ret uint32, err error) {
 | 
			
		||||
	r0, _, e1 := syscall.Syscall(procSetIoRateControlInformationJobObject.Addr(), 2, uintptr(jobHandle), uintptr(unsafe.Pointer(ioRateControlInfo)), 0)
 | 
			
		||||
	ret = uint32(r0)
 | 
			
		||||
	if ret == 0 {
 | 
			
		||||
		if e1 != 0 {
 | 
			
		||||
			err = errnoErr(e1)
 | 
			
		||||
		} else {
 | 
			
		||||
			err = syscall.EINVAL
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func QueryIoRateControlInformationJobObject(jobHandle windows.Handle, volumeName *uint16, ioRateControlInfo **JOBOBJECT_IO_RATE_CONTROL_INFORMATION, infoBlockCount *uint32) (ret uint32, err error) {
 | 
			
		||||
	r0, _, e1 := syscall.Syscall6(procQueryIoRateControlInformationJobObject.Addr(), 4, uintptr(jobHandle), uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(ioRateControlInfo)), uintptr(unsafe.Pointer(infoBlockCount)), 0, 0)
 | 
			
		||||
	ret = uint32(r0)
 | 
			
		||||
	if ret == 0 {
 | 
			
		||||
		if e1 != 0 {
 | 
			
		||||
			err = errnoErr(e1)
 | 
			
		||||
		} else {
 | 
			
		||||
			err = syscall.EINVAL
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NtOpenJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procNtOpenJobObject.Addr(), 3, uintptr(unsafe.Pointer(jobHandle)), uintptr(desiredAccess), uintptr(unsafe.Pointer(objAttributes)))
 | 
			
		||||
	status = uint32(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NtCreateJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procNtCreateJobObject.Addr(), 3, uintptr(unsafe.Pointer(jobHandle)), uintptr(desiredAccess), uintptr(unsafe.Pointer(objAttributes)))
 | 
			
		||||
	status = uint32(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func LogonUser(username *uint16, domain *uint16, password *uint16, logonType uint32, logonProvider uint32, token *windows.Token) (err error) {
 | 
			
		||||
	r1, _, e1 := syscall.Syscall6(procLogonUserW.Addr(), 6, uintptr(unsafe.Pointer(username)), uintptr(unsafe.Pointer(domain)), uintptr(unsafe.Pointer(password)), uintptr(logonType), uintptr(logonProvider), uintptr(unsafe.Pointer(token)))
 | 
			
		||||
	if r1 == 0 {
 | 
			
		||||
		if e1 != 0 {
 | 
			
		||||
			err = errnoErr(e1)
 | 
			
		||||
		} else {
 | 
			
		||||
			err = syscall.EINVAL
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func LocalAlloc(flags uint32, size int) (ptr uintptr) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(flags), uintptr(size), 0)
 | 
			
		||||
	ptr = uintptr(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func LocalFree(ptr uintptr) {
 | 
			
		||||
	syscall.Syscall(procLocalFree.Addr(), 1, uintptr(ptr), 0, 0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NtQueryInformationProcess(processHandle windows.Handle, processInfoClass uint32, processInfo unsafe.Pointer, processInfoLength uint32, returnLength *uint32) (status uint32) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(processHandle), uintptr(processInfoClass), uintptr(processInfo), uintptr(processInfoLength), uintptr(unsafe.Pointer(returnLength)), 0)
 | 
			
		||||
	status = uint32(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func GetActiveProcessorCount(groupNumber uint16) (amount uint32) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0)
 | 
			
		||||
	amount = uint32(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CMGetDeviceIDListSize(pulLen *uint32, pszFilter *byte, uFlags uint32) (hr error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procCM_Get_Device_ID_List_SizeA.Addr(), 3, uintptr(unsafe.Pointer(pulLen)), uintptr(unsafe.Pointer(pszFilter)), uintptr(uFlags))
 | 
			
		||||
func CMGetDevNodeProperty(dnDevInst uint32, propertyKey *DevPropKey, propertyType *uint32, propertyBuffer *uint16, propertyBufferSize *uint32, uFlags uint32) (hr error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_PropertyW.Addr(), 6, uintptr(dnDevInst), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(unsafe.Pointer(propertyBufferSize)), uintptr(uFlags))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
@@ -325,6 +129,17 @@ func CMGetDeviceIDList(pszFilter *byte, buffer *byte, bufferLen uint32, uFlags u
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CMGetDeviceIDListSize(pulLen *uint32, pszFilter *byte, uFlags uint32) (hr error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procCM_Get_Device_ID_List_SizeA.Addr(), 3, uintptr(unsafe.Pointer(pulLen)), uintptr(unsafe.Pointer(pszFilter)), uintptr(uFlags))
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CMLocateDevNode(pdnDevInst *uint32, pDeviceID string, uFlags uint32) (hr error) {
 | 
			
		||||
	var _p0 *uint16
 | 
			
		||||
	_p0, hr = syscall.UTF16PtrFromString(pDeviceID)
 | 
			
		||||
@@ -345,8 +160,29 @@ func _CMLocateDevNode(pdnDevInst *uint32, pDeviceID *uint16, uFlags uint32) (hr
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CMGetDevNodeProperty(dnDevInst uint32, propertyKey *DevPropKey, propertyType *uint32, propertyBuffer *uint16, propertyBufferSize *uint32, uFlags uint32) (hr error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_PropertyW.Addr(), 6, uintptr(dnDevInst), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(unsafe.Pointer(propertyBufferSize)), uintptr(uFlags))
 | 
			
		||||
func SetJobCompartmentId(handle windows.Handle, compartmentId uint32) (win32Err error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procSetJobCompartmentId.Addr(), 2, uintptr(handle), uintptr(compartmentId), 0)
 | 
			
		||||
	if r0 != 0 {
 | 
			
		||||
		win32Err = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func ClosePseudoConsole(hpc windows.Handle) {
 | 
			
		||||
	syscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(hpc), 0, 0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CopyFileW(existingFileName *uint16, newFileName *uint16, failIfExists int32) (err error) {
 | 
			
		||||
	r1, _, e1 := syscall.Syscall(procCopyFileW.Addr(), 3, uintptr(unsafe.Pointer(existingFileName)), uintptr(unsafe.Pointer(newFileName)), uintptr(failIfExists))
 | 
			
		||||
	if r1 == 0 {
 | 
			
		||||
		err = errnoErr(e1)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func createPseudoConsole(size uint32, hInput windows.Handle, hOutput windows.Handle, dwFlags uint32, hpcon *windows.Handle) (hr error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(hInput), uintptr(hOutput), uintptr(dwFlags), uintptr(unsafe.Pointer(hpcon)), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
@@ -356,14 +192,135 @@ func CMGetDevNodeProperty(dnDevInst uint32, propertyKey *DevPropKey, propertyTyp
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CreateRemoteThread(process windows.Handle, sa *windows.SecurityAttributes, stackSize uint32, startAddr uintptr, parameter uintptr, creationFlags uint32, threadID *uint32) (handle windows.Handle, err error) {
 | 
			
		||||
	r0, _, e1 := syscall.Syscall9(procCreateRemoteThread.Addr(), 7, uintptr(process), uintptr(unsafe.Pointer(sa)), uintptr(stackSize), uintptr(startAddr), uintptr(parameter), uintptr(creationFlags), uintptr(unsafe.Pointer(threadID)), 0, 0)
 | 
			
		||||
	handle = windows.Handle(r0)
 | 
			
		||||
	if handle == 0 {
 | 
			
		||||
		err = errnoErr(e1)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func GetActiveProcessorCount(groupNumber uint16) (amount uint32) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0)
 | 
			
		||||
	amount = uint32(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func IsProcessInJob(procHandle windows.Handle, jobHandle windows.Handle, result *int32) (err error) {
 | 
			
		||||
	r1, _, e1 := syscall.Syscall(procIsProcessInJob.Addr(), 3, uintptr(procHandle), uintptr(jobHandle), uintptr(unsafe.Pointer(result)))
 | 
			
		||||
	if r1 == 0 {
 | 
			
		||||
		err = errnoErr(e1)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func LocalAlloc(flags uint32, size int) (ptr uintptr) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(flags), uintptr(size), 0)
 | 
			
		||||
	ptr = uintptr(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func LocalFree(ptr uintptr) {
 | 
			
		||||
	syscall.Syscall(procLocalFree.Addr(), 1, uintptr(ptr), 0, 0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func OpenJobObject(desiredAccess uint32, inheritHandle int32, lpName *uint16) (handle windows.Handle, err error) {
 | 
			
		||||
	r0, _, e1 := syscall.Syscall(procOpenJobObjectW.Addr(), 3, uintptr(desiredAccess), uintptr(inheritHandle), uintptr(unsafe.Pointer(lpName)))
 | 
			
		||||
	handle = windows.Handle(r0)
 | 
			
		||||
	if handle == 0 {
 | 
			
		||||
		err = errnoErr(e1)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func QueryInformationJobObject(jobHandle windows.Handle, infoClass uint32, jobObjectInfo unsafe.Pointer, jobObjectInformationLength uint32, lpReturnLength *uint32) (err error) {
 | 
			
		||||
	r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(jobHandle), uintptr(infoClass), uintptr(jobObjectInfo), uintptr(jobObjectInformationLength), uintptr(unsafe.Pointer(lpReturnLength)), 0)
 | 
			
		||||
	if r1 == 0 {
 | 
			
		||||
		err = errnoErr(e1)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func QueryIoRateControlInformationJobObject(jobHandle windows.Handle, volumeName *uint16, ioRateControlInfo **JOBOBJECT_IO_RATE_CONTROL_INFORMATION, infoBlockCount *uint32) (ret uint32, err error) {
 | 
			
		||||
	r0, _, e1 := syscall.Syscall6(procQueryIoRateControlInformationJobObject.Addr(), 4, uintptr(jobHandle), uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(ioRateControlInfo)), uintptr(unsafe.Pointer(infoBlockCount)), 0, 0)
 | 
			
		||||
	ret = uint32(r0)
 | 
			
		||||
	if ret == 0 {
 | 
			
		||||
		err = errnoErr(e1)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func resizePseudoConsole(hPc windows.Handle, size uint32) (hr error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(hPc), uintptr(size), 0)
 | 
			
		||||
	if int32(r0) < 0 {
 | 
			
		||||
		if r0&0x1fff0000 == 0x00070000 {
 | 
			
		||||
			r0 &= 0xffff
 | 
			
		||||
		}
 | 
			
		||||
		hr = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SearchPath(lpPath *uint16, lpFileName *uint16, lpExtension *uint16, nBufferLength uint32, lpBuffer *uint16, lpFilePath *uint16) (size uint32, err error) {
 | 
			
		||||
	r0, _, e1 := syscall.Syscall6(procSearchPathW.Addr(), 6, uintptr(unsafe.Pointer(lpPath)), uintptr(unsafe.Pointer(lpFileName)), uintptr(unsafe.Pointer(lpExtension)), uintptr(nBufferLength), uintptr(unsafe.Pointer(lpBuffer)), uintptr(unsafe.Pointer(lpFilePath)))
 | 
			
		||||
	size = uint32(r0)
 | 
			
		||||
	if size == 0 {
 | 
			
		||||
		err = errnoErr(e1)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SetIoRateControlInformationJobObject(jobHandle windows.Handle, ioRateControlInfo *JOBOBJECT_IO_RATE_CONTROL_INFORMATION) (ret uint32, err error) {
 | 
			
		||||
	r0, _, e1 := syscall.Syscall(procSetIoRateControlInformationJobObject.Addr(), 2, uintptr(jobHandle), uintptr(unsafe.Pointer(ioRateControlInfo)), 0)
 | 
			
		||||
	ret = uint32(r0)
 | 
			
		||||
	if ret == 0 {
 | 
			
		||||
		err = errnoErr(e1)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func netLocalGroupAddMembers(serverName *uint16, groupName *uint16, level uint32, buf *byte, totalEntries uint32) (status error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procNetLocalGroupAddMembers.Addr(), 5, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(groupName)), uintptr(level), uintptr(unsafe.Pointer(buf)), uintptr(totalEntries), 0)
 | 
			
		||||
	if r0 != 0 {
 | 
			
		||||
		status = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func netLocalGroupGetInfo(serverName *uint16, groupName *uint16, level uint32, bufptr **byte) (status error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procNetLocalGroupGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(groupName)), uintptr(level), uintptr(unsafe.Pointer(bufptr)), 0, 0)
 | 
			
		||||
	if r0 != 0 {
 | 
			
		||||
		status = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func netUserAdd(serverName *uint16, level uint32, buf *byte, parm_err *uint32) (status error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procNetUserAdd.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(parm_err)), 0, 0)
 | 
			
		||||
	if r0 != 0 {
 | 
			
		||||
		status = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func netUserDel(serverName *uint16, username *uint16) (status error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procNetUserDel.Addr(), 2, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(username)), 0)
 | 
			
		||||
	if r0 != 0 {
 | 
			
		||||
		status = syscall.Errno(r0)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NtCreateFile(handle *uintptr, accessMask uint32, oa *ObjectAttributes, iosb *IOStatusBlock, allocationSize *uint64, fileAttributes uint32, shareAccess uint32, createDisposition uint32, createOptions uint32, eaBuffer *byte, eaLength uint32) (status uint32) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall12(procNtCreateFile.Addr(), 11, uintptr(unsafe.Pointer(handle)), uintptr(accessMask), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(fileAttributes), uintptr(shareAccess), uintptr(createDisposition), uintptr(createOptions), uintptr(unsafe.Pointer(eaBuffer)), uintptr(eaLength), 0)
 | 
			
		||||
	status = uint32(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NtSetInformationFile(handle uintptr, iosb *IOStatusBlock, information uintptr, length uint32, class uint32) (status uint32) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(information), uintptr(length), uintptr(class), 0)
 | 
			
		||||
func NtCreateJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procNtCreateJobObject.Addr(), 3, uintptr(unsafe.Pointer(jobHandle)), uintptr(desiredAccess), uintptr(unsafe.Pointer(objAttributes)))
 | 
			
		||||
	status = uint32(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
@@ -374,24 +331,44 @@ func NtOpenDirectoryObject(handle *uintptr, accessMask uint32, oa *ObjectAttribu
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NtOpenJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procNtOpenJobObject.Addr(), 3, uintptr(unsafe.Pointer(jobHandle)), uintptr(desiredAccess), uintptr(unsafe.Pointer(objAttributes)))
 | 
			
		||||
	status = uint32(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NtQueryDirectoryObject(handle uintptr, buffer *byte, length uint32, singleEntry bool, restartScan bool, context *uint32, returnLength *uint32) (status uint32) {
 | 
			
		||||
	var _p0 uint32
 | 
			
		||||
	if singleEntry {
 | 
			
		||||
		_p0 = 1
 | 
			
		||||
	} else {
 | 
			
		||||
		_p0 = 0
 | 
			
		||||
	}
 | 
			
		||||
	var _p1 uint32
 | 
			
		||||
	if restartScan {
 | 
			
		||||
		_p1 = 1
 | 
			
		||||
	} else {
 | 
			
		||||
		_p1 = 0
 | 
			
		||||
	}
 | 
			
		||||
	r0, _, _ := syscall.Syscall9(procNtQueryDirectoryObject.Addr(), 7, uintptr(handle), uintptr(unsafe.Pointer(buffer)), uintptr(length), uintptr(_p0), uintptr(_p1), uintptr(unsafe.Pointer(context)), uintptr(unsafe.Pointer(returnLength)), 0, 0)
 | 
			
		||||
	status = uint32(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NtQueryInformationProcess(processHandle windows.Handle, processInfoClass uint32, processInfo unsafe.Pointer, processInfoLength uint32, returnLength *uint32) (status uint32) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(processHandle), uintptr(processInfoClass), uintptr(processInfo), uintptr(processInfoLength), uintptr(unsafe.Pointer(returnLength)), 0)
 | 
			
		||||
	status = uint32(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NtQuerySystemInformation(systemInfoClass int, systemInformation unsafe.Pointer, systemInfoLength uint32, returnLength *uint32) (status uint32) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(systemInfoClass), uintptr(systemInformation), uintptr(systemInfoLength), uintptr(unsafe.Pointer(returnLength)), 0, 0)
 | 
			
		||||
	status = uint32(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NtSetInformationFile(handle uintptr, iosb *IOStatusBlock, information uintptr, length uint32, class uint32) (status uint32) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(information), uintptr(length), uintptr(class), 0)
 | 
			
		||||
	status = uint32(r0)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func RtlNtStatusToDosError(status uint32) (winerr error) {
 | 
			
		||||
	r0, _, _ := syscall.Syscall(procRtlNtStatusToDosError.Addr(), 1, uintptr(status), 0, 0)
 | 
			
		||||
	if r0 != 0 {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										40
									
								
								vendor/github.com/Microsoft/hcsshim/osversion/windowsbuilds.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										40
									
								
								vendor/github.com/Microsoft/hcsshim/osversion/windowsbuilds.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,37 +1,63 @@
 | 
			
		||||
package osversion
 | 
			
		||||
 | 
			
		||||
// Windows Client and Server build numbers.
 | 
			
		||||
//
 | 
			
		||||
// See:
 | 
			
		||||
// https://learn.microsoft.com/en-us/windows/release-health/release-information
 | 
			
		||||
// https://learn.microsoft.com/en-us/windows/release-health/windows-server-release-info
 | 
			
		||||
// https://learn.microsoft.com/en-us/windows/release-health/windows11-release-information
 | 
			
		||||
const (
 | 
			
		||||
	// RS1 (version 1607, codename "Redstone 1") corresponds to Windows Server
 | 
			
		||||
	// 2016 (ltsc2016) and Windows 10 (Anniversary Update).
 | 
			
		||||
	RS1 = 14393
 | 
			
		||||
	// V1607 (version 1607, codename "Redstone 1") is an alias for [RS1].
 | 
			
		||||
	V1607 = RS1
 | 
			
		||||
	// LTSC2016 (Windows Server 2016) is an alias for [RS1].
 | 
			
		||||
	LTSC2016 = RS1
 | 
			
		||||
 | 
			
		||||
	// RS2 (version 1703, codename "Redstone 2") was a client-only update, and
 | 
			
		||||
	// corresponds to Windows 10 (Creators Update).
 | 
			
		||||
	RS2 = 15063
 | 
			
		||||
	// V1703 (version 1703, codename "Redstone 2") is an alias for [RS2].
 | 
			
		||||
	V1703 = RS2
 | 
			
		||||
 | 
			
		||||
	// RS3 (version 1709, codename "Redstone 3") corresponds to Windows Server
 | 
			
		||||
	// 1709 (Semi-Annual Channel (SAC)), and Windows 10 (Fall Creators Update).
 | 
			
		||||
	RS3 = 16299
 | 
			
		||||
	// V1709 (version 1709, codename "Redstone 3") is an alias for [RS3].
 | 
			
		||||
	V1709 = RS3
 | 
			
		||||
 | 
			
		||||
	// RS4 (version 1803, codename "Redstone 4") corresponds to Windows Server
 | 
			
		||||
	// 1803 (Semi-Annual Channel (SAC)), and Windows 10 (April 2018 Update).
 | 
			
		||||
	RS4 = 17134
 | 
			
		||||
	// V1803 (version 1803, codename "Redstone 4") is an alias for [RS4].
 | 
			
		||||
	V1803 = RS4
 | 
			
		||||
 | 
			
		||||
	// RS5 (version 1809, codename "Redstone 5") corresponds to Windows Server
 | 
			
		||||
	// 2019 (ltsc2019), and Windows 10 (October 2018 Update).
 | 
			
		||||
	RS5 = 17763
 | 
			
		||||
	// V1809 (version 1809, codename "Redstone 5") is an alias for [RS5].
 | 
			
		||||
	V1809 = RS5
 | 
			
		||||
	// LTSC2019 (Windows Server 2019) is an alias for [RS5].
 | 
			
		||||
	LTSC2019 = RS5
 | 
			
		||||
 | 
			
		||||
	// V19H1 (version 1903) corresponds to Windows Server 1903 (semi-annual
 | 
			
		||||
	// V19H1 (version 1903, codename 19H1) corresponds to Windows Server 1903 (semi-annual
 | 
			
		||||
	// channel).
 | 
			
		||||
	V19H1 = 18362
 | 
			
		||||
	// V1903 (version 1903) is an alias for [V19H1].
 | 
			
		||||
	V1903 = V19H1
 | 
			
		||||
 | 
			
		||||
	// V19H2 (version 1909) corresponds to Windows Server 1909 (semi-annual
 | 
			
		||||
	// V19H2 (version 1909, codename 19H2) corresponds to Windows Server 1909 (semi-annual
 | 
			
		||||
	// channel).
 | 
			
		||||
	V19H2 = 18363
 | 
			
		||||
	// V1909 (version 1909) is an alias for [V19H2].
 | 
			
		||||
	V1909 = V19H2
 | 
			
		||||
 | 
			
		||||
	// V20H1 (version 2004) corresponds to Windows Server 2004 (semi-annual
 | 
			
		||||
	// V20H1 (version 2004, codename 20H1) corresponds to Windows Server 2004 (semi-annual
 | 
			
		||||
	// channel).
 | 
			
		||||
	V20H1 = 19041
 | 
			
		||||
	// V2004 (version 2004) is an alias for [V20H1].
 | 
			
		||||
	V2004 = V20H1
 | 
			
		||||
 | 
			
		||||
	// V20H2 corresponds to Windows Server 20H2 (semi-annual channel).
 | 
			
		||||
	V20H2 = 19042
 | 
			
		||||
@@ -44,7 +70,15 @@ const (
 | 
			
		||||
 | 
			
		||||
	// V21H2Server corresponds to Windows Server 2022 (ltsc2022).
 | 
			
		||||
	V21H2Server = 20348
 | 
			
		||||
	// LTSC2022 (Windows Server 2022) is an alias for [V21H2Server]
 | 
			
		||||
	LTSC2022 = V21H2Server
 | 
			
		||||
 | 
			
		||||
	// V21H2Win11 corresponds to Windows 11 (original release).
 | 
			
		||||
	V21H2Win11 = 22000
 | 
			
		||||
 | 
			
		||||
	// V22H2Win10 corresponds to Windows 10 (2022 Update).
 | 
			
		||||
	V22H2Win10 = 19045
 | 
			
		||||
 | 
			
		||||
	// V22H2Win11 corresponds to Windows 11 (2022 Update).
 | 
			
		||||
	V22H2Win11 = 22621
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/Microsoft/hcsshim/tools.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/Microsoft/hcsshim/tools.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
//go:build tools
 | 
			
		||||
 | 
			
		||||
package hcsshim
 | 
			
		||||
 | 
			
		||||
import _ "github.com/Microsoft/go-winio/tools/mkwinsyscall"
 | 
			
		||||
							
								
								
									
										7
									
								
								vendor/github.com/Microsoft/hcsshim/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/Microsoft/hcsshim/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,6 @@
 | 
			
		||||
// Code generated mksyscall_windows.exe DO NOT EDIT
 | 
			
		||||
//go:build windows
 | 
			
		||||
 | 
			
		||||
// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT.
 | 
			
		||||
 | 
			
		||||
package hcsshim
 | 
			
		||||
 | 
			
		||||
@@ -19,6 +21,7 @@ const (
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
 | 
			
		||||
	errERROR_EINVAL     error = syscall.EINVAL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// errnoErr returns common boxed Errno values, to prevent
 | 
			
		||||
@@ -26,7 +29,7 @@ var (
 | 
			
		||||
func errnoErr(e syscall.Errno) error {
 | 
			
		||||
	switch e {
 | 
			
		||||
	case 0:
 | 
			
		||||
		return nil
 | 
			
		||||
		return errERROR_EINVAL
 | 
			
		||||
	case errnoERROR_IO_PENDING:
 | 
			
		||||
		return errERROR_IO_PENDING
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user