mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			570 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			570 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Code generated mksyscall_windows.exe DO NOT EDIT
 | 
						|
 | 
						|
package wclayer
 | 
						|
 | 
						|
import (
 | 
						|
	"syscall"
 | 
						|
	"unsafe"
 | 
						|
 | 
						|
	"golang.org/x/sys/windows"
 | 
						|
)
 | 
						|
 | 
						|
var _ unsafe.Pointer
 | 
						|
 | 
						|
// Do the interface allocations only once for common
 | 
						|
// Errno values.
 | 
						|
const (
 | 
						|
	errnoERROR_IO_PENDING = 997
 | 
						|
)
 | 
						|
 | 
						|
var (
 | 
						|
	errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
 | 
						|
)
 | 
						|
 | 
						|
// errnoErr returns common boxed Errno values, to prevent
 | 
						|
// allocations at runtime.
 | 
						|
func errnoErr(e syscall.Errno) error {
 | 
						|
	switch e {
 | 
						|
	case 0:
 | 
						|
		return nil
 | 
						|
	case errnoERROR_IO_PENDING:
 | 
						|
		return errERROR_IO_PENDING
 | 
						|
	}
 | 
						|
	// TODO: add more here, after collecting data on the common
 | 
						|
	// error values see on Windows. (perhaps when running
 | 
						|
	// all.bat?)
 | 
						|
	return e
 | 
						|
}
 | 
						|
 | 
						|
var (
 | 
						|
	modvmcompute = windows.NewLazySystemDLL("vmcompute.dll")
 | 
						|
	modvirtdisk  = windows.NewLazySystemDLL("virtdisk.dll")
 | 
						|
	modkernel32  = windows.NewLazySystemDLL("kernel32.dll")
 | 
						|
 | 
						|
	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")
 | 
						|
	procExportLayer         = modvmcompute.NewProc("ExportLayer")
 | 
						|
	procGetLayerMountPath   = modvmcompute.NewProc("GetLayerMountPath")
 | 
						|
	procGetBaseImages       = modvmcompute.NewProc("GetBaseImages")
 | 
						|
	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")
 | 
						|
)
 | 
						|
 | 
						|
func activateLayer(info *driverInfo, id string) (hr error) {
 | 
						|
	var _p0 *uint16
 | 
						|
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
						|
	if hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	return _activateLayer(info, _p0)
 | 
						|
}
 | 
						|
 | 
						|
func _activateLayer(info *driverInfo, id *uint16) (hr error) {
 | 
						|
	if hr = procActivateLayer.Find(); hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	r0, _, _ := syscall.Syscall(procActivateLayer.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 copyLayer(info *driverInfo, srcId string, dstId string, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
						|
	var _p0 *uint16
 | 
						|
	_p0, hr = syscall.UTF16PtrFromString(srcId)
 | 
						|
	if hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	var _p1 *uint16
 | 
						|
	_p1, hr = syscall.UTF16PtrFromString(dstId)
 | 
						|
	if hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	return _copyLayer(info, _p0, _p1, descriptors)
 | 
						|
}
 | 
						|
 | 
						|
func _copyLayer(info *driverInfo, srcId *uint16, dstId *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
						|
	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 {
 | 
						|
			r0 &= 0xffff
 | 
						|
		}
 | 
						|
		hr = syscall.Errno(r0)
 | 
						|
	}
 | 
						|
	return
 | 
						|
}
 | 
						|
 | 
						|
func createLayer(info *driverInfo, id string, parent string) (hr error) {
 | 
						|
	var _p0 *uint16
 | 
						|
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
						|
	if hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	var _p1 *uint16
 | 
						|
	_p1, hr = syscall.UTF16PtrFromString(parent)
 | 
						|
	if hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	return _createLayer(info, _p0, _p1)
 | 
						|
}
 | 
						|
 | 
						|
func _createLayer(info *driverInfo, id *uint16, parent *uint16) (hr error) {
 | 
						|
	if hr = procCreateLayer.Find(); hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	r0, _, _ := syscall.Syscall(procCreateLayer.Addr(), 3, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(parent)))
 | 
						|
	if int32(r0) < 0 {
 | 
						|
		if r0&0x1fff0000 == 0x00070000 {
 | 
						|
			r0 &= 0xffff
 | 
						|
		}
 | 
						|
		hr = syscall.Errno(r0)
 | 
						|
	}
 | 
						|
	return
 | 
						|
}
 | 
						|
 | 
						|
