...

Package winio

import "github.com/Microsoft/go-winio"
Overview
Index
Subdirectories

Overview ▾

This package provides utilities for efficiently performing Win32 IO operations in Go. Currently, this package is provides support for genreal IO and management of

This code is similar to Go's net package, and uses IO completion ports to avoid blocking IO on system threads, allowing Go to reuse the thread to schedule other goroutines.

This limits support to Windows Vista and newer operating systems.

Additionally, this package provides support for:

  • creating and managing GUIDs
  • writing to ETW
  • opening and manageing VHDs
  • parsing Windows Image files
  • auto-generating Win32 API code

func EncodeExtendedAttributes

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.

type ExtendedAttribute

ExtendedAttribute represents a single Windows EA.

type ExtendedAttribute struct {
    Name  string
    Value []byte
    Flags uint8
}

func DecodeExtendedAttributes

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.

Subdirectories

Name Synopsis
..
backuptar
pkg
bindfilter
etw Package etw provides support for TraceLogging-based ETW (Event Tracing for Windows).
sample Shows a sample usage of the ETW logging package.
etwlogrus
fs This package contains Win32 filesystem functionality.
guid Package guid provides a GUID type.
process
security
tools
etw-provider-gen
mkwinsyscall mkwinsyscall generates windows system call bodies
vhd
wim Package wim implements a WIM file parser.
lzx Package lzx implements a decompressor for the the WIM variant of the LZX compression algorithm.
validate