Documentation
¶
Index ¶
- Constants
- Variables
- func DialPipe(path string, timeout *time.Duration) (net.Conn, error)
- func EncodeReparsePoint(rp *ReparsePoint) []byte
- func ListenPipe(path, sddl string) (net.Listener, error)
- func LookupSidByName(name string) (sid string, err error)
- func MakeOpenFile(h syscall.Handle) (io.ReadWriteCloser, error)
- func RunWithPrivilege(name string, fn func() error) error
- func RunWithPrivileges(names []string, fn func() error) error
- func SddlToSecurityDescriptor(sddl string) ([]byte, error)
- func SecurityDescriptorToSddl(sd []byte) (string, error)
- func SetFileBasicInfo(f *os.File, bi *FileBasicInfo) error
- type AccountLookupError
- type BackupFileReader
- type BackupFileWriter
- type BackupHeader
- type BackupStreamReader
- type BackupStreamWriter
- type FileBasicInfo
- type PrivilegeError
- type ReparsePoint
- type SddlConversionError
- type UnsupportedReparsePointError
Constants ¶
const ( BackupData = uint32(iota + 1) BackupEaData BackupSecurity BackupAlternateData BackupLink BackupPropertyData BackupObjectId BackupReparseData BackupSparseBlock BackupTxfsData StreamSparseAttributes = uint32(8) )
const ( SE_PRIVILEGE_ENABLED = 2 SeBackupPrivilege = "SeBackupPrivilege" SeRestorePrivilege = "SeRestorePrivilege" )
Variables ¶
var ( ErrFileClosed = errors.New("file has already been closed") ErrTimeout = &timeoutError{} )
var ( // This error should match net.errClosing since docker takes a dependency on its text ErrPipeListenerClosed = errors.New("use of closed network connection") )
Functions ¶
func DialPipe ¶
DialPipe connects to a named pipe by path, timing out if the connection takes longer than the specified duration. If timeout is nil, then the timeout is the default timeout established by the pipe server.
func EncodeReparsePoint ¶
func EncodeReparsePoint(rp *ReparsePoint) []byte
EncodeReparsePoint encodes a Win32 REPARSE_DATA_BUFFER structure describing a symlink or mount point.
func LookupSidByName ¶
LookupSidByName looks up the SID of an account by name
func MakeOpenFile ¶
func MakeOpenFile(h syscall.Handle) (io.ReadWriteCloser, error)
func RunWithPrivilege ¶
func RunWithPrivileges ¶
func SetFileBasicInfo ¶
func SetFileBasicInfo(f *os.File, bi *FileBasicInfo) error
Types ¶
type AccountLookupError ¶
func (*AccountLookupError) Error ¶
func (e *AccountLookupError) Error() string
type BackupFileReader ¶
type BackupFileReader struct {
// contains filtered or unexported fields
}
BackupFileReader provides an io.ReadCloser interface on top of the BackupRead Win32 API.
func NewBackupFileReader ¶
func NewBackupFileReader(f *os.File, includeSecurity bool) *BackupFileReader
NewBackupFileReader returns a new BackupFileReader from a file handle. If includeSecurity is true, Read will attempt to read the security descriptor of the file.
func (*BackupFileReader) Close ¶
func (r *BackupFileReader) Close() error
Close frees Win32 resources associated with the BackupFileReader. It does not close the underlying file.
type BackupFileWriter ¶
type BackupFileWriter struct {
// contains filtered or unexported fields
}
BackupFileWriter provides an io.WriteCloser interface on top of the BackupWrite Win32 API.
func NewBackupFileWriter ¶
func NewBackupFileWriter(f *os.File, includeSecurity bool) *BackupFileWriter
NewBackupFileWrtier returns a new BackupFileWriter from a file handle. If includeSecurity is true, Write() will attempt to restore the security descriptor from the stream.
func (*BackupFileWriter) Close ¶
func (w *BackupFileWriter) Close() error
Close frees Win32 resources associated with the BackupFileWriter. It does not close the underlying file.
type BackupHeader ¶
type BackupHeader struct {
Id uint32 // The backup stream ID
Attributes uint32 // Stream attributes
Size int64 // The size of the stream in bytes
Name string // The name of the stream (for BackupAlternateData only).
Offset int64 // The offset of the stream in the file (for BackupSparseBlock only).
}
BackupHeader represents a backup stream of a file.
type BackupStreamReader ¶
type BackupStreamReader struct {
// contains filtered or unexported fields
}
BackupStreamReader reads from a stream produced by the BackupRead Win32 API and produces a series of BackupHeader values.
func NewBackupStreamReader ¶
func NewBackupStreamReader(r io.Reader) *BackupStreamReader
NewBackupStreamReader produces a BackupStreamReader from any io.Reader.
func (*BackupStreamReader) Next ¶
func (r *BackupStreamReader) Next() (*BackupHeader, error)
Next returns the next backup stream and prepares for calls to Write(). It skips the remainder of the current stream if it was not completely read.
type BackupStreamWriter ¶
type BackupStreamWriter struct {
// contains filtered or unexported fields
}
BackupStreamWriter writes a stream compatible with the BackupWrite Win32 API.
func NewBackupStreamWriter ¶
func NewBackupStreamWriter(w io.Writer) *BackupStreamWriter
NewBackupStreamWriter produces a BackupStreamWriter on top of an io.Writer.
func (*BackupStreamWriter) Write ¶
func (w *BackupStreamWriter) Write(b []byte) (int, error)
Write writes to the current backup stream.
func (*BackupStreamWriter) WriteHeader ¶
func (w *BackupStreamWriter) WriteHeader(hdr *BackupHeader) error
WriteHeader writes the next backup stream header and prepares for calls to Write().
type FileBasicInfo ¶
type FileBasicInfo struct {
CreationTime, LastAccessTime, LastWriteTime, ChangeTime syscall.Filetime
FileAttributes uintptr // includes padding
}
func GetFileBasicInfo ¶
func GetFileBasicInfo(f *os.File) (*FileBasicInfo, error)
type PrivilegeError ¶
type PrivilegeError struct {
// contains filtered or unexported fields
}
func (*PrivilegeError) Error ¶
func (e *PrivilegeError) Error() string
type ReparsePoint ¶
ReparsePoint describes a Win32 symlink or mount point.
func DecodeReparsePoint ¶
func DecodeReparsePoint(b []byte) (*ReparsePoint, error)
DecodeReparsePoint decodes a Win32 REPARSE_DATA_BUFFER structure containing either a symlink or a mount point.
type SddlConversionError ¶
func (*SddlConversionError) Error ¶
func (e *SddlConversionError) Error() string
type UnsupportedReparsePointError ¶
type UnsupportedReparsePointError struct {
Tag uint32
}
UnsupportedReparsePointError is returned when trying to decode a non-symlink or mount point reparse point.
func (*UnsupportedReparsePointError) Error ¶
func (e *UnsupportedReparsePointError) Error() string