func createSandboxLayer(info *driverInfo, id string, parent uintptr, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
						|
	var _p0 *uint16
 | 
						|
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
						|
	if hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	return _createSandboxLayer(info, _p0, parent, descriptors)
 | 
						|
}
 | 
						|
 | 
						|
func _createSandboxLayer(info *driverInfo, id *uint16, parent uintptr, descriptors []WC_LAYER_DESCRIPTOR) (hr error) {
 | 
						|
	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 {
 | 
						|
			r0 &= 0xffff
 | 
						|
		}
 | 
						|
		hr = syscall.Errno(r0)
 | 
						|
	}
 | 
						|
	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)
 | 
						|
	if hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	return _deactivateLayer(info, _p0)
 | 
						|
}
 | 
						|
 | 
						|
func _deactivateLayer(info *driverInfo, id *uint16) (hr error) {
 | 
						|
	if hr = procDeactivateLayer.Find(); hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	r0, _, _ := syscall.Syscall(procDeactivateLayer.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 destroyLayer(info *driverInfo, id string) (hr error) {
 | 
						|
	var _p0 *uint16
 | 
						|
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
						|
	if hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	return _destroyLayer(info, _p0)
 | 
						|
}
 | 
						|
 | 
						|
func _destroyLayer(info *driverInfo, id *uint16) (hr error) {
 | 
						|
	if hr = procDestroyLayer.Find(); hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	r0, _, _ := syscall.Syscall(procDestroyLayer.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 exportLayer(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 _exportLayer(info, _p0, _p1, descriptors)
 | 
						|
}
 | 
						|
 | 
						|
func _exportLayer(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 = procExportLayer.Find(); 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)
 | 
						|
	if int32(r0) < 0 {
 | 
						|
		if r0&0x1fff0000 == 0x00070000 {
 | 
						|
			r0 &= 0xffff
 | 
						|
		}
 | 
						|
		hr = syscall.Errno(r0)
 | 
						|
	}
 | 
						|
	return
 | 
						|
}
 | 
						|
 | 
						|
func getLayerMountPath(info *driverInfo, id string, length *uintptr, buffer *uint16) (hr error) {
 | 
						|
	var _p0 *uint16
 | 
						|
	_p0, hr = syscall.UTF16PtrFromString(id)
 | 
						|
	if hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	return _getLayerMountPath(info, _p0, length, buffer)
 | 
						|
}
 | 
						|
 | 
						|
func _getLayerMountPath(info *driverInfo, id *uint16, length *uintptr, buffer *uint16) (hr error) {
 | 
						|
	if hr = procGetLayerMountPath.Find(); 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)
 | 
						|
	if int32(r0) < 0 {
 | 
						|
		if r0&0x1fff0000 == 0x00070000 {
 | 
						|
			r0 &= 0xffff
 | 
						|
		}
 | 
						|
		hr = syscall.Errno(r0)
 | 
						|
	}
 | 
						|
	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)
 | 
						|
	if hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	var _p1 *uint16
 | 
						|
	_p1, hr = syscall.UTF16PtrFromString(filepath)
 | 
						|
	if hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	return _grantVmAccess(_p0, _p1)
 | 
						|
}
 | 
						|
 | 
						|
func _grantVmAccess(vmid *uint16, filepath *uint16) (hr error) {
 | 
						|
	if hr = procGrantVmAccess.Find(); hr != nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	r0, _, _ := syscall.Syscall(procGrantVmAccess.Addr(), 2, uintptr(unsafe.Pointer(vmid)), uintptr(unsafe.Pointer(filepath)), 0)
 | 
						|
	if int32(r0) < 0 {
 | 
						|
		if r0&0x1fff0000 == 0x00070000 {
 | 
						|
			r0 &= 0xffff
 | 
						|
		}
 | 
						|
		hr = syscall.Errno(r0)
 | 
						|
	}
 | 
						|
	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 {
 | 
						|
		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 {
 | 
						|
		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 {
 | 
						|
		if e1 != 0 {
 | 
						|
			err = errnoErr(e1)
 | 
						|
		} else {
 | 
						|
			err = syscall.EINVAL
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return
 | 
						|
}
 |