1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package windows
6
7import "syscall"
8
9const (
10	ERROR_INVALID_PARAMETER syscall.Errno = 87
11
12	FILE_SUPPORTS_OBJECT_IDS      = 0x00010000
13	FILE_SUPPORTS_OPEN_BY_FILE_ID = 0x01000000
14
15	// symlink support for CreateSymbolicLink() starting with Windows 10 (1703, v10.0.14972)
16	SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE = 0x2
17
18	// FileInformationClass values
19	FileBasicInfo                  = 0    // FILE_BASIC_INFO
20	FileStandardInfo               = 1    // FILE_STANDARD_INFO
21	FileNameInfo                   = 2    // FILE_NAME_INFO
22	FileStreamInfo                 = 7    // FILE_STREAM_INFO
23	FileCompressionInfo            = 8    // FILE_COMPRESSION_INFO
24	FileAttributeTagInfo           = 9    // FILE_ATTRIBUTE_TAG_INFO
25	FileIdBothDirectoryInfo        = 0xa  // FILE_ID_BOTH_DIR_INFO
26	FileIdBothDirectoryRestartInfo = 0xb  // FILE_ID_BOTH_DIR_INFO
27	FileRemoteProtocolInfo         = 0xd  // FILE_REMOTE_PROTOCOL_INFO
28	FileFullDirectoryInfo          = 0xe  // FILE_FULL_DIR_INFO
29	FileFullDirectoryRestartInfo   = 0xf  // FILE_FULL_DIR_INFO
30	FileStorageInfo                = 0x10 // FILE_STORAGE_INFO
31	FileAlignmentInfo              = 0x11 // FILE_ALIGNMENT_INFO
32	FileIdInfo                     = 0x12 // FILE_ID_INFO
33	FileIdExtdDirectoryInfo        = 0x13 // FILE_ID_EXTD_DIR_INFO
34	FileIdExtdDirectoryRestartInfo = 0x14 // FILE_ID_EXTD_DIR_INFO
35)
36
37type FILE_ATTRIBUTE_TAG_INFO struct {
38	FileAttributes uint32
39	ReparseTag     uint32
40}
41
42//sys	GetFileInformationByHandleEx(handle syscall.Handle, class uint32, info *byte, bufsize uint32) (err error)
43