Documentation
¶
Index ¶
- Constants
- Variables
- func DialPipe(path string, timeout *time.Duration) (net.Conn, error)
- func DialPipeAccess(ctx context.Context, path string, access uint32) (net.Conn, error)
- func DialPipeContext(ctx context.Context, path string) (net.Conn, error)
- func DisableProcessPrivileges(names []string) error
- func EnableProcessPrivileges(names []string) error
- func EncodeExtendedAttributes(eas []ExtendedAttribute) ([]byte, error)
- func EncodeReparsePoint(rp *ReparsePoint) []byte
- func ListenPipe(path string, c *PipeConfig) (net.Listener, error)
- func LookupSidByName(name string) (sid string, err error)
- func MakeOpenFile(h syscall.Handle) (io.ReadWriteCloser, error)
- func OpenForBackup(path string, access uint32, share uint32, createmode uint32) (*os.File, 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
- func VsockServiceID(port uint32) guid.GUID
- type AccountLookupError
- type BackupFileReader
- type BackupFileWriter
- type BackupHeader
- type BackupStreamReader
- type BackupStreamWriter
- type ExtendedAttribute
- type FileBasicInfo
- type FileIDInfo
- type FileStandardInfo
- type HvsockAddr
- type HvsockConn
- func (conn *HvsockConn) Close() error
- func (conn *HvsockConn) CloseRead() error
- func (conn *HvsockConn) CloseWrite() error
- func (conn *HvsockConn) LocalAddr() net.Addr
- func (conn *HvsockConn) Read(b []byte) (int, error)
- func (conn *HvsockConn) RemoteAddr() net.Addr
- func (conn *HvsockConn) SetDeadline(t time.Time) error
- func (conn *HvsockConn) SetReadDeadline(t time.Time) error
- func (conn *HvsockConn) SetWriteDeadline(t time.Time) error
- func (conn *HvsockConn) Write(b []byte) (int, error)
- type HvsockListener
- type PipeConfig
- type PrivilegeError
- type ReparsePoint
- type SddlConversionError
- type UnsupportedReparsePointError
Constants ¶
const ( BackupData = uint32(iota + 1) BackupEaData BackupSecurity BackupAlternateData BackupLink BackupPropertyData BackupObjectId BackupReparseData BackupSparseBlock BackupTxfsData )
const ( WRITE_DAC = 0x40000 WRITE_OWNER = 0x80000 ACCESS_SYSTEM_SECURITY = 0x1000000 )
const ( SE_PRIVILEGE_ENABLED = 2 ERROR_NOT_ALL_ASSIGNED syscall.Errno = 1300 SeBackupPrivilege = "SeBackupPrivilege" SeRestorePrivilege = "SeRestorePrivilege" SeSecurityPrivilege = "SeSecurityPrivilege" )
const (
StreamSparseAttributes = uint32(8)
)
Variables ¶
var ( ErrFileClosed = errors.New("file has already been closed") ErrTimeout = &timeoutError{} )
var ( // ErrPipeListenerClosed is returned for pipe operations on listeners that have been closed. // 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 we use a default timeout of 2 seconds. (We do not use WaitNamedPipe.)
func DialPipeAccess ¶ added in v0.4.15
DialPipeAccess attempts to connect to a named pipe by `path` with `access` until `ctx` cancellation or timeout.
func DialPipeContext ¶ added in v0.4.13
DialPipeContext attempts to connect to a named pipe by `path` until `ctx` cancellation or timeout.
func DisableProcessPrivileges ¶ added in v0.3.6
DisableProcessPrivileges disables privileges globally for the process.
func EnableProcessPrivileges ¶ added in v0.3.4
EnableProcessPrivileges enables privileges globally for the process.
func EncodeExtendedAttributes ¶ added in v0.4.5
func EncodeExtendedAttributes(eas []ExtendedAttribute) ([]byte, error)
EncodeExtendedAttributes encodes a list of EAs into a FILE_FULL_EA_INFORMATION buffer for use with BackupWrite, ZwSetEaFile, etc.
func EncodeReparsePoint ¶
func EncodeReparsePoint(rp *ReparsePoint) []byte
EncodeReparsePoint encodes a Win32 REPARSE_DATA_BUFFER structure describing a symlink or mount point.
func ListenPipe ¶
func ListenPipe(path string, c *PipeConfig) (net.Listener, error)
ListenPipe creates a listener on a Windows named pipe path, e.g. \\.\pipe\mypipe. The pipe must not already exist.
func LookupSidByName ¶
LookupSidByName looks up the SID of an account by name
func MakeOpenFile ¶
func MakeOpenFile(h syscall.Handle) (io.ReadWriteCloser, error)
func OpenForBackup ¶ added in v0.2.0
OpenForBackup opens a file or directory, potentially skipping access checks if the backup or restore privileges have been acquired.
If the file opened was a directory, it cannot be used with Readdir().
func RunWithPrivilege ¶
RunWithPrivilege enables a single privilege for a function call.
func RunWithPrivileges ¶
RunWithPrivileges enables privileges for a function call.
func SetFileBasicInfo ¶
func SetFileBasicInfo(f *os.File, bi *FileBasicInfo) error
SetFileBasicInfo sets times and attributes for a file.
func VsockServiceID ¶ added in v0.4.13
VsockServiceID returns an hvsock service ID corresponding to the specified AF_VSOCK port.
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
NewBackupFileWriter 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 Read(). 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 ExtendedAttribute ¶ added in v0.4.5
ExtendedAttribute represents a single Windows EA.
func DecodeExtendedAttributes ¶ added in v0.4.5
func DecodeExtendedAttributes(b []byte) (eas []ExtendedAttribute, err error)
DecodeExtendedAttributes decodes a list of EAs from a FILE_FULL_EA_INFORMATION buffer retrieved from BackupRead, ZwQueryEaFile, etc.
type FileBasicInfo ¶
type FileBasicInfo struct {
CreationTime, LastAccessTime, LastWriteTime, ChangeTime windows.Filetime
FileAttributes uint32
// contains filtered or unexported fields
}
FileBasicInfo contains file access time and file attributes information.
func GetFileBasicInfo ¶
func GetFileBasicInfo(f *os.File) (*FileBasicInfo, error)
GetFileBasicInfo retrieves times and attributes for a file.
type FileIDInfo ¶ added in v0.2.0
FileIDInfo contains the volume serial number and file ID for a file. This pair should be unique on a system.
type FileStandardInfo ¶ added in v0.4.17
type FileStandardInfo struct {
AllocationSize, EndOfFile int64
NumberOfLinks uint32
DeletePending, Directory bool
}
FileStandardInfo contains extended information for the file. FILE_STANDARD_INFO in WinBase.h https://docs.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-file_standard_info
func GetFileStandardInfo ¶ added in v0.4.17
func GetFileStandardInfo(f *os.File) (*FileStandardInfo, error)
GetFileStandardInfo retrieves ended information for the file.
type HvsockAddr ¶ added in v0.4.13
An HvsockAddr is an address for a AF_HYPERV socket.
func (*HvsockAddr) Network ¶ added in v0.4.13
func (addr *HvsockAddr) Network() string
Network returns the address's network name, "hvsock".
func (*HvsockAddr) String ¶ added in v0.4.13
func (addr *HvsockAddr) String() string
type HvsockConn ¶ added in v0.4.13
type HvsockConn struct {
// contains filtered or unexported fields
}
HvsockConn is a connected socket of the AF_HYPERV address family.
func (*HvsockConn) Close ¶ added in v0.4.13
func (conn *HvsockConn) Close() error
Close closes the socket connection, failing any pending read or write calls.
func (*HvsockConn) CloseRead ¶ added in v0.4.13
func (conn *HvsockConn) CloseRead() error
CloseRead shuts down the read end of the socket.
func (*HvsockConn) CloseWrite ¶ added in v0.4.13
func (conn *HvsockConn) CloseWrite() error
CloseWrite shuts down the write end of the socket, notifying the other endpoint that no more data will be written.
func (*HvsockConn) LocalAddr ¶ added in v0.4.13
func (conn *HvsockConn) LocalAddr() net.Addr
LocalAddr returns the local address of the connection.
func (*HvsockConn) RemoteAddr ¶ added in v0.4.13
func (conn *HvsockConn) RemoteAddr() net.Addr
RemoteAddr returns the remote address of the connection.
func (*HvsockConn) SetDeadline ¶ added in v0.4.13
func (conn *HvsockConn) SetDeadline(t time.Time) error
SetDeadline implements the net.Conn SetDeadline method.
func (*HvsockConn) SetReadDeadline ¶ added in v0.4.13
func (conn *HvsockConn) SetReadDeadline(t time.Time) error
SetReadDeadline implements the net.Conn SetReadDeadline method.
func (*HvsockConn) SetWriteDeadline ¶ added in v0.4.13
func (conn *HvsockConn) SetWriteDeadline(t time.Time) error
SetWriteDeadline implements the net.Conn SetWriteDeadline method.
type HvsockListener ¶ added in v0.4.13
type HvsockListener struct {
// contains filtered or unexported fields
}
HvsockListener is a socket listener for the AF_HYPERV address family.
func ListenHvsock ¶ added in v0.4.13
func ListenHvsock(addr *HvsockAddr) (_ *HvsockListener, err error)
ListenHvsock listens for connections on the specified hvsock address.
func (*HvsockListener) Accept ¶ added in v0.4.13
func (l *HvsockListener) Accept() (_ net.Conn, err error)
Accept waits for the next connection and returns it.
func (*HvsockListener) Addr ¶ added in v0.4.13
func (l *HvsockListener) Addr() net.Addr
Addr returns the listener's network address.
func (*HvsockListener) Close ¶ added in v0.4.13
func (l *HvsockListener) Close() error
Close closes the listener, causing any pending Accept calls to fail.
type PipeConfig ¶
type PipeConfig struct { // SecurityDescriptor contains a Windows security descriptor in SDDL format. SecurityDescriptor string // MessageMode determines whether the pipe is in byte or message mode. In either // case the pipe is read in byte mode by default. The only practical difference in // this implementation is that CloseWrite() is only supported for message mode pipes; // CloseWrite() is implemented as a zero-byte write, but zero-byte writes are only // transferred to the reader (and returned as io.EOF in this implementation) // when the pipe is in message mode. MessageMode bool // InputBufferSize specifies the size of the input buffer, in bytes. InputBufferSize int32 // OutputBufferSize specifies the size of the output buffer, in bytes. OutputBufferSize int32 }
PipeConfig contain configuration for the pipe listener.
type PrivilegeError ¶
type PrivilegeError struct {
// contains filtered or unexported fields
}
PrivilegeError represents an error enabling privileges.
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.
func DecodeReparsePointData ¶ added in v0.3.0
func DecodeReparsePointData(tag uint32, b []byte) (*ReparsePoint, error)
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
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
pkg
|
|
etw
Package etw provides support for TraceLogging-based ETW (Event Tracing for Windows).
|
Package etw provides support for TraceLogging-based ETW (Event Tracing for Windows). |
guid
Package guid provides a GUID type.
|
Package guid provides a GUID type. |
tools
|
|
Package wim implements a WIM file parser.
|
Package wim implements a WIM file parser. |
lzx
Package lzx implements a decompressor for the the WIM variant of the LZX compression algorithm.
|
Package lzx implements a decompressor for the the WIM variant of the LZX compression algorithm. |