* Update hcsshim to v0.8.14 * Update go-winio to v0.4.16 This brings in some vhd package changes from winio, and the compute storage api bindings for the shim. This is to facilitate some coming functionality for the windows snapshotter as well as possibly for future work down the line for the windows differ. Signed-off-by: Daniel Canter <dcanter@microsoft.com>
		
			
				
	
	
		
			111 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package winapi
 | 
						|
 | 
						|
//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
 | 
						|
 | 
						|
//sys NtOpenDirectoryObject(handle *uintptr, accessMask uint32, oa *ObjectAttributes) (status uint32) = ntdll.NtOpenDirectoryObject
 | 
						|
//sys NtQueryDirectoryObject(handle uintptr, buffer *byte, length uint32, singleEntry bool, restartScan bool, context *uint32, returnLength *uint32)(status uint32) = ntdll.NtQueryDirectoryObject
 | 
						|
 | 
						|
const (
 | 
						|
	FileLinkInformationClass          = 11
 | 
						|
	FileDispositionInformationExClass = 64
 | 
						|
 | 
						|
	FILE_READ_ATTRIBUTES  = 0x0080
 | 
						|
	FILE_WRITE_ATTRIBUTES = 0x0100
 | 
						|
	DELETE                = 0x10000
 | 
						|
 | 
						|
	FILE_OPEN   = 1
 | 
						|
	FILE_CREATE = 2
 | 
						|
 | 
						|
	FILE_LIST_DIRECTORY          = 0x00000001
 | 
						|
	FILE_DIRECTORY_FILE          = 0x00000001
 | 
						|
	FILE_SYNCHRONOUS_IO_NONALERT = 0x00000020
 | 
						|
	FILE_OPEN_FOR_BACKUP_INTENT  = 0x00004000
 | 
						|
	FILE_OPEN_REPARSE_POINT      = 0x00200000
 | 
						|
 | 
						|
	FILE_DISPOSITION_DELETE = 0x00000001
 | 
						|
 | 
						|
	OBJ_DONT_REPARSE = 0x1000
 | 
						|
 | 
						|
	STATUS_MORE_ENTRIES    = 0x105
 | 
						|
	STATUS_NO_MORE_ENTRIES = 0x8000001a
 | 
						|
)
 | 
						|
 | 
						|
// 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;
 | 
						|
//
 | 
						|
// Documentation: https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ne-minwinbase-file_info_by_handle_class
 | 
						|
const (
 | 
						|
	FileIdInfo = 18
 | 
						|
)
 | 
						|
 | 
						|
type FileDispositionInformationEx struct {
 | 
						|
	Flags uintptr
 | 
						|
}
 | 
						|
 | 
						|
type IOStatusBlock struct {
 | 
						|
	Status, Information uintptr
 | 
						|
}
 | 
						|
 | 
						|
type ObjectAttributes struct {
 | 
						|
	Length             uintptr
 | 
						|
	RootDirectory      uintptr
 | 
						|
	ObjectName         uintptr
 | 
						|
	Attributes         uintptr
 | 
						|
	SecurityDescriptor uintptr
 | 
						|
	SecurityQoS        uintptr
 | 
						|
}
 | 
						|
 | 
						|
type ObjectDirectoryInformation struct {
 | 
						|
	Name     UnicodeString
 | 
						|
	TypeName UnicodeString
 | 
						|
}
 | 
						|
 | 
						|
type FileLinkInformation struct {
 | 
						|
	ReplaceIfExists bool
 | 
						|
	RootDirectory   uintptr
 | 
						|
	FileNameLength  uint32
 | 
						|
	FileName        [1]uint16
 | 
						|
}
 | 
						|
 | 
						|
// C declaration:
 | 
						|
//   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 {
 | 
						|
	VolumeSerialNumber uint64
 | 
						|
	FileID             [16]byte
 | 
						|
}
 |