diff --git a/go.mod b/go.mod index b17cec9f6..304b62943 100644 --- a/go.mod +++ b/go.mod @@ -1,9 +1,21 @@ module github.com/kubernetes-csi/csi-proxy/v2 -go 1.16 +go 1.22.0 + +toolchain go1.22.3 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/stretchr/testify v1.5.1 + github.com/go-ole/go-ole v1.3.0 + github.com/microsoft/wmi v0.25.1 + github.com/stretchr/testify v1.7.0 + golang.org/x/sys v0.25.0 k8s.io/klog/v2 v2.9.0 ) + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/go-logr/logr v0.4.0 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + gopkg.in/yaml.v3 v3.0.0 // indirect +) diff --git a/go.sum b/go.sum index d7e701133..2ac087b70 100644 --- a/go.sum +++ b/go.sum @@ -3,14 +3,24 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc= github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= +github.com/microsoft/wmi v0.25.1 h1:sQv9hCEHtW5K6yEVL78T6XGRMGxk4aTpcJwCiB5rLN0= +github.com/microsoft/wmi v0.25.1/go.mod h1:1zbdSF0A+5OwTUII5p3hN7/K6KF2m3o27pSG6Y51VU8= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0 h1:hjy8E9ON/egN1tAYqKb61G10WtihqetD4sz2H+8nIeA= +gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= k8s.io/klog/v2 v2.9.0 h1:D7HV+n1V57XeZ0m6tdRkfknthUaM06VFbWldOFh8kzM= k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= diff --git a/pkg/cim/disk.go b/pkg/cim/disk.go new file mode 100644 index 000000000..cc3170f9c --- /dev/null +++ b/pkg/cim/disk.go @@ -0,0 +1,36 @@ +//go:build windows +// +build windows + +package cim + +import ( + "fmt" + "strconv" + + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/server2019/root/microsoft/windows/storage" +) + +// QueryDiskByNumber retrieves disk information for a specific disk identified by its number. +// +// The equivalent WMI query is: +// +// SELECT [selectors] FROM MSFT_Disk +// WHERE DiskNumber = '' +// +// Refer to https://learn.microsoft.com/en-us/windows-hardware/drivers/storage/msft-disk +// for the WMI class definition. +func QueryDiskByNumber(diskNumber uint32, selectorList []string) (*storage.MSFT_Disk, error) { + diskQuery := query.NewWmiQueryWithSelectList("MSFT_Disk", selectorList, "Number", strconv.Itoa(int(diskNumber))) + instances, err := QueryInstances(WMINamespaceStorage, diskQuery) + if err != nil { + return nil, err + } + + disk, err := storage.NewMSFT_DiskEx1(instances[0]) + if err != nil { + return nil, fmt.Errorf("failed to query disk %d. error: %v", diskNumber, err) + } + + return disk, nil +} diff --git a/pkg/cim/volume.go b/pkg/cim/volume.go new file mode 100644 index 000000000..085289ba1 --- /dev/null +++ b/pkg/cim/volume.go @@ -0,0 +1,300 @@ +//go:build windows +// +build windows + +package cim + +import ( + "fmt" + "strconv" + + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "github.com/microsoft/wmi/server2019/root/microsoft/windows/storage" +) + +// QueryVolumeByUniqueID retrieves a specific volume by its unique identifier, +// returning the first volume that matches the given volume ID. +// +// The equivalent WMI query is: +// +// SELECT [selectors] FROM MSFT_Volume +// +// Refer to https://learn.microsoft.com/en-us/windows-hardware/drivers/storage/msft-volume +// for the WMI class definition. +func QueryVolumeByUniqueID(volumeID string, selectorList []string) (*storage.MSFT_Volume, error) { + var selectors []string + selectors = append(selectors, selectorList...) + selectors = append(selectors, "UniqueId") + volumeQuery := query.NewWmiQueryWithSelectList("MSFT_Volume", selectors) + instances, err := QueryInstances(WMINamespaceStorage, volumeQuery) + if err != nil { + return nil, err + } + + for _, instance := range instances { + volume, err := storage.NewMSFT_VolumeEx1(instance) + if err != nil { + return nil, fmt.Errorf("failed to query volume (%s). error: %w", volumeID, err) + } + + uniqueID, err := volume.GetPropertyUniqueId() + if err != nil { + return nil, fmt.Errorf("failed to query volume unique ID (%s). error: %w", volumeID, err) + } + + if uniqueID == volumeID { + return volume, nil + } + } + + return nil, errors.NotFound +} + +// ListVolumes retrieves all available volumes on the system. +// +// The equivalent WMI query is: +// +// SELECT [selectors] FROM MSFT_Volume +// +// Refer to https://learn.microsoft.com/en-us/windows-hardware/drivers/storage/msft-volume +// for the WMI class definition. +func ListVolumes(selectorList []string) ([]*storage.MSFT_Volume, error) { + diskQuery := query.NewWmiQueryWithSelectList("MSFT_Volume", selectorList) + instances, err := QueryInstances(WMINamespaceStorage, diskQuery) + if IgnoreNotFound(err) != nil { + return nil, err + } + + var volumes []*storage.MSFT_Volume + for _, instance := range instances { + volume, err := storage.NewMSFT_VolumeEx1(instance) + if err != nil { + return nil, fmt.Errorf("failed to query volume %v. error: %v", instance, err) + } + + volumes = append(volumes, volume) + } + + return volumes, nil +} + +// ListPartitionsOnDisk retrieves all partitions or a partition with the specified number on a disk. +// +// The equivalent WMI query is: +// +// SELECT [selectors] FROM MSFT_Partition +// WHERE DiskNumber = '' +// AND PartitionNumber = '' +// +// Refer to https://learn.microsoft.com/en-us/windows-hardware/drivers/storage/msft-partition +// for the WMI class definition. +func ListPartitionsOnDisk(diskNumber, partitionNumber uint32, selectorList []string) ([]*storage.MSFT_Partition, error) { + filters := []*query.WmiQueryFilter{ + query.NewWmiQueryFilter("DiskNumber", strconv.Itoa(int(diskNumber)), query.Equals), + } + if partitionNumber > 0 { + filters = append(filters, query.NewWmiQueryFilter("PartitionNumber", strconv.Itoa(int(partitionNumber)), query.Equals)) + } + return ListPartitionsWithFilters(selectorList, filters...) +} + +// ListPartitionsWithFilters retrieves all partitions matching with the conditions specified by query filters. +// +// The equivalent WMI query is: +// +// SELECT [selectors] FROM MSFT_Partition +// WHERE ... +// +// Refer to https://learn.microsoft.com/en-us/windows-hardware/drivers/storage/msft-partition +// for the WMI class definition. +func ListPartitionsWithFilters(selectorList []string, filters ...*query.WmiQueryFilter) ([]*storage.MSFT_Partition, error) { + partitionQuery := query.NewWmiQueryWithSelectList("MSFT_Partition", selectorList) + partitionQuery.Filters = append(partitionQuery.Filters, filters...) + instances, err := QueryInstances(WMINamespaceStorage, partitionQuery) + if IgnoreNotFound(err) != nil { + return nil, err + } + + var partitions []*storage.MSFT_Partition + for _, instance := range instances { + part, err := storage.NewMSFT_PartitionEx1(instance) + if err != nil { + return nil, fmt.Errorf("failed to query partition %v. error: %v", instance, err) + } + + partitions = append(partitions, part) + } + + return partitions, nil +} + +// ListPartitionToVolumeMappings builds a mapping between partition and volume with partition Object ID as the key. +// +// The equivalent WMI query is: +// +// SELECT [selectors] FROM MSFT_PartitionToVolume +// +// Partition | Volume +// --------- | ------ +// MSFT_Partition (ObjectId = "{1}\\WIN-8E2EVAQ9QSB\ROOT/Microsoft/Win...) | MSFT_Volume (ObjectId = "{1}\\WIN-8E2EVAQ9QS... +// +// Refer to https://learn.microsoft.com/en-us/windows-hardware/drivers/storage/msft-partitiontovolume +// for the WMI class definition. +func ListPartitionToVolumeMappings() (map[string]string, error) { + return ListWMIInstanceMappings(WMINamespaceStorage, "MSFT_PartitionToVolume", nil, + mappingObjectRefIndexer("Partition", "MSFT_Partition", "ObjectId"), + mappingObjectRefIndexer("Volume", "MSFT_Volume", "ObjectId"), + ) +} + +// ListVolumeToPartitionMappings builds a mapping between volume and partition with volume Object ID as the key. +// +// The equivalent WMI query is: +// +// SELECT [selectors] FROM MSFT_PartitionToVolume +// +// Partition | Volume +// --------- | ------ +// MSFT_Partition (ObjectId = "{1}\\WIN-8E2EVAQ9QSB\ROOT/Microsoft/Win...) | MSFT_Volume (ObjectId = "{1}\\WIN-8E2EVAQ9QS... +// +// Refer to https://learn.microsoft.com/en-us/windows-hardware/drivers/storage/msft-partitiontovolume +// for the WMI class definition. +func ListVolumeToPartitionMappings() (map[string]string, error) { + return ListWMIInstanceMappings(WMINamespaceStorage, "MSFT_PartitionToVolume", nil, + mappingObjectRefIndexer("Volume", "MSFT_Volume", "ObjectId"), + mappingObjectRefIndexer("Partition", "MSFT_Partition", "ObjectId"), + ) +} + +// FindPartitionsByVolume finds all partitions associated with the given volumes +// using partition-to-volume mapping. +func FindPartitionsByVolume(partitions []*storage.MSFT_Partition, volumes []*storage.MSFT_Volume) ([]*storage.MSFT_Partition, error) { + var partitionInstances []*cim.WmiInstance + for _, part := range partitions { + partitionInstances = append(partitionInstances, part.WmiInstance) + } + + var volumeInstances []*cim.WmiInstance + for _, volume := range volumes { + volumeInstances = append(volumeInstances, volume.WmiInstance) + } + + partitionToVolumeMappings, err := ListPartitionToVolumeMappings() + if err != nil { + return nil, err + } + + filtered, err := FindInstancesByObjectIDMapping(partitionInstances, volumeInstances, partitionToVolumeMappings) + if err != nil { + return nil, err + } + + var result []*storage.MSFT_Partition + for _, instance := range filtered { + part, err := storage.NewMSFT_PartitionEx1(instance) + if err != nil { + return nil, fmt.Errorf("failed to query partition %v. error: %v", instance, err) + } + + result = append(result, part) + } + + return result, nil +} + +// FindVolumesByPartition finds all volumes associated with the given partitions +// using volume-to-partition mapping. +func FindVolumesByPartition(volumes []*storage.MSFT_Volume, partitions []*storage.MSFT_Partition) ([]*storage.MSFT_Volume, error) { + var volumeInstances []*cim.WmiInstance + for _, volume := range volumes { + volumeInstances = append(volumeInstances, volume.WmiInstance) + } + + var partitionInstances []*cim.WmiInstance + for _, part := range partitions { + partitionInstances = append(partitionInstances, part.WmiInstance) + } + + volumeToPartitionMappings, err := ListVolumeToPartitionMappings() + if err != nil { + return nil, err + } + + filtered, err := FindInstancesByObjectIDMapping(volumeInstances, partitionInstances, volumeToPartitionMappings) + if err != nil { + return nil, err + } + + var result []*storage.MSFT_Volume + for _, instance := range filtered { + volume, err := storage.NewMSFT_VolumeEx1(instance) + if err != nil { + return nil, fmt.Errorf("failed to query volume %v. error: %v", instance, err) + } + + result = append(result, volume) + } + + return result, nil +} + +// GetPartitionByVolumeUniqueID retrieves a specific partition from a volume identified by its unique ID. +func GetPartitionByVolumeUniqueID(volumeID string, partitionSelectorList []string) (*storage.MSFT_Partition, error) { + volume, err := QueryVolumeByUniqueID(volumeID, []string{"ObjectId"}) + if err != nil { + return nil, err + } + + partitions, err := ListPartitionsWithFilters(partitionSelectorList) + if err != nil { + return nil, err + } + + result, err := FindPartitionsByVolume(partitions, []*storage.MSFT_Volume{volume}) + if err != nil { + return nil, err + } + + return result[0], nil +} + +// GetVolumeByDriveLetter retrieves a volume associated with a specific drive letter. +func GetVolumeByDriveLetter(driveLetter string, partitionSelectorList []string) (*storage.MSFT_Volume, error) { + var selectorsForPart []string + selectorsForPart = append(selectorsForPart, partitionSelectorList...) + selectorsForPart = append(selectorsForPart, "ObjectId") + partitions, err := ListPartitionsWithFilters(selectorsForPart, query.NewWmiQueryFilter("DriveLetter", driveLetter, query.Equals)) + if err != nil { + return nil, err + } + + volumes, err := ListVolumes(partitionSelectorList) + if err != nil { + return nil, err + } + + result, err := FindVolumesByPartition(volumes, partitions) + if err != nil { + return nil, err + } + + if len(result) == 0 { + return nil, errors.NotFound + } + + return result[0], nil +} + +// GetPartitionDiskNumber retrieves the disk number associated with a given partition. +// +// Refer to https://learn.microsoft.com/en-us/windows-hardware/drivers/storage/msft-partition +// for the WMI class definitions. +func GetPartitionDiskNumber(part *storage.MSFT_Partition) (uint32, error) { + diskNumber, err := part.GetProperty("DiskNumber") + if err != nil { + return 0, err + } + + return uint32(diskNumber.(int32)), nil +} diff --git a/pkg/cim/wmi.go b/pkg/cim/wmi.go new file mode 100644 index 000000000..3e0375ba4 --- /dev/null +++ b/pkg/cim/wmi.go @@ -0,0 +1,367 @@ +//go:build windows +// +build windows + +package cim + +import ( + "fmt" + "strings" + + "github.com/go-ole/go-ole" + "github.com/go-ole/go-ole/oleutil" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "k8s.io/klog/v2" +) + +const ( + WMINamespaceRoot = "Root\\CimV2" + WMINamespaceStorage = "Root\\Microsoft\\Windows\\Storage" +) + +type InstanceHandler func(instance *cim.WmiInstance) (bool, error) + +// An InstanceIndexer provides index key to a WMI Instance in a map +type InstanceIndexer func(instance *cim.WmiInstance) (string, error) + +// NewWMISession creates a new local WMI session for the given namespace, defaulting +// to root namespace if none specified. +func NewWMISession(namespace string) (*cim.WmiSession, error) { + if namespace == "" { + namespace = WMINamespaceRoot + } + + sessionManager := cim.NewWmiSessionManager() + defer sessionManager.Dispose() + + session, err := sessionManager.GetLocalSession(namespace) + if err != nil { + return nil, fmt.Errorf("failed to get local WMI session for namespace %s. error: %w", namespace, err) + } + + connected, err := session.Connect() + if !connected || err != nil { + return nil, fmt.Errorf("failed to connect to WMI. error: %w", err) + } + + return session, nil +} + +// QueryFromWMI executes a WMI query in the specified namespace and processes each result +// through the provided handler function. Stops processing if handler returns false or encounters an error. +func QueryFromWMI(namespace string, query *query.WmiQuery, handler InstanceHandler) error { + session, err := NewWMISession(namespace) + if err != nil { + return err + } + + defer session.Close() + + instances, err := session.QueryInstances(query.String()) + if err != nil { + return fmt.Errorf("failed to query WMI class %s. error: %w", query.ClassName, err) + } + + if len(instances) == 0 { + return errors.NotFound + } + + var cont bool + for _, instance := range instances { + cont, err = handler(instance) + if err != nil { + err = fmt.Errorf("failed to query WMI class %s instance (%s). error: %w", query.ClassName, instance.String(), err) + } + if !cont { + break + } + } + + return err +} + +// QueryInstances retrieves all WMI instances matching the given query in the specified namespace. +func QueryInstances(namespace string, query *query.WmiQuery) ([]*cim.WmiInstance, error) { + var instances []*cim.WmiInstance + err := QueryFromWMI(namespace, query, func(instance *cim.WmiInstance) (bool, error) { + instances = append(instances, instance) + return true, nil + }) + return instances, err +} + +// TODO: fix the panic in microsoft/wmi library and remove this workaround +// Refer to https://github.com/microsoft/wmi/issues/167 +func executeClassMethodParam(classInst *cim.WmiInstance, method *cim.WmiMethod, inParam, outParam cim.WmiMethodParamCollection) (result *cim.WmiMethodResult, err error) { + klog.V(6).Infof("[WMI] - Executing Method [%s]\n", method.Name) + + iDispatchInstance := classInst.GetIDispatch() + if iDispatchInstance == nil { + return nil, errors.Wrapf(errors.InvalidInput, "InvalidInstance") + } + rawResult, err := iDispatchInstance.GetProperty("Methods_") + if err != nil { + return nil, err + } + defer rawResult.Clear() + // Retrieve the method + rawMethod, err := rawResult.ToIDispatch().CallMethod("Item", method.Name) + if err != nil { + return nil, err + } + defer rawMethod.Clear() + + addInParam := func(inparamVariant *ole.VARIANT, paramName string, paramValue interface{}) error { + rawProperties, err := inparamVariant.ToIDispatch().GetProperty("Properties_") + if err != nil { + return err + } + defer rawProperties.Clear() + rawProperty, err := rawProperties.ToIDispatch().CallMethod("Item", paramName) + if err != nil { + return err + } + defer rawProperty.Clear() + + p, err := rawProperty.ToIDispatch().PutProperty("Value", paramValue) + if err != nil { + return err + } + defer p.Clear() + return nil + } + + params := []interface{}{method.Name} + if len(inParam) > 0 { + inparamsRaw, err := rawMethod.ToIDispatch().GetProperty("InParameters") + if err != nil { + return nil, err + } + defer inparamsRaw.Clear() + + inparams, err := oleutil.CallMethod(inparamsRaw.ToIDispatch(), "SpawnInstance_") + if err != nil { + return nil, err + } + defer inparams.Clear() + + for _, inp := range inParam { + addInParam(inparams, inp.Name, inp.Value) + } + + params = append(params, inparams) + } + + result = &cim.WmiMethodResult{ + OutMethodParams: map[string]*cim.WmiMethodParam{}, + } + outparams, err := classInst.GetIDispatch().CallMethod("ExecMethod_", params...) + if err != nil { + return + } + defer outparams.Clear() + returnRaw, err := outparams.ToIDispatch().GetProperty("ReturnValue") + if err != nil { + return + } + defer returnRaw.Clear() + if returnRaw.Value() != nil { + result.ReturnValue = returnRaw.Value().(int32) + klog.V(6).Infof("[WMI] - Return [%d] ", result.ReturnValue) + } + + for _, outp := range outParam { + returnRawIn, err1 := outparams.ToIDispatch().GetProperty(outp.Name) + if err1 != nil { + err = err1 + return + } + defer returnRawIn.Clear() + + value, err1 := cim.GetVariantValue(returnRawIn) + if err1 != nil { + err = err1 + return + } + + result.OutMethodParams[outp.Name] = cim.NewWmiMethodParam(outp.Name, value) + } + return +} + +// InvokeCimMethod calls a static method on a specific WMI class with given input parameters, +// returning the method's return value, output parameters, and any error encountered. +func InvokeCimMethod(namespace, class, methodName string, inputParameters map[string]interface{}) (int, map[string]interface{}, error) { + session, err := NewWMISession(namespace) + if err != nil { + return -1, nil, err + } + + defer session.Close() + + rawResult, err := session.Session.CallMethod("Get", class) + if err != nil { + return -1, nil, err + } + + classInst, err := cim.CreateWmiInstance(rawResult, session) + if err != nil { + return -1, nil, err + } + + method, err := cim.NewWmiMethod(methodName, classInst) + if err != nil { + return -1, nil, err + } + + var inParam cim.WmiMethodParamCollection + for k, v := range inputParameters { + inParam = append(inParam, &cim.WmiMethodParam{ + Name: k, + Value: v, + }) + } + + var outParam cim.WmiMethodParamCollection + var result *cim.WmiMethodResult + result, err = executeClassMethodParam(classInst, method, inParam, outParam) + if err != nil { + return -1, nil, err + } + + outputParameters := make(map[string]interface{}) + for _, v := range result.OutMethodParams { + outputParameters[v.Name] = v.Value + } + + return int(result.ReturnValue), outputParameters, nil +} + +// IgnoreNotFound returns nil if the error is nil or a "not found" error, +// otherwise returns the original error. +func IgnoreNotFound(err error) error { + if err == nil || errors.IsNotFound(err) { + return nil + } + return err +} + +// parseObjectRef extracts the object ID from a WMI object reference string. +// The result string is in this format +// {1}\\WIN-8E2EVAQ9QSB\ROOT/Microsoft/Windows/Storage/Providers_v2\WSP_Partition.ObjectId="{b65bb3cd-da86-11ee-854b-806e6f6e6963}:PR:{00000000-0000-0000-0000-100000000000}\\?\scsi#disk&ven_vmware&prod_virtual_disk#4&2c28f6c4&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}" +// from an escape string +func parseObjectRef(input, objectClass, refName string) (string, error) { + tokens := strings.Split(input, fmt.Sprintf("%s.%s=", objectClass, refName)) + if len(tokens) < 2 { + return "", fmt.Errorf("invalid object ID value: %s", input) + } + + objectID := tokens[1] + objectID = strings.ReplaceAll(objectID, "\\\"", "\"") + objectID = strings.ReplaceAll(objectID, "\\\\", "\\") + objectID = objectID[1 : len(objectID)-1] + return objectID, nil +} + +// ListWMIInstanceMappings queries WMI instances and creates a map using custom indexing functions +// to extract keys and values from each instance. +func ListWMIInstanceMappings(namespace, mappingClassName string, selectorList []string, keyIndexer InstanceIndexer, valueIndexer InstanceIndexer) (map[string]string, error) { + q := query.NewWmiQueryWithSelectList(mappingClassName, selectorList) + mappingInstances, err := QueryInstances(namespace, q) + if err != nil { + return nil, err + } + + result := make(map[string]string) + for _, mapping := range mappingInstances { + key, err := keyIndexer(mapping) + if err != nil { + return nil, err + } + + value, err := valueIndexer(mapping) + if err != nil { + return nil, err + } + + result[key] = value + } + + return result, nil +} + +// FindInstancesByMapping filters instances based on a mapping relationship, +// matching instances through custom indexing and mapping functions. +func FindInstancesByMapping(instanceToFind []*cim.WmiInstance, instanceToFindIndex InstanceIndexer, associatedInstances []*cim.WmiInstance, associatedInstanceIndexer InstanceIndexer, instanceMappings map[string]string) ([]*cim.WmiInstance, error) { + associatedInstanceObjectIDMapping := map[string]*cim.WmiInstance{} + for _, inst := range associatedInstances { + key, err := associatedInstanceIndexer(inst) + if err != nil { + return nil, err + } + + associatedInstanceObjectIDMapping[key] = inst + } + + var filtered []*cim.WmiInstance + for _, inst := range instanceToFind { + key, err := instanceToFindIndex(inst) + if err != nil { + return nil, err + } + + valueObjectID, ok := instanceMappings[key] + if !ok { + continue + } + + _, ok = associatedInstanceObjectIDMapping[strings.ToUpper(valueObjectID)] + if !ok { + continue + } + filtered = append(filtered, inst) + } + + if len(filtered) == 0 { + return nil, errors.NotFound + } + + return filtered, nil +} + +// mappingObjectRefIndexer indexes an WMI object by the Object ID reference from a specified property. +func mappingObjectRefIndexer(propertyName, className, refName string) InstanceIndexer { + return func(instance *cim.WmiInstance) (string, error) { + valueVal, err := instance.GetProperty(propertyName) + if err != nil { + return "", err + } + + refValue, err := parseObjectRef(valueVal.(string), className, refName) + return strings.ToUpper(refValue), err + } +} + +// stringPropertyIndexer indexes a WMI object from a string property. +func stringPropertyIndexer(propertyName string) InstanceIndexer { + return func(instance *cim.WmiInstance) (string, error) { + valueVal, err := instance.GetProperty(propertyName) + if err != nil { + return "", err + } + + return strings.ToUpper(valueVal.(string)), err + } +} + +var ( + // objectIDPropertyIndexer indexes a WMI object from its ObjectId property. + objectIDPropertyIndexer = stringPropertyIndexer("ObjectId") +) + +// FindInstancesByObjectIDMapping filters instances based on ObjectId mapping +// between two sets of WMI instances. +func FindInstancesByObjectIDMapping(instanceToFind []*cim.WmiInstance, associatedInstances []*cim.WmiInstance, instanceMappings map[string]string) ([]*cim.WmiInstance, error) { + return FindInstancesByMapping(instanceToFind, objectIDPropertyIndexer, associatedInstances, objectIDPropertyIndexer, instanceMappings) +} diff --git a/pkg/volume/hostapi/hostapi.go b/pkg/volume/hostapi/hostapi.go index 50de1a531..a00464f49 100644 --- a/pkg/volume/hostapi/hostapi.go +++ b/pkg/volume/hostapi/hostapi.go @@ -1,7 +1,6 @@ package api import ( - "encoding/json" "fmt" "os" "path/filepath" @@ -9,7 +8,11 @@ import ( "strconv" "strings" - "github.com/kubernetes-csi/csi-proxy/v2/pkg/utils" + "github.com/go-ole/go-ole" + "github.com/kubernetes-csi/csi-proxy/v2/pkg/cim" + wmierrors "github.com/microsoft/wmi/pkg/errors" + "github.com/pkg/errors" + "golang.org/x/sys/windows" "k8s.io/klog/v2" ) @@ -35,7 +38,7 @@ type HostAPI interface { GetVolumeIDFromTargetPath(targetPath string) (string, error) // WriteVolumeCache writes the volume `volumeID`'s cache to disk. WriteVolumeCache(volumeID string) error - // GetVolumeIDFromTargetPath returns the volume id of a given target path. + // GetClosestVolumeIDFromTargetPath returns the volume id of a given target path. GetClosestVolumeIDFromTargetPath(targetPath string) (string, error) } @@ -54,6 +57,10 @@ var ( // PS C:\disks> (Get-Disk -Number 1 | Get-Partition | Get-Volume).UniqueId // \\?\Volume{452e318a-5cde-421e-9831-b9853c521012}\ VolumeRegexp = regexp.MustCompile(`Volume\{[\w-]*\}`) + // longPathPrefix is the prefix of Windows long path + longPathPrefix = "\\\\?\\" + + notMountedFolder = errors.New("not a mounted folder") ) // New - Construct a new Volume API Implementation. @@ -61,50 +68,56 @@ func New() HostAPI { return &volumeAPI{} } -func getVolumeSize(volumeID string) (int64, error) { - cmd := `(Get-Volume -UniqueId "$Env:volumeID" | Get-partition).Size` - cmdEnv := fmt.Sprintf("volumeID=%s", volumeID) - out, err := utils.RunPowershellCmd(cmd, cmdEnv) - - if err != nil || len(out) == 0 { - return -1, fmt.Errorf("error getting size of the partition from mount. cmd %s, output: %s, error: %v", cmd, string(out), err) +// ListVolumesOnDisk - returns back list of volumes(volumeIDs) in a disk and a partition. +func (volumeAPI) ListVolumesOnDisk(diskNumber uint32, partitionNumber uint32) (volumeIDs []string, err error) { + partitions, err := cim.ListPartitionsOnDisk(diskNumber, partitionNumber, []string{"ObjectId"}) + if err != nil { + return nil, errors.Wrapf(err, "failed to list partition on disk %d", diskNumber) } - outString := strings.TrimSpace(string(out)) - volumeSize, err := strconv.ParseInt(outString, 10, 64) + volumes, err := cim.ListVolumes([]string{"ObjectId", "UniqueId"}) if err != nil { - return -1, fmt.Errorf("error parsing size of volume %s received %v trimmed to %v err %v", volumeID, out, outString, err) + return nil, errors.Wrapf(err, "failed to list volumes") } - return volumeSize, nil -} - -// ListVolumesOnDisk - returns back list of volumes(volumeIDs) in a disk and a partition. -func (volumeAPI) ListVolumesOnDisk(diskNumber uint32, partitionNumber uint32) (volumeIDs []string, err error) { - var cmd string - if partitionNumber == 0 { - // 0 means that the partitionNumber wasn't set so we list all the partitions - cmd = fmt.Sprintf("(Get-Disk -Number %d | Get-Partition | Get-Volume).UniqueId", diskNumber) - } else { - cmd = fmt.Sprintf("(Get-Disk -Number %d | Get-Partition -PartitionNumber %d | Get-Volume).UniqueId", diskNumber, partitionNumber) + filtered, err := cim.FindVolumesByPartition(volumes, partitions) + if cim.IgnoreNotFound(err) != nil { + return nil, errors.Wrapf(err, "failed to list volumes on disk %d", diskNumber) } - out, err := utils.RunPowershellCmd(cmd) - if err != nil { - return []string{}, fmt.Errorf("error list volumes on disk. cmd: %s, output: %s, error: %v", cmd, string(out), err) + + for _, volume := range filtered { + uniqueID, err := volume.GetPropertyUniqueId() + if err != nil { + return nil, errors.Wrapf(err, "failed to list volumes") + } + volumeIDs = append(volumeIDs, uniqueID) } - volumeIds := strings.Split(strings.TrimSpace(string(out)), "\r\n") - return volumeIds, nil + return volumeIDs, nil } // FormatVolume - Formats a volume with the NTFS format. func (volumeAPI) FormatVolume(volumeID string) (err error) { - cmd := `Get-Volume -UniqueId "$Env:volumeID" | Format-Volume -FileSystem ntfs -Confirm:$false` - cmdEnv := fmt.Sprintf("volumeID=%s", volumeID) - out, err := utils.RunPowershellCmd(cmd, cmdEnv) - + volume, err := cim.QueryVolumeByUniqueID(volumeID, nil) if err != nil { - return fmt.Errorf("error formatting volume. cmd: %s, output: %s, error: %v", cmd, string(out), err) + return fmt.Errorf("error formatting volume (%s). error: %v", volumeID, err) + } + + result, err := volume.InvokeMethodWithReturn( + "Format", + "NTFS", // Format, + "", // FileSystemLabel, + nil, // AllocationUnitSize, + false, // Full, + true, // Force + nil, // Compress, + nil, // ShortFileNameSupport, + nil, // SetIntegrityStreams, + nil, // UseLargeFRS, + nil, // DisableHeatGathering, + ) + if result != 0 || err != nil { + return fmt.Errorf("error formatting volume (%s). result: %d, error: %v", volumeID, result, err) } // TODO: Do we need to handle anything for len(out) == 0 return nil @@ -117,30 +130,42 @@ func (volumeAPI) WriteVolumeCache(volumeID string) (err error) { // IsVolumeFormatted - Check if the volume is formatted with the pre specified filesystem(typically ntfs). func (volumeAPI) IsVolumeFormatted(volumeID string) (bool, error) { - cmd := `(Get-Volume -UniqueId "$Env:volumeID" -ErrorAction Stop).FileSystemType` - cmdEnv := fmt.Sprintf("volumeID=%s", volumeID) - out, err := utils.RunPowershellCmd(cmd, cmdEnv) - + volume, err := cim.QueryVolumeByUniqueID(volumeID, []string{"FileSystemType"}) if err != nil { - return false, fmt.Errorf("error checking if volume is formatted. cmd: %s, output: %s, error: %v", cmd, string(out), err) + return false, fmt.Errorf("error checking if volume (%s) is formatted. error: %v", volumeID, err) } - stringOut := strings.TrimSpace(string(out)) - if len(stringOut) == 0 || strings.EqualFold(stringOut, "Unknown") { - return false, nil + + fsType, err := volume.GetProperty("FileSystemType") + if err != nil { + return false, fmt.Errorf("failed to query volume file system type (%s): %w", volumeID, err) } - return true, nil + + const FileSystemUnknown = 0 + return fsType.(int32) != FileSystemUnknown, nil } -// MountVolume - mounts a volume to a path. This is done using the Add-PartitionAccessPath for presenting the volume via a path. +// MountVolume - mounts a volume to a path. This is done using Win32 API SetVolumeMountPoint for presenting the volume via a path. func (volumeAPI) MountVolume(volumeID, path string) error { - cmd := `Get-Volume -UniqueId "$Env:volumeID" | Get-Partition | Add-PartitionAccessPath -AccessPath $Env:mountpath` - cmdEnv := []string{} - cmdEnv = append(cmdEnv, fmt.Sprintf("volumeID=%s", volumeID)) - cmdEnv = append(cmdEnv, fmt.Sprintf("mountpath=%s", path)) - out, err := utils.RunPowershellCmd(cmd, cmdEnv...) - + mountPoint := path + if !strings.HasSuffix(mountPoint, "\\") { + mountPoint += "\\" + } + utf16MountPath, _ := windows.UTF16PtrFromString(mountPoint) + utf16VolumeID, _ := windows.UTF16PtrFromString(volumeID) + err := windows.SetVolumeMountPoint(utf16MountPath, utf16VolumeID) if err != nil { - return fmt.Errorf("error mount volume to path. cmd: %s, output: %s, error: %v", cmd, string(out), err) + if errors.Is(windows.GetLastError(), windows.ERROR_DIR_NOT_EMPTY) { + targetVolumeID, err := getTarget(path) + if err != nil { + return fmt.Errorf("error get target volume (%s) to path %s. error: %v", volumeID, path, err) + } + + if volumeID == targetVolumeID { + return nil + } + } + + return fmt.Errorf("error mount volume (%s) to path %s. error: %v", volumeID, path, err) } return nil @@ -152,90 +177,118 @@ func (volumeAPI) UnmountVolume(volumeID, path string) error { return err } - cmd := `Get-Volume -UniqueId "$Env:volumeID" | Get-Partition | Remove-PartitionAccessPath -AccessPath $Env:mountpath` - cmdEnv := []string{} - cmdEnv = append(cmdEnv, fmt.Sprintf("volumeID=%s", volumeID)) - cmdEnv = append(cmdEnv, fmt.Sprintf("mountpath=%s", path)) - out, err := utils.RunPowershellCmd(cmd, cmdEnv...) - + mountPoint := path + if !strings.HasSuffix(mountPoint, "\\") { + mountPoint += "\\" + } + utf16MountPath, _ := windows.UTF16PtrFromString(mountPoint) + err := windows.DeleteVolumeMountPoint(utf16MountPath) if err != nil { - return fmt.Errorf("error getting driver letter to mount volume. cmd: %s, output: %s,error: %v", cmd, string(out), err) + return fmt.Errorf("error umount volume (%s) from path %s. error: %v", volumeID, path, err) } return nil } // ResizeVolume - resizes a volume with the given size, if size == 0 then max supported size is used func (volumeAPI) ResizeVolume(volumeID string, size int64) error { - // If size is 0 then we will resize to the maximum size possible, otherwise just resize to size - var cmd string - var out []byte var err error var finalSize int64 - var outString string - if size == 0 { - cmd = `Get-Volume -UniqueId "$Env:volumeID" | Get-partition | Get-PartitionSupportedSize | Select SizeMax | ConvertTo-Json` - cmdEnv := fmt.Sprintf("volumeID=%s", volumeID) - out, err := utils.RunPowershellCmd(cmd, cmdEnv) + part, err := cim.GetPartitionByVolumeUniqueID(volumeID, nil) + if err != nil { + return err + } - if err != nil || len(out) == 0 { - return fmt.Errorf("error getting sizemin,sizemax from mount. cmd: %s, output: %s, error: %v", cmd, string(out), err) + // If size is 0 then we will resize to the maximum size possible, otherwise just resize to size + if size == 0 { + var sizeMin, sizeMax ole.VARIANT + var status string + result, err := part.InvokeMethodWithReturn("GetSupportedSize", &sizeMin, &sizeMax, &status) + if result != 0 || err != nil { + return fmt.Errorf("error getting sizemin, sizemax from volume (%s). result: %d, error: %v", volumeID, result, err) } - var getVolumeSizing map[string]int64 - outString = string(out) - err = json.Unmarshal([]byte(outString), &getVolumeSizing) + finalSizeStr := sizeMax.ToString() + finalSize, err = strconv.ParseInt(finalSizeStr, 10, 64) if err != nil { - return fmt.Errorf("out %v outstring %v err %v", out, outString, err) + return fmt.Errorf("error parsing the sizeMax of volume (%s) with error (%v)", volumeID, err) } - - sizeMax := getVolumeSizing["SizeMax"] - - finalSize = sizeMax } else { finalSize = size } - currentSize, err := getVolumeSize(volumeID) + currentSizeVal, err := part.GetProperty("Size") if err != nil { return fmt.Errorf("error getting the current size of volume (%s) with error (%v)", volumeID, err) } + currentSize, err := strconv.ParseInt(currentSizeVal.(string), 10, 64) + if err != nil { + return fmt.Errorf("error parsing the current size of volume (%s) with error (%v)", volumeID, err) + } + + // only resize if finalSize - currentSize is greater than 100MB + if finalSize-currentSize < 100*1024*1024 { + klog.V(2).Infof("minimum resize difference(1GB) not met, skipping resize. volumeID=%s currentSize=%d finalSize=%d", volumeID, currentSize, finalSize) + return nil + } + //if the partition's size is already the size we want this is a noop, just return if currentSize >= finalSize { - klog.V(2).Infof("Attempted to resize volume %s to a lower size, from currentBytes=%d wantedBytes=%d", volumeID, currentSize, finalSize) + klog.V(2).Infof("Attempted to resize volume (%s) to a lower size, from currentBytes=%d wantedBytes=%d", volumeID, currentSize, finalSize) return nil } - cmd = fmt.Sprintf(`Get-Volume -UniqueId "$Env:volumeID" | Get-Partition | Resize-Partition -Size %d`, finalSize) - cmdEnv := []string{} - cmdEnv = append(cmdEnv, fmt.Sprintf("volumeID=%s", volumeID)) - out, err = utils.RunPowershellCmd(cmd, cmdEnv...) + var status string + result, err := part.InvokeMethodWithReturn("Resize", strconv.Itoa(int(finalSize)), &status) + + if result != 0 || err != nil { + return fmt.Errorf("error resizing volume (%s). size:%v, finalSize %v, error: %v", volumeID, size, finalSize, err) + } + + diskNumber, err := cim.GetPartitionDiskNumber(part) + if err != nil { + return fmt.Errorf("error parsing disk number of volume (%s). error: %v", volumeID, err) + } + + disk, err := cim.QueryDiskByNumber(diskNumber, nil) if err != nil { - return fmt.Errorf("error resizing volume. cmd: %s, output: %s size:%v, finalSize %v, error: %v", cmd, string(out), size, finalSize, err) + return fmt.Errorf("error parsing disk number of volume (%s). error: %v", volumeID, err) } + + result, err = disk.InvokeMethodWithReturn("Refresh", &status) + if result != 0 || err != nil { + return fmt.Errorf("error rescan disk (%d). result %d, error: %v", diskNumber, result, err) + } + return nil } // GetVolumeStats - retrieves the volume stats for a given volume func (volumeAPI) GetVolumeStats(volumeID string) (int64, int64, error) { - // get the size and sizeRemaining for the volume - cmd := `(Get-Volume -UniqueId "$Env:volumeID" | Select SizeRemaining,Size) | ConvertTo-Json` - cmdEnv := fmt.Sprintf("volumeID=%s", volumeID) - out, err := utils.RunPowershellCmd(cmd, cmdEnv) + volume, err := cim.QueryVolumeByUniqueID(volumeID, []string{"UniqueId", "SizeRemaining", "Size"}) + if err != nil { + return -1, -1, fmt.Errorf("error getting capacity and used size of volume (%s). error: %v", volumeID, err) + } + + volumeSizeVal, err := volume.GetProperty("Size") + if err != nil { + return -1, -1, fmt.Errorf("failed to query volume size (%s): %w", volumeID, err) + } + volumeSize, err := strconv.ParseInt(volumeSizeVal.(string), 10, 64) if err != nil { - return -1, -1, fmt.Errorf("error getting capacity and used size of volume. cmd: %s, output: %s, error: %v", cmd, string(out), err) + return -1, -1, fmt.Errorf("failed to parse volume size (%s): %w", volumeID, err) } - var getVolume map[string]int64 - outString := string(out) - err = json.Unmarshal([]byte(outString), &getVolume) + volumeSizeRemainingVal, err := volume.GetProperty("SizeRemaining") if err != nil { - return -1, -1, fmt.Errorf("out %v outstring %v err %v", out, outString, err) + return -1, -1, fmt.Errorf("failed to query volume remaining size (%s): %w", volumeID, err) } - volumeSize := getVolume["Size"] - volumeSizeRemaining := getVolume["SizeRemaining"] + volumeSizeRemaining, err := strconv.ParseInt(volumeSizeRemainingVal.(string), 10, 64) + if err != nil { + return -1, -1, fmt.Errorf("failed to parse volume remaining size (%s): %w", volumeID, err) + } volumeUsedSize := volumeSize - volumeSizeRemaining return volumeSize, volumeUsedSize, nil @@ -244,56 +297,59 @@ func (volumeAPI) GetVolumeStats(volumeID string) (int64, int64, error) { // GetDiskNumberFromVolumeID - gets the disk number where the volume is. func (volumeAPI) GetDiskNumberFromVolumeID(volumeID string) (uint32, error) { // get the size and sizeRemaining for the volume - cmd := `(Get-Volume -UniqueId "$Env:volumeID" | Get-Partition).DiskNumber` - cmdEnv := fmt.Sprintf("volumeID=%s", volumeID) - out, err := utils.RunPowershellCmd(cmd, cmdEnv) - - if err != nil || len(out) == 0 { - return 0, fmt.Errorf("error getting disk number. cmd: %s, output: %s, error: %v", cmd, string(out), err) - } - - reg, err := regexp.Compile("[^0-9]+") + part, err := cim.GetPartitionByVolumeUniqueID(volumeID, []string{"DiskNumber"}) if err != nil { - return 0, fmt.Errorf("error compiling regex. err: %v", err) + return 0, err } - diskNumberOutput := reg.ReplaceAllString(string(out), "") - - diskNumber, err := strconv.ParseUint(diskNumberOutput, 10, 32) + diskNumber, err := part.GetProperty("DiskNumber") if err != nil { - return 0, fmt.Errorf("error parsing disk number. cmd: %s, output: %s, error: %v", cmd, diskNumberOutput, err) + return 0, fmt.Errorf("error query disk number of volume (%s). error: %v", volumeID, err) } - return uint32(diskNumber), nil + return uint32(diskNumber.(int32)), nil } // GetVolumeIDFromTargetPath - gets the volume ID given a mount point, the function is recursive until it find a volume or errors out func (volumeAPI) GetVolumeIDFromTargetPath(mount string) (string, error) { volumeString, err := getTarget(mount) - if err != nil { - return "", fmt.Errorf("error getting the volume for the mount %s, internal error %v", mount, err) + return "", err } return volumeString, nil } func getTarget(mount string) (string, error) { - cmd := `(Get-Item -Path $Env:mountpath).Target` - cmdEnv := fmt.Sprintf("mountpath=%s", mount) - out, err := utils.RunPowershellCmd(cmd, cmdEnv) - if err != nil || len(out) == 0 { - return "", fmt.Errorf("error getting volume from mount. cmd: %s, output: %s, error: %v", cmd, string(out), err) + mountedFolder, err := isMountedFolder(mount) + if err != nil { + return "", err } - volumeString := strings.TrimSpace(string(out)) - if !strings.HasPrefix(volumeString, "Volume") { - return getTarget(volumeString) + + if !mountedFolder { + return "", notMountedFolder } - return ensureVolumePrefix(volumeString), nil + utf16FullMountPath, _ := windows.UTF16PtrFromString(mount) + outPathBuffer := make([]uint16, windows.MAX_LONG_PATH) + err = windows.GetVolumePathName(utf16FullMountPath, &outPathBuffer[0], uint32(len(outPathBuffer))) + if err != nil { + return "", err + } + targetPath := longPathPrefix + windows.UTF16PtrToString(&outPathBuffer[0]) + if !strings.HasSuffix(targetPath, "\\") { + targetPath += "\\" + } + utf16TargetPath, _ := windows.UTF16PtrFromString(targetPath) + outPathBuffer = make([]uint16, windows.MAX_LONG_PATH) + err = windows.GetVolumeNameForVolumeMountPoint(utf16TargetPath, &outPathBuffer[0], uint32(len(outPathBuffer))) + if err != nil { + return "", err + } + return windows.UTF16PtrToString(&outPathBuffer[0]), nil } -// GetVolumeIDFromTargetPath returns the volume id of a given target path. +// GetClosestVolumeIDFromTargetPath returns the volume id of a given target path. func (volumeAPI) GetClosestVolumeIDFromTargetPath(targetPath string) (string, error) { volumeString, err := findClosestVolume(targetPath) @@ -325,17 +381,24 @@ func findClosestVolume(path string) (string, error) { if err != nil { return "", err } - isSymlink := fi.Mode()&os.ModeSymlink != 0 + // for windows NTFS, check if the path is symlink instead of directory. + isSymlink := fi.Mode()&os.ModeSymlink != 0 || fi.Mode()&os.ModeIrregular != 0 - if isSymlink { - target, err := dereferenceSymlink(candidatePath) - if err != nil { + // mounted folder created by SetVolumeMountPoint may still report ModeSymlink == 0 + mountedFolder, err := isMountedFolder(candidatePath) + if err != nil { + return "", err + } + + if isSymlink && mountedFolder { + target, err := getTarget(candidatePath) + if err != nil && !errors.Is(err, notMountedFolder) { return "", err } // if it has the form Volume{volumeid} then it's a volume - if VolumeRegexp.Match([]byte(target)) { + if target != "" && VolumeRegexp.Match([]byte(target)) { // symlinks that are pointing to Volumes don't have this prefix - return ensureVolumePrefix(target), nil + return target, nil } // otherwise follow the symlink candidatePath = target @@ -354,57 +417,72 @@ func findClosestVolume(path string) (string, error) { return target, nil } } - } - return "", fmt.Errorf("Failed to find the closest volume for path=%s", path) + return "", fmt.Errorf("failed to find the closest volume for path=%s", path) } -// ensureVolumePrefix makes sure that the volume has the Volume prefix -func ensureVolumePrefix(volume string) string { - prefix := "\\\\?\\" - if !strings.HasPrefix(volume, prefix) { - volume = prefix + volume +// isMountedFolder checks whether the `path` is a mounted folder. +func isMountedFolder(path string) (bool, error) { + // https://learn.microsoft.com/en-us/windows/win32/fileio/determining-whether-a-directory-is-a-volume-mount-point + utf16Path, _ := windows.UTF16PtrFromString(path) + attrs, err := windows.GetFileAttributes(utf16Path) + if err != nil { + return false, err + } + + if (attrs & windows.FILE_ATTRIBUTE_REPARSE_POINT) == 0 { + return false, nil } - return volume -} -// dereferenceSymlink dereferences the symlink `path` and returns the stdout. -func dereferenceSymlink(path string) (string, error) { - cmd := `(Get-Item -Path $Env:linkpath).Target` - cmdEnv := fmt.Sprintf("linkpath=%s", path) - out, err := utils.RunPowershellCmd(cmd, cmdEnv) - if err != nil { - return "", err + var findData windows.Win32finddata + findHandle, err := windows.FindFirstFile(utf16Path, &findData) + if err != nil && !errors.Is(err, windows.ERROR_NO_MORE_FILES) { + return false, err } - output := strings.TrimSpace(string(out)) - klog.V(8).Infof("Stdout: %s", output) - return output, nil + + for err == nil { + if findData.Reserved0&windows.IO_REPARSE_TAG_MOUNT_POINT != 0 { + return true, nil + } + + err = windows.FindNextFile(findHandle, &findData) + if err != nil && !errors.Is(err, windows.ERROR_NO_MORE_FILES) { + return false, err + } + } + + return false, nil } // getVolumeForDriveLetter gets a volume from a drive letter (e.g. C:/). func getVolumeForDriveLetter(path string) (string, error) { if len(path) != 1 { - return "", fmt.Errorf("The path=%s is not a valid DriverLetter", path) + return "", fmt.Errorf("the path %s is not a valid drive letter", path) } - cmd := `(Get-Partition -DriveLetter $Env:drivepath | Get-Volume).UniqueId` - cmdEnv := fmt.Sprintf("drivepath=%s", path) - out, err := utils.RunPowershellCmd(cmd, cmdEnv) + volume, err := cim.GetVolumeByDriveLetter(path, []string{"UniqueId"}) if err != nil { - return "", err + return "", nil } - output := strings.TrimSpace(string(out)) - klog.V(8).Infof("Stdout: %s", output) - return output, nil + + uniqueID, err := volume.GetPropertyUniqueId() + if err != nil { + return "", fmt.Errorf("error query unique ID of volume (%v). error: %v", volume, err) + } + + return uniqueID, nil } func writeCache(volumeID string) error { - cmd := `Get-Volume -UniqueId "$Env:volumeID" | Write-Volumecache` - cmdEnv := fmt.Sprintf("volumeID=%s", volumeID) - out, err := utils.RunPowershellCmd(cmd, cmdEnv) - if err != nil { - return fmt.Errorf("error writing volume cache. cmd: %s, output: %s, error: %v", cmd, string(out), err) + volume, err := cim.QueryVolumeByUniqueID(volumeID, []string{}) + if err != nil && !wmierrors.IsNotFound(err) { + return fmt.Errorf("error writing volume (%s) cache. error: %v", volumeID, err) + } + + result, err := volume.Flush() + if result != 0 || err != nil { + return fmt.Errorf("error writing volume (%s) cache. result: %d, error: %v", volumeID, result, err) } return nil } diff --git a/vendor/github.com/go-logr/logr/go.mod b/vendor/github.com/go-logr/logr/go.mod deleted file mode 100644 index 591884e91..000000000 --- a/vendor/github.com/go-logr/logr/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/go-logr/logr - -go 1.14 diff --git a/vendor/github.com/go-ole/go-ole/.travis.yml b/vendor/github.com/go-ole/go-ole/.travis.yml new file mode 100644 index 000000000..28f740cd5 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/.travis.yml @@ -0,0 +1,8 @@ +language: go +sudo: false + +go: + - 1.9.x + - 1.10.x + - 1.11.x + - tip diff --git a/vendor/github.com/go-ole/go-ole/ChangeLog.md b/vendor/github.com/go-ole/go-ole/ChangeLog.md new file mode 100644 index 000000000..4ba6a8c64 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/ChangeLog.md @@ -0,0 +1,49 @@ +# Version 1.x.x + +* **Add more test cases and reference new test COM server project.** (Placeholder for future additions) + +# Version 1.2.0-alphaX + +**Minimum supported version is now Go 1.4. Go 1.1 support is deprecated, but should still build.** + + * Added CI configuration for Travis-CI and AppVeyor. + * Added test InterfaceID and ClassID for the COM Test Server project. + * Added more inline documentation (#83). + * Added IEnumVARIANT implementation (#88). + * Added IEnumVARIANT test cases (#99, #100, #101). + * Added support for retrieving `time.Time` from VARIANT (#92). + * Added test case for IUnknown (#64). + * Added test case for IDispatch (#64). + * Added test cases for scalar variants (#64, #76). + +# Version 1.1.1 + + * Fixes for Linux build. + * Fixes for Windows build. + +# Version 1.1.0 + +The change to provide building on all platforms is a new feature. The increase in minor version reflects that and allows those who wish to stay on 1.0.x to continue to do so. Support for 1.0.x will be limited to bug fixes. + + * Move GUID out of variables.go into its own file to make new documentation available. + * Move OleError out of ole.go into its own file to make new documentation available. + * Add documentation to utility functions. + * Add documentation to variant receiver functions. + * Add documentation to ole structures. + * Make variant available to other systems outside of Windows. + * Make OLE structures available to other systems outside of Windows. + +## New Features + + * Library should now be built on all platforms supported by Go. Library will NOOP on any platform that is not Windows. + * More functions are now documented and available on godoc.org. + +# Version 1.0.1 + + 1. Fix package references from repository location change. + +# Version 1.0.0 + +This version is stable enough for use. The COM API is still incomplete, but provides enough functionality for accessing COM servers using IDispatch interface. + +There is no changelog for this version. Check commits for history. diff --git a/vendor/gopkg.in/yaml.v2/LICENSE.libyaml b/vendor/github.com/go-ole/go-ole/LICENSE similarity index 66% rename from vendor/gopkg.in/yaml.v2/LICENSE.libyaml rename to vendor/github.com/go-ole/go-ole/LICENSE index 8da58fbf6..623ec06f9 100644 --- a/vendor/gopkg.in/yaml.v2/LICENSE.libyaml +++ b/vendor/github.com/go-ole/go-ole/LICENSE @@ -1,19 +1,9 @@ -The following files were ported to Go from C files of libyaml, and thus -are still covered by their original copyright and license: +The MIT License (MIT) - apic.go - emitterc.go - parserc.go - readerc.go - scannerc.go - writerc.go - yamlh.go - yamlprivateh.go - -Copyright (c) 2006 Kirill Simonov +Copyright © 2013-2017 Yasuhiro Matsumoto, Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in +this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do @@ -22,7 +12,7 @@ so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER diff --git a/vendor/github.com/go-ole/go-ole/README.md b/vendor/github.com/go-ole/go-ole/README.md new file mode 100644 index 000000000..7b577558d --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/README.md @@ -0,0 +1,46 @@ +# Go OLE + +[![Build status](https://ci.appveyor.com/api/projects/status/qr0u2sf7q43us9fj?svg=true)](https://ci.appveyor.com/project/jacobsantos/go-ole-jgs28) +[![Build Status](https://travis-ci.org/go-ole/go-ole.svg?branch=master)](https://travis-ci.org/go-ole/go-ole) +[![GoDoc](https://godoc.org/github.com/go-ole/go-ole?status.svg)](https://godoc.org/github.com/go-ole/go-ole) + +Go bindings for Windows COM using shared libraries instead of cgo. + +By Yasuhiro Matsumoto. + +## Install + +To experiment with go-ole, you can just compile and run the example program: + +``` +go get github.com/go-ole/go-ole +cd /path/to/go-ole/ +go test + +cd /path/to/go-ole/example/excel +go run excel.go +``` + +## Continuous Integration + +Continuous integration configuration has been added for both Travis-CI and AppVeyor. You will have to add these to your own account for your fork in order for it to run. + +**Travis-CI** + +Travis-CI was added to check builds on Linux to ensure that `go get` works when cross building. Currently, Travis-CI is not used to test cross-building, but this may be changed in the future. It is also not currently possible to test the library on Linux, since COM API is specific to Windows and it is not currently possible to run a COM server on Linux or even connect to a remote COM server. + +**AppVeyor** + +AppVeyor is used to build on Windows using the (in-development) test COM server. It is currently only used to test the build and ensure that the code works on Windows. It will be used to register a COM server and then run the test cases based on the test COM server. + +The tests currently do run and do pass and this should be maintained with commits. + +## Versioning + +Go OLE uses [semantic versioning](http://semver.org) for version numbers, which is similar to the version contract of the Go language. Which means that the major version will always maintain backwards compatibility with minor versions. Minor versions will only add new additions and changes. Fixes will always be in patch. + +This contract should allow you to upgrade to new minor and patch versions without breakage or modifications to your existing code. Leave a ticket, if there is breakage, so that it could be fixed. + +## LICENSE + +Under the MIT License: http://mattn.mit-license.org/2013 diff --git a/vendor/github.com/go-ole/go-ole/SECURITY.md b/vendor/github.com/go-ole/go-ole/SECURITY.md new file mode 100644 index 000000000..dac281523 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/SECURITY.md @@ -0,0 +1,13 @@ +# Security Policy + +## Supported Versions + +Security updates are applied only to the latest release. + +## Reporting a Vulnerability + +If you have discovered a security vulnerability in this project, please report it privately. **Do not disclose it as a public issue.** This gives us time to work with you to fix the issue before public exposure, reducing the chance that the exploit will be used before a patch is released. + +Please disclose it at [security advisory](https://github.com/go-ole/go-ole/security/advisories/new). + +This project is maintained by a team of volunteers on a reasonable-effort basis. As such, please give us at least 90 days to work on a fix before public exposure. diff --git a/vendor/github.com/go-ole/go-ole/appveyor.yml b/vendor/github.com/go-ole/go-ole/appveyor.yml new file mode 100644 index 000000000..8df7fa26e --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/appveyor.yml @@ -0,0 +1,68 @@ +# Notes: +# - Minimal appveyor.yml file is an empty file. All sections are optional. +# - Indent each level of configuration with 2 spaces. Do not use tabs! +# - All section names are case-sensitive. +# - Section names should be unique on each level. + +version: "1.3.0.{build}-alpha-{branch}" + +os: Visual Studio 2019 + +build: off + +skip_tags: true + +clone_folder: c:\gopath\src\github.com\go-ole\go-ole + +environment: + GOPATH: c:\gopath + GOROOT: c:\go + DOWNLOADPLATFORM: "x64" + +before_test: + # - Download COM Server + - ps: Start-FileDownload "https://github.com/go-ole/test-com-server/releases/download/v1.0.2/test-com-server-${env:DOWNLOADPLATFORM}.zip" + - 7z e test-com-server-%DOWNLOADPLATFORM%.zip -oc:\gopath\src\github.com\go-ole\go-ole > NUL + - c:\gopath\src\github.com\go-ole\go-ole\build\register-assembly.bat + +test_script: + - go test -v -cover ./... + # go vet has false positives on unsafe.Pointer with windows/sys. Disabling since it is recommended to use go test instead. + # - go vet ./... + +branches: + only: + - master + - v1.2 + - v1.1 + - v1.0 + +matrix: + allow_failures: + - environment: + GOROOT: C:\go-x86 + DOWNLOADPLATFORM: "x86" + - environment: + GOROOT: C:\go118 + DOWNLOADPLATFORM: "x64" + - environment: + GOROOT: C:\go118-x86 + DOWNLOADPLATFORM: "x86" + +install: + - go version + - go env + - go get -u golang.org/x/tools/cmd/cover + - go get -u golang.org/x/tools/cmd/godoc + - go get -u golang.org/x/tools/cmd/stringer + +build_script: + - cd c:\gopath\src\github.com\go-ole\go-ole + - go get -v -t ./... + - go build + +# disable automatic tests +test: on + +# disable deployment +deploy: off diff --git a/vendor/github.com/go-ole/go-ole/com.go b/vendor/github.com/go-ole/go-ole/com.go new file mode 100644 index 000000000..cabbac012 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/com.go @@ -0,0 +1,386 @@ +// +build windows + +package ole + +import ( + "syscall" + "unicode/utf16" + "unsafe" +) + +var ( + procCoInitialize = modole32.NewProc("CoInitialize") + procCoInitializeEx = modole32.NewProc("CoInitializeEx") + procCoInitializeSecurity = modole32.NewProc("CoInitializeSecurity") + procCoUninitialize = modole32.NewProc("CoUninitialize") + procCoCreateInstance = modole32.NewProc("CoCreateInstance") + procCoTaskMemFree = modole32.NewProc("CoTaskMemFree") + procCLSIDFromProgID = modole32.NewProc("CLSIDFromProgID") + procCLSIDFromString = modole32.NewProc("CLSIDFromString") + procStringFromCLSID = modole32.NewProc("StringFromCLSID") + procStringFromIID = modole32.NewProc("StringFromIID") + procIIDFromString = modole32.NewProc("IIDFromString") + procCoGetObject = modole32.NewProc("CoGetObject") + procGetUserDefaultLCID = modkernel32.NewProc("GetUserDefaultLCID") + procCopyMemory = modkernel32.NewProc("RtlMoveMemory") + procVariantInit = modoleaut32.NewProc("VariantInit") + procVariantClear = modoleaut32.NewProc("VariantClear") + procVariantTimeToSystemTime = modoleaut32.NewProc("VariantTimeToSystemTime") + procSysAllocString = modoleaut32.NewProc("SysAllocString") + procSysAllocStringLen = modoleaut32.NewProc("SysAllocStringLen") + procSysFreeString = modoleaut32.NewProc("SysFreeString") + procSysStringLen = modoleaut32.NewProc("SysStringLen") + procCreateDispTypeInfo = modoleaut32.NewProc("CreateDispTypeInfo") + procCreateStdDispatch = modoleaut32.NewProc("CreateStdDispatch") + procGetActiveObject = modoleaut32.NewProc("GetActiveObject") + + procGetMessageW = moduser32.NewProc("GetMessageW") + procDispatchMessageW = moduser32.NewProc("DispatchMessageW") +) + +// This is to enable calling COM Security initialization multiple times +var bSecurityInit bool = false + +// coInitialize initializes COM library on current thread. +// +// MSDN documentation suggests that this function should not be called. Call +// CoInitializeEx() instead. The reason has to do with threading and this +// function is only for single-threaded apartments. +// +// That said, most users of the library have gotten away with just this +// function. If you are experiencing threading issues, then use +// CoInitializeEx(). +func coInitialize() (err error) { + // http://msdn.microsoft.com/en-us/library/windows/desktop/ms678543(v=vs.85).aspx + // Suggests that no value should be passed to CoInitialized. + // Could just be Call() since the parameter is optional. <-- Needs testing to be sure. + hr, _, _ := procCoInitialize.Call(uintptr(0)) + if hr != 0 { + err = NewError(hr) + } + return +} + +// coInitializeEx initializes COM library with concurrency model. +func coInitializeEx(coinit uint32) (err error) { + // http://msdn.microsoft.com/en-us/library/windows/desktop/ms695279(v=vs.85).aspx + // Suggests that the first parameter is not only optional but should always be NULL. + hr, _, _ := procCoInitializeEx.Call(uintptr(0), uintptr(coinit)) + if hr != 0 { + err = NewError(hr) + } + return +} + +// coInitializeSecurity: Registers security and sets the default security values +// for the process. +func coInitializeSecurity(cAuthSvc int32, + dwAuthnLevel uint32, + dwImpLevel uint32, + dwCapabilities uint32) (err error) { + // Check COM Security initialization has done previously + if !bSecurityInit { + // https://learn.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-coinitializesecurity + hr, _, _ := procCoInitializeSecurity.Call( + uintptr(0), // Allow *all* VSS writers to communicate back! + uintptr(cAuthSvc), // Default COM authentication service + uintptr(0), // Default COM authorization service + uintptr(0), // Reserved parameter + uintptr(dwAuthnLevel), // Strongest COM authentication level + uintptr(dwImpLevel), // Minimal impersonation abilities + uintptr(0), // Default COM authentication settings + uintptr(dwCapabilities), // Cloaking + uintptr(0)) // eserved parameter + if hr != 0 { + err = NewError(hr) + } else { + // COM Security initialization done make global flag true. + bSecurityInit = true + } + } + return +} + +// CoInitialize initializes COM library on current thread. +// +// MSDN documentation suggests that this function should not be called. Call +// CoInitializeEx() instead. The reason has to do with threading and this +// function is only for single-threaded apartments. +// +// That said, most users of the library have gotten away with just this +// function. If you are experiencing threading issues, then use +// CoInitializeEx(). +func CoInitialize(p uintptr) (err error) { + // p is ignored and won't be used. + // Avoid any variable not used errors. + p = uintptr(0) + return coInitialize() +} + +// CoInitializeEx initializes COM library with concurrency model. +func CoInitializeEx(p uintptr, coinit uint32) (err error) { + // Avoid any variable not used errors. + p = uintptr(0) + return coInitializeEx(coinit) +} + +// CoUninitialize uninitializes COM Library. +func CoUninitialize() { + procCoUninitialize.Call() +} + +// CoInitializeSecurity: Registers security and sets the default security values +// for the process. +func CoInitializeSecurity(cAuthSvc int32, + dwAuthnLevel uint32, + dwImpLevel uint32, + dwCapabilities uint32) (err error) { + return coInitializeSecurity(cAuthSvc, dwAuthnLevel, dwImpLevel, dwCapabilities) +} + +// CoTaskMemFree frees memory pointer. +func CoTaskMemFree(memptr uintptr) { + procCoTaskMemFree.Call(memptr) +} + +// CLSIDFromProgID retrieves Class Identifier with the given Program Identifier. +// +// The Programmatic Identifier must be registered, because it will be looked up +// in the Windows Registry. The registry entry has the following keys: CLSID, +// Insertable, Protocol and Shell +// (https://msdn.microsoft.com/en-us/library/dd542719(v=vs.85).aspx). +// +// programID identifies the class id with less precision and is not guaranteed +// to be unique. These are usually found in the registry under +// HKEY_LOCAL_MACHINE\SOFTWARE\Classes, usually with the format of +// "Program.Component.Version" with version being optional. +// +// CLSIDFromProgID in Windows API. +func CLSIDFromProgID(progId string) (clsid *GUID, err error) { + var guid GUID + lpszProgID := uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(progId))) + hr, _, _ := procCLSIDFromProgID.Call(lpszProgID, uintptr(unsafe.Pointer(&guid))) + if hr != 0 { + err = NewError(hr) + } + clsid = &guid + return +} + +// CLSIDFromString retrieves Class ID from string representation. +// +// This is technically the string version of the GUID and will convert the +// string to object. +// +// CLSIDFromString in Windows API. +func CLSIDFromString(str string) (clsid *GUID, err error) { + var guid GUID + lpsz := uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(str))) + hr, _, _ := procCLSIDFromString.Call(lpsz, uintptr(unsafe.Pointer(&guid))) + if hr != 0 { + err = NewError(hr) + } + clsid = &guid + return +} + +// StringFromCLSID returns GUID formated string from GUID object. +func StringFromCLSID(clsid *GUID) (str string, err error) { + var p *uint16 + hr, _, _ := procStringFromCLSID.Call(uintptr(unsafe.Pointer(clsid)), uintptr(unsafe.Pointer(&p))) + if hr != 0 { + err = NewError(hr) + } + str = LpOleStrToString(p) + return +} + +// IIDFromString returns GUID from program ID. +func IIDFromString(progId string) (clsid *GUID, err error) { + var guid GUID + lpsz := uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(progId))) + hr, _, _ := procIIDFromString.Call(lpsz, uintptr(unsafe.Pointer(&guid))) + if hr != 0 { + err = NewError(hr) + } + clsid = &guid + return +} + +// StringFromIID returns GUID formatted string from GUID object. +func StringFromIID(iid *GUID) (str string, err error) { + var p *uint16 + hr, _, _ := procStringFromIID.Call(uintptr(unsafe.Pointer(iid)), uintptr(unsafe.Pointer(&p))) + if hr != 0 { + err = NewError(hr) + } + str = LpOleStrToString(p) + return +} + +// CreateInstance of single uninitialized object with GUID. +func CreateInstance(clsid *GUID, iid *GUID) (unk *IUnknown, err error) { + if iid == nil { + iid = IID_IUnknown + } + hr, _, _ := procCoCreateInstance.Call( + uintptr(unsafe.Pointer(clsid)), + 0, + CLSCTX_SERVER, + uintptr(unsafe.Pointer(iid)), + uintptr(unsafe.Pointer(&unk))) + if hr != 0 { + err = NewError(hr) + } + return +} + +// GetActiveObject retrieves pointer to active object. +func GetActiveObject(clsid *GUID, iid *GUID) (unk *IUnknown, err error) { + if iid == nil { + iid = IID_IUnknown + } + hr, _, _ := procGetActiveObject.Call( + uintptr(unsafe.Pointer(clsid)), + uintptr(unsafe.Pointer(iid)), + uintptr(unsafe.Pointer(&unk))) + if hr != 0 { + err = NewError(hr) + } + return +} + +type BindOpts struct { + CbStruct uint32 + GrfFlags uint32 + GrfMode uint32 + TickCountDeadline uint32 +} + +// GetObject retrieves pointer to active object. +func GetObject(programID string, bindOpts *BindOpts, iid *GUID) (unk *IUnknown, err error) { + if bindOpts != nil { + bindOpts.CbStruct = uint32(unsafe.Sizeof(BindOpts{})) + } + if iid == nil { + iid = IID_IUnknown + } + hr, _, _ := procCoGetObject.Call( + uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(programID))), + uintptr(unsafe.Pointer(bindOpts)), + uintptr(unsafe.Pointer(iid)), + uintptr(unsafe.Pointer(&unk))) + if hr != 0 { + err = NewError(hr) + } + return +} + +// VariantInit initializes variant. +func VariantInit(v *VARIANT) (err error) { + hr, _, _ := procVariantInit.Call(uintptr(unsafe.Pointer(v))) + if hr != 0 { + err = NewError(hr) + } + return +} + +// VariantClear clears value in Variant settings to VT_EMPTY. +func VariantClear(v *VARIANT) (err error) { + hr, _, _ := procVariantClear.Call(uintptr(unsafe.Pointer(v))) + if hr != 0 { + err = NewError(hr) + } + return +} + +// SysAllocString allocates memory for string and copies string into memory. +func SysAllocString(v string) (ss *int16) { + pss, _, _ := procSysAllocString.Call(uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(v)))) + ss = (*int16)(unsafe.Pointer(pss)) + return +} + +// SysAllocStringLen copies up to length of given string returning pointer. +func SysAllocStringLen(v string) (ss *int16) { + utf16 := utf16.Encode([]rune(v + "\x00")) + ptr := &utf16[0] + + pss, _, _ := procSysAllocStringLen.Call(uintptr(unsafe.Pointer(ptr)), uintptr(len(utf16)-1)) + ss = (*int16)(unsafe.Pointer(pss)) + return +} + +// SysFreeString frees string system memory. This must be called with SysAllocString. +func SysFreeString(v *int16) (err error) { + hr, _, _ := procSysFreeString.Call(uintptr(unsafe.Pointer(v))) + if hr != 0 { + err = NewError(hr) + } + return +} + +// SysStringLen is the length of the system allocated string. +func SysStringLen(v *int16) uint32 { + l, _, _ := procSysStringLen.Call(uintptr(unsafe.Pointer(v))) + return uint32(l) +} + +// CreateStdDispatch provides default IDispatch implementation for IUnknown. +// +// This handles default IDispatch implementation for objects. It haves a few +// limitations with only supporting one language. It will also only return +// default exception codes. +func CreateStdDispatch(unk *IUnknown, v uintptr, ptinfo *IUnknown) (disp *IDispatch, err error) { + hr, _, _ := procCreateStdDispatch.Call( + uintptr(unsafe.Pointer(unk)), + v, + uintptr(unsafe.Pointer(ptinfo)), + uintptr(unsafe.Pointer(&disp))) + if hr != 0 { + err = NewError(hr) + } + return +} + +// CreateDispTypeInfo provides default ITypeInfo implementation for IDispatch. +// +// This will not handle the full implementation of the interface. +func CreateDispTypeInfo(idata *INTERFACEDATA) (pptinfo *IUnknown, err error) { + hr, _, _ := procCreateDispTypeInfo.Call( + uintptr(unsafe.Pointer(idata)), + uintptr(GetUserDefaultLCID()), + uintptr(unsafe.Pointer(&pptinfo))) + if hr != 0 { + err = NewError(hr) + } + return +} + +// copyMemory moves location of a block of memory. +func copyMemory(dest unsafe.Pointer, src unsafe.Pointer, length uint32) { + procCopyMemory.Call(uintptr(dest), uintptr(src), uintptr(length)) +} + +// GetUserDefaultLCID retrieves current user default locale. +func GetUserDefaultLCID() (lcid uint32) { + ret, _, _ := procGetUserDefaultLCID.Call() + lcid = uint32(ret) + return +} + +// GetMessage in message queue from runtime. +// +// This function appears to block. PeekMessage does not block. +func GetMessage(msg *Msg, hwnd uint32, MsgFilterMin uint32, MsgFilterMax uint32) (ret int32, err error) { + r0, _, err := procGetMessageW.Call(uintptr(unsafe.Pointer(msg)), uintptr(hwnd), uintptr(MsgFilterMin), uintptr(MsgFilterMax)) + ret = int32(r0) + return +} + +// DispatchMessage to window procedure. +func DispatchMessage(msg *Msg) (ret int32) { + r0, _, _ := procDispatchMessageW.Call(uintptr(unsafe.Pointer(msg))) + ret = int32(r0) + return +} diff --git a/vendor/github.com/go-ole/go-ole/com_func.go b/vendor/github.com/go-ole/go-ole/com_func.go new file mode 100644 index 000000000..cef539d9d --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/com_func.go @@ -0,0 +1,174 @@ +// +build !windows + +package ole + +import ( + "time" + "unsafe" +) + +// coInitialize initializes COM library on current thread. +// +// MSDN documentation suggests that this function should not be called. Call +// CoInitializeEx() instead. The reason has to do with threading and this +// function is only for single-threaded apartments. +// +// That said, most users of the library have gotten away with just this +// function. If you are experiencing threading issues, then use +// CoInitializeEx(). +func coInitialize() error { + return NewError(E_NOTIMPL) +} + +// coInitializeEx initializes COM library with concurrency model. +func coInitializeEx(coinit uint32) error { + return NewError(E_NOTIMPL) +} + +// CoInitialize initializes COM library on current thread. +// +// MSDN documentation suggests that this function should not be called. Call +// CoInitializeEx() instead. The reason has to do with threading and this +// function is only for single-threaded apartments. +// +// That said, most users of the library have gotten away with just this +// function. If you are experiencing threading issues, then use +// CoInitializeEx(). +func CoInitialize(p uintptr) error { + return NewError(E_NOTIMPL) +} + +// CoInitializeEx initializes COM library with concurrency model. +func CoInitializeEx(p uintptr, coinit uint32) error { + return NewError(E_NOTIMPL) +} + +// CoUninitialize uninitializes COM Library. +func CoUninitialize() {} + +// CoTaskMemFree frees memory pointer. +func CoTaskMemFree(memptr uintptr) {} + +// CLSIDFromProgID retrieves Class Identifier with the given Program Identifier. +// +// The Programmatic Identifier must be registered, because it will be looked up +// in the Windows Registry. The registry entry has the following keys: CLSID, +// Insertable, Protocol and Shell +// (https://msdn.microsoft.com/en-us/library/dd542719(v=vs.85).aspx). +// +// programID identifies the class id with less precision and is not guaranteed +// to be unique. These are usually found in the registry under +// HKEY_LOCAL_MACHINE\SOFTWARE\Classes, usually with the format of +// "Program.Component.Version" with version being optional. +// +// CLSIDFromProgID in Windows API. +func CLSIDFromProgID(progId string) (*GUID, error) { + return nil, NewError(E_NOTIMPL) +} + +// CLSIDFromString retrieves Class ID from string representation. +// +// This is technically the string version of the GUID and will convert the +// string to object. +// +// CLSIDFromString in Windows API. +func CLSIDFromString(str string) (*GUID, error) { + return nil, NewError(E_NOTIMPL) +} + +// StringFromCLSID returns GUID formated string from GUID object. +func StringFromCLSID(clsid *GUID) (string, error) { + return "", NewError(E_NOTIMPL) +} + +// IIDFromString returns GUID from program ID. +func IIDFromString(progId string) (*GUID, error) { + return nil, NewError(E_NOTIMPL) +} + +// StringFromIID returns GUID formatted string from GUID object. +func StringFromIID(iid *GUID) (string, error) { + return "", NewError(E_NOTIMPL) +} + +// CreateInstance of single uninitialized object with GUID. +func CreateInstance(clsid *GUID, iid *GUID) (*IUnknown, error) { + return nil, NewError(E_NOTIMPL) +} + +// GetActiveObject retrieves pointer to active object. +func GetActiveObject(clsid *GUID, iid *GUID) (*IUnknown, error) { + return nil, NewError(E_NOTIMPL) +} + +// VariantInit initializes variant. +func VariantInit(v *VARIANT) error { + return NewError(E_NOTIMPL) +} + +// VariantClear clears value in Variant settings to VT_EMPTY. +func VariantClear(v *VARIANT) error { + return NewError(E_NOTIMPL) +} + +// SysAllocString allocates memory for string and copies string into memory. +func SysAllocString(v string) *int16 { + u := int16(0) + return &u +} + +// SysAllocStringLen copies up to length of given string returning pointer. +func SysAllocStringLen(v string) *int16 { + u := int16(0) + return &u +} + +// SysFreeString frees string system memory. This must be called with SysAllocString. +func SysFreeString(v *int16) error { + return NewError(E_NOTIMPL) +} + +// SysStringLen is the length of the system allocated string. +func SysStringLen(v *int16) uint32 { + return uint32(0) +} + +// CreateStdDispatch provides default IDispatch implementation for IUnknown. +// +// This handles default IDispatch implementation for objects. It haves a few +// limitations with only supporting one language. It will also only return +// default exception codes. +func CreateStdDispatch(unk *IUnknown, v uintptr, ptinfo *IUnknown) (*IDispatch, error) { + return nil, NewError(E_NOTIMPL) +} + +// CreateDispTypeInfo provides default ITypeInfo implementation for IDispatch. +// +// This will not handle the full implementation of the interface. +func CreateDispTypeInfo(idata *INTERFACEDATA) (*IUnknown, error) { + return nil, NewError(E_NOTIMPL) +} + +// copyMemory moves location of a block of memory. +func copyMemory(dest unsafe.Pointer, src unsafe.Pointer, length uint32) {} + +// GetUserDefaultLCID retrieves current user default locale. +func GetUserDefaultLCID() uint32 { + return uint32(0) +} + +// GetMessage in message queue from runtime. +// +// This function appears to block. PeekMessage does not block. +func GetMessage(msg *Msg, hwnd uint32, MsgFilterMin uint32, MsgFilterMax uint32) (int32, error) { + return int32(0), NewError(E_NOTIMPL) +} + +// DispatchMessage to window procedure. +func DispatchMessage(msg *Msg) int32 { + return int32(0) +} + +func GetVariantDate(value uint64) (time.Time, error) { + return time.Now(), NewError(E_NOTIMPL) +} diff --git a/vendor/github.com/go-ole/go-ole/connect.go b/vendor/github.com/go-ole/go-ole/connect.go new file mode 100644 index 000000000..b2ac2ec67 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/connect.go @@ -0,0 +1,192 @@ +package ole + +// Connection contains IUnknown for fluent interface interaction. +// +// Deprecated. Use oleutil package instead. +type Connection struct { + Object *IUnknown // Access COM +} + +// Initialize COM. +func (*Connection) Initialize() (err error) { + return coInitialize() +} + +// Uninitialize COM. +func (*Connection) Uninitialize() { + CoUninitialize() +} + +// Create IUnknown object based first on ProgId and then from String. +func (c *Connection) Create(progId string) (err error) { + var clsid *GUID + clsid, err = CLSIDFromProgID(progId) + if err != nil { + clsid, err = CLSIDFromString(progId) + if err != nil { + return + } + } + + unknown, err := CreateInstance(clsid, IID_IUnknown) + if err != nil { + return + } + c.Object = unknown + + return +} + +// Release IUnknown object. +func (c *Connection) Release() { + c.Object.Release() +} + +// Load COM object from list of programIDs or strings. +func (c *Connection) Load(names ...string) (errors []error) { + var tempErrors []error = make([]error, len(names)) + var numErrors int = 0 + for _, name := range names { + err := c.Create(name) + if err != nil { + tempErrors = append(tempErrors, err) + numErrors += 1 + continue + } + break + } + + copy(errors, tempErrors[0:numErrors]) + return +} + +// Dispatch returns Dispatch object. +func (c *Connection) Dispatch() (object *Dispatch, err error) { + dispatch, err := c.Object.QueryInterface(IID_IDispatch) + if err != nil { + return + } + object = &Dispatch{dispatch} + return +} + +// Dispatch stores IDispatch object. +type Dispatch struct { + Object *IDispatch // Dispatch object. +} + +// Call method on IDispatch with parameters. +func (d *Dispatch) Call(method string, params ...interface{}) (result *VARIANT, err error) { + id, err := d.GetId(method) + if err != nil { + return + } + + result, err = d.Invoke(id, DISPATCH_METHOD, params) + return +} + +// MustCall method on IDispatch with parameters. +func (d *Dispatch) MustCall(method string, params ...interface{}) (result *VARIANT) { + id, err := d.GetId(method) + if err != nil { + panic(err) + } + + result, err = d.Invoke(id, DISPATCH_METHOD, params) + if err != nil { + panic(err) + } + + return +} + +// Get property on IDispatch with parameters. +func (d *Dispatch) Get(name string, params ...interface{}) (result *VARIANT, err error) { + id, err := d.GetId(name) + if err != nil { + return + } + result, err = d.Invoke(id, DISPATCH_PROPERTYGET, params) + return +} + +// MustGet property on IDispatch with parameters. +func (d *Dispatch) MustGet(name string, params ...interface{}) (result *VARIANT) { + id, err := d.GetId(name) + if err != nil { + panic(err) + } + + result, err = d.Invoke(id, DISPATCH_PROPERTYGET, params) + if err != nil { + panic(err) + } + return +} + +// Set property on IDispatch with parameters. +func (d *Dispatch) Set(name string, params ...interface{}) (result *VARIANT, err error) { + id, err := d.GetId(name) + if err != nil { + return + } + result, err = d.Invoke(id, DISPATCH_PROPERTYPUT, params) + return +} + +// MustSet property on IDispatch with parameters. +func (d *Dispatch) MustSet(name string, params ...interface{}) (result *VARIANT) { + id, err := d.GetId(name) + if err != nil { + panic(err) + } + + result, err = d.Invoke(id, DISPATCH_PROPERTYPUT, params) + if err != nil { + panic(err) + } + return +} + +// GetId retrieves ID of name on IDispatch. +func (d *Dispatch) GetId(name string) (id int32, err error) { + var dispid []int32 + dispid, err = d.Object.GetIDsOfName([]string{name}) + if err != nil { + return + } + id = dispid[0] + return +} + +// GetIds retrieves all IDs of names on IDispatch. +func (d *Dispatch) GetIds(names ...string) (dispid []int32, err error) { + dispid, err = d.Object.GetIDsOfName(names) + return +} + +// Invoke IDispatch on DisplayID of dispatch type with parameters. +// +// There have been problems where if send cascading params..., it would error +// out because the parameters would be empty. +func (d *Dispatch) Invoke(id int32, dispatch int16, params []interface{}) (result *VARIANT, err error) { + if len(params) < 1 { + result, err = d.Object.Invoke(id, dispatch) + } else { + result, err = d.Object.Invoke(id, dispatch, params...) + } + return +} + +// Release IDispatch object. +func (d *Dispatch) Release() { + d.Object.Release() +} + +// Connect initializes COM and attempts to load IUnknown based on given names. +func Connect(names ...string) (connection *Connection) { + connection.Initialize() + connection.Load(names...) + return +} diff --git a/vendor/github.com/go-ole/go-ole/constants.go b/vendor/github.com/go-ole/go-ole/constants.go new file mode 100644 index 000000000..fd0c6d74b --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/constants.go @@ -0,0 +1,153 @@ +package ole + +const ( + CLSCTX_INPROC_SERVER = 1 + CLSCTX_INPROC_HANDLER = 2 + CLSCTX_LOCAL_SERVER = 4 + CLSCTX_INPROC_SERVER16 = 8 + CLSCTX_REMOTE_SERVER = 16 + CLSCTX_ALL = CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER + CLSCTX_INPROC = CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER + CLSCTX_SERVER = CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER +) + +const ( + COINIT_APARTMENTTHREADED = 0x2 + COINIT_MULTITHREADED = 0x0 + COINIT_DISABLE_OLE1DDE = 0x4 + COINIT_SPEED_OVER_MEMORY = 0x8 +) + +const ( + DISPATCH_METHOD = 1 + DISPATCH_PROPERTYGET = 2 + DISPATCH_PROPERTYPUT = 4 + DISPATCH_PROPERTYPUTREF = 8 +) + +const ( + S_OK = 0x00000000 + E_UNEXPECTED = 0x8000FFFF + E_NOTIMPL = 0x80004001 + E_OUTOFMEMORY = 0x8007000E + E_INVALIDARG = 0x80070057 + E_NOINTERFACE = 0x80004002 + E_POINTER = 0x80004003 + E_HANDLE = 0x80070006 + E_ABORT = 0x80004004 + E_FAIL = 0x80004005 + E_ACCESSDENIED = 0x80070005 + E_PENDING = 0x8000000A + + CO_E_CLASSSTRING = 0x800401F3 +) + +const ( + CC_FASTCALL = iota + CC_CDECL + CC_MSCPASCAL + CC_PASCAL = CC_MSCPASCAL + CC_MACPASCAL + CC_STDCALL + CC_FPFASTCALL + CC_SYSCALL + CC_MPWCDECL + CC_MPWPASCAL + CC_MAX = CC_MPWPASCAL +) + +type VT uint16 + +const ( + VT_EMPTY VT = 0x0 + VT_NULL VT = 0x1 + VT_I2 VT = 0x2 + VT_I4 VT = 0x3 + VT_R4 VT = 0x4 + VT_R8 VT = 0x5 + VT_CY VT = 0x6 + VT_DATE VT = 0x7 + VT_BSTR VT = 0x8 + VT_DISPATCH VT = 0x9 + VT_ERROR VT = 0xa + VT_BOOL VT = 0xb + VT_VARIANT VT = 0xc + VT_UNKNOWN VT = 0xd + VT_DECIMAL VT = 0xe + VT_I1 VT = 0x10 + VT_UI1 VT = 0x11 + VT_UI2 VT = 0x12 + VT_UI4 VT = 0x13 + VT_I8 VT = 0x14 + VT_UI8 VT = 0x15 + VT_INT VT = 0x16 + VT_UINT VT = 0x17 + VT_VOID VT = 0x18 + VT_HRESULT VT = 0x19 + VT_PTR VT = 0x1a + VT_SAFEARRAY VT = 0x1b + VT_CARRAY VT = 0x1c + VT_USERDEFINED VT = 0x1d + VT_LPSTR VT = 0x1e + VT_LPWSTR VT = 0x1f + VT_RECORD VT = 0x24 + VT_INT_PTR VT = 0x25 + VT_UINT_PTR VT = 0x26 + VT_FILETIME VT = 0x40 + VT_BLOB VT = 0x41 + VT_STREAM VT = 0x42 + VT_STORAGE VT = 0x43 + VT_STREAMED_OBJECT VT = 0x44 + VT_STORED_OBJECT VT = 0x45 + VT_BLOB_OBJECT VT = 0x46 + VT_CF VT = 0x47 + VT_CLSID VT = 0x48 + VT_BSTR_BLOB VT = 0xfff + VT_VECTOR VT = 0x1000 + VT_ARRAY VT = 0x2000 + VT_BYREF VT = 0x4000 + VT_RESERVED VT = 0x8000 + VT_ILLEGAL VT = 0xffff + VT_ILLEGALMASKED VT = 0xfff + VT_TYPEMASK VT = 0xfff +) + +const ( + DISPID_UNKNOWN = -1 + DISPID_VALUE = 0 + DISPID_PROPERTYPUT = -3 + DISPID_NEWENUM = -4 + DISPID_EVALUATE = -5 + DISPID_CONSTRUCTOR = -6 + DISPID_DESTRUCTOR = -7 + DISPID_COLLECT = -8 +) + +const ( + TKIND_ENUM = 1 + TKIND_RECORD = 2 + TKIND_MODULE = 3 + TKIND_INTERFACE = 4 + TKIND_DISPATCH = 5 + TKIND_COCLASS = 6 + TKIND_ALIAS = 7 + TKIND_UNION = 8 + TKIND_MAX = 9 +) + +// Safe Array Feature Flags + +const ( + FADF_AUTO = 0x0001 + FADF_STATIC = 0x0002 + FADF_EMBEDDED = 0x0004 + FADF_FIXEDSIZE = 0x0010 + FADF_RECORD = 0x0020 + FADF_HAVEIID = 0x0040 + FADF_HAVEVARTYPE = 0x0080 + FADF_BSTR = 0x0100 + FADF_UNKNOWN = 0x0200 + FADF_DISPATCH = 0x0400 + FADF_VARIANT = 0x0800 + FADF_RESERVED = 0xF008 +) diff --git a/vendor/github.com/go-ole/go-ole/error.go b/vendor/github.com/go-ole/go-ole/error.go new file mode 100644 index 000000000..096b456d3 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/error.go @@ -0,0 +1,51 @@ +package ole + +// OleError stores COM errors. +type OleError struct { + hr uintptr + description string + subError error +} + +// NewError creates new error with HResult. +func NewError(hr uintptr) *OleError { + return &OleError{hr: hr} +} + +// NewErrorWithDescription creates new COM error with HResult and description. +func NewErrorWithDescription(hr uintptr, description string) *OleError { + return &OleError{hr: hr, description: description} +} + +// NewErrorWithSubError creates new COM error with parent error. +func NewErrorWithSubError(hr uintptr, description string, err error) *OleError { + return &OleError{hr: hr, description: description, subError: err} +} + +// Code is the HResult. +func (v *OleError) Code() uintptr { + return uintptr(v.hr) +} + +// String description, either manually set or format message with error code. +func (v *OleError) String() string { + if v.description != "" { + return errstr(int(v.hr)) + " (" + v.description + ")" + } + return errstr(int(v.hr)) +} + +// Error implements error interface. +func (v *OleError) Error() string { + return v.String() +} + +// Description retrieves error summary, if there is one. +func (v *OleError) Description() string { + return v.description +} + +// SubError returns parent error, if there is one. +func (v *OleError) SubError() error { + return v.subError +} diff --git a/vendor/github.com/go-ole/go-ole/error_func.go b/vendor/github.com/go-ole/go-ole/error_func.go new file mode 100644 index 000000000..8a2ffaa27 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/error_func.go @@ -0,0 +1,8 @@ +// +build !windows + +package ole + +// errstr converts error code to string. +func errstr(errno int) string { + return "" +} diff --git a/vendor/github.com/go-ole/go-ole/error_windows.go b/vendor/github.com/go-ole/go-ole/error_windows.go new file mode 100644 index 000000000..d0e8e6859 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/error_windows.go @@ -0,0 +1,24 @@ +// +build windows + +package ole + +import ( + "fmt" + "syscall" + "unicode/utf16" +) + +// errstr converts error code to string. +func errstr(errno int) string { + // ask windows for the remaining errors + var flags uint32 = syscall.FORMAT_MESSAGE_FROM_SYSTEM | syscall.FORMAT_MESSAGE_ARGUMENT_ARRAY | syscall.FORMAT_MESSAGE_IGNORE_INSERTS + b := make([]uint16, 300) + n, err := syscall.FormatMessage(flags, 0, uint32(errno), 0, b, nil) + if err != nil { + return fmt.Sprintf("error %d (FormatMessage failed with: %v)", errno, err) + } + // trim terminating \r and \n + for ; n > 0 && (b[n-1] == '\n' || b[n-1] == '\r'); n-- { + } + return string(utf16.Decode(b[:n])) +} diff --git a/vendor/github.com/go-ole/go-ole/guid.go b/vendor/github.com/go-ole/go-ole/guid.go new file mode 100644 index 000000000..8d20f68fb --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/guid.go @@ -0,0 +1,284 @@ +package ole + +var ( + // IID_NULL is null Interface ID, used when no other Interface ID is known. + IID_NULL = NewGUID("{00000000-0000-0000-0000-000000000000}") + + // IID_IUnknown is for IUnknown interfaces. + IID_IUnknown = NewGUID("{00000000-0000-0000-C000-000000000046}") + + // IID_IDispatch is for IDispatch interfaces. + IID_IDispatch = NewGUID("{00020400-0000-0000-C000-000000000046}") + + // IID_IEnumVariant is for IEnumVariant interfaces + IID_IEnumVariant = NewGUID("{00020404-0000-0000-C000-000000000046}") + + // IID_IConnectionPointContainer is for IConnectionPointContainer interfaces. + IID_IConnectionPointContainer = NewGUID("{B196B284-BAB4-101A-B69C-00AA00341D07}") + + // IID_IConnectionPoint is for IConnectionPoint interfaces. + IID_IConnectionPoint = NewGUID("{B196B286-BAB4-101A-B69C-00AA00341D07}") + + // IID_IInspectable is for IInspectable interfaces. + IID_IInspectable = NewGUID("{AF86E2E0-B12D-4C6A-9C5A-D7AA65101E90}") + + // IID_IProvideClassInfo is for IProvideClassInfo interfaces. + IID_IProvideClassInfo = NewGUID("{B196B283-BAB4-101A-B69C-00AA00341D07}") +) + +// These are for testing and not part of any library. +var ( + // IID_ICOMTestString is for ICOMTestString interfaces. + // + // {E0133EB4-C36F-469A-9D3D-C66B84BE19ED} + IID_ICOMTestString = NewGUID("{E0133EB4-C36F-469A-9D3D-C66B84BE19ED}") + + // IID_ICOMTestInt8 is for ICOMTestInt8 interfaces. + // + // {BEB06610-EB84-4155-AF58-E2BFF53680B4} + IID_ICOMTestInt8 = NewGUID("{BEB06610-EB84-4155-AF58-E2BFF53680B4}") + + // IID_ICOMTestInt16 is for ICOMTestInt16 interfaces. + // + // {DAA3F9FA-761E-4976-A860-8364CE55F6FC} + IID_ICOMTestInt16 = NewGUID("{DAA3F9FA-761E-4976-A860-8364CE55F6FC}") + + // IID_ICOMTestInt32 is for ICOMTestInt32 interfaces. + // + // {E3DEDEE7-38A2-4540-91D1-2EEF1D8891B0} + IID_ICOMTestInt32 = NewGUID("{E3DEDEE7-38A2-4540-91D1-2EEF1D8891B0}") + + // IID_ICOMTestInt64 is for ICOMTestInt64 interfaces. + // + // {8D437CBC-B3ED-485C-BC32-C336432A1623} + IID_ICOMTestInt64 = NewGUID("{8D437CBC-B3ED-485C-BC32-C336432A1623}") + + // IID_ICOMTestFloat is for ICOMTestFloat interfaces. + // + // {BF1ED004-EA02-456A-AA55-2AC8AC6B054C} + IID_ICOMTestFloat = NewGUID("{BF1ED004-EA02-456A-AA55-2AC8AC6B054C}") + + // IID_ICOMTestDouble is for ICOMTestDouble interfaces. + // + // {BF908A81-8687-4E93-999F-D86FAB284BA0} + IID_ICOMTestDouble = NewGUID("{BF908A81-8687-4E93-999F-D86FAB284BA0}") + + // IID_ICOMTestBoolean is for ICOMTestBoolean interfaces. + // + // {D530E7A6-4EE8-40D1-8931-3D63B8605010} + IID_ICOMTestBoolean = NewGUID("{D530E7A6-4EE8-40D1-8931-3D63B8605010}") + + // IID_ICOMEchoTestObject is for ICOMEchoTestObject interfaces. + // + // {6485B1EF-D780-4834-A4FE-1EBB51746CA3} + IID_ICOMEchoTestObject = NewGUID("{6485B1EF-D780-4834-A4FE-1EBB51746CA3}") + + // IID_ICOMTestTypes is for ICOMTestTypes interfaces. + // + // {CCA8D7AE-91C0-4277-A8B3-FF4EDF28D3C0} + IID_ICOMTestTypes = NewGUID("{CCA8D7AE-91C0-4277-A8B3-FF4EDF28D3C0}") + + // CLSID_COMEchoTestObject is for COMEchoTestObject class. + // + // {3C24506A-AE9E-4D50-9157-EF317281F1B0} + CLSID_COMEchoTestObject = NewGUID("{3C24506A-AE9E-4D50-9157-EF317281F1B0}") + + // CLSID_COMTestScalarClass is for COMTestScalarClass class. + // + // {865B85C5-0334-4AC6-9EF6-AACEC8FC5E86} + CLSID_COMTestScalarClass = NewGUID("{865B85C5-0334-4AC6-9EF6-AACEC8FC5E86}") +) + +const hextable = "0123456789ABCDEF" +const emptyGUID = "{00000000-0000-0000-0000-000000000000}" + +// GUID is Windows API specific GUID type. +// +// This exists to match Windows GUID type for direct passing for COM. +// Format is in xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx. +type GUID struct { + Data1 uint32 + Data2 uint16 + Data3 uint16 + Data4 [8]byte +} + +// NewGUID converts the given string into a globally unique identifier that is +// compliant with the Windows API. +// +// The supplied string may be in any of these formats: +// +// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +// XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX +// {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} +// +// The conversion of the supplied string is not case-sensitive. +func NewGUID(guid string) *GUID { + d := []byte(guid) + var d1, d2, d3, d4a, d4b []byte + + switch len(d) { + case 38: + if d[0] != '{' || d[37] != '}' { + return nil + } + d = d[1:37] + fallthrough + case 36: + if d[8] != '-' || d[13] != '-' || d[18] != '-' || d[23] != '-' { + return nil + } + d1 = d[0:8] + d2 = d[9:13] + d3 = d[14:18] + d4a = d[19:23] + d4b = d[24:36] + case 32: + d1 = d[0:8] + d2 = d[8:12] + d3 = d[12:16] + d4a = d[16:20] + d4b = d[20:32] + default: + return nil + } + + var g GUID + var ok1, ok2, ok3, ok4 bool + g.Data1, ok1 = decodeHexUint32(d1) + g.Data2, ok2 = decodeHexUint16(d2) + g.Data3, ok3 = decodeHexUint16(d3) + g.Data4, ok4 = decodeHexByte64(d4a, d4b) + if ok1 && ok2 && ok3 && ok4 { + return &g + } + return nil +} + +func decodeHexUint32(src []byte) (value uint32, ok bool) { + var b1, b2, b3, b4 byte + var ok1, ok2, ok3, ok4 bool + b1, ok1 = decodeHexByte(src[0], src[1]) + b2, ok2 = decodeHexByte(src[2], src[3]) + b3, ok3 = decodeHexByte(src[4], src[5]) + b4, ok4 = decodeHexByte(src[6], src[7]) + value = (uint32(b1) << 24) | (uint32(b2) << 16) | (uint32(b3) << 8) | uint32(b4) + ok = ok1 && ok2 && ok3 && ok4 + return +} + +func decodeHexUint16(src []byte) (value uint16, ok bool) { + var b1, b2 byte + var ok1, ok2 bool + b1, ok1 = decodeHexByte(src[0], src[1]) + b2, ok2 = decodeHexByte(src[2], src[3]) + value = (uint16(b1) << 8) | uint16(b2) + ok = ok1 && ok2 + return +} + +func decodeHexByte64(s1 []byte, s2 []byte) (value [8]byte, ok bool) { + var ok1, ok2, ok3, ok4, ok5, ok6, ok7, ok8 bool + value[0], ok1 = decodeHexByte(s1[0], s1[1]) + value[1], ok2 = decodeHexByte(s1[2], s1[3]) + value[2], ok3 = decodeHexByte(s2[0], s2[1]) + value[3], ok4 = decodeHexByte(s2[2], s2[3]) + value[4], ok5 = decodeHexByte(s2[4], s2[5]) + value[5], ok6 = decodeHexByte(s2[6], s2[7]) + value[6], ok7 = decodeHexByte(s2[8], s2[9]) + value[7], ok8 = decodeHexByte(s2[10], s2[11]) + ok = ok1 && ok2 && ok3 && ok4 && ok5 && ok6 && ok7 && ok8 + return +} + +func decodeHexByte(c1, c2 byte) (value byte, ok bool) { + var n1, n2 byte + var ok1, ok2 bool + n1, ok1 = decodeHexChar(c1) + n2, ok2 = decodeHexChar(c2) + value = (n1 << 4) | n2 + ok = ok1 && ok2 + return +} + +func decodeHexChar(c byte) (byte, bool) { + switch { + case '0' <= c && c <= '9': + return c - '0', true + case 'a' <= c && c <= 'f': + return c - 'a' + 10, true + case 'A' <= c && c <= 'F': + return c - 'A' + 10, true + } + + return 0, false +} + +// String converts the GUID to string form. It will adhere to this pattern: +// +// {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} +// +// If the GUID is nil, the string representation of an empty GUID is returned: +// +// {00000000-0000-0000-0000-000000000000} +func (guid *GUID) String() string { + if guid == nil { + return emptyGUID + } + + var c [38]byte + c[0] = '{' + putUint32Hex(c[1:9], guid.Data1) + c[9] = '-' + putUint16Hex(c[10:14], guid.Data2) + c[14] = '-' + putUint16Hex(c[15:19], guid.Data3) + c[19] = '-' + putByteHex(c[20:24], guid.Data4[0:2]) + c[24] = '-' + putByteHex(c[25:37], guid.Data4[2:8]) + c[37] = '}' + return string(c[:]) +} + +func putUint32Hex(b []byte, v uint32) { + b[0] = hextable[byte(v>>24)>>4] + b[1] = hextable[byte(v>>24)&0x0f] + b[2] = hextable[byte(v>>16)>>4] + b[3] = hextable[byte(v>>16)&0x0f] + b[4] = hextable[byte(v>>8)>>4] + b[5] = hextable[byte(v>>8)&0x0f] + b[6] = hextable[byte(v)>>4] + b[7] = hextable[byte(v)&0x0f] +} + +func putUint16Hex(b []byte, v uint16) { + b[0] = hextable[byte(v>>8)>>4] + b[1] = hextable[byte(v>>8)&0x0f] + b[2] = hextable[byte(v)>>4] + b[3] = hextable[byte(v)&0x0f] +} + +func putByteHex(dst, src []byte) { + for i := 0; i < len(src); i++ { + dst[i*2] = hextable[src[i]>>4] + dst[i*2+1] = hextable[src[i]&0x0f] + } +} + +// IsEqualGUID compares two GUID. +// +// Not constant time comparison. +func IsEqualGUID(guid1 *GUID, guid2 *GUID) bool { + return guid1.Data1 == guid2.Data1 && + guid1.Data2 == guid2.Data2 && + guid1.Data3 == guid2.Data3 && + guid1.Data4[0] == guid2.Data4[0] && + guid1.Data4[1] == guid2.Data4[1] && + guid1.Data4[2] == guid2.Data4[2] && + guid1.Data4[3] == guid2.Data4[3] && + guid1.Data4[4] == guid2.Data4[4] && + guid1.Data4[5] == guid2.Data4[5] && + guid1.Data4[6] == guid2.Data4[6] && + guid1.Data4[7] == guid2.Data4[7] +} diff --git a/vendor/github.com/go-ole/go-ole/iconnectionpoint.go b/vendor/github.com/go-ole/go-ole/iconnectionpoint.go new file mode 100644 index 000000000..9e6c49f41 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iconnectionpoint.go @@ -0,0 +1,20 @@ +package ole + +import "unsafe" + +type IConnectionPoint struct { + IUnknown +} + +type IConnectionPointVtbl struct { + IUnknownVtbl + GetConnectionInterface uintptr + GetConnectionPointContainer uintptr + Advise uintptr + Unadvise uintptr + EnumConnections uintptr +} + +func (v *IConnectionPoint) VTable() *IConnectionPointVtbl { + return (*IConnectionPointVtbl)(unsafe.Pointer(v.RawVTable)) +} diff --git a/vendor/github.com/go-ole/go-ole/iconnectionpoint_func.go b/vendor/github.com/go-ole/go-ole/iconnectionpoint_func.go new file mode 100644 index 000000000..5414dc3cd --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iconnectionpoint_func.go @@ -0,0 +1,21 @@ +// +build !windows + +package ole + +import "unsafe" + +func (v *IConnectionPoint) GetConnectionInterface(piid **GUID) int32 { + return int32(0) +} + +func (v *IConnectionPoint) Advise(unknown *IUnknown) (uint32, error) { + return uint32(0), NewError(E_NOTIMPL) +} + +func (v *IConnectionPoint) Unadvise(cookie uint32) error { + return NewError(E_NOTIMPL) +} + +func (v *IConnectionPoint) EnumConnections(p *unsafe.Pointer) (err error) { + return NewError(E_NOTIMPL) +} diff --git a/vendor/github.com/go-ole/go-ole/iconnectionpoint_windows.go b/vendor/github.com/go-ole/go-ole/iconnectionpoint_windows.go new file mode 100644 index 000000000..32bc18324 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iconnectionpoint_windows.go @@ -0,0 +1,43 @@ +// +build windows + +package ole + +import ( + "syscall" + "unsafe" +) + +func (v *IConnectionPoint) GetConnectionInterface(piid **GUID) int32 { + // XXX: This doesn't look like it does what it's supposed to + return release((*IUnknown)(unsafe.Pointer(v))) +} + +func (v *IConnectionPoint) Advise(unknown *IUnknown) (cookie uint32, err error) { + hr, _, _ := syscall.Syscall( + v.VTable().Advise, + 3, + uintptr(unsafe.Pointer(v)), + uintptr(unsafe.Pointer(unknown)), + uintptr(unsafe.Pointer(&cookie))) + if hr != 0 { + err = NewError(hr) + } + return +} + +func (v *IConnectionPoint) Unadvise(cookie uint32) (err error) { + hr, _, _ := syscall.Syscall( + v.VTable().Unadvise, + 2, + uintptr(unsafe.Pointer(v)), + uintptr(cookie), + 0) + if hr != 0 { + err = NewError(hr) + } + return +} + +func (v *IConnectionPoint) EnumConnections(p *unsafe.Pointer) error { + return NewError(E_NOTIMPL) +} diff --git a/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer.go b/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer.go new file mode 100644 index 000000000..165860d19 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer.go @@ -0,0 +1,17 @@ +package ole + +import "unsafe" + +type IConnectionPointContainer struct { + IUnknown +} + +type IConnectionPointContainerVtbl struct { + IUnknownVtbl + EnumConnectionPoints uintptr + FindConnectionPoint uintptr +} + +func (v *IConnectionPointContainer) VTable() *IConnectionPointContainerVtbl { + return (*IConnectionPointContainerVtbl)(unsafe.Pointer(v.RawVTable)) +} diff --git a/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer_func.go b/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer_func.go new file mode 100644 index 000000000..5dfa42aae --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer_func.go @@ -0,0 +1,11 @@ +// +build !windows + +package ole + +func (v *IConnectionPointContainer) EnumConnectionPoints(points interface{}) error { + return NewError(E_NOTIMPL) +} + +func (v *IConnectionPointContainer) FindConnectionPoint(iid *GUID, point **IConnectionPoint) error { + return NewError(E_NOTIMPL) +} diff --git a/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer_windows.go b/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer_windows.go new file mode 100644 index 000000000..ad30d79ef --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iconnectionpointcontainer_windows.go @@ -0,0 +1,25 @@ +// +build windows + +package ole + +import ( + "syscall" + "unsafe" +) + +func (v *IConnectionPointContainer) EnumConnectionPoints(points interface{}) error { + return NewError(E_NOTIMPL) +} + +func (v *IConnectionPointContainer) FindConnectionPoint(iid *GUID, point **IConnectionPoint) (err error) { + hr, _, _ := syscall.Syscall( + v.VTable().FindConnectionPoint, + 3, + uintptr(unsafe.Pointer(v)), + uintptr(unsafe.Pointer(iid)), + uintptr(unsafe.Pointer(point))) + if hr != 0 { + err = NewError(hr) + } + return +} diff --git a/vendor/github.com/go-ole/go-ole/idispatch.go b/vendor/github.com/go-ole/go-ole/idispatch.go new file mode 100644 index 000000000..d4af12409 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/idispatch.go @@ -0,0 +1,94 @@ +package ole + +import "unsafe" + +type IDispatch struct { + IUnknown +} + +type IDispatchVtbl struct { + IUnknownVtbl + GetTypeInfoCount uintptr + GetTypeInfo uintptr + GetIDsOfNames uintptr + Invoke uintptr +} + +func (v *IDispatch) VTable() *IDispatchVtbl { + return (*IDispatchVtbl)(unsafe.Pointer(v.RawVTable)) +} + +func (v *IDispatch) GetIDsOfName(names []string) (dispid []int32, err error) { + dispid, err = getIDsOfName(v, names) + return +} + +func (v *IDispatch) Invoke(dispid int32, dispatch int16, params ...interface{}) (result *VARIANT, err error) { + result, err = invoke(v, dispid, dispatch, params...) + return +} + +func (v *IDispatch) GetTypeInfoCount() (c uint32, err error) { + c, err = getTypeInfoCount(v) + return +} + +func (v *IDispatch) GetTypeInfo() (tinfo *ITypeInfo, err error) { + tinfo, err = getTypeInfo(v) + return +} + +// GetSingleIDOfName is a helper that returns single display ID for IDispatch name. +// +// This replaces the common pattern of attempting to get a single name from the list of available +// IDs. It gives the first ID, if it is available. +func (v *IDispatch) GetSingleIDOfName(name string) (displayID int32, err error) { + var displayIDs []int32 + displayIDs, err = v.GetIDsOfName([]string{name}) + if err != nil { + return + } + displayID = displayIDs[0] + return +} + +// InvokeWithOptionalArgs accepts arguments as an array, works like Invoke. +// +// Accepts name and will attempt to retrieve Display ID to pass to Invoke. +// +// Passing params as an array is a workaround that could be fixed in later versions of Go that +// prevent passing empty params. During testing it was discovered that this is an acceptable way of +// getting around not being able to pass params normally. +func (v *IDispatch) InvokeWithOptionalArgs(name string, dispatch int16, params []interface{}) (result *VARIANT, err error) { + displayID, err := v.GetSingleIDOfName(name) + if err != nil { + return + } + + if len(params) < 1 { + result, err = v.Invoke(displayID, dispatch) + } else { + result, err = v.Invoke(displayID, dispatch, params...) + } + + return +} + +// CallMethod invokes named function with arguments on object. +func (v *IDispatch) CallMethod(name string, params ...interface{}) (*VARIANT, error) { + return v.InvokeWithOptionalArgs(name, DISPATCH_METHOD, params) +} + +// GetProperty retrieves the property with the name with the ability to pass arguments. +// +// Most of the time you will not need to pass arguments as most objects do not allow for this +// feature. Or at least, should not allow for this feature. Some servers don't follow best practices +// and this is provided for those edge cases. +func (v *IDispatch) GetProperty(name string, params ...interface{}) (*VARIANT, error) { + return v.InvokeWithOptionalArgs(name, DISPATCH_PROPERTYGET, params) +} + +// PutProperty attempts to mutate a property in the object. +func (v *IDispatch) PutProperty(name string, params ...interface{}) (*VARIANT, error) { + return v.InvokeWithOptionalArgs(name, DISPATCH_PROPERTYPUT, params) +} diff --git a/vendor/github.com/go-ole/go-ole/idispatch_func.go b/vendor/github.com/go-ole/go-ole/idispatch_func.go new file mode 100644 index 000000000..b8fbbe319 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/idispatch_func.go @@ -0,0 +1,19 @@ +// +build !windows + +package ole + +func getIDsOfName(disp *IDispatch, names []string) ([]int32, error) { + return []int32{}, NewError(E_NOTIMPL) +} + +func getTypeInfoCount(disp *IDispatch) (uint32, error) { + return uint32(0), NewError(E_NOTIMPL) +} + +func getTypeInfo(disp *IDispatch) (*ITypeInfo, error) { + return nil, NewError(E_NOTIMPL) +} + +func invoke(disp *IDispatch, dispid int32, dispatch int16, params ...interface{}) (*VARIANT, error) { + return nil, NewError(E_NOTIMPL) +} diff --git a/vendor/github.com/go-ole/go-ole/idispatch_windows.go b/vendor/github.com/go-ole/go-ole/idispatch_windows.go new file mode 100644 index 000000000..649c0734f --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/idispatch_windows.go @@ -0,0 +1,203 @@ +//go:build windows +// +build windows + +package ole + +import ( + "math/big" + "syscall" + "time" + "unsafe" +) + +func getIDsOfName(disp *IDispatch, names []string) (dispid []int32, err error) { + wnames := make([]*uint16, len(names)) + for i := 0; i < len(names); i++ { + wnames[i] = syscall.StringToUTF16Ptr(names[i]) + } + dispid = make([]int32, len(names)) + namelen := uint32(len(names)) + hr, _, _ := syscall.Syscall6( + disp.VTable().GetIDsOfNames, + 6, + uintptr(unsafe.Pointer(disp)), + uintptr(unsafe.Pointer(IID_NULL)), + uintptr(unsafe.Pointer(&wnames[0])), + uintptr(namelen), + uintptr(GetUserDefaultLCID()), + uintptr(unsafe.Pointer(&dispid[0]))) + if hr != 0 { + err = NewError(hr) + } + return +} + +func getTypeInfoCount(disp *IDispatch) (c uint32, err error) { + hr, _, _ := syscall.Syscall( + disp.VTable().GetTypeInfoCount, + 2, + uintptr(unsafe.Pointer(disp)), + uintptr(unsafe.Pointer(&c)), + 0) + if hr != 0 { + err = NewError(hr) + } + return +} + +func getTypeInfo(disp *IDispatch) (tinfo *ITypeInfo, err error) { + hr, _, _ := syscall.Syscall( + disp.VTable().GetTypeInfo, + 3, + uintptr(unsafe.Pointer(disp)), + uintptr(GetUserDefaultLCID()), + uintptr(unsafe.Pointer(&tinfo))) + if hr != 0 { + err = NewError(hr) + } + return +} + +func invoke(disp *IDispatch, dispid int32, dispatch int16, params ...interface{}) (result *VARIANT, err error) { + var dispparams DISPPARAMS + + if dispatch&DISPATCH_PROPERTYPUT != 0 { + dispnames := [1]int32{DISPID_PROPERTYPUT} + dispparams.rgdispidNamedArgs = uintptr(unsafe.Pointer(&dispnames[0])) + dispparams.cNamedArgs = 1 + } else if dispatch&DISPATCH_PROPERTYPUTREF != 0 { + dispnames := [1]int32{DISPID_PROPERTYPUT} + dispparams.rgdispidNamedArgs = uintptr(unsafe.Pointer(&dispnames[0])) + dispparams.cNamedArgs = 1 + } + var vargs []VARIANT + if len(params) > 0 { + vargs = make([]VARIANT, len(params)) + for i, v := range params { + //n := len(params)-i-1 + n := len(params) - i - 1 + VariantInit(&vargs[n]) + switch vv := v.(type) { + case bool: + if vv { + vargs[n] = NewVariant(VT_BOOL, 0xffff) + } else { + vargs[n] = NewVariant(VT_BOOL, 0) + } + case *bool: + vargs[n] = NewVariant(VT_BOOL|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*bool))))) + case uint8: + vargs[n] = NewVariant(VT_I1, int64(v.(uint8))) + case *uint8: + vargs[n] = NewVariant(VT_I1|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*uint8))))) + case int8: + vargs[n] = NewVariant(VT_I1, int64(v.(int8))) + case *int8: + vargs[n] = NewVariant(VT_I1|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*int8))))) + case int16: + vargs[n] = NewVariant(VT_I2, int64(v.(int16))) + case *int16: + vargs[n] = NewVariant(VT_I2|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*int16))))) + case uint16: + vargs[n] = NewVariant(VT_UI2, int64(v.(uint16))) + case *uint16: + vargs[n] = NewVariant(VT_UI2|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*uint16))))) + case int32: + vargs[n] = NewVariant(VT_I4, int64(v.(int32))) + case *int32: + vargs[n] = NewVariant(VT_I4|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*int32))))) + case uint32: + vargs[n] = NewVariant(VT_UI4, int64(v.(uint32))) + case *uint32: + vargs[n] = NewVariant(VT_UI4|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*uint32))))) + case int64: + vargs[n] = NewVariant(VT_I8, int64(v.(int64))) + case *int64: + vargs[n] = NewVariant(VT_I8|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*int64))))) + case uint64: + vargs[n] = NewVariant(VT_UI8, int64(uintptr(v.(uint64)))) + case *uint64: + vargs[n] = NewVariant(VT_UI8|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*uint64))))) + case int: + vargs[n] = NewVariant(VT_I4, int64(v.(int))) + case *int: + vargs[n] = NewVariant(VT_I4|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*int))))) + case uint: + vargs[n] = NewVariant(VT_UI4, int64(v.(uint))) + case *uint: + vargs[n] = NewVariant(VT_UI4|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*uint))))) + case float32: + vargs[n] = NewVariant(VT_R4, *(*int64)(unsafe.Pointer(&vv))) + case *float32: + vargs[n] = NewVariant(VT_R4|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*float32))))) + case float64: + vargs[n] = NewVariant(VT_R8, *(*int64)(unsafe.Pointer(&vv))) + case *float64: + vargs[n] = NewVariant(VT_R8|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*float64))))) + case *big.Int: + vargs[n] = NewVariant(VT_DECIMAL, v.(*big.Int).Int64()) + case string: + vargs[n] = NewVariant(VT_BSTR, int64(uintptr(unsafe.Pointer(SysAllocStringLen(v.(string)))))) + case *string: + vargs[n] = NewVariant(VT_BSTR|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*string))))) + case time.Time: + s := vv.Format("2006-01-02 15:04:05") + vargs[n] = NewVariant(VT_BSTR, int64(uintptr(unsafe.Pointer(SysAllocStringLen(s))))) + case *time.Time: + s := vv.Format("2006-01-02 15:04:05") + vargs[n] = NewVariant(VT_BSTR|VT_BYREF, int64(uintptr(unsafe.Pointer(&s)))) + case *IDispatch: + vargs[n] = NewVariant(VT_DISPATCH, int64(uintptr(unsafe.Pointer(v.(*IDispatch))))) + case **IDispatch: + vargs[n] = NewVariant(VT_DISPATCH|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(**IDispatch))))) + case nil: + vargs[n] = NewVariant(VT_NULL, 0) + case *VARIANT: + vargs[n] = NewVariant(VT_VARIANT|VT_BYREF, int64(uintptr(unsafe.Pointer(v.(*VARIANT))))) + case []byte: + safeByteArray := safeArrayFromByteSlice(v.([]byte)) + vargs[n] = NewVariant(VT_ARRAY|VT_UI1, int64(uintptr(unsafe.Pointer(safeByteArray)))) + defer VariantClear(&vargs[n]) + case []string: + safeByteArray := safeArrayFromStringSlice(v.([]string)) + vargs[n] = NewVariant(VT_ARRAY|VT_BSTR, int64(uintptr(unsafe.Pointer(safeByteArray)))) + defer VariantClear(&vargs[n]) + default: + panic("unknown type") + } + } + dispparams.rgvarg = uintptr(unsafe.Pointer(&vargs[0])) + dispparams.cArgs = uint32(len(params)) + } + + result = new(VARIANT) + var excepInfo EXCEPINFO + VariantInit(result) + hr, _, _ := syscall.Syscall9( + disp.VTable().Invoke, + 9, + uintptr(unsafe.Pointer(disp)), + uintptr(dispid), + uintptr(unsafe.Pointer(IID_NULL)), + uintptr(GetUserDefaultLCID()), + uintptr(dispatch), + uintptr(unsafe.Pointer(&dispparams)), + uintptr(unsafe.Pointer(result)), + uintptr(unsafe.Pointer(&excepInfo)), + 0) + if hr != 0 { + excepInfo.renderStrings() + excepInfo.Clear() + err = NewErrorWithSubError(hr, excepInfo.description, excepInfo) + } + for i, varg := range vargs { + n := len(params) - i - 1 + if varg.VT == VT_BSTR && varg.Val != 0 { + SysFreeString(((*int16)(unsafe.Pointer(uintptr(varg.Val))))) + } + if varg.VT == (VT_BSTR|VT_BYREF) && varg.Val != 0 { + *(params[n].(*string)) = LpOleStrToString(*(**uint16)(unsafe.Pointer(uintptr(varg.Val)))) + } + } + return +} diff --git a/vendor/github.com/go-ole/go-ole/ienumvariant.go b/vendor/github.com/go-ole/go-ole/ienumvariant.go new file mode 100644 index 000000000..243389754 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/ienumvariant.go @@ -0,0 +1,19 @@ +package ole + +import "unsafe" + +type IEnumVARIANT struct { + IUnknown +} + +type IEnumVARIANTVtbl struct { + IUnknownVtbl + Next uintptr + Skip uintptr + Reset uintptr + Clone uintptr +} + +func (v *IEnumVARIANT) VTable() *IEnumVARIANTVtbl { + return (*IEnumVARIANTVtbl)(unsafe.Pointer(v.RawVTable)) +} diff --git a/vendor/github.com/go-ole/go-ole/ienumvariant_func.go b/vendor/github.com/go-ole/go-ole/ienumvariant_func.go new file mode 100644 index 000000000..c14848199 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/ienumvariant_func.go @@ -0,0 +1,19 @@ +// +build !windows + +package ole + +func (enum *IEnumVARIANT) Clone() (*IEnumVARIANT, error) { + return nil, NewError(E_NOTIMPL) +} + +func (enum *IEnumVARIANT) Reset() error { + return NewError(E_NOTIMPL) +} + +func (enum *IEnumVARIANT) Skip(celt uint) error { + return NewError(E_NOTIMPL) +} + +func (enum *IEnumVARIANT) Next(celt uint) (VARIANT, uint, error) { + return NewVariant(VT_NULL, int64(0)), 0, NewError(E_NOTIMPL) +} diff --git a/vendor/github.com/go-ole/go-ole/ienumvariant_windows.go b/vendor/github.com/go-ole/go-ole/ienumvariant_windows.go new file mode 100644 index 000000000..4781f3b8b --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/ienumvariant_windows.go @@ -0,0 +1,63 @@ +// +build windows + +package ole + +import ( + "syscall" + "unsafe" +) + +func (enum *IEnumVARIANT) Clone() (cloned *IEnumVARIANT, err error) { + hr, _, _ := syscall.Syscall( + enum.VTable().Clone, + 2, + uintptr(unsafe.Pointer(enum)), + uintptr(unsafe.Pointer(&cloned)), + 0) + if hr != 0 { + err = NewError(hr) + } + return +} + +func (enum *IEnumVARIANT) Reset() (err error) { + hr, _, _ := syscall.Syscall( + enum.VTable().Reset, + 1, + uintptr(unsafe.Pointer(enum)), + 0, + 0) + if hr != 0 { + err = NewError(hr) + } + return +} + +func (enum *IEnumVARIANT) Skip(celt uint) (err error) { + hr, _, _ := syscall.Syscall( + enum.VTable().Skip, + 2, + uintptr(unsafe.Pointer(enum)), + uintptr(celt), + 0) + if hr != 0 { + err = NewError(hr) + } + return +} + +func (enum *IEnumVARIANT) Next(celt uint) (array VARIANT, length uint, err error) { + hr, _, _ := syscall.Syscall6( + enum.VTable().Next, + 4, + uintptr(unsafe.Pointer(enum)), + uintptr(celt), + uintptr(unsafe.Pointer(&array)), + uintptr(unsafe.Pointer(&length)), + 0, + 0) + if hr != 0 { + err = NewError(hr) + } + return +} diff --git a/vendor/github.com/go-ole/go-ole/iinspectable.go b/vendor/github.com/go-ole/go-ole/iinspectable.go new file mode 100644 index 000000000..f4a19e253 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iinspectable.go @@ -0,0 +1,18 @@ +package ole + +import "unsafe" + +type IInspectable struct { + IUnknown +} + +type IInspectableVtbl struct { + IUnknownVtbl + GetIIds uintptr + GetRuntimeClassName uintptr + GetTrustLevel uintptr +} + +func (v *IInspectable) VTable() *IInspectableVtbl { + return (*IInspectableVtbl)(unsafe.Pointer(v.RawVTable)) +} diff --git a/vendor/github.com/go-ole/go-ole/iinspectable_func.go b/vendor/github.com/go-ole/go-ole/iinspectable_func.go new file mode 100644 index 000000000..348829bf0 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iinspectable_func.go @@ -0,0 +1,15 @@ +// +build !windows + +package ole + +func (v *IInspectable) GetIids() ([]*GUID, error) { + return []*GUID{}, NewError(E_NOTIMPL) +} + +func (v *IInspectable) GetRuntimeClassName() (string, error) { + return "", NewError(E_NOTIMPL) +} + +func (v *IInspectable) GetTrustLevel() (uint32, error) { + return uint32(0), NewError(E_NOTIMPL) +} diff --git a/vendor/github.com/go-ole/go-ole/iinspectable_windows.go b/vendor/github.com/go-ole/go-ole/iinspectable_windows.go new file mode 100644 index 000000000..4519a4aa4 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iinspectable_windows.go @@ -0,0 +1,72 @@ +// +build windows + +package ole + +import ( + "bytes" + "encoding/binary" + "reflect" + "syscall" + "unsafe" +) + +func (v *IInspectable) GetIids() (iids []*GUID, err error) { + var count uint32 + var array uintptr + hr, _, _ := syscall.Syscall( + v.VTable().GetIIds, + 3, + uintptr(unsafe.Pointer(v)), + uintptr(unsafe.Pointer(&count)), + uintptr(unsafe.Pointer(&array))) + if hr != 0 { + err = NewError(hr) + return + } + defer CoTaskMemFree(array) + + iids = make([]*GUID, count) + byteCount := count * uint32(unsafe.Sizeof(GUID{})) + slicehdr := reflect.SliceHeader{Data: array, Len: int(byteCount), Cap: int(byteCount)} + byteSlice := *(*[]byte)(unsafe.Pointer(&slicehdr)) + reader := bytes.NewReader(byteSlice) + for i := range iids { + guid := GUID{} + err = binary.Read(reader, binary.LittleEndian, &guid) + if err != nil { + return + } + iids[i] = &guid + } + return +} + +func (v *IInspectable) GetRuntimeClassName() (s string, err error) { + var hstring HString + hr, _, _ := syscall.Syscall( + v.VTable().GetRuntimeClassName, + 2, + uintptr(unsafe.Pointer(v)), + uintptr(unsafe.Pointer(&hstring)), + 0) + if hr != 0 { + err = NewError(hr) + return + } + s = hstring.String() + DeleteHString(hstring) + return +} + +func (v *IInspectable) GetTrustLevel() (level uint32, err error) { + hr, _, _ := syscall.Syscall( + v.VTable().GetTrustLevel, + 2, + uintptr(unsafe.Pointer(v)), + uintptr(unsafe.Pointer(&level)), + 0) + if hr != 0 { + err = NewError(hr) + } + return +} diff --git a/vendor/github.com/go-ole/go-ole/iprovideclassinfo.go b/vendor/github.com/go-ole/go-ole/iprovideclassinfo.go new file mode 100644 index 000000000..25f3a6f24 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iprovideclassinfo.go @@ -0,0 +1,21 @@ +package ole + +import "unsafe" + +type IProvideClassInfo struct { + IUnknown +} + +type IProvideClassInfoVtbl struct { + IUnknownVtbl + GetClassInfo uintptr +} + +func (v *IProvideClassInfo) VTable() *IProvideClassInfoVtbl { + return (*IProvideClassInfoVtbl)(unsafe.Pointer(v.RawVTable)) +} + +func (v *IProvideClassInfo) GetClassInfo() (cinfo *ITypeInfo, err error) { + cinfo, err = getClassInfo(v) + return +} diff --git a/vendor/github.com/go-ole/go-ole/iprovideclassinfo_func.go b/vendor/github.com/go-ole/go-ole/iprovideclassinfo_func.go new file mode 100644 index 000000000..7e3cb63ea --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iprovideclassinfo_func.go @@ -0,0 +1,7 @@ +// +build !windows + +package ole + +func getClassInfo(disp *IProvideClassInfo) (tinfo *ITypeInfo, err error) { + return nil, NewError(E_NOTIMPL) +} diff --git a/vendor/github.com/go-ole/go-ole/iprovideclassinfo_windows.go b/vendor/github.com/go-ole/go-ole/iprovideclassinfo_windows.go new file mode 100644 index 000000000..2ad016394 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iprovideclassinfo_windows.go @@ -0,0 +1,21 @@ +// +build windows + +package ole + +import ( + "syscall" + "unsafe" +) + +func getClassInfo(disp *IProvideClassInfo) (tinfo *ITypeInfo, err error) { + hr, _, _ := syscall.Syscall( + disp.VTable().GetClassInfo, + 2, + uintptr(unsafe.Pointer(disp)), + uintptr(unsafe.Pointer(&tinfo)), + 0) + if hr != 0 { + err = NewError(hr) + } + return +} diff --git a/vendor/github.com/go-ole/go-ole/itypeinfo.go b/vendor/github.com/go-ole/go-ole/itypeinfo.go new file mode 100644 index 000000000..dd3c5e21b --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/itypeinfo.go @@ -0,0 +1,34 @@ +package ole + +import "unsafe" + +type ITypeInfo struct { + IUnknown +} + +type ITypeInfoVtbl struct { + IUnknownVtbl + GetTypeAttr uintptr + GetTypeComp uintptr + GetFuncDesc uintptr + GetVarDesc uintptr + GetNames uintptr + GetRefTypeOfImplType uintptr + GetImplTypeFlags uintptr + GetIDsOfNames uintptr + Invoke uintptr + GetDocumentation uintptr + GetDllEntry uintptr + GetRefTypeInfo uintptr + AddressOfMember uintptr + CreateInstance uintptr + GetMops uintptr + GetContainingTypeLib uintptr + ReleaseTypeAttr uintptr + ReleaseFuncDesc uintptr + ReleaseVarDesc uintptr +} + +func (v *ITypeInfo) VTable() *ITypeInfoVtbl { + return (*ITypeInfoVtbl)(unsafe.Pointer(v.RawVTable)) +} diff --git a/vendor/github.com/go-ole/go-ole/itypeinfo_func.go b/vendor/github.com/go-ole/go-ole/itypeinfo_func.go new file mode 100644 index 000000000..8364a659b --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/itypeinfo_func.go @@ -0,0 +1,7 @@ +// +build !windows + +package ole + +func (v *ITypeInfo) GetTypeAttr() (*TYPEATTR, error) { + return nil, NewError(E_NOTIMPL) +} diff --git a/vendor/github.com/go-ole/go-ole/itypeinfo_windows.go b/vendor/github.com/go-ole/go-ole/itypeinfo_windows.go new file mode 100644 index 000000000..54782b3da --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/itypeinfo_windows.go @@ -0,0 +1,21 @@ +// +build windows + +package ole + +import ( + "syscall" + "unsafe" +) + +func (v *ITypeInfo) GetTypeAttr() (tattr *TYPEATTR, err error) { + hr, _, _ := syscall.Syscall( + uintptr(v.VTable().GetTypeAttr), + 2, + uintptr(unsafe.Pointer(v)), + uintptr(unsafe.Pointer(&tattr)), + 0) + if hr != 0 { + err = NewError(hr) + } + return +} diff --git a/vendor/github.com/go-ole/go-ole/iunknown.go b/vendor/github.com/go-ole/go-ole/iunknown.go new file mode 100644 index 000000000..108f28ea6 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iunknown.go @@ -0,0 +1,57 @@ +package ole + +import "unsafe" + +type IUnknown struct { + RawVTable *interface{} +} + +type IUnknownVtbl struct { + QueryInterface uintptr + AddRef uintptr + Release uintptr +} + +type UnknownLike interface { + QueryInterface(iid *GUID) (disp *IDispatch, err error) + AddRef() int32 + Release() int32 +} + +func (v *IUnknown) VTable() *IUnknownVtbl { + return (*IUnknownVtbl)(unsafe.Pointer(v.RawVTable)) +} + +func (v *IUnknown) PutQueryInterface(interfaceID *GUID, obj interface{}) error { + return reflectQueryInterface(v, v.VTable().QueryInterface, interfaceID, obj) +} + +func (v *IUnknown) IDispatch(interfaceID *GUID) (dispatch *IDispatch, err error) { + err = v.PutQueryInterface(interfaceID, &dispatch) + return +} + +func (v *IUnknown) IEnumVARIANT(interfaceID *GUID) (enum *IEnumVARIANT, err error) { + err = v.PutQueryInterface(interfaceID, &enum) + return +} + +func (v *IUnknown) QueryInterface(iid *GUID) (*IDispatch, error) { + return queryInterface(v, iid) +} + +func (v *IUnknown) MustQueryInterface(iid *GUID) (disp *IDispatch) { + unk, err := queryInterface(v, iid) + if err != nil { + panic(err) + } + return unk +} + +func (v *IUnknown) AddRef() int32 { + return addRef(v) +} + +func (v *IUnknown) Release() int32 { + return release(v) +} diff --git a/vendor/github.com/go-ole/go-ole/iunknown_func.go b/vendor/github.com/go-ole/go-ole/iunknown_func.go new file mode 100644 index 000000000..d0a62cfd7 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iunknown_func.go @@ -0,0 +1,19 @@ +// +build !windows + +package ole + +func reflectQueryInterface(self interface{}, method uintptr, interfaceID *GUID, obj interface{}) (err error) { + return NewError(E_NOTIMPL) +} + +func queryInterface(unk *IUnknown, iid *GUID) (disp *IDispatch, err error) { + return nil, NewError(E_NOTIMPL) +} + +func addRef(unk *IUnknown) int32 { + return 0 +} + +func release(unk *IUnknown) int32 { + return 0 +} diff --git a/vendor/github.com/go-ole/go-ole/iunknown_windows.go b/vendor/github.com/go-ole/go-ole/iunknown_windows.go new file mode 100644 index 000000000..ede5bb8c1 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/iunknown_windows.go @@ -0,0 +1,58 @@ +// +build windows + +package ole + +import ( + "reflect" + "syscall" + "unsafe" +) + +func reflectQueryInterface(self interface{}, method uintptr, interfaceID *GUID, obj interface{}) (err error) { + selfValue := reflect.ValueOf(self).Elem() + objValue := reflect.ValueOf(obj).Elem() + + hr, _, _ := syscall.Syscall( + method, + 3, + selfValue.UnsafeAddr(), + uintptr(unsafe.Pointer(interfaceID)), + objValue.Addr().Pointer()) + if hr != 0 { + err = NewError(hr) + } + return +} + +func queryInterface(unk *IUnknown, iid *GUID) (disp *IDispatch, err error) { + hr, _, _ := syscall.Syscall( + unk.VTable().QueryInterface, + 3, + uintptr(unsafe.Pointer(unk)), + uintptr(unsafe.Pointer(iid)), + uintptr(unsafe.Pointer(&disp))) + if hr != 0 { + err = NewError(hr) + } + return +} + +func addRef(unk *IUnknown) int32 { + ret, _, _ := syscall.Syscall( + unk.VTable().AddRef, + 1, + uintptr(unsafe.Pointer(unk)), + 0, + 0) + return int32(ret) +} + +func release(unk *IUnknown) int32 { + ret, _, _ := syscall.Syscall( + unk.VTable().Release, + 1, + uintptr(unsafe.Pointer(unk)), + 0, + 0) + return int32(ret) +} diff --git a/vendor/github.com/go-ole/go-ole/ole.go b/vendor/github.com/go-ole/go-ole/ole.go new file mode 100644 index 000000000..dbd132bbd --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/ole.go @@ -0,0 +1,190 @@ +package ole + +import ( + "fmt" + "strings" + "unsafe" +) + +// DISPPARAMS are the arguments that passed to methods or property. +type DISPPARAMS struct { + rgvarg uintptr + rgdispidNamedArgs uintptr + cArgs uint32 + cNamedArgs uint32 +} + +// EXCEPINFO defines exception info. +type EXCEPINFO struct { + wCode uint16 + wReserved uint16 + bstrSource *uint16 + bstrDescription *uint16 + bstrHelpFile *uint16 + dwHelpContext uint32 + pvReserved uintptr + pfnDeferredFillIn uintptr + scode uint32 + + // Go-specific part. Don't move upper cos it'll break structure layout for native code. + rendered bool + source string + description string + helpFile string +} + +// renderStrings translates BSTR strings to Go ones so `.Error` and `.String` +// could be safely called after `.Clear`. We need this when we can't rely on +// a caller to call `.Clear`. +func (e *EXCEPINFO) renderStrings() { + e.rendered = true + if e.bstrSource == nil { + e.source = "" + } else { + e.source = BstrToString(e.bstrSource) + } + if e.bstrDescription == nil { + e.description = "" + } else { + e.description = BstrToString(e.bstrDescription) + } + if e.bstrHelpFile == nil { + e.helpFile = "" + } else { + e.helpFile = BstrToString(e.bstrHelpFile) + } +} + +// Clear frees BSTR strings inside an EXCEPINFO and set it to NULL. +func (e *EXCEPINFO) Clear() { + freeBSTR := func(s *uint16) { + // SysFreeString don't return errors and is safe for call's on NULL. + // https://docs.microsoft.com/en-us/windows/win32/api/oleauto/nf-oleauto-sysfreestring + _ = SysFreeString((*int16)(unsafe.Pointer(s))) + } + + if e.bstrSource != nil { + freeBSTR(e.bstrSource) + e.bstrSource = nil + } + if e.bstrDescription != nil { + freeBSTR(e.bstrDescription) + e.bstrDescription = nil + } + if e.bstrHelpFile != nil { + freeBSTR(e.bstrHelpFile) + e.bstrHelpFile = nil + } +} + +// WCode return wCode in EXCEPINFO. +func (e EXCEPINFO) WCode() uint16 { + return e.wCode +} + +// SCODE return scode in EXCEPINFO. +func (e EXCEPINFO) SCODE() uint32 { + return e.scode +} + +// String convert EXCEPINFO to string. +func (e EXCEPINFO) String() string { + if !e.rendered { + e.renderStrings() + } + return fmt.Sprintf( + "wCode: %#x, bstrSource: %v, bstrDescription: %v, bstrHelpFile: %v, dwHelpContext: %#x, scode: %#x", + e.wCode, e.source, e.description, e.helpFile, e.dwHelpContext, e.scode, + ) +} + +// Error implements error interface and returns error string. +func (e EXCEPINFO) Error() string { + if !e.rendered { + e.renderStrings() + } + + if e.description != "" { + return strings.TrimSpace(e.description) + } + + code := e.scode + if e.wCode != 0 { + code = uint32(e.wCode) + } + return fmt.Sprintf("%v: %#x", e.source, code) +} + +// PARAMDATA defines parameter data type. +type PARAMDATA struct { + Name *int16 + Vt uint16 +} + +// METHODDATA defines method info. +type METHODDATA struct { + Name *uint16 + Data *PARAMDATA + Dispid int32 + Meth uint32 + CC int32 + CArgs uint32 + Flags uint16 + VtReturn uint32 +} + +// INTERFACEDATA defines interface info. +type INTERFACEDATA struct { + MethodData *METHODDATA + CMembers uint32 +} + +// Point is 2D vector type. +type Point struct { + X int32 + Y int32 +} + +// Msg is message between processes. +type Msg struct { + Hwnd uint32 + Message uint32 + Wparam int32 + Lparam int32 + Time uint32 + Pt Point +} + +// TYPEDESC defines data type. +type TYPEDESC struct { + Hreftype uint32 + VT uint16 +} + +// IDLDESC defines IDL info. +type IDLDESC struct { + DwReserved uint32 + WIDLFlags uint16 +} + +// TYPEATTR defines type info. +type TYPEATTR struct { + Guid GUID + Lcid uint32 + dwReserved uint32 + MemidConstructor int32 + MemidDestructor int32 + LpstrSchema *uint16 + CbSizeInstance uint32 + Typekind int32 + CFuncs uint16 + CVars uint16 + CImplTypes uint16 + CbSizeVft uint16 + CbAlignment uint16 + WTypeFlags uint16 + WMajorVerNum uint16 + WMinorVerNum uint16 + TdescAlias TYPEDESC + IdldescType IDLDESC +} diff --git a/vendor/github.com/go-ole/go-ole/oleutil/connection.go b/vendor/github.com/go-ole/go-ole/oleutil/connection.go new file mode 100644 index 000000000..60df73cda --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/oleutil/connection.go @@ -0,0 +1,100 @@ +// +build windows + +package oleutil + +import ( + "reflect" + "unsafe" + + ole "github.com/go-ole/go-ole" +) + +type stdDispatch struct { + lpVtbl *stdDispatchVtbl + ref int32 + iid *ole.GUID + iface interface{} + funcMap map[string]int32 +} + +type stdDispatchVtbl struct { + pQueryInterface uintptr + pAddRef uintptr + pRelease uintptr + pGetTypeInfoCount uintptr + pGetTypeInfo uintptr + pGetIDsOfNames uintptr + pInvoke uintptr +} + +func dispQueryInterface(this *ole.IUnknown, iid *ole.GUID, punk **ole.IUnknown) uint32 { + pthis := (*stdDispatch)(unsafe.Pointer(this)) + *punk = nil + if ole.IsEqualGUID(iid, ole.IID_IUnknown) || + ole.IsEqualGUID(iid, ole.IID_IDispatch) { + dispAddRef(this) + *punk = this + return ole.S_OK + } + if ole.IsEqualGUID(iid, pthis.iid) { + dispAddRef(this) + *punk = this + return ole.S_OK + } + return ole.E_NOINTERFACE +} + +func dispAddRef(this *ole.IUnknown) int32 { + pthis := (*stdDispatch)(unsafe.Pointer(this)) + pthis.ref++ + return pthis.ref +} + +func dispRelease(this *ole.IUnknown) int32 { + pthis := (*stdDispatch)(unsafe.Pointer(this)) + pthis.ref-- + return pthis.ref +} + +func dispGetIDsOfNames(this *ole.IUnknown, iid *ole.GUID, wnames []*uint16, namelen int, lcid int, pdisp []int32) uintptr { + pthis := (*stdDispatch)(unsafe.Pointer(this)) + names := make([]string, len(wnames)) + for i := 0; i < len(names); i++ { + names[i] = ole.LpOleStrToString(wnames[i]) + } + for n := 0; n < namelen; n++ { + if id, ok := pthis.funcMap[names[n]]; ok { + pdisp[n] = id + } + } + return ole.S_OK +} + +func dispGetTypeInfoCount(pcount *int) uintptr { + if pcount != nil { + *pcount = 0 + } + return ole.S_OK +} + +func dispGetTypeInfo(ptypeif *uintptr) uintptr { + return ole.E_NOTIMPL +} + +func dispInvoke(this *ole.IDispatch, dispid int32, riid *ole.GUID, lcid int, flags int16, dispparams *ole.DISPPARAMS, result *ole.VARIANT, pexcepinfo *ole.EXCEPINFO, nerr *uint) uintptr { + pthis := (*stdDispatch)(unsafe.Pointer(this)) + found := "" + for name, id := range pthis.funcMap { + if id == dispid { + found = name + } + } + if found != "" { + rv := reflect.ValueOf(pthis.iface).Elem() + rm := rv.MethodByName(found) + rr := rm.Call([]reflect.Value{}) + println(len(rr)) + return ole.S_OK + } + return ole.E_NOTIMPL +} diff --git a/vendor/github.com/go-ole/go-ole/oleutil/connection_func.go b/vendor/github.com/go-ole/go-ole/oleutil/connection_func.go new file mode 100644 index 000000000..8818fb827 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/oleutil/connection_func.go @@ -0,0 +1,10 @@ +// +build !windows + +package oleutil + +import ole "github.com/go-ole/go-ole" + +// ConnectObject creates a connection point between two services for communication. +func ConnectObject(disp *ole.IDispatch, iid *ole.GUID, idisp interface{}) (uint32, error) { + return 0, ole.NewError(ole.E_NOTIMPL) +} diff --git a/vendor/github.com/go-ole/go-ole/oleutil/connection_windows.go b/vendor/github.com/go-ole/go-ole/oleutil/connection_windows.go new file mode 100644 index 000000000..ab9c0d8dc --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/oleutil/connection_windows.go @@ -0,0 +1,58 @@ +// +build windows + +package oleutil + +import ( + "reflect" + "syscall" + "unsafe" + + ole "github.com/go-ole/go-ole" +) + +// ConnectObject creates a connection point between two services for communication. +func ConnectObject(disp *ole.IDispatch, iid *ole.GUID, idisp interface{}) (cookie uint32, err error) { + unknown, err := disp.QueryInterface(ole.IID_IConnectionPointContainer) + if err != nil { + return + } + + container := (*ole.IConnectionPointContainer)(unsafe.Pointer(unknown)) + var point *ole.IConnectionPoint + err = container.FindConnectionPoint(iid, &point) + if err != nil { + return + } + if edisp, ok := idisp.(*ole.IUnknown); ok { + cookie, err = point.Advise(edisp) + container.Release() + if err != nil { + return + } + } + rv := reflect.ValueOf(disp).Elem() + if rv.Type().Kind() == reflect.Struct { + dest := &stdDispatch{} + dest.lpVtbl = &stdDispatchVtbl{} + dest.lpVtbl.pQueryInterface = syscall.NewCallback(dispQueryInterface) + dest.lpVtbl.pAddRef = syscall.NewCallback(dispAddRef) + dest.lpVtbl.pRelease = syscall.NewCallback(dispRelease) + dest.lpVtbl.pGetTypeInfoCount = syscall.NewCallback(dispGetTypeInfoCount) + dest.lpVtbl.pGetTypeInfo = syscall.NewCallback(dispGetTypeInfo) + dest.lpVtbl.pGetIDsOfNames = syscall.NewCallback(dispGetIDsOfNames) + dest.lpVtbl.pInvoke = syscall.NewCallback(dispInvoke) + dest.iface = disp + dest.iid = iid + cookie, err = point.Advise((*ole.IUnknown)(unsafe.Pointer(dest))) + container.Release() + if err != nil { + point.Release() + return + } + return + } + + container.Release() + + return 0, ole.NewError(ole.E_INVALIDARG) +} diff --git a/vendor/github.com/go-ole/go-ole/oleutil/go-get.go b/vendor/github.com/go-ole/go-ole/oleutil/go-get.go new file mode 100644 index 000000000..58347628f --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/oleutil/go-get.go @@ -0,0 +1,6 @@ +// This file is here so go get succeeds as without it errors with: +// no buildable Go source files in ... +// +// +build !windows + +package oleutil diff --git a/vendor/github.com/go-ole/go-ole/oleutil/oleutil.go b/vendor/github.com/go-ole/go-ole/oleutil/oleutil.go new file mode 100644 index 000000000..f7803c1e3 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/oleutil/oleutil.go @@ -0,0 +1,127 @@ +package oleutil + +import ole "github.com/go-ole/go-ole" + +// ClassIDFrom retrieves class ID whether given is program ID or application string. +func ClassIDFrom(programID string) (classID *ole.GUID, err error) { + return ole.ClassIDFrom(programID) +} + +// CreateObject creates object from programID based on interface type. +// +// Only supports IUnknown. +// +// Program ID can be either program ID or application string. +func CreateObject(programID string) (unknown *ole.IUnknown, err error) { + classID, err := ole.ClassIDFrom(programID) + if err != nil { + return + } + + unknown, err = ole.CreateInstance(classID, ole.IID_IUnknown) + if err != nil { + return + } + + return +} + +// GetActiveObject retrieves active object for program ID and interface ID based +// on interface type. +// +// Only supports IUnknown. +// +// Program ID can be either program ID or application string. +func GetActiveObject(programID string) (unknown *ole.IUnknown, err error) { + classID, err := ole.ClassIDFrom(programID) + if err != nil { + return + } + + unknown, err = ole.GetActiveObject(classID, ole.IID_IUnknown) + if err != nil { + return + } + + return +} + +// CallMethod calls method on IDispatch with parameters. +func CallMethod(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT, err error) { + return disp.InvokeWithOptionalArgs(name, ole.DISPATCH_METHOD, params) +} + +// MustCallMethod calls method on IDispatch with parameters or panics. +func MustCallMethod(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT) { + r, err := CallMethod(disp, name, params...) + if err != nil { + panic(err.Error()) + } + return r +} + +// GetProperty retrieves property from IDispatch. +func GetProperty(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT, err error) { + return disp.InvokeWithOptionalArgs(name, ole.DISPATCH_PROPERTYGET, params) +} + +// MustGetProperty retrieves property from IDispatch or panics. +func MustGetProperty(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT) { + r, err := GetProperty(disp, name, params...) + if err != nil { + panic(err.Error()) + } + return r +} + +// PutProperty mutates property. +func PutProperty(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT, err error) { + return disp.InvokeWithOptionalArgs(name, ole.DISPATCH_PROPERTYPUT, params) +} + +// MustPutProperty mutates property or panics. +func MustPutProperty(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT) { + r, err := PutProperty(disp, name, params...) + if err != nil { + panic(err.Error()) + } + return r +} + +// PutPropertyRef mutates property reference. +func PutPropertyRef(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT, err error) { + return disp.InvokeWithOptionalArgs(name, ole.DISPATCH_PROPERTYPUTREF, params) +} + +// MustPutPropertyRef mutates property reference or panics. +func MustPutPropertyRef(disp *ole.IDispatch, name string, params ...interface{}) (result *ole.VARIANT) { + r, err := PutPropertyRef(disp, name, params...) + if err != nil { + panic(err.Error()) + } + return r +} + +func ForEach(disp *ole.IDispatch, f func(v *ole.VARIANT) error) error { + newEnum, err := disp.GetProperty("_NewEnum") + if err != nil { + return err + } + defer newEnum.Clear() + + enum, err := newEnum.ToIUnknown().IEnumVARIANT(ole.IID_IEnumVariant) + if err != nil { + return err + } + defer enum.Release() + + for item, length, err := enum.Next(1); length > 0; item, length, err = enum.Next(1) { + if err != nil { + return err + } + if ferr := f(&item); ferr != nil { + return ferr + } + } + return nil +} diff --git a/vendor/github.com/go-ole/go-ole/safearray.go b/vendor/github.com/go-ole/go-ole/safearray.go new file mode 100644 index 000000000..a5201b56c --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/safearray.go @@ -0,0 +1,27 @@ +// Package is meant to retrieve and process safe array data returned from COM. + +package ole + +// SafeArrayBound defines the SafeArray boundaries. +type SafeArrayBound struct { + Elements uint32 + LowerBound int32 +} + +// SafeArray is how COM handles arrays. +type SafeArray struct { + Dimensions uint16 + FeaturesFlag uint16 + ElementsSize uint32 + LocksAmount uint32 + Data uint32 + Bounds [16]byte +} + +// SAFEARRAY is obsolete, exists for backwards compatibility. +// Use SafeArray +type SAFEARRAY SafeArray + +// SAFEARRAYBOUND is obsolete, exists for backwards compatibility. +// Use SafeArrayBound +type SAFEARRAYBOUND SafeArrayBound diff --git a/vendor/github.com/go-ole/go-ole/safearray_func.go b/vendor/github.com/go-ole/go-ole/safearray_func.go new file mode 100644 index 000000000..0dee670ce --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/safearray_func.go @@ -0,0 +1,211 @@ +// +build !windows + +package ole + +import ( + "unsafe" +) + +// safeArrayAccessData returns raw array pointer. +// +// AKA: SafeArrayAccessData in Windows API. +func safeArrayAccessData(safearray *SafeArray) (uintptr, error) { + return uintptr(0), NewError(E_NOTIMPL) +} + +// safeArrayUnaccessData releases raw array. +// +// AKA: SafeArrayUnaccessData in Windows API. +func safeArrayUnaccessData(safearray *SafeArray) error { + return NewError(E_NOTIMPL) +} + +// safeArrayAllocData allocates SafeArray. +// +// AKA: SafeArrayAllocData in Windows API. +func safeArrayAllocData(safearray *SafeArray) error { + return NewError(E_NOTIMPL) +} + +// safeArrayAllocDescriptor allocates SafeArray. +// +// AKA: SafeArrayAllocDescriptor in Windows API. +func safeArrayAllocDescriptor(dimensions uint32) (*SafeArray, error) { + return nil, NewError(E_NOTIMPL) +} + +// safeArrayAllocDescriptorEx allocates SafeArray. +// +// AKA: SafeArrayAllocDescriptorEx in Windows API. +func safeArrayAllocDescriptorEx(variantType VT, dimensions uint32) (*SafeArray, error) { + return nil, NewError(E_NOTIMPL) +} + +// safeArrayCopy returns copy of SafeArray. +// +// AKA: SafeArrayCopy in Windows API. +func safeArrayCopy(original *SafeArray) (*SafeArray, error) { + return nil, NewError(E_NOTIMPL) +} + +// safeArrayCopyData duplicates SafeArray into another SafeArray object. +// +// AKA: SafeArrayCopyData in Windows API. +func safeArrayCopyData(original *SafeArray, duplicate *SafeArray) error { + return NewError(E_NOTIMPL) +} + +// safeArrayCreate creates SafeArray. +// +// AKA: SafeArrayCreate in Windows API. +func safeArrayCreate(variantType VT, dimensions uint32, bounds *SafeArrayBound) (*SafeArray, error) { + return nil, NewError(E_NOTIMPL) +} + +// safeArrayCreateEx creates SafeArray. +// +// AKA: SafeArrayCreateEx in Windows API. +func safeArrayCreateEx(variantType VT, dimensions uint32, bounds *SafeArrayBound, extra uintptr) (*SafeArray, error) { + return nil, NewError(E_NOTIMPL) +} + +// safeArrayCreateVector creates SafeArray. +// +// AKA: SafeArrayCreateVector in Windows API. +func safeArrayCreateVector(variantType VT, lowerBound int32, length uint32) (*SafeArray, error) { + return nil, NewError(E_NOTIMPL) +} + +// safeArrayCreateVectorEx creates SafeArray. +// +// AKA: SafeArrayCreateVectorEx in Windows API. +func safeArrayCreateVectorEx(variantType VT, lowerBound int32, length uint32, extra uintptr) (*SafeArray, error) { + return nil, NewError(E_NOTIMPL) +} + +// safeArrayDestroy destroys SafeArray object. +// +// AKA: SafeArrayDestroy in Windows API. +func safeArrayDestroy(safearray *SafeArray) error { + return NewError(E_NOTIMPL) +} + +// safeArrayDestroyData destroys SafeArray object. +// +// AKA: SafeArrayDestroyData in Windows API. +func safeArrayDestroyData(safearray *SafeArray) error { + return NewError(E_NOTIMPL) +} + +// safeArrayDestroyDescriptor destroys SafeArray object. +// +// AKA: SafeArrayDestroyDescriptor in Windows API. +func safeArrayDestroyDescriptor(safearray *SafeArray) error { + return NewError(E_NOTIMPL) +} + +// safeArrayGetDim is the amount of dimensions in the SafeArray. +// +// SafeArrays may have multiple dimensions. Meaning, it could be +// multidimensional array. +// +// AKA: SafeArrayGetDim in Windows API. +func safeArrayGetDim(safearray *SafeArray) (*uint32, error) { + u := uint32(0) + return &u, NewError(E_NOTIMPL) +} + +// safeArrayGetElementSize is the element size in bytes. +// +// AKA: SafeArrayGetElemsize in Windows API. +func safeArrayGetElementSize(safearray *SafeArray) (*uint32, error) { + u := uint32(0) + return &u, NewError(E_NOTIMPL) +} + +// safeArrayGetElement retrieves element at given index. +func safeArrayGetElement(safearray *SafeArray, index int32, pv unsafe.Pointer) error { + return NewError(E_NOTIMPL) +} + +// safeArrayGetElement retrieves element at given index and converts to string. +func safeArrayGetElementString(safearray *SafeArray, index int32) (string, error) { + return "", NewError(E_NOTIMPL) +} + +// safeArrayGetIID is the InterfaceID of the elements in the SafeArray. +// +// AKA: SafeArrayGetIID in Windows API. +func safeArrayGetIID(safearray *SafeArray) (*GUID, error) { + return nil, NewError(E_NOTIMPL) +} + +// safeArrayGetLBound returns lower bounds of SafeArray. +// +// SafeArrays may have multiple dimensions. Meaning, it could be +// multidimensional array. +// +// AKA: SafeArrayGetLBound in Windows API. +func safeArrayGetLBound(safearray *SafeArray, dimension uint32) (int32, error) { + return int32(0), NewError(E_NOTIMPL) +} + +// safeArrayGetUBound returns upper bounds of SafeArray. +// +// SafeArrays may have multiple dimensions. Meaning, it could be +// multidimensional array. +// +// AKA: SafeArrayGetUBound in Windows API. +func safeArrayGetUBound(safearray *SafeArray, dimension uint32) (int32, error) { + return int32(0), NewError(E_NOTIMPL) +} + +// safeArrayGetVartype returns data type of SafeArray. +// +// AKA: SafeArrayGetVartype in Windows API. +func safeArrayGetVartype(safearray *SafeArray) (uint16, error) { + return uint16(0), NewError(E_NOTIMPL) +} + +// safeArrayLock locks SafeArray for reading to modify SafeArray. +// +// This must be called during some calls to ensure that another process does not +// read or write to the SafeArray during editing. +// +// AKA: SafeArrayLock in Windows API. +func safeArrayLock(safearray *SafeArray) error { + return NewError(E_NOTIMPL) +} + +// safeArrayUnlock unlocks SafeArray for reading. +// +// AKA: SafeArrayUnlock in Windows API. +func safeArrayUnlock(safearray *SafeArray) error { + return NewError(E_NOTIMPL) +} + +// safeArrayPutElement stores the data element at the specified location in the +// array. +// +// AKA: SafeArrayPutElement in Windows API. +func safeArrayPutElement(safearray *SafeArray, index int64, element uintptr) error { + return NewError(E_NOTIMPL) +} + +// safeArrayGetRecordInfo accesses IRecordInfo info for custom types. +// +// AKA: SafeArrayGetRecordInfo in Windows API. +// +// XXX: Must implement IRecordInfo interface for this to return. +func safeArrayGetRecordInfo(safearray *SafeArray) (interface{}, error) { + return nil, NewError(E_NOTIMPL) +} + +// safeArraySetRecordInfo mutates IRecordInfo info for custom types. +// +// AKA: SafeArraySetRecordInfo in Windows API. +// +// XXX: Must implement IRecordInfo interface for this to return. +func safeArraySetRecordInfo(safearray *SafeArray, recordInfo interface{}) error { + return NewError(E_NOTIMPL) +} diff --git a/vendor/github.com/go-ole/go-ole/safearray_windows.go b/vendor/github.com/go-ole/go-ole/safearray_windows.go new file mode 100644 index 000000000..0c1b3a10f --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/safearray_windows.go @@ -0,0 +1,337 @@ +// +build windows + +package ole + +import ( + "unsafe" +) + +var ( + procSafeArrayAccessData = modoleaut32.NewProc("SafeArrayAccessData") + procSafeArrayAllocData = modoleaut32.NewProc("SafeArrayAllocData") + procSafeArrayAllocDescriptor = modoleaut32.NewProc("SafeArrayAllocDescriptor") + procSafeArrayAllocDescriptorEx = modoleaut32.NewProc("SafeArrayAllocDescriptorEx") + procSafeArrayCopy = modoleaut32.NewProc("SafeArrayCopy") + procSafeArrayCopyData = modoleaut32.NewProc("SafeArrayCopyData") + procSafeArrayCreate = modoleaut32.NewProc("SafeArrayCreate") + procSafeArrayCreateEx = modoleaut32.NewProc("SafeArrayCreateEx") + procSafeArrayCreateVector = modoleaut32.NewProc("SafeArrayCreateVector") + procSafeArrayCreateVectorEx = modoleaut32.NewProc("SafeArrayCreateVectorEx") + procSafeArrayDestroy = modoleaut32.NewProc("SafeArrayDestroy") + procSafeArrayDestroyData = modoleaut32.NewProc("SafeArrayDestroyData") + procSafeArrayDestroyDescriptor = modoleaut32.NewProc("SafeArrayDestroyDescriptor") + procSafeArrayGetDim = modoleaut32.NewProc("SafeArrayGetDim") + procSafeArrayGetElement = modoleaut32.NewProc("SafeArrayGetElement") + procSafeArrayGetElemsize = modoleaut32.NewProc("SafeArrayGetElemsize") + procSafeArrayGetIID = modoleaut32.NewProc("SafeArrayGetIID") + procSafeArrayGetLBound = modoleaut32.NewProc("SafeArrayGetLBound") + procSafeArrayGetUBound = modoleaut32.NewProc("SafeArrayGetUBound") + procSafeArrayGetVartype = modoleaut32.NewProc("SafeArrayGetVartype") + procSafeArrayLock = modoleaut32.NewProc("SafeArrayLock") + procSafeArrayPtrOfIndex = modoleaut32.NewProc("SafeArrayPtrOfIndex") + procSafeArrayUnaccessData = modoleaut32.NewProc("SafeArrayUnaccessData") + procSafeArrayUnlock = modoleaut32.NewProc("SafeArrayUnlock") + procSafeArrayPutElement = modoleaut32.NewProc("SafeArrayPutElement") + //procSafeArrayRedim = modoleaut32.NewProc("SafeArrayRedim") // TODO + //procSafeArraySetIID = modoleaut32.NewProc("SafeArraySetIID") // TODO + procSafeArrayGetRecordInfo = modoleaut32.NewProc("SafeArrayGetRecordInfo") + procSafeArraySetRecordInfo = modoleaut32.NewProc("SafeArraySetRecordInfo") +) + +// safeArrayAccessData returns raw array pointer. +// +// AKA: SafeArrayAccessData in Windows API. +// Todo: Test +func safeArrayAccessData(safearray *SafeArray) (element uintptr, err error) { + err = convertHresultToError( + procSafeArrayAccessData.Call( + uintptr(unsafe.Pointer(safearray)), + uintptr(unsafe.Pointer(&element)))) + return +} + +// safeArrayUnaccessData releases raw array. +// +// AKA: SafeArrayUnaccessData in Windows API. +func safeArrayUnaccessData(safearray *SafeArray) (err error) { + err = convertHresultToError(procSafeArrayUnaccessData.Call(uintptr(unsafe.Pointer(safearray)))) + return +} + +// safeArrayAllocData allocates SafeArray. +// +// AKA: SafeArrayAllocData in Windows API. +func safeArrayAllocData(safearray *SafeArray) (err error) { + err = convertHresultToError(procSafeArrayAllocData.Call(uintptr(unsafe.Pointer(safearray)))) + return +} + +// safeArrayAllocDescriptor allocates SafeArray. +// +// AKA: SafeArrayAllocDescriptor in Windows API. +func safeArrayAllocDescriptor(dimensions uint32) (safearray *SafeArray, err error) { + err = convertHresultToError( + procSafeArrayAllocDescriptor.Call(uintptr(dimensions), uintptr(unsafe.Pointer(&safearray)))) + return +} + +// safeArrayAllocDescriptorEx allocates SafeArray. +// +// AKA: SafeArrayAllocDescriptorEx in Windows API. +func safeArrayAllocDescriptorEx(variantType VT, dimensions uint32) (safearray *SafeArray, err error) { + err = convertHresultToError( + procSafeArrayAllocDescriptorEx.Call( + uintptr(variantType), + uintptr(dimensions), + uintptr(unsafe.Pointer(&safearray)))) + return +} + +// safeArrayCopy returns copy of SafeArray. +// +// AKA: SafeArrayCopy in Windows API. +func safeArrayCopy(original *SafeArray) (safearray *SafeArray, err error) { + err = convertHresultToError( + procSafeArrayCopy.Call( + uintptr(unsafe.Pointer(original)), + uintptr(unsafe.Pointer(&safearray)))) + return +} + +// safeArrayCopyData duplicates SafeArray into another SafeArray object. +// +// AKA: SafeArrayCopyData in Windows API. +func safeArrayCopyData(original *SafeArray, duplicate *SafeArray) (err error) { + err = convertHresultToError( + procSafeArrayCopyData.Call( + uintptr(unsafe.Pointer(original)), + uintptr(unsafe.Pointer(duplicate)))) + return +} + +// safeArrayCreate creates SafeArray. +// +// AKA: SafeArrayCreate in Windows API. +func safeArrayCreate(variantType VT, dimensions uint32, bounds *SafeArrayBound) (safearray *SafeArray, err error) { + sa, _, err := procSafeArrayCreate.Call( + uintptr(variantType), + uintptr(dimensions), + uintptr(unsafe.Pointer(bounds))) + safearray = (*SafeArray)(unsafe.Pointer(&sa)) + return +} + +// safeArrayCreateEx creates SafeArray. +// +// AKA: SafeArrayCreateEx in Windows API. +func safeArrayCreateEx(variantType VT, dimensions uint32, bounds *SafeArrayBound, extra uintptr) (safearray *SafeArray, err error) { + sa, _, err := procSafeArrayCreateEx.Call( + uintptr(variantType), + uintptr(dimensions), + uintptr(unsafe.Pointer(bounds)), + extra) + safearray = (*SafeArray)(unsafe.Pointer(sa)) + return +} + +// safeArrayCreateVector creates SafeArray. +// +// AKA: SafeArrayCreateVector in Windows API. +func safeArrayCreateVector(variantType VT, lowerBound int32, length uint32) (safearray *SafeArray, err error) { + sa, _, err := procSafeArrayCreateVector.Call( + uintptr(variantType), + uintptr(lowerBound), + uintptr(length)) + safearray = (*SafeArray)(unsafe.Pointer(sa)) + return +} + +// safeArrayCreateVectorEx creates SafeArray. +// +// AKA: SafeArrayCreateVectorEx in Windows API. +func safeArrayCreateVectorEx(variantType VT, lowerBound int32, length uint32, extra uintptr) (safearray *SafeArray, err error) { + sa, _, err := procSafeArrayCreateVectorEx.Call( + uintptr(variantType), + uintptr(lowerBound), + uintptr(length), + extra) + safearray = (*SafeArray)(unsafe.Pointer(sa)) + return +} + +// safeArrayDestroy destroys SafeArray object. +// +// AKA: SafeArrayDestroy in Windows API. +func safeArrayDestroy(safearray *SafeArray) (err error) { + err = convertHresultToError(procSafeArrayDestroy.Call(uintptr(unsafe.Pointer(safearray)))) + return +} + +// safeArrayDestroyData destroys SafeArray object. +// +// AKA: SafeArrayDestroyData in Windows API. +func safeArrayDestroyData(safearray *SafeArray) (err error) { + err = convertHresultToError(procSafeArrayDestroyData.Call(uintptr(unsafe.Pointer(safearray)))) + return +} + +// safeArrayDestroyDescriptor destroys SafeArray object. +// +// AKA: SafeArrayDestroyDescriptor in Windows API. +func safeArrayDestroyDescriptor(safearray *SafeArray) (err error) { + err = convertHresultToError(procSafeArrayDestroyDescriptor.Call(uintptr(unsafe.Pointer(safearray)))) + return +} + +// safeArrayGetDim is the amount of dimensions in the SafeArray. +// +// SafeArrays may have multiple dimensions. Meaning, it could be +// multidimensional array. +// +// AKA: SafeArrayGetDim in Windows API. +func safeArrayGetDim(safearray *SafeArray) (dimensions *uint32, err error) { + l, _, err := procSafeArrayGetDim.Call(uintptr(unsafe.Pointer(safearray))) + dimensions = (*uint32)(unsafe.Pointer(l)) + return +} + +// safeArrayGetElementSize is the element size in bytes. +// +// AKA: SafeArrayGetElemsize in Windows API. +func safeArrayGetElementSize(safearray *SafeArray) (length *uint32, err error) { + l, _, err := procSafeArrayGetElemsize.Call(uintptr(unsafe.Pointer(safearray))) + length = (*uint32)(unsafe.Pointer(l)) + return +} + +// safeArrayGetElement retrieves element at given index. +func safeArrayGetElement(safearray *SafeArray, index int32, pv unsafe.Pointer) error { + return convertHresultToError( + procSafeArrayGetElement.Call( + uintptr(unsafe.Pointer(safearray)), + uintptr(unsafe.Pointer(&index)), + uintptr(pv))) +} + +// safeArrayGetElementString retrieves element at given index and converts to string. +func safeArrayGetElementString(safearray *SafeArray, index int32) (str string, err error) { + var element *int16 + err = convertHresultToError( + procSafeArrayGetElement.Call( + uintptr(unsafe.Pointer(safearray)), + uintptr(unsafe.Pointer(&index)), + uintptr(unsafe.Pointer(&element)))) + str = BstrToString(*(**uint16)(unsafe.Pointer(&element))) + SysFreeString(element) + return +} + +// safeArrayGetIID is the InterfaceID of the elements in the SafeArray. +// +// AKA: SafeArrayGetIID in Windows API. +func safeArrayGetIID(safearray *SafeArray) (guid *GUID, err error) { + err = convertHresultToError( + procSafeArrayGetIID.Call( + uintptr(unsafe.Pointer(safearray)), + uintptr(unsafe.Pointer(&guid)))) + return +} + +// safeArrayGetLBound returns lower bounds of SafeArray. +// +// SafeArrays may have multiple dimensions. Meaning, it could be +// multidimensional array. +// +// AKA: SafeArrayGetLBound in Windows API. +func safeArrayGetLBound(safearray *SafeArray, dimension uint32) (lowerBound int32, err error) { + err = convertHresultToError( + procSafeArrayGetLBound.Call( + uintptr(unsafe.Pointer(safearray)), + uintptr(dimension), + uintptr(unsafe.Pointer(&lowerBound)))) + return +} + +// safeArrayGetUBound returns upper bounds of SafeArray. +// +// SafeArrays may have multiple dimensions. Meaning, it could be +// multidimensional array. +// +// AKA: SafeArrayGetUBound in Windows API. +func safeArrayGetUBound(safearray *SafeArray, dimension uint32) (upperBound int32, err error) { + err = convertHresultToError( + procSafeArrayGetUBound.Call( + uintptr(unsafe.Pointer(safearray)), + uintptr(dimension), + uintptr(unsafe.Pointer(&upperBound)))) + return +} + +// safeArrayGetVartype returns data type of SafeArray. +// +// AKA: SafeArrayGetVartype in Windows API. +func safeArrayGetVartype(safearray *SafeArray) (varType uint16, err error) { + err = convertHresultToError( + procSafeArrayGetVartype.Call( + uintptr(unsafe.Pointer(safearray)), + uintptr(unsafe.Pointer(&varType)))) + return +} + +// safeArrayLock locks SafeArray for reading to modify SafeArray. +// +// This must be called during some calls to ensure that another process does not +// read or write to the SafeArray during editing. +// +// AKA: SafeArrayLock in Windows API. +func safeArrayLock(safearray *SafeArray) (err error) { + err = convertHresultToError(procSafeArrayLock.Call(uintptr(unsafe.Pointer(safearray)))) + return +} + +// safeArrayUnlock unlocks SafeArray for reading. +// +// AKA: SafeArrayUnlock in Windows API. +func safeArrayUnlock(safearray *SafeArray) (err error) { + err = convertHresultToError(procSafeArrayUnlock.Call(uintptr(unsafe.Pointer(safearray)))) + return +} + +// safeArrayPutElement stores the data element at the specified location in the +// array. +// +// AKA: SafeArrayPutElement in Windows API. +func safeArrayPutElement(safearray *SafeArray, index int64, element uintptr) (err error) { + err = convertHresultToError( + procSafeArrayPutElement.Call( + uintptr(unsafe.Pointer(safearray)), + uintptr(unsafe.Pointer(&index)), + uintptr(unsafe.Pointer(element)))) + return +} + +// safeArrayGetRecordInfo accesses IRecordInfo info for custom types. +// +// AKA: SafeArrayGetRecordInfo in Windows API. +// +// XXX: Must implement IRecordInfo interface for this to return. +func safeArrayGetRecordInfo(safearray *SafeArray) (recordInfo interface{}, err error) { + err = convertHresultToError( + procSafeArrayGetRecordInfo.Call( + uintptr(unsafe.Pointer(safearray)), + uintptr(unsafe.Pointer(&recordInfo)))) + return +} + +// safeArraySetRecordInfo mutates IRecordInfo info for custom types. +// +// AKA: SafeArraySetRecordInfo in Windows API. +// +// XXX: Must implement IRecordInfo interface for this to return. +func safeArraySetRecordInfo(safearray *SafeArray, recordInfo interface{}) (err error) { + err = convertHresultToError( + procSafeArraySetRecordInfo.Call( + uintptr(unsafe.Pointer(safearray)), + uintptr(unsafe.Pointer(&recordInfo)))) + return +} diff --git a/vendor/github.com/go-ole/go-ole/safearrayconversion.go b/vendor/github.com/go-ole/go-ole/safearrayconversion.go new file mode 100644 index 000000000..da737293d --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/safearrayconversion.go @@ -0,0 +1,140 @@ +// Helper for converting SafeArray to array of objects. + +package ole + +import ( + "unsafe" +) + +type SafeArrayConversion struct { + Array *SafeArray +} + +func (sac *SafeArrayConversion) ToStringArray() (strings []string) { + totalElements, _ := sac.TotalElements(0) + strings = make([]string, totalElements) + + for i := int32(0); i < totalElements; i++ { + strings[int32(i)], _ = safeArrayGetElementString(sac.Array, i) + } + + return +} + +func (sac *SafeArrayConversion) ToByteArray() (bytes []byte) { + totalElements, _ := sac.TotalElements(0) + bytes = make([]byte, totalElements) + + for i := int32(0); i < totalElements; i++ { + safeArrayGetElement(sac.Array, i, unsafe.Pointer(&bytes[int32(i)])) + } + + return +} + +func (sac *SafeArrayConversion) ToValueArray() (values []interface{}) { + totalElements, _ := sac.TotalElements(0) + values = make([]interface{}, totalElements) + vt, _ := safeArrayGetVartype(sac.Array) + + for i := int32(0); i < totalElements; i++ { + switch VT(vt) { + case VT_BOOL: + var v bool + safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) + values[i] = v + case VT_I1: + var v int8 + safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) + values[i] = v + case VT_I2: + var v int16 + safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) + values[i] = v + case VT_I4: + var v int32 + safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) + values[i] = v + case VT_I8: + var v int64 + safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) + values[i] = v + case VT_UI1: + var v uint8 + safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) + values[i] = v + case VT_UI2: + var v uint16 + safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) + values[i] = v + case VT_UI4: + var v uint32 + safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) + values[i] = v + case VT_UI8: + var v uint64 + safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) + values[i] = v + case VT_R4: + var v float32 + safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) + values[i] = v + case VT_R8: + var v float64 + safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) + values[i] = v + case VT_BSTR: + v , _ := safeArrayGetElementString(sac.Array, i) + values[i] = v + case VT_VARIANT: + var v VARIANT + safeArrayGetElement(sac.Array, i, unsafe.Pointer(&v)) + values[i] = v.Value() + v.Clear() + default: + // TODO + } + } + + return +} + +func (sac *SafeArrayConversion) GetType() (varType uint16, err error) { + return safeArrayGetVartype(sac.Array) +} + +func (sac *SafeArrayConversion) GetDimensions() (dimensions *uint32, err error) { + return safeArrayGetDim(sac.Array) +} + +func (sac *SafeArrayConversion) GetSize() (length *uint32, err error) { + return safeArrayGetElementSize(sac.Array) +} + +func (sac *SafeArrayConversion) TotalElements(index uint32) (totalElements int32, err error) { + if index < 1 { + index = 1 + } + + // Get array bounds + var LowerBounds int32 + var UpperBounds int32 + + LowerBounds, err = safeArrayGetLBound(sac.Array, index) + if err != nil { + return + } + + UpperBounds, err = safeArrayGetUBound(sac.Array, index) + if err != nil { + return + } + + totalElements = UpperBounds - LowerBounds + 1 + return +} + +// Release Safe Array memory +func (sac *SafeArrayConversion) Release() { + safeArrayDestroy(sac.Array) +} diff --git a/vendor/github.com/go-ole/go-ole/safearrayslices.go b/vendor/github.com/go-ole/go-ole/safearrayslices.go new file mode 100644 index 000000000..a9fa885f1 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/safearrayslices.go @@ -0,0 +1,33 @@ +// +build windows + +package ole + +import ( + "unsafe" +) + +func safeArrayFromByteSlice(slice []byte) *SafeArray { + array, _ := safeArrayCreateVector(VT_UI1, 0, uint32(len(slice))) + + if array == nil { + panic("Could not convert []byte to SAFEARRAY") + } + + for i, v := range slice { + safeArrayPutElement(array, int64(i), uintptr(unsafe.Pointer(&v))) + } + return array +} + +func safeArrayFromStringSlice(slice []string) *SafeArray { + array, _ := safeArrayCreateVector(VT_BSTR, 0, uint32(len(slice))) + + if array == nil { + panic("Could not convert []string to SAFEARRAY") + } + // SysAllocStringLen(s) + for i, v := range slice { + safeArrayPutElement(array, int64(i), uintptr(unsafe.Pointer(SysAllocStringLen(v)))) + } + return array +} diff --git a/vendor/github.com/go-ole/go-ole/utility.go b/vendor/github.com/go-ole/go-ole/utility.go new file mode 100644 index 000000000..99ee82dc3 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/utility.go @@ -0,0 +1,101 @@ +package ole + +import ( + "unicode/utf16" + "unsafe" +) + +// ClassIDFrom retrieves class ID whether given is program ID or application string. +// +// Helper that provides check against both Class ID from Program ID and Class ID from string. It is +// faster, if you know which you are using, to use the individual functions, but this will check +// against available functions for you. +func ClassIDFrom(programID string) (classID *GUID, err error) { + classID, err = CLSIDFromProgID(programID) + if err != nil { + classID, err = CLSIDFromString(programID) + if err != nil { + return + } + } + return +} + +// BytePtrToString converts byte pointer to a Go string. +func BytePtrToString(p *byte) string { + a := (*[10000]uint8)(unsafe.Pointer(p)) + i := 0 + for a[i] != 0 { + i++ + } + return string(a[:i]) +} + +// UTF16PtrToString is alias for LpOleStrToString. +// +// Kept for compatibility reasons. +func UTF16PtrToString(p *uint16) string { + return LpOleStrToString(p) +} + +// LpOleStrToString converts COM Unicode to Go string. +func LpOleStrToString(p *uint16) string { + if p == nil { + return "" + } + + length := lpOleStrLen(p) + a := make([]uint16, length) + + ptr := unsafe.Pointer(p) + + for i := 0; i < int(length); i++ { + a[i] = *(*uint16)(ptr) + ptr = unsafe.Pointer(uintptr(ptr) + 2) + } + + return string(utf16.Decode(a)) +} + +// BstrToString converts COM binary string to Go string. +func BstrToString(p *uint16) string { + if p == nil { + return "" + } + length := SysStringLen((*int16)(unsafe.Pointer(p))) + a := make([]uint16, length) + + ptr := unsafe.Pointer(p) + + for i := 0; i < int(length); i++ { + a[i] = *(*uint16)(ptr) + ptr = unsafe.Pointer(uintptr(ptr) + 2) + } + return string(utf16.Decode(a)) +} + +// lpOleStrLen returns the length of Unicode string. +func lpOleStrLen(p *uint16) (length int64) { + if p == nil { + return 0 + } + + ptr := unsafe.Pointer(p) + + for i := 0; ; i++ { + if 0 == *(*uint16)(ptr) { + length = int64(i) + break + } + ptr = unsafe.Pointer(uintptr(ptr) + 2) + } + return +} + +// convertHresultToError converts syscall to error, if call is unsuccessful. +func convertHresultToError(hr uintptr, r2 uintptr, ignore error) (err error) { + if hr != 0 { + err = NewError(hr) + } + return +} diff --git a/vendor/github.com/go-ole/go-ole/variables.go b/vendor/github.com/go-ole/go-ole/variables.go new file mode 100644 index 000000000..a6add1b00 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/variables.go @@ -0,0 +1,15 @@ +// +build windows + +package ole + +import ( + "golang.org/x/sys/windows" +) + +var ( + modcombase = windows.NewLazySystemDLL("combase.dll") + modkernel32 = windows.NewLazySystemDLL("kernel32.dll") + modole32 = windows.NewLazySystemDLL("ole32.dll") + modoleaut32 = windows.NewLazySystemDLL("oleaut32.dll") + moduser32 = windows.NewLazySystemDLL("user32.dll") +) diff --git a/vendor/github.com/go-ole/go-ole/variant.go b/vendor/github.com/go-ole/go-ole/variant.go new file mode 100644 index 000000000..a2c8402f7 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/variant.go @@ -0,0 +1,105 @@ +package ole + +import "unsafe" + +// NewVariant returns new variant based on type and value. +func NewVariant(vt VT, val int64) VARIANT { + return VARIANT{VT: vt, Val: val} +} + +// ToIUnknown converts Variant to Unknown object. +func (v *VARIANT) ToIUnknown() *IUnknown { + if v.VT != VT_UNKNOWN { + return nil + } + return (*IUnknown)(unsafe.Pointer(uintptr(v.Val))) +} + +// ToIDispatch converts variant to dispatch object. +func (v *VARIANT) ToIDispatch() *IDispatch { + if v.VT != VT_DISPATCH { + return nil + } + return (*IDispatch)(unsafe.Pointer(uintptr(v.Val))) +} + +// ToArray converts variant to SafeArray helper. +func (v *VARIANT) ToArray() *SafeArrayConversion { + if v.VT != VT_SAFEARRAY { + if v.VT&VT_ARRAY == 0 { + return nil + } + } + var safeArray *SafeArray = (*SafeArray)(unsafe.Pointer(uintptr(v.Val))) + return &SafeArrayConversion{safeArray} +} + +// ToString converts variant to Go string. +func (v *VARIANT) ToString() string { + if v.VT != VT_BSTR { + return "" + } + return BstrToString(*(**uint16)(unsafe.Pointer(&v.Val))) +} + +// Clear the memory of variant object. +func (v *VARIANT) Clear() error { + return VariantClear(v) +} + +// Value returns variant value based on its type. +// +// Currently supported types: 2- and 4-byte integers, strings, bools. +// Note that 64-bit integers, datetimes, and other types are stored as strings +// and will be returned as strings. +// +// Needs to be further converted, because this returns an interface{}. +func (v *VARIANT) Value() interface{} { + switch v.VT { + case VT_I1: + return int8(v.Val) + case VT_UI1: + return uint8(v.Val) + case VT_I2: + return int16(v.Val) + case VT_UI2: + return uint16(v.Val) + case VT_I4: + return int32(v.Val) + case VT_UI4: + return uint32(v.Val) + case VT_I8: + return int64(v.Val) + case VT_UI8: + return uint64(v.Val) + case VT_INT: + return int(v.Val) + case VT_UINT: + return uint(v.Val) + case VT_INT_PTR: + return uintptr(v.Val) // TODO + case VT_UINT_PTR: + return uintptr(v.Val) + case VT_R4: + return *(*float32)(unsafe.Pointer(&v.Val)) + case VT_R8: + return *(*float64)(unsafe.Pointer(&v.Val)) + case VT_BSTR: + return v.ToString() + case VT_DATE: + // VT_DATE type will either return float64 or time.Time. + d := uint64(v.Val) + date, err := GetVariantDate(d) + if err != nil { + return float64(v.Val) + } + return date + case VT_UNKNOWN: + return v.ToIUnknown() + case VT_DISPATCH: + return v.ToIDispatch() + case VT_BOOL: + return (v.Val & 0xffff) != 0 + } + return nil +} diff --git a/vendor/github.com/go-ole/go-ole/variant_386.go b/vendor/github.com/go-ole/go-ole/variant_386.go new file mode 100644 index 000000000..e73736bf3 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/variant_386.go @@ -0,0 +1,11 @@ +// +build 386 + +package ole + +type VARIANT struct { + VT VT // 2 + wReserved1 uint16 // 4 + wReserved2 uint16 // 6 + wReserved3 uint16 // 8 + Val int64 // 16 +} diff --git a/vendor/github.com/go-ole/go-ole/variant_amd64.go b/vendor/github.com/go-ole/go-ole/variant_amd64.go new file mode 100644 index 000000000..dccdde132 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/variant_amd64.go @@ -0,0 +1,12 @@ +// +build amd64 + +package ole + +type VARIANT struct { + VT VT // 2 + wReserved1 uint16 // 4 + wReserved2 uint16 // 6 + wReserved3 uint16 // 8 + Val int64 // 16 + _ [8]byte // 24 +} diff --git a/vendor/github.com/go-ole/go-ole/variant_arm.go b/vendor/github.com/go-ole/go-ole/variant_arm.go new file mode 100644 index 000000000..d47245444 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/variant_arm.go @@ -0,0 +1,11 @@ +// +build arm + +package ole + +type VARIANT struct { + VT VT // 2 + wReserved1 uint16 // 4 + wReserved2 uint16 // 6 + wReserved3 uint16 // 8 + Val int64 // 16 +} diff --git a/vendor/github.com/go-ole/go-ole/variant_arm64.go b/vendor/github.com/go-ole/go-ole/variant_arm64.go new file mode 100644 index 000000000..78473cec4 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/variant_arm64.go @@ -0,0 +1,13 @@ +//go:build arm64 +// +build arm64 + +package ole + +type VARIANT struct { + VT VT // 2 + wReserved1 uint16 // 4 + wReserved2 uint16 // 6 + wReserved3 uint16 // 8 + Val int64 // 16 + _ [8]byte // 24 +} diff --git a/vendor/github.com/go-ole/go-ole/variant_date_386.go b/vendor/github.com/go-ole/go-ole/variant_date_386.go new file mode 100644 index 000000000..1b970f63f --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/variant_date_386.go @@ -0,0 +1,22 @@ +// +build windows,386 + +package ole + +import ( + "errors" + "syscall" + "time" + "unsafe" +) + +// GetVariantDate converts COM Variant Time value to Go time.Time. +func GetVariantDate(value uint64) (time.Time, error) { + var st syscall.Systemtime + v1 := uint32(value) + v2 := uint32(value >> 32) + r, _, _ := procVariantTimeToSystemTime.Call(uintptr(v1), uintptr(v2), uintptr(unsafe.Pointer(&st))) + if r != 0 { + return time.Date(int(st.Year), time.Month(st.Month), int(st.Day), int(st.Hour), int(st.Minute), int(st.Second), int(st.Milliseconds/1000), time.UTC), nil + } + return time.Now(), errors.New("Could not convert to time, passing current time.") +} diff --git a/vendor/github.com/go-ole/go-ole/variant_date_amd64.go b/vendor/github.com/go-ole/go-ole/variant_date_amd64.go new file mode 100644 index 000000000..6952f1f0d --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/variant_date_amd64.go @@ -0,0 +1,20 @@ +// +build windows,amd64 + +package ole + +import ( + "errors" + "syscall" + "time" + "unsafe" +) + +// GetVariantDate converts COM Variant Time value to Go time.Time. +func GetVariantDate(value uint64) (time.Time, error) { + var st syscall.Systemtime + r, _, _ := procVariantTimeToSystemTime.Call(uintptr(value), uintptr(unsafe.Pointer(&st))) + if r != 0 { + return time.Date(int(st.Year), time.Month(st.Month), int(st.Day), int(st.Hour), int(st.Minute), int(st.Second), int(st.Milliseconds/1000), time.UTC), nil + } + return time.Now(), errors.New("Could not convert to time, passing current time.") +} diff --git a/vendor/github.com/go-ole/go-ole/variant_date_arm.go b/vendor/github.com/go-ole/go-ole/variant_date_arm.go new file mode 100644 index 000000000..09ec7b5cf --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/variant_date_arm.go @@ -0,0 +1,22 @@ +// +build windows,arm + +package ole + +import ( + "errors" + "syscall" + "time" + "unsafe" +) + +// GetVariantDate converts COM Variant Time value to Go time.Time. +func GetVariantDate(value uint64) (time.Time, error) { + var st syscall.Systemtime + v1 := uint32(value) + v2 := uint32(value >> 32) + r, _, _ := procVariantTimeToSystemTime.Call(uintptr(v1), uintptr(v2), uintptr(unsafe.Pointer(&st))) + if r != 0 { + return time.Date(int(st.Year), time.Month(st.Month), int(st.Day), int(st.Hour), int(st.Minute), int(st.Second), int(st.Milliseconds/1000), time.UTC), nil + } + return time.Now(), errors.New("Could not convert to time, passing current time.") +} diff --git a/vendor/github.com/go-ole/go-ole/variant_date_arm64.go b/vendor/github.com/go-ole/go-ole/variant_date_arm64.go new file mode 100644 index 000000000..02b04a0d4 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/variant_date_arm64.go @@ -0,0 +1,23 @@ +//go:build windows && arm64 +// +build windows,arm64 + +package ole + +import ( + "errors" + "syscall" + "time" + "unsafe" +) + +// GetVariantDate converts COM Variant Time value to Go time.Time. +func GetVariantDate(value uint64) (time.Time, error) { + var st syscall.Systemtime + v1 := uint32(value) + v2 := uint32(value >> 32) + r, _, _ := procVariantTimeToSystemTime.Call(uintptr(v1), uintptr(v2), uintptr(unsafe.Pointer(&st))) + if r != 0 { + return time.Date(int(st.Year), time.Month(st.Month), int(st.Day), int(st.Hour), int(st.Minute), int(st.Second), int(st.Milliseconds/1000), time.UTC), nil + } + return time.Now(), errors.New("Could not convert to time, passing current time.") +} diff --git a/vendor/github.com/go-ole/go-ole/variant_ppc64le.go b/vendor/github.com/go-ole/go-ole/variant_ppc64le.go new file mode 100644 index 000000000..326427a7d --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/variant_ppc64le.go @@ -0,0 +1,12 @@ +// +build ppc64le + +package ole + +type VARIANT struct { + VT VT // 2 + wReserved1 uint16 // 4 + wReserved2 uint16 // 6 + wReserved3 uint16 // 8 + Val int64 // 16 + _ [8]byte // 24 +} diff --git a/vendor/github.com/go-ole/go-ole/variant_s390x.go b/vendor/github.com/go-ole/go-ole/variant_s390x.go new file mode 100644 index 000000000..9874ca66b --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/variant_s390x.go @@ -0,0 +1,12 @@ +// +build s390x + +package ole + +type VARIANT struct { + VT VT // 2 + wReserved1 uint16 // 4 + wReserved2 uint16 // 6 + wReserved3 uint16 // 8 + Val int64 // 16 + _ [8]byte // 24 +} diff --git a/vendor/github.com/go-ole/go-ole/vt_string.go b/vendor/github.com/go-ole/go-ole/vt_string.go new file mode 100644 index 000000000..729b4a04d --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/vt_string.go @@ -0,0 +1,58 @@ +// generated by stringer -output vt_string.go -type VT; DO NOT EDIT + +package ole + +import "fmt" + +const ( + _VT_name_0 = "VT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCHVT_ERRORVT_BOOLVT_VARIANTVT_UNKNOWNVT_DECIMAL" + _VT_name_1 = "VT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTR" + _VT_name_2 = "VT_RECORDVT_INT_PTRVT_UINT_PTR" + _VT_name_3 = "VT_FILETIMEVT_BLOBVT_STREAMVT_STORAGEVT_STREAMED_OBJECTVT_STORED_OBJECTVT_BLOB_OBJECTVT_CFVT_CLSID" + _VT_name_4 = "VT_BSTR_BLOBVT_VECTOR" + _VT_name_5 = "VT_ARRAY" + _VT_name_6 = "VT_BYREF" + _VT_name_7 = "VT_RESERVED" + _VT_name_8 = "VT_ILLEGAL" +) + +var ( + _VT_index_0 = [...]uint8{0, 8, 15, 20, 25, 30, 35, 40, 47, 54, 65, 73, 80, 90, 100, 110} + _VT_index_1 = [...]uint8{0, 5, 11, 17, 23, 28, 34, 40, 47, 54, 64, 70, 82, 91, 105, 113, 122} + _VT_index_2 = [...]uint8{0, 9, 19, 30} + _VT_index_3 = [...]uint8{0, 11, 18, 27, 37, 55, 71, 85, 90, 98} + _VT_index_4 = [...]uint8{0, 12, 21} + _VT_index_5 = [...]uint8{0, 8} + _VT_index_6 = [...]uint8{0, 8} + _VT_index_7 = [...]uint8{0, 11} + _VT_index_8 = [...]uint8{0, 10} +) + +func (i VT) String() string { + switch { + case 0 <= i && i <= 14: + return _VT_name_0[_VT_index_0[i]:_VT_index_0[i+1]] + case 16 <= i && i <= 31: + i -= 16 + return _VT_name_1[_VT_index_1[i]:_VT_index_1[i+1]] + case 36 <= i && i <= 38: + i -= 36 + return _VT_name_2[_VT_index_2[i]:_VT_index_2[i+1]] + case 64 <= i && i <= 72: + i -= 64 + return _VT_name_3[_VT_index_3[i]:_VT_index_3[i+1]] + case 4095 <= i && i <= 4096: + i -= 4095 + return _VT_name_4[_VT_index_4[i]:_VT_index_4[i+1]] + case i == 8192: + return _VT_name_5 + case i == 16384: + return _VT_name_6 + case i == 32768: + return _VT_name_7 + case i == 65535: + return _VT_name_8 + default: + return fmt.Sprintf("VT(%d)", i) + } +} diff --git a/vendor/github.com/go-ole/go-ole/winrt.go b/vendor/github.com/go-ole/go-ole/winrt.go new file mode 100644 index 000000000..4e9eca732 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/winrt.go @@ -0,0 +1,99 @@ +// +build windows + +package ole + +import ( + "reflect" + "syscall" + "unicode/utf8" + "unsafe" +) + +var ( + procRoInitialize = modcombase.NewProc("RoInitialize") + procRoActivateInstance = modcombase.NewProc("RoActivateInstance") + procRoGetActivationFactory = modcombase.NewProc("RoGetActivationFactory") + procWindowsCreateString = modcombase.NewProc("WindowsCreateString") + procWindowsDeleteString = modcombase.NewProc("WindowsDeleteString") + procWindowsGetStringRawBuffer = modcombase.NewProc("WindowsGetStringRawBuffer") +) + +func RoInitialize(thread_type uint32) (err error) { + hr, _, _ := procRoInitialize.Call(uintptr(thread_type)) + if hr != 0 { + err = NewError(hr) + } + return +} + +func RoActivateInstance(clsid string) (ins *IInspectable, err error) { + hClsid, err := NewHString(clsid) + if err != nil { + return nil, err + } + defer DeleteHString(hClsid) + + hr, _, _ := procRoActivateInstance.Call( + uintptr(unsafe.Pointer(hClsid)), + uintptr(unsafe.Pointer(&ins))) + if hr != 0 { + err = NewError(hr) + } + return +} + +func RoGetActivationFactory(clsid string, iid *GUID) (ins *IInspectable, err error) { + hClsid, err := NewHString(clsid) + if err != nil { + return nil, err + } + defer DeleteHString(hClsid) + + hr, _, _ := procRoGetActivationFactory.Call( + uintptr(unsafe.Pointer(hClsid)), + uintptr(unsafe.Pointer(iid)), + uintptr(unsafe.Pointer(&ins))) + if hr != 0 { + err = NewError(hr) + } + return +} + +// HString is handle string for pointers. +type HString uintptr + +// NewHString returns a new HString for Go string. +func NewHString(s string) (hstring HString, err error) { + u16 := syscall.StringToUTF16Ptr(s) + len := uint32(utf8.RuneCountInString(s)) + hr, _, _ := procWindowsCreateString.Call( + uintptr(unsafe.Pointer(u16)), + uintptr(len), + uintptr(unsafe.Pointer(&hstring))) + if hr != 0 { + err = NewError(hr) + } + return +} + +// DeleteHString deletes HString. +func DeleteHString(hstring HString) (err error) { + hr, _, _ := procWindowsDeleteString.Call(uintptr(hstring)) + if hr != 0 { + err = NewError(hr) + } + return +} + +// String returns Go string value of HString. +func (h HString) String() string { + var u16buf uintptr + var u16len uint32 + u16buf, _, _ = procWindowsGetStringRawBuffer.Call( + uintptr(h), + uintptr(unsafe.Pointer(&u16len))) + + u16hdr := reflect.SliceHeader{Data: u16buf, Len: int(u16len), Cap: int(u16len)} + u16 := *(*[]uint16)(unsafe.Pointer(&u16hdr)) + return syscall.UTF16ToString(u16) +} diff --git a/vendor/github.com/go-ole/go-ole/winrt_doc.go b/vendor/github.com/go-ole/go-ole/winrt_doc.go new file mode 100644 index 000000000..52e6d74c9 --- /dev/null +++ b/vendor/github.com/go-ole/go-ole/winrt_doc.go @@ -0,0 +1,36 @@ +// +build !windows + +package ole + +// RoInitialize +func RoInitialize(thread_type uint32) (err error) { + return NewError(E_NOTIMPL) +} + +// RoActivateInstance +func RoActivateInstance(clsid string) (ins *IInspectable, err error) { + return nil, NewError(E_NOTIMPL) +} + +// RoGetActivationFactory +func RoGetActivationFactory(clsid string, iid *GUID) (ins *IInspectable, err error) { + return nil, NewError(E_NOTIMPL) +} + +// HString is handle string for pointers. +type HString uintptr + +// NewHString returns a new HString for Go string. +func NewHString(s string) (hstring HString, err error) { + return HString(uintptr(0)), NewError(E_NOTIMPL) +} + +// DeleteHString deletes HString. +func DeleteHString(hstring HString) (err error) { + return NewError(E_NOTIMPL) +} + +// String returns Go string value of HString. +func (h HString) String() string { + return "" +} diff --git a/vendor/github.com/microsoft/wmi/LICENSE b/vendor/github.com/microsoft/wmi/LICENSE new file mode 100644 index 000000000..4b1ad51b2 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE diff --git a/vendor/github.com/microsoft/wmi/go/wmi/Class.go b/vendor/github.com/microsoft/wmi/go/wmi/Class.go new file mode 100644 index 000000000..e19f03327 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/go/wmi/Class.go @@ -0,0 +1,16 @@ +package wmi + +// Class +type Class interface { + ClassName() string + SuperClassName() string + ServerName() string + Namespace() string + SuperClass() *Class + Properties() []string + Qualifiers() []string + Methods() []string + MethodParameters(string) []string + InvokeMethod(string, []string, string) (error, string) + Dispose() +} diff --git a/vendor/github.com/microsoft/wmi/go/wmi/Credentials.go b/vendor/github.com/microsoft/wmi/go/wmi/Credentials.go new file mode 100644 index 000000000..1a7752884 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/go/wmi/Credentials.go @@ -0,0 +1,13 @@ +package wmi + +// Credentials +type Credentials struct { + UserName string + Password string + Domain string +} + +// GetSecureString +func (cred Credentials) GetSecureString() (string, error) { + panic("not implemented") +} diff --git a/vendor/github.com/microsoft/wmi/go/wmi/Instance.go b/vendor/github.com/microsoft/wmi/go/wmi/Instance.go new file mode 100644 index 000000000..7392038d3 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/go/wmi/Instance.go @@ -0,0 +1,24 @@ +package wmi + +// Instance represents an interface for the wmi instance +type Instance interface { + GetInstance() (*Instance, error) + GetProperty(name string) (string, error) + SetProperty(name, value string) (string, error) + ResetProperty(name string) (string, error) + Class() *Class + EmbeddedInstance() (string, error) + InstanceManager() *InstanceManager + Equals(*Instance) bool + Refresh() error + Commit() error + Modify() error + Delete() error + InstancePath() (string, error) + InvokeMethod(namespaceName string, methodName string, methodParameters *[]MethodParameter) (MethodResult, error) + GetRelated(resultClassName string) (*[]Instance, error) + GetRelatedEx(resultClassName, associatedClassName, resultRole, sourceRole string) (*[]Instance, error) + GetAssociated(resultClassName, associatedClassName, resultRole, sourceRole string) (*[]Instance, error) + EnumerateReferencingInstances(associatedClassName, sourceRole string) (*[]Instance, error) + Dispose() +} diff --git a/vendor/github.com/microsoft/wmi/go/wmi/InstanceManager.go b/vendor/github.com/microsoft/wmi/go/wmi/InstanceManager.go new file mode 100644 index 000000000..9e2d45800 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/go/wmi/InstanceManager.go @@ -0,0 +1,17 @@ +package wmi + +// InstanceManager interface +type InstanceManager interface { + ServerName() string + Namespace() string + Credentials() *Credentials + EnumerateInstances(className string) (*[]Instance, error) + QueryInstances(query string) (*[]Instance, error) + QueryInstancesEx(query Query) (*[]Instance, error) + + CreateInstance(className string, propertyValues map[string]string) (*Instance, error) + GetInstance(className string, propertyValues map[string]string) (*Instance, error) + GetClass(className string) (*Class, error) + EnumerateClasses() (*[]Class, error) + GetInstancesFromPaths(pathArray []string) (*[]Instance, error) +} diff --git a/vendor/github.com/microsoft/wmi/go/wmi/MethodDeclaration.go b/vendor/github.com/microsoft/wmi/go/wmi/MethodDeclaration.go new file mode 100644 index 000000000..16b084446 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/go/wmi/MethodDeclaration.go @@ -0,0 +1,7 @@ +package wmi + +type MethodDeclaration struct { + Name string + Parameters *[]MethodParameter + Qualifiers *[]Qualifier +} diff --git a/vendor/github.com/microsoft/wmi/go/wmi/MethodParameter.go b/vendor/github.com/microsoft/wmi/go/wmi/MethodParameter.go new file mode 100644 index 000000000..897f50f6c --- /dev/null +++ b/vendor/github.com/microsoft/wmi/go/wmi/MethodParameter.go @@ -0,0 +1,66 @@ +package wmi + +import ( + "errors" + "reflect" +) + +// MethodParameter +type MethodParameter struct { + Name string + Value interface{} + Type WmiType +} + +// MethodParameterCollection +type MethodParameterCollection []MethodParameter + +// GetValue +func (c MethodParameterCollection) GetValue(paramName string, value interface{}) error { + mval, err := c.Get(paramName) + if err != nil { + return errors.New("Not Found") + } + value = mval.Value + return nil +} + +// GetValueArray +func (c MethodParameterCollection) GetValueArray(paramName string, value interface{}) error { + mval, err := c.Get(paramName) + if err != nil { + return errors.New("Not Found") + } + if mval.Value != nil { + v := reflect.ValueOf(mval.Value) + + tmpValue := make([]interface{}, v.Len()) + for i := 0; i < v.Len(); i++ { + tmpValue[i] = v.Index(i).Interface() + value = tmpValue + } + } else { + value = make([]interface{}, 0) + } + return nil +} + +// Contains +func (c MethodParameterCollection) Contains(paramName string) bool { + for _, a := range c { + if a.Name == paramName { + return true + } + } + return false +} + +// Contains +func (c MethodParameterCollection) Get(paramName string) (val *MethodParameter, err error) { + for _, a := range c { + if a.Name == paramName { + return &a, nil + } + } + return nil, errors.New("Not Found") +} diff --git a/vendor/github.com/microsoft/wmi/go/wmi/MethodResult.go b/vendor/github.com/microsoft/wmi/go/wmi/MethodResult.go new file mode 100644 index 000000000..654cc0061 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/go/wmi/MethodResult.go @@ -0,0 +1,7 @@ +package wmi + +// MethodResult +type MethodResult struct { + ReturnValue *MethodParameter + OutParameters *MethodParameterCollection +} diff --git a/vendor/github.com/microsoft/wmi/go/wmi/Property.go b/vendor/github.com/microsoft/wmi/go/wmi/Property.go new file mode 100644 index 000000000..1047d08a7 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/go/wmi/Property.go @@ -0,0 +1,91 @@ +package wmi + +type PropertyFlags int + +const ( + // None + None PropertyFlags = 0 + // Class + WClass PropertyFlags = 1 + // Method + Method PropertyFlags = 2 + // Property + WProperty PropertyFlags = 4 + // Parameter + Parameter PropertyFlags = 8 + // Association + Association PropertyFlags = 16 + // Indication + Indication PropertyFlags = 32 + // Reference + Reference PropertyFlags = 64 + // Any + Any PropertyFlags = 127 + // EnableOverride + EnableOverride PropertyFlags = 128 + // DisableOverride + DisableOverride PropertyFlags = 256 + // Restricted + Restricted PropertyFlags = 512 + // ToSubClass + ToSubclass PropertyFlags = 1024 + // Translatable + Translatable PropertyFlags = 2048 + // Key + Key PropertyFlags = 4096 + // In + In PropertyFlags = 8192 + // Out + Out PropertyFlags = 16384 + // Required + Required PropertyFlags = 32768 + // Static + Static PropertyFlags = 65536 + // Abstract + Abstract PropertyFlags = 131072 + // Terminal + Terminal PropertyFlags = 262144 + // Expensive + Expensive PropertyFlags = 524288 + // Stream + Stream PropertyFlags = 1048576 + // ReadOnly + ReadOnly PropertyFlags = 2097152 + // NotModified + NotModified PropertyFlags = 33554432 + // NullValue + NullValue PropertyFlags = 536870912 + // Borrow + Borrow PropertyFlags = 1073741824 + // Adopt + //Adopt PropertyFlags = 2147483648; +) + +type WmiType int + +const ( + WbemCimtypeSint8 WmiType = 16 + WbemCimtypeUint8 WmiType = 17 + WbemCimtypeSint16 WmiType = 2 + WbemCimtypeUint16 WmiType = 18 + WbemCimtypeSint32 WmiType = 3 + WbemCimtypeUint32 WmiType = 19 + WbemCimtypeSint64 WmiType = 20 + WbemCimtypeUint64 WmiType = 21 + WbemCimtypeReal32 WmiType = 4 + WbemCimtypeReal64 WmiType = 5 + WbemCimtypeBoolean WmiType = 11 + WbemCimtypeString WmiType = 8 + WbemCimtypeDatetime WmiType = 101 + WbemCimtypeReference WmiType = 102 + WbemCimtypeChar16 WmiType = 103 + WbemCimtypeObject WmiType = 13 +) + +// Property +type Property interface { + Name() string + Value() string + Type() WmiType + Flags() PropertyFlags +} diff --git a/vendor/github.com/microsoft/wmi/go/wmi/Qualifier.go b/vendor/github.com/microsoft/wmi/go/wmi/Qualifier.go new file mode 100644 index 000000000..1b8215c44 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/go/wmi/Qualifier.go @@ -0,0 +1,6 @@ +package wmi + +type Qualifier interface { + Name() string + Value() string +} diff --git a/vendor/github.com/microsoft/wmi/go/wmi/Query.go b/vendor/github.com/microsoft/wmi/go/wmi/Query.go new file mode 100644 index 000000000..03d38ba5a --- /dev/null +++ b/vendor/github.com/microsoft/wmi/go/wmi/Query.go @@ -0,0 +1,51 @@ +package wmi + +import "fmt" + +type WhereOperation int + +const ( + Equals WhereOperation = 0 + LessThan WhereOperation = 1 + GreaterThan WhereOperation = 2 + LessThanEquals WhereOperation = 3 + GreaterThenEquals WhereOperation = 4 + NotEqual WhereOperation = 5 + Like WhereOperation = 6 +) + +type QueryFilter struct { + Name string + Value string + Operation WhereOperation +} + +// GetFilter +func (q QueryFilter) GetFilter() string { + operator := "=" + switch q.Operation { + case Equals: + operator = "=" + case LessThan: + operator = "<" + case GreaterThan: + operator = ">" + case LessThanEquals: + operator = "<=" + case GreaterThenEquals: + operator = ">=" + case NotEqual: + operator = "!=" + case Like: + operator = "LIKE" + return fmt.Sprintf(" %s %s '%%%s%%'", q.Name, q.Value, operator) + default: + } + return fmt.Sprintf(" %s%s'%s'", q.Name, q.Value, operator) +} + +// Query +type Query interface { + ClassName() string + QueryString() string +} diff --git a/vendor/github.com/microsoft/wmi/go/wmi/Session.go b/vendor/github.com/microsoft/wmi/go/wmi/Session.go new file mode 100644 index 000000000..7f489c60b --- /dev/null +++ b/vendor/github.com/microsoft/wmi/go/wmi/Session.go @@ -0,0 +1,26 @@ +package wmi + +type SessionStatus int + +const ( + Created SessionStatus = 0 + Connected SessionStatus = 1 + Disconnected SessionStatus = 2 + Disposed SessionStatus = 3 +) + +// Session +type Session interface { + Connect() (bool, error) + Dispose() + TestConnection() bool + GetProperty(name string) string + SetProperty(name, value string) string + ResetProperty(name string) string + GetClass(namespaceName, className string) (*Class, error) + GetInstance(namespaceName string, instance *Instance) (*Instance, error) + EnumerateClasses(namespaceName, className string) (*[]Class, error) + EnumerateInstances(namespaceName, className string) (*[]Instance, error) + QueryInstances(namespaceName, queryDislect, queryExpression string) (*[]Instance, error) + EnumerateReferencingInstances(namespaceName string, sourceInstance Instance, associationClassName, sourceRole string) (*[]Instance, error) +} diff --git a/vendor/github.com/microsoft/wmi/pkg/base/credential/credential.go b/vendor/github.com/microsoft/wmi/pkg/base/credential/credential.go new file mode 100644 index 000000000..150a297a8 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/base/credential/credential.go @@ -0,0 +1,14 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package credential + +type WmiCredential struct { + UserName string + Password string + Domain string +} + +// NewWmiCredential +func NewWmiCredential(username, password, domain string) *WmiCredential { + return &WmiCredential{UserName: username, Password: password, Domain: domain} +} diff --git a/vendor/github.com/microsoft/wmi/pkg/base/host/host.go b/vendor/github.com/microsoft/wmi/pkg/base/host/host.go new file mode 100644 index 000000000..71944e488 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/base/host/host.go @@ -0,0 +1,31 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package host + +import ( + "github.com/microsoft/wmi/pkg/base/credential" +) + +type WmiHost struct { + HostName string + credential *credential.WmiCredential +} + +func NewWmiLocalHost() *WmiHost { + return NewWmiHost("localhost") +} + +// NewWmiHost +func NewWmiHost(hostname string) *WmiHost { + return NewWmiHostWithCredential(hostname, "", "", "") +} + +// NewWmiHostWithCredential +func NewWmiHostWithCredential(hostname, username, password, domain string) *WmiHost { + return &WmiHost{HostName: hostname, credential: credential.NewWmiCredential(username, password, domain)} +} + +// GetCredential +func (host *WmiHost) GetCredential() *credential.WmiCredential { + return host.credential +} diff --git a/vendor/github.com/microsoft/wmi/pkg/base/instance/instancemanager.go b/vendor/github.com/microsoft/wmi/pkg/base/instance/instancemanager.go new file mode 100644 index 000000000..ecb68b45f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/base/instance/instancemanager.go @@ -0,0 +1,192 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +package instance + +import ( + "log" + "strings" + "sync" + + "github.com/microsoft/wmi/pkg/base/credential" + "github.com/microsoft/wmi/pkg/base/host" + "github.com/microsoft/wmi/pkg/base/query" + wmisession "github.com/microsoft/wmi/pkg/base/session" + "github.com/microsoft/wmi/pkg/errors" + wmi "github.com/microsoft/wmi/pkg/wmiinstance" +) + +var ( + instanceManagerMap map[string]*WmiInstanceManager + mutex sync.Mutex +) + +type WmiInstanceManager struct { + Host *host.WmiHost + session *wmi.WmiSession + Namespace string +} + +func init() { + instanceManagerMap = map[string]*WmiInstanceManager{} +} + +func newWmiInstanceManager(hostname, namespaceName, userName, password, domainName string) (*WmiInstanceManager, error) { + im := &WmiInstanceManager{ + Host: host.NewWmiHostWithCredential(hostname, userName, password, domainName), + Namespace: namespaceName, + } + + wsession, err := wmisession.GetHostSession(namespaceName, im.Host) + if err != nil { + return nil, err + } + im.session = wsession + + return im, nil + +} + +func GetWmiInstanceManagerFromWHost(whost *host.WmiHost, namespaceName string) (*WmiInstanceManager, error) { + return GetWmiInstanceManagerFromCred(whost.HostName, namespaceName, whost.GetCredential()) +} +func GetWmiInstanceManagerFromCred(hostname, namespaceName string, cred *credential.WmiCredential) (*WmiInstanceManager, error) { + return GetWmiInstanceManager(hostname, namespaceName, cred.UserName, cred.Password, cred.Domain) +} +func GetWmiInstanceManager(hostname, namespaceName, userName, password, domainName string) (*WmiInstanceManager, error) { + mapId := strings.Join([]string{hostname, namespaceName, domainName}, "_") + if val, ok := instanceManagerMap[mapId]; ok { + return val, nil + } + + mutex.Lock() + defer mutex.Unlock() + var err error + instanceManagerMap[mapId], err = newWmiInstanceManager(hostname, namespaceName, userName, password, domainName) + if err != nil { + return nil, err + } + return instanceManagerMap[mapId], nil + +} + +func (im *WmiInstanceManager) CreateInstance(className string) (*wmi.WmiInstance, error) { + cls, err := im.session.GetClass(className) + if err != nil { + return nil, err + } + return cls.MakeInstance() +} + +func (im *WmiInstanceManager) GetInstance(instancePath string) (*wmi.WmiInstance, error) { + return im.session.GetInstance(instancePath) +} + +func (im *WmiInstanceManager) QueryInstances(queryString string) ([]*wmi.WmiInstance, error) { + return im.session.QueryInstances(queryString) +} + +func (im *WmiInstanceManager) QueryClasses(queryString string) ([]*wmi.WmiClass, error) { + return im.session.QueryClasses(queryString) +} + +func (im *WmiInstanceManager) QueryInstanceEx(queryString string) (*wmi.WmiInstance, error) { + instances, err := im.QueryInstances(queryString) + if err != nil { + return nil, err + } + if len(instances) == 0 { + return nil, errors.Wrapf(errors.NotFound, "Query [%s] failed with no instance", queryString) + } + + log.Printf("[WMI] QueryInstanceEx [%s]=>[%d]instances\n", queryString, len(instances)) + + // LEAK - return a clone and close the collection + return instances[0], nil +} + +func (im *WmiInstanceManager) QueryInstance(inquery *query.WmiQuery) (*wmi.WmiInstance, error) { + return im.QueryInstanceEx(inquery.String()) +} + +func GetWmiInstanceByName(whost *host.WmiHost, namespaceName, className, instanceName string) (*wmi.WmiInstance, error) { + return GetWmiInstanceEx(whost, namespaceName, query.NewWmiQuery(className, "Name", instanceName)) +} + +func GetWmiInstanceEx2(hostName string, cred credential.WmiCredential, namespaceName string, inquery *query.WmiQuery) (*wmi.WmiInstance, error) { + return GetWmiInstance(hostName, namespaceName, cred.UserName, cred.Password, cred.Domain, inquery) +} + +func GetWmiInstanceEx(whost *host.WmiHost, namespaceName string, inquery *query.WmiQuery) (*wmi.WmiInstance, error) { + cred := whost.GetCredential() + return GetWmiInstance(whost.HostName, namespaceName, cred.UserName, cred.Password, cred.Domain, inquery) +} + +func GetWmiInstance(hostname, namespaceName, userName, password, domainName string, inquery *query.WmiQuery) (*wmi.WmiInstance, error) { + im, err := GetWmiInstanceManager(hostname, namespaceName, userName, password, domainName) + if err != nil { + return nil, err + } + return im.QueryInstance(inquery) +} + +func CreateWmiInstance(host *host.WmiHost, namespaceName, class string) (*wmi.WmiInstance, error) { + im, err := GetWmiInstanceManagerFromWHost(host, namespaceName) + if err != nil { + return nil, err + } + return im.CreateInstance(class) +} +func GetWmiInstancesFromHostRawQuery(host *host.WmiHost, namespaceName string, query string) (wmi.WmiInstanceCollection, error) { + im, err := GetWmiInstanceManagerFromWHost(host, namespaceName) + if err != nil { + return nil, err + } + instances, err := im.QueryInstances(query) + if err != nil { + return nil, err + } + winstances := wmi.WmiInstanceCollection{} + winstances = append(winstances, instances...) + return winstances, nil + +} + +func GetWmiInstancesFromHost(host *host.WmiHost, namespaceName string, inquery *query.WmiQuery) (wmi.WmiInstanceCollection, error) { + return GetWmiInstancesFromHostRawQuery(host, namespaceName, inquery.String()) +} + +func GetWmiInstanceFromPath(host *host.WmiHost, namespaceName, instancePath string) (*wmi.WmiInstance, error) { + log.Printf("[WMI] Get Instance from path [%s]\n", instancePath) + im, err := GetWmiInstanceManagerFromWHost(host, namespaceName) + if err != nil { + return nil, err + } + return im.GetInstance(instancePath) +} + +func GetWmiJob(host *host.WmiHost, namespaceName, instancePath string) (*wmi.WmiJob, error) { + im, err := GetWmiInstanceManagerFromWHost(host, namespaceName) + if err != nil { + return nil, err + } + instance, err := im.GetInstance(instancePath) + if err != nil { + return nil, err + } + return wmi.NewWmiJob(instance) +} + +func GetWmiClasssesFromHostRawQuery(host *host.WmiHost, namespaceName string, query string) (wmi.WmiClassCollection, error) { + im, err := GetWmiInstanceManagerFromWHost(host, namespaceName) + if err != nil { + return nil, err + } + classes, err := im.QueryClasses(query) + if err != nil { + return nil, err + } + cinstances := wmi.WmiClassCollection{} + cinstances = append(cinstances, classes...) + return cinstances, nil +} diff --git a/vendor/github.com/microsoft/wmi/pkg/base/query/query.go b/vendor/github.com/microsoft/wmi/pkg/base/query/query.go new file mode 100644 index 000000000..e7293c241 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/base/query/query.go @@ -0,0 +1,127 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package query + +import ( + "fmt" + "log" + "strings" +) + +// https://docs.microsoft.com/en-us/windows/win32/wmisdk/wql-sql-for-wmi + +type CompareOperator string + +const ( + Equals CompareOperator = "=" + LessThan CompareOperator = "<" + GreaterThan CompareOperator = ">" + LessThanEquals CompareOperator = "<=" + GreaterThanEquals CompareOperator = ">=" + NotEquals CompareOperator = "<>" + Like CompareOperator = "LIKE" + Isa CompareOperator = "ISA" +) + +type WmiQueryFilter struct { + Name string + Value string + Operator CompareOperator +} + +type WmiQuery struct { + ClassName string + Filters []*WmiQueryFilter + SelectList []string +} + +func NewWmiQuery(className string, filters ...string) (wquery *WmiQuery) { + wquery = &WmiQuery{ClassName: className, Filters: []*WmiQueryFilter{}} + if len(filters) == 0 { + return + } + + wquery.BuildQueryFilter(filters) + return +} + +func NewWmiQueryWithSelectList(className string, selectList []string, filters ...string) (wquery *WmiQuery) { + wquery = &WmiQuery{ClassName: className, SelectList: selectList, Filters: []*WmiQueryFilter{}} + if len(filters) == 0 { + return + } + + wquery.BuildQueryFilter(filters) + return +} + +func (q *WmiQuery) BuildQueryFilter(filters []string) { + if len(filters)%2 == 1 { + log.Fatalf("Even number of strings is required to build key=value set of filters: [%+v]\n", filters) + } + + for i := 0; i < len(filters); i = i + 2 { + qfilter := NewWmiQueryFilter(filters[i], filters[i+1], Equals) + q.Filters = append(q.Filters, qfilter) + } + + return +} + +// NewWmiQueryFilter +func NewWmiQueryFilter(name, value string, oper CompareOperator) *WmiQueryFilter { + return &WmiQueryFilter{Name: name, Value: value, Operator: oper} +} + +func (q *WmiQueryFilter) String() string { + if q.Operator == Like { + return fmt.Sprintf("%s %s '%%%s%%'", q.Name, q.Operator, q.Value) + } else { + return fmt.Sprintf("%s %s '%s'", q.Name, q.Operator, q.Value) + } +} +func (q *WmiQuery) AddFilterWithComparer(propertyName, value string, oper CompareOperator) { + q.Filters = append(q.Filters, NewWmiQueryFilter(propertyName, value, oper)) + return +} +func (q *WmiQuery) AddFilter(propertyName, value string) { + q.Filters = append(q.Filters, NewWmiQueryFilter(propertyName, value, Equals)) + return +} + +// HasFilter +func (q *WmiQuery) HasFilter() bool { + return len(q.Filters) > 0 +} + +// String +func (q *WmiQuery) String() (queryString string) { + paramStr := "*" + if len(q.SelectList) > 0 { + paramStr = strings.Join(q.SelectList, ",") + } + queryString = fmt.Sprintf("SELECT %s FROM %s", paramStr, q.ClassName) + + if len(q.Filters) == 0 { + return + } + + queryString = fmt.Sprintf("%s WHERE ", queryString) + + for _, val := range q.Filters[:len(q.Filters)-1] { + queryString = queryString + fmt.Sprintf(" %s AND", val.String()) + } + + queryString = queryString + fmt.Sprintf(" %s ", q.Filters[len(q.Filters)-1].String()) + return +} + +type WmiQueryFilterCollection []*WmiQueryFilter + +func (c *WmiQueryFilterCollection) String() string { + queryString := "" + for _, query := range *c { + queryString = fmt.Sprintf("%s AND %s", queryString, query.String()) + } + return queryString +} diff --git a/vendor/github.com/microsoft/wmi/pkg/base/session/session.go b/vendor/github.com/microsoft/wmi/pkg/base/session/session.go new file mode 100644 index 000000000..8838df778 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/base/session/session.go @@ -0,0 +1,95 @@ +//go:build windows +// +build windows + +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package session + +import ( + "github.com/pkg/errors" + "os" + "strings" + + "github.com/microsoft/wmi/pkg/base/credential" + "github.com/microsoft/wmi/pkg/base/host" + wmi "github.com/microsoft/wmi/pkg/wmiinstance" +) + +var ( + sessionManager *wmi.WmiSessionManager + sessionsMap map[string]*wmi.WmiSession + localHostName string +) + +func init() { + localHostName, _ = os.Hostname() + sessionsMap = make(map[string]*wmi.WmiSession) + sessionManager = wmi.NewWmiSessionManager() +} + +// StopWMI +func StopWMI() { + for key := range sessionsMap { + if sessionsMap[key] != nil { + sessionsMap[key].Dispose() + } + sessionsMap[key] = nil + } + + if sessionManager != nil { + sessionManager.Dispose() + sessionManager = nil + } +} + +// GetHostSession +func GetHostSession(namespaceName string, whost *host.WmiHost) (*wmi.WmiSession, error) { + cred := whost.GetCredential() + return GetSession(namespaceName, whost.HostName, cred.Domain, cred.UserName, cred.Password) +} + +func GetHostSessionWithCredentials(namespaceName string, whost *host.WmiHost, cred *credential.WmiCredential) (*wmi.WmiSession, error) { + return GetSession(namespaceName, whost.HostName, cred.Domain, cred.UserName, cred.Password) +} + +// GetSession +func GetSession(namespaceName string, serverName string, domain string, userName string, password string) (*wmi.WmiSession, error) { + sessionsMapId := strings.Join([]string{namespaceName, serverName, domain}, "_") + if sessionsMap[sessionsMapId] == nil { + var err error + sessionsMap[sessionsMapId], err = createSession(namespaceName, serverName, domain, userName, password) + if err != nil { + return nil, err + } + } + + return sessionsMap[sessionsMapId], nil +} + +// //////////// Private functions //////////////////////////// +func createSession(sessionName string, serverName string, domain string, username string, password string) (*wmi.WmiSession, error) { + // TODO: ideally, we should also compare the domain here. + // that said, this is low priority as cross-domain WMI calls are rare + if strings.EqualFold(localHostName, serverName) { + // Optimization for local clusters: connecting to the local cluster through remote WMI results in a much longer + // response than connecting directly. When providing the cluster name, the cluster has to go through a + // long sequence of connection/authentication. Not providing the name allows the cluster to skip that + // expensive sequence. + serverName = "" + domain = "" + } + + session, err := sessionManager.GetSession(sessionName, serverName, domain, username, password) + if err != nil { + return nil, errors.Wrapf(err, "Failed getting the WMI session for "+sessionName) + } + + connected, err := session.Connect() + + if !connected || err != nil { + return nil, errors.Wrapf(err, "Failed connecting to the WMI session for "+sessionName) + } + + return session, nil +} diff --git a/vendor/github.com/microsoft/wmi/pkg/errors/errors.go b/vendor/github.com/microsoft/wmi/pkg/errors/errors.go new file mode 100644 index 000000000..ffad9b5d9 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/errors/errors.go @@ -0,0 +1,105 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package errors + +import ( + "errors" + "fmt" + "strings" + + perrors "github.com/pkg/errors" +) + +const ( + wmiError = "WMI Error 0x" +) + +var ( + NotFound error = errors.New("Not Found") + Timedout error = errors.New("Timedout") + InvalidInput error = errors.New("Invalid Input") + InvalidType error = errors.New("Invalid Type") + NotSupported error = errors.New("Not Supported") + AlreadyExists error = errors.New("Already Exists") + InvalidFilter error = errors.New("Invalid Filter") + Failed error = errors.New("Failed") + NotImplemented error = errors.New("Not Implemented") + Unknown error = errors.New("Unknown Reason") +) + +func Wrap(cause error, message string) error { + return perrors.Wrap(cause, message) +} + +func Wrapf(err error, format string, args ...interface{}) error { + return perrors.Wrapf(err, format, args...) +} + +func IsNotFound(err error) bool { + return checkError(err, NotFound) +} +func IsAlreadyExists(err error) bool { + return checkError(err, AlreadyExists) +} +func IsTimedout(err error) bool { + return checkError(err, Timedout) +} +func IsInvalidInput(err error) bool { + return checkError(err, InvalidInput) +} +func IsInvalidType(err error) bool { + return checkError(err, InvalidType) +} +func IsNotSupported(err error) bool { + return checkError(err, NotSupported) +} +func IsInvalidFilter(err error) bool { + return checkError(err, InvalidFilter) +} +func IsFailed(err error) bool { + return checkError(err, Failed) +} +func IsNotImplemented(err error) bool { + return checkError(err, NotImplemented) +} +func IsUnknown(err error) bool { + return checkError(err, Unknown) +} +func IsWMIError(err error) bool { + if err == nil { + return false + } + if strings.HasPrefix(err.Error(), wmiError) { + return true + } + cerr := perrors.Cause(err) + if strings.HasPrefix(cerr.Error(), wmiError) { + return true + } + + return false +} + +func checkError(wrappedError, err error) bool { + if wrappedError == nil { + return false + } + if wrappedError == err { + return true + } + cerr := perrors.Cause(wrappedError) + if cerr != nil && cerr == err { + return true + } + + return false + +} + +func New(errString string) error { + return errors.New(errString) +} + +func NewWMIError(errorCode uint16) error { + return fmt.Errorf(wmiError+"%08x", errorCode) +} diff --git a/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiClass.go b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiClass.go new file mode 100644 index 000000000..3a5d730a7 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiClass.go @@ -0,0 +1,314 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +// This class implement a wrapper of the SWbemObject class (from an instance perspective). +// Documentation: https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemobject + +package cim + +import ( + "github.com/go-ole/go-ole" + "github.com/go-ole/go-ole/oleutil" +) + +type WmiClass struct { + session *WmiSession + class *ole.IDispatch + classVar *ole.VARIANT +} + +// WmiInstanceCollection is a slice of WmiClass +type WmiClassCollection []*WmiClass + +// Close all class in a collection +func (wmic *WmiClassCollection) Close() { + for _, i := range *wmic { + i.Close() + } +} + +func CreateWmiClass(classVar *ole.VARIANT, session *WmiSession) (*WmiClass, error) { + return &WmiClass{ + classVar: classVar, + class: classVar.ToIDispatch(), + session: session, + }, nil +} + +// Makes a new instance of the class +func (c *WmiClass) MakeInstance() (*WmiInstance, error) { + rawResult, err := oleutil.CallMethod(c.class, "SpawnInstance_") + if err != nil { + return nil, err + } + + return CreateWmiInstance(rawResult, c.session) +} + +func (c *WmiClass) mustGetSystemProperty(name string) *WmiProperty { + wmiProperty, err := c.GetSystemProperty(name) + if err != nil { + panic("Couldn't retreive a system property. GetSystemProperty failed") + } + + return wmiProperty +} + +func (c *WmiClass) GetSystemProperty(name string) (*WmiProperty, error) { + // Documentation: https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemobjectex-systemproperties- + rawResult, err := oleutil.GetProperty(c.class, "SystemProperties_") + if err != nil { + return nil, err + } + + // SWbemObjectEx.SystemProperties_ returns + // an SWbemPropertySet object that contains the collection + // of sytem properties for the c class + sWbemObjectExAsIDispatch := rawResult.ToIDispatch() + defer rawResult.Clear() + + // Get the system property + sWbemProperty, err := oleutil.CallMethod(sWbemObjectExAsIDispatch, "Item", name) + if err != nil { + return nil, err + } + + return CreateWmiProperty(sWbemProperty, c.session) +} + +// ClassName +func (c *WmiClass) GetClassName() string { + class := c.mustGetSystemProperty("__CLASS") + defer class.Close() + + return class.Value().(string) +} + +// SetClassName +func (c *WmiClass) SetClassName(name string) error { + rawResult, err := oleutil.GetProperty(c.class, "Path_") + if err != nil { + return err + } + + pathIDispatch := rawResult.ToIDispatch() + defer rawResult.Clear() + + classRawResult, err := oleutil.PutProperty(pathIDispatch, "Class", name) + if err != nil { + return err + } + defer classRawResult.Clear() + + return nil +} + +// SuperClassName +func (c *WmiClass) GetSuperClassName() string { + superclass := c.mustGetSystemProperty("__SUPERCLASS") + defer superclass.Close() + + return superclass.Value().(string) +} + +// ServerName +func (c *WmiClass) GetServerName() string { + server := c.mustGetSystemProperty("__SERVER") + defer server.Close() + + return server.Value().(string) +} + +// Namespace +func (c *WmiClass) GetNamespace() string { + namespace := c.mustGetSystemProperty("__NAMESPACE") + defer namespace.Close() + + return namespace.Value().(string) +} + +// SuperClass +func (c *WmiClass) GetSuperClass() *WmiClass { + class, err := c.session.GetClass(c.GetSuperClassName()) + if err != nil { + panic("The class for this instance doesn't exist") + } + + return class +} + +// Derivation +func (c *WmiClass) GetDerivation() []string { + valueNameProperty, err := oleutil.GetProperty(c.class, "Derivation_") + if err != nil { + panic("GetDerivation() failed to get the Derivation_ name property") + } + defer valueNameProperty.Clear() + + derivations, err := GetVariantValues(valueNameProperty) + if len(derivations) < 1 { + panic("GetDerivation() failed to get the Derivation_ values") + } + + values := []string{} + for _, derivation := range derivations { + values = append(values, derivation.(string)) + } + + return values +} + +// Properties +func (c *WmiClass) GetPropertiesNames() []string { + values := c.getValueList("Properties_") + + valueNames := []string{} + for _, value := range values { + valueNames = append(valueNames, value.Name()) + } + CloseAllProperties(values) + + return valueNames +} + +// Qualifiers +func (c *WmiClass) GetQualifiersNames() []string { + values := c.getValueList("Qualifiers_") + + valueNames := []string{} + for _, value := range values { + valueNames = append(valueNames, value.Name()) + } + CloseAllProperties(values) + + return valueNames +} + +// Methods +func (c *WmiClass) GetMethodsNames() []string { + values := c.getValueList("Methods_") + + valueNames := []string{} + for _, value := range values { + valueNames = append(valueNames, value.Name()) + } + CloseAllProperties(values) + + return valueNames +} + +// GetProperty gets the property of the instance specified by name and returns in value +func (c *WmiClass) GetProperty(name string) (interface{}, error) { + rawResult, err := oleutil.GetProperty(c.class, name) + if err != nil { + return nil, err + } + + defer rawResult.Clear() + + if rawResult.VT == 0x1 { + return nil, err + } + + return GetVariantValue(rawResult) +} + +// SetProperty sets a value of property representation by name with value +func (c *WmiClass) SetProperty(name string, value interface{}) error { + rawResult, err := oleutil.PutProperty(c.class, name, value) + if err != nil { + return err + } + + defer rawResult.Clear() + return nil +} + +// Commit +func (c *WmiClass) Commit() error { + rawResult, err := oleutil.CallMethod(c.class, "Put_") + if err != nil { + return err + } + defer rawResult.Clear() + return nil + +} + +// Modify +func (c *WmiClass) Modify() error { + return c.Commit() +} + +func (c *WmiClass) getValueList(valuePropertyName string) []*WmiProperty { + valuesProperty, err := oleutil.GetProperty(c.class, valuePropertyName) + if err != nil { + panic("getValueList failed getting valuePropertyName") + } + defer valuesProperty.Clear() + + result := valuesProperty.ToIDispatch() + // Doc: https://docs.microsoft.com/en-us/previous-versions/windows/desktop/automat/dispid-constants + enum_property, err := result.GetProperty("_NewEnum") + if err != nil { + panic("getValueList() failed getting _NewEnum") + } + defer enum_property.Clear() + + // https://docs.microsoft.com/en-us/windows/win32/api/oaidl/nn-oaidl-ienumvariant + enum, err := enum_property.ToIUnknown().IEnumVARIANT(ole.IID_IEnumVariant) + if err != nil { + panic("getValueList() failed getting IID_IEnumVariant") + } + if enum == nil { + return []*WmiProperty{} + } + defer enum.Release() + + properties := []*WmiProperty{} + for valueVariant, length, err := enum.Next(1); length > 0; valueVariant, length, err = enum.Next(1) { + if err != nil { + panic("getValueList() failed to browse the value list") + } + + property, err := CreateWmiProperty(&valueVariant, c.session) + if err != nil { + panic("getValueList() failed to create the WMI property") + } + + properties = append(properties, property) + } + + return properties +} + +// MethodParameters +func (c *WmiClass) MethodParameters(methodName string) []string { + panic("not implemented") + // TODO. Relevant docs: + // https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemmethodset + // https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemmethod +} + +// Invoke static method on a wmi class +func (c *WmiClass) InvokeMethod(methodName string, params ...interface{}) ([]interface{}, error) { + rawResult, err := oleutil.CallMethod(c.class, methodName, params...) + if err != nil { + return nil, err + } + defer rawResult.Clear() + values, err := GetVariantValues(rawResult) + return values, err +} + +// CloseAllClasses +func CloseAllClasses(classes []*WmiClass) { + for _, class := range classes { + class.Close() + } +} + +// Dispose +func (c *WmiClass) Close() error { + return c.classVar.Clear() +} diff --git a/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiEventSink.go b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiEventSink.go new file mode 100644 index 000000000..2d6c83e3f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiEventSink.go @@ -0,0 +1,248 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +// This class wraps a typicaly SWbemSink object. Its implementation is based on the +// SWbemSink documentation: https://docs.microsoft.com/en-us/windows/win32/wmisdk/receiving-asynchronous-event-notifications +// as well as the winsock example: https://github.com/go-ole/go-ole/blob/master/_example/winsock/winsock.go + +// Note: Please consider the security implications of makig asynchronous calls. +// Documentation: +// https://docs.microsoft.com/en-us/windows/win32/wmisdk/making-an-asynchronous-call-with-vbscript +// https://docs.microsoft.com/en-us/windows/win32/wmisdk/setting-security-on-an-asynchronous-call + +package cim + +import ( + "reflect" + "syscall" + "unsafe" + + ole "github.com/go-ole/go-ole" + "github.com/go-ole/go-ole/oleutil" +) + +var IID_ISWbemObjectPath = &ole.GUID{0x5791BC27, 0xCE9C, 0x11d1, [8]byte{0x97, 0xBF, 0x00, 0x00, 0xF8, 0x1E, 0x84, 0x9C}} +var IID_ISWbemSinkEvents = &ole.GUID{0x75718CA0, 0xF029, 0x11d1, [8]byte{0xA1, 0xAC, 0x00, 0xC0, 0x4F, 0xB6, 0xC2, 0x23}} + +const ( + eventSinkObjectName = "WbemScripting.SWbemSink" + iSWbemSinkEventsGuid = "{75718CA0-F029-11D1-A1AC-00C04FB6C223}" +) + +type WmiEventSink struct { + lpVtbl *WmiEventSinkVtbl + ref int32 + instance *ole.IDispatch + unknown *ole.IUnknown + closed bool + session *WmiSession + onObjectReady func(interface{}, []*WmiInstance) + onCompleted func(interface{}, []*WmiInstance) + onProgress func(interface{}, []*WmiInstance) + onObjectPut func(interface{}, []*WmiInstance) + callbackContext interface{} +} + +type WmiEventSinkVtbl struct { + pQueryInterface uintptr + pAddRef uintptr + pRelease uintptr + pGetTypeInfoCount uintptr + pGetTypeInfo uintptr + pGetIDsOfNames uintptr + pInvoke uintptr +} + +// DISPPARAMS are the arguments that passed to methods or property. +type DISPPARAMS struct { + rgvarg uintptr + rgdispidNamedArgs uintptr + cArgs uint32 + cNamedArgs uint32 +} + +func CreateWmiEventSink(session *WmiSession, callbackContext interface{}, onObjectReady func(interface{}, []*WmiInstance), onCompleted func(interface{}, []*WmiInstance), onProgress func(interface{}, []*WmiInstance), onObjectPut func(interface{}, []*WmiInstance)) (*WmiEventSink, error) { + eventSinkObject, err := oleutil.CreateObject(eventSinkObjectName) + if err != nil { + return nil, err + } + + eventSinkInstance, err := eventSinkObject.QueryInterface(ole.IID_IDispatch) + if err != nil { + return nil, err + } + + wmiEventSink := &WmiEventSink{} + wmiEventSink.lpVtbl = &WmiEventSinkVtbl{} + wmiEventSink.lpVtbl.pQueryInterface = syscall.NewCallback(queryInterface) + wmiEventSink.lpVtbl.pAddRef = syscall.NewCallback(addRef) + wmiEventSink.lpVtbl.pRelease = syscall.NewCallback(release) + wmiEventSink.lpVtbl.pGetTypeInfoCount = syscall.NewCallback(getTypeInfoCount) + wmiEventSink.lpVtbl.pGetTypeInfo = syscall.NewCallback(getTypeInfo) + wmiEventSink.lpVtbl.pGetIDsOfNames = syscall.NewCallback(getIDsOfNames) + wmiEventSink.lpVtbl.pInvoke = syscall.NewCallback(invoke) + wmiEventSink.onObjectReady = onObjectReady + wmiEventSink.onCompleted = onCompleted + wmiEventSink.onProgress = onProgress + wmiEventSink.onObjectPut = onObjectPut + wmiEventSink.callbackContext = callbackContext + wmiEventSink.instance = eventSinkInstance + wmiEventSink.unknown = eventSinkObject + wmiEventSink.session = session + + return wmiEventSink, nil +} + +func (c *WmiEventSink) Connect() (cookie uint32, err error) { + cookie = 0 + err = nil + + connectionPointContainer, err := c.instance.QueryInterface(ole.IID_IConnectionPointContainer) + if err != nil { + return + } + defer connectionPointContainer.Release() + + container := (*ole.IConnectionPointContainer)(unsafe.Pointer(connectionPointContainer)) + + var point *ole.IConnectionPoint + err = container.FindConnectionPoint(IID_ISWbemSinkEvents, &point) + if err != nil { + return + } + + return point.Advise((*ole.IUnknown)(unsafe.Pointer(c))) +} + +func (c *WmiEventSink) GetAndDispatchMessages() { + for c.ref != 0 { + var m ole.Msg + ole.GetMessage(&m, 0, 0, 0) + ole.DispatchMessage(&m) + } +} + +func (c *WmiEventSink) IsReadyToClose() bool { + return (c.ref == 0) +} + +func (c *WmiEventSink) PeekAndDispatchMessages() bool { + var m ole.Msg + msgAvailable, err := PeekMessage(&m, 0, 0, 0, PM_REMOVE) + if err != nil { + return false + } + + if msgAvailable { + ole.DispatchMessage(&m) + } + + return msgAvailable +} + +func (c *WmiEventSink) IsClosed() bool { + return c.closed +} +func (c *WmiEventSink) Close() { + if c.instance != nil { + c.instance.Release() + c.instance = nil + } + if c.unknown != nil { + c.unknown.Release() + c.unknown = nil + } + c.closed = true +} + +/////////////////////////////// Private methods and callbacks ///////////////////////////////////////////////////// + +func queryInterface(this *ole.IUnknown, iid *ole.GUID, punk **ole.IUnknown) uintptr { + s, _ := ole.StringFromCLSID(iid) + + *punk = nil + if ole.IsEqualGUID(iid, ole.IID_IUnknown) || + ole.IsEqualGUID(iid, ole.IID_IDispatch) { + addRef(this) + *punk = this + return ole.S_OK + } + if s == iSWbemSinkEventsGuid { + addRef(this) + *punk = this + return ole.S_OK + } + + return ole.E_NOINTERFACE +} + +func addRef(this *ole.IUnknown) uintptr { + pthis := (*WmiEventSink)(unsafe.Pointer(this)) + pthis.ref++ + return uintptr(pthis.ref) +} + +func release(this *ole.IUnknown) uintptr { + pthis := (*WmiEventSink)(unsafe.Pointer(this)) + pthis.ref-- + return uintptr(pthis.ref) +} + +func getIDsOfNames(this *ole.IUnknown, iid *ole.GUID, wnames **uint16, namelen int, lcid int, pdisp *int32) uintptr { + var pdispSlice []int32 + sliceHeader := (*reflect.SliceHeader)((unsafe.Pointer(&pdispSlice))) + sliceHeader.Cap = namelen + sliceHeader.Len = namelen + sliceHeader.Data = uintptr(unsafe.Pointer(pdisp)) + + var pwnamesSlice []*uint16 + sliceHeader2 := (*reflect.SliceHeader)((unsafe.Pointer(&pwnamesSlice))) + sliceHeader2.Cap = namelen + sliceHeader2.Len = namelen + sliceHeader2.Data = uintptr(unsafe.Pointer(wnames)) + + for n := 0; n < namelen; n++ { + pdispSlice[n] = int32(n) + } + return uintptr(ole.S_OK) +} + +func getTypeInfoCount(pcount *int) uintptr { + if pcount != nil { + *pcount = 0 + } + return uintptr(ole.S_OK) +} + +func getTypeInfo(ptypeif *uintptr) uintptr { + return uintptr(ole.E_NOTIMPL) +} + +func invoke(this *ole.IDispatch, dispid int, riid *ole.GUID, lcid int, flags int16, rawdispparams *DISPPARAMS, result *ole.VARIANT, pexcepinfo *ole.EXCEPINFO, nerr *uint) uintptr { + pthis := (*WmiEventSink)(unsafe.Pointer(this)) + if pthis.IsClosed() { + return ole.S_OK + } + + dispparams := GetDispParamsFromRaw(rawdispparams) + wmiEventInstances, err := GetVariantArrayAsWmiInstances(dispparams.rgvarg, pthis.session) + if err != nil { + return ole.S_OK + } + switch dispid { + case 1: + pthis.onObjectReady(pthis.callbackContext, wmiEventInstances) + return ole.S_OK + case 2: + pthis.onCompleted(pthis.callbackContext, wmiEventInstances) + return ole.S_OK + case 3: + pthis.onProgress(pthis.callbackContext, wmiEventInstances) + return ole.S_OK + case 4: + pthis.onObjectPut(pthis.callbackContext, wmiEventInstances) + return ole.S_OK + default: + } + return ole.E_NOTIMPL +} diff --git a/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiHelper.go b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiHelper.go new file mode 100644 index 000000000..322fe9156 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiHelper.go @@ -0,0 +1,198 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +package cim + +import ( + "reflect" + "syscall" + "unsafe" + + "github.com/go-ole/go-ole" + "golang.org/x/sys/windows" + "strings" +) + +// Additional calls +var ( + modole32 = windows.NewLazySystemDLL("ole32.dll") + moduser32 = windows.NewLazySystemDLL("user32.dll") + + procCoInitializeSecurity = modole32.NewProc("CoInitializeSecurity") + procPeekMessageW = moduser32.NewProc("PeekMessageW") +) + +type RemoveMessageFlags uint32 + +const ( + PM_NOREMOVE RemoveMessageFlags = 0 + PM_REMOVE RemoveMessageFlags = 1 + PM_NOYIELD RemoveMessageFlags = 2 +) + +type RpcAuthenticationLevel uint32 + +const ( + RPC_C_AUTHN_LEVEL_DEFAULT RpcAuthenticationLevel = 0 + RPC_C_AUTHN_LEVEL_NONE RpcAuthenticationLevel = 1 + RPC_C_AUTHN_LEVEL_CONNECT RpcAuthenticationLevel = 2 + RPC_C_AUTHN_LEVEL_CALL RpcAuthenticationLevel = 3 + RPC_C_AUTHN_LEVEL_PKT RpcAuthenticationLevel = 4 + RPC_C_AUTHN_LEVEL_PKT_INTEGRITY RpcAuthenticationLevel = 5 + RPC_C_AUTHN_LEVEL_PKT_PRIVACY RpcAuthenticationLevel = 6 +) + +type RpcImpersonationLevel uint32 + +const ( + RPC_C_IMP_LEVEL_DEFAULT RpcImpersonationLevel = 0 + RPC_C_IMP_LEVEL_ANONYMOUS RpcImpersonationLevel = 1 + RPC_C_IMP_LEVEL_IDENTIFY RpcImpersonationLevel = 2 + RPC_C_IMP_LEVEL_IMPERSONATE RpcImpersonationLevel = 3 + RPC_C_IMP_LEVEL_DELEGATE RpcImpersonationLevel = 4 +) + +type tagEOLE_AUTHENTICATION_CAPABILITIES uint32 + +const ( + EOAC_NONE tagEOLE_AUTHENTICATION_CAPABILITIES = 0 + EOAC_MUTUAL_AUTH tagEOLE_AUTHENTICATION_CAPABILITIES = 0x1 + EOAC_STATIC_CLOAKING tagEOLE_AUTHENTICATION_CAPABILITIES = 0x20 + EOAC_DYNAMIC_CLOAKING tagEOLE_AUTHENTICATION_CAPABILITIES = 0x40 + EOAC_ANY_AUTHORITY tagEOLE_AUTHENTICATION_CAPABILITIES = 0x80 + EOAC_MAKE_FULLSIC tagEOLE_AUTHENTICATION_CAPABILITIES = 0x100 + EOAC_DEFAULT tagEOLE_AUTHENTICATION_CAPABILITIES = 0x800 + EOAC_SECURE_REFS tagEOLE_AUTHENTICATION_CAPABILITIES = 0x2 + EOAC_ACCESS_CONTROL tagEOLE_AUTHENTICATION_CAPABILITIES = 0x4 + EOAC_APPID tagEOLE_AUTHENTICATION_CAPABILITIES = 0x8 + EOAC_DYNAMIC tagEOLE_AUTHENTICATION_CAPABILITIES = 0x10 + EOAC_REQUIRE_FULLSIC tagEOLE_AUTHENTICATION_CAPABILITIES = 0x200 + EOAC_AUTO_IMPERSONATE tagEOLE_AUTHENTICATION_CAPABILITIES = 0x400 + EOAC_NO_CUSTOM_MARSHAL tagEOLE_AUTHENTICATION_CAPABILITIES = 0x2000 + EOAC_DISABLE_AAA tagEOLE_AUTHENTICATION_CAPABILITIES = 0x1000 +) + +const ( + RPC_E_TOO_LATE uint32 = 0x80010119 +) + +func GetVariantValue(rawValue *ole.VARIANT) (interface{}, error) { + array := rawValue.ToArray() + if array == nil { + return rawValue.Value(), nil + } + return array.ToValueArray(), nil +} + +func GetVariantValues(rawValue *ole.VARIANT) ([]interface{}, error) { + + var values []interface{} + array := rawValue.ToArray() + + if array == nil { + // Not an array + values = append(values, rawValue.Value()) + } else { + values = array.ToValueArray() + } + + return values, nil +} + +type DispParams struct { + rgvarg []ole.VARIANT + rgdispidNamedArgs []int32 +} + +func GetDispParamsFromRaw(dispparams *DISPPARAMS) *DispParams { + + // convert the DISPPARAMS to a slice header + params := DispParams{} + + var slice1 []ole.VARIANT + sliceHeader := (*reflect.SliceHeader)(unsafe.Pointer(&slice1)) + sliceHeader.Data = dispparams.rgvarg + sliceHeader.Len = int(dispparams.cArgs) + sliceHeader.Cap = int(dispparams.cArgs) + params.rgvarg = make([]ole.VARIANT, dispparams.cArgs) + copy(params.rgvarg, slice1) + + var slice2 []int32 + sliceHeader = (*reflect.SliceHeader)(unsafe.Pointer(&slice2)) + sliceHeader.Data = dispparams.rgdispidNamedArgs + sliceHeader.Len = int(dispparams.cNamedArgs) + sliceHeader.Cap = int(dispparams.cNamedArgs) + params.rgdispidNamedArgs = make([]int32, dispparams.cNamedArgs) + copy(params.rgdispidNamedArgs, slice2) + + return ¶ms +} + +func GetVariantArrayAsWmiInstances(rawValues []ole.VARIANT, session *WmiSession) (WmiInstanceCollection, error) { + wcol := WmiInstanceCollection{} + for _, rawValue := range rawValues { + // skip wrong types and empty objects + if rawValue.VT != ole.VT_DISPATCH || rawValue.Val == 0 { + continue + } + + instance, err := CreateWmiInstance(&rawValue, session) + if err != nil { + return nil, err + } + wcol = append(wcol, instance) + } + + return wcol, nil +} + +func GetVariantArrayValues(rawValues []ole.VARIANT) ([]interface{}, error) { + var values []interface{} + + for _, rawValue := range rawValues { + array := rawValue.ToArray() + + if array == nil { + // Not an array + values = append(values, rawValue.Value()) + } else { + values = append(values, array.ToValueArray()) + } + } + + return values, nil +} + +func EscapeQueryValue(rawString string) string { + // Double the backslash character as per required by the "WHERE" WMI clause + // Documentation: https://docs.microsoft.com/en-us/windows/win32/wmisdk/where-clause + // Interestingly, double quotes don't seem to need escaping. + return strings.ReplaceAll(strings.ReplaceAll(rawString, "\\", "\\\\"), "'", "\\'") +} + +func FindStringInSlice(stringList []string, value string) (int, bool) { + for i, item := range stringList { + if item == value { + return i, true + } + } + return -1, false +} + +// PeekMessage in message queue from runtime. +// +// This function appears to block. PeekMessage does not block. +func PeekMessage(msg *ole.Msg, hwnd uint32, MsgFilterMin uint32, MsgFilterMax uint32, RemoveMsg RemoveMessageFlags) (ret bool, err error) { + r0, _, err := syscall.Syscall6(procPeekMessageW.Addr(), 5, uintptr(unsafe.Pointer(msg)), uintptr(hwnd), uintptr(MsgFilterMin), uintptr(MsgFilterMax), uintptr(RemoveMsg), 0) + ret = bool(r0 > 0) + return +} + +func CoInitializeSecurity(authLevel RpcAuthenticationLevel, impLevel RpcImpersonationLevel) (err error) { + // https://docs.microsoft.com/en-us/windows/win32/wmisdk/setting-the-default-process-security-level-using-c- + hr, _, _ := syscall.Syscall9(procCoInitializeSecurity.Addr(), 9, uintptr(0), ^uintptr(0), uintptr(0), uintptr(0), uintptr(authLevel), uintptr(impLevel), uintptr(0), uintptr(EOAC_NONE), uintptr(0)) + if hr != 0 { + err = ole.NewError(hr) + } + return +} diff --git a/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiInstance.go b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiInstance.go new file mode 100644 index 000000000..4583fab56 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiInstance.go @@ -0,0 +1,527 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +// This class implement a wrapper of the SWbemObject class (from an instance perspective). +// Documentation: https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemobject + +package cim + +import ( + "fmt" + "log" + + "github.com/microsoft/wmi/pkg/base/host" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + + "github.com/go-ole/go-ole" + "github.com/go-ole/go-ole/oleutil" +) + +type UserAction uint32 + +const ( + None UserAction = 0 + Async UserAction = 1 + Wait UserAction = 2 + Cancel UserAction = 3 + Default UserAction = 4 +) + +// WmiInstance is a representation of a WMI instance +type WmiInstance struct { + class *WmiClass + session *WmiSession + instance *ole.IDispatch + instanceVar *ole.VARIANT +} + +// WmiInstanceCollection is a slice of WmiInstance +type WmiInstanceCollection []*WmiInstance + +func (wmic *WmiInstanceCollection) EmbeddedXMLInstances() (xmls []string, err error) { + for _, inst := range *wmic { + xml, err1 := inst.EmbeddedXMLInstance() + if err1 != nil { + err = err1 + return + } + xmls = append(xmls, xml) + } + return +} + +// Close all instances in a collection +func (wmic *WmiInstanceCollection) Close() { + for _, i := range *wmic { + i.Close() + } +} + +func CreateWmiInstance(instanceVar *ole.VARIANT, session *WmiSession) (*WmiInstance, error) { + return &WmiInstance{ + instanceVar: instanceVar, + instance: instanceVar.ToIDispatch(), + session: session, + }, nil +} + +// GetInstance returns the latest Instance +func (c *WmiInstance) GetInstance() (*WmiInstance, error) { + return c.session.GetInstance(c.InstancePath()) +} +func (c *WmiInstance) GetSession() *WmiSession { + return c.session +} +func (c *WmiInstance) GetWmiHost() *host.WmiHost { + return c.session.WMIHost +} + +func (c *WmiInstance) GetIDispatch() *ole.IDispatch { + return c.instance +} +func (c *WmiInstance) GetRawInstance() *ole.VARIANT { + return c.instanceVar +} + +func (c *WmiInstance) GetSystemProperty(name string) (*WmiProperty, error) { + // Documentation: https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemobjectex-systemproperties- + rawResult, err := oleutil.GetProperty(c.instance, "SystemProperties_") + if err != nil { + return nil, err + } + + // SWbemObjectEx.SystemProperties_ returns + // an SWbemPropertySet object that contains the collection + // of sytem properties for the c class + sWbemObjectExAsIDispatch := rawResult.ToIDispatch() + defer rawResult.Clear() + + // Get the system property + sWbemProperty, err := oleutil.CallMethod(sWbemObjectExAsIDispatch, "Item", name) + if err != nil { + return nil, err + } + + property, err := CreateWmiProperty(sWbemProperty, c.session) + if err != nil { + return nil, err + } + + return property, nil +} + +// GetProperty gets the property of the instance specified by name and returns in value +func (c *WmiInstance) GetProperty(name string) (interface{}, error) { + rawResult, err := oleutil.GetProperty(c.instance, name) + if err != nil { + return nil, err + } + + defer rawResult.Clear() + + if rawResult.VT == 0x1 { + return nil, err + } + + return GetVariantValue(rawResult) +} + +// SetProperty sets a value of property representation by name with value +func (c *WmiInstance) SetProperty(name string, value interface{}) error { + rawResult, err := oleutil.PutProperty(c.instance, name, value) + if err != nil { + log.Printf("[WMI] SetProperty Name[%s] Value[%+v] Err[%+v]\n", name, value, err) + return err + } + + defer rawResult.Clear() + return nil +} + +// ResetProperty resets a property +func (c *WmiInstance) ResetProperty(name string) error { + return c.SetProperty(name, nil) +} + +// GetClassName +func (c *WmiInstance) GetClassName() string { + className, err := c.GetSystemProperty("__CLASS") + if err != nil { + panic("The class doesn't have a __CLASS member " + err.Error()) + } + if className == nil { + panic("The __CLASS member doesn't contain one element, while it was expected to be") + } + defer className.Close() + + return className.Value().(string) +} + +// Class +func (c *WmiInstance) GetClass() *WmiClass { + class, err := c.session.GetClass(c.GetClassName()) + if err != nil { + panic("The class for this instance doesn't exist" + err.Error()) + } + + return class +} + +// EmbeddedXMLInstance +func (c *WmiInstance) EmbeddedXMLInstance() (string, error) { + rawResult, err := oleutil.CallMethod(c.instance, "GetText_", 1) + if err != nil { + return "", err + } + defer rawResult.Clear() + return rawResult.ToString(), err +} + +func (c *WmiInstance) String() string { + return c.InstancePath() +} + +// EmbeddedInstance +func (c *WmiInstance) EmbeddedInstance() (string, error) { + rawResult, err := oleutil.CallMethod(c.instance, "GetObjectText_") + if err != nil { + return "", err + } + defer rawResult.Clear() + return rawResult.ToString(), err +} + +// Equals +func (c *WmiInstance) Equals(instance *WmiInstance) bool { + rawResult, err := oleutil.CallMethod(c.instance, "CompareTo_", instance.instance) + if err != nil { + return false + } + defer rawResult.Clear() + value, err := GetVariantValue(rawResult) + if err != nil { + return false + } + + return value.(bool) +} + +// Clone +func (c *WmiInstance) Clone() (*WmiInstance, error) { + rawResult, err := oleutil.CallMethod(c.instance, "Clone_") + winstance, err := CreateWmiInstance(rawResult, c.session) + return winstance, err +} + +// Refresh +func (c *WmiInstance) Refresh() error { + rawResult, err := oleutil.CallMethod(c.instance, "Refresh_") + if err != nil { + return err + } + defer rawResult.Clear() + return nil +} + +// Commit +func (c *WmiInstance) Commit() error { + rawResult, err := oleutil.CallMethod(c.instance, "Put_") + if err != nil { + return err + } + defer rawResult.Clear() + return nil + +} + +// Modify +func (c *WmiInstance) Modify() error { + return c.Commit() +} + +// Delete +func (c *WmiInstance) Delete() error { + rawResult, err := oleutil.CallMethod(c.instance, "Delete_") + if err != nil { + return err + } + defer rawResult.Clear() + return nil +} + +// InstancePath +func (c *WmiInstance) InstancePath() string { + path, err := c.GetSystemProperty("__PATH") + if err != nil { + panic("The instance doesn't have a path " + err.Error()) + } + defer path.Close() + + return path.Value().(string) +} + +// RelativePath +func (c *WmiInstance) RelativePath() string { + path, err := c.GetSystemProperty("__RELPATH") + if err != nil { + panic("The instance doesn't have a path" + err.Error()) + } + defer path.Close() + + return path.Value().(string) +} + +// InvokeMethod +func (c *WmiInstance) InvokeMethod(methodName string, params ...interface{}) ([]interface{}, error) { + rawResult, err := oleutil.CallMethod(c.instance, methodName, params...) + if err != nil { + return nil, err + } + defer rawResult.Clear() + values, err := GetVariantValues(rawResult) + return values, err +} + +func (c *WmiInstance) GetWmiMethod(methodName string) (*WmiMethod, error) { + return NewWmiMethod(methodName, c) +} + +// InvokeMethodAsync +func (c *WmiInstance) InvokeMethodAsync(methodName string, action UserAction, percentComplete, timeoutSeconds uint32, params ...interface{}) ([]interface{}, error) { + rawResult, err := oleutil.CallMethod(c.instance, methodName, params...) + if err != nil { + return nil, err + } + defer rawResult.Clear() + return GetVariantValues(rawResult) +} + +// InvokeMethodWithReturn invokes a method with return +func (c *WmiInstance) InvokeMethodWithReturn(methodName string, params ...interface{}) (int32, error) { + results, err := c.InvokeMethod(methodName, params...) + if err != nil { + return 0, err + } + + // Does not have any results + if results == nil || len(results) == 0 || results[0] == nil { + return 0, nil + } + + return results[0].(int32), nil +} + +// GetAllRelatedWithQuery returns all related instances matching the query +func (c *WmiInstance) GetAllRelatedWithQuery(q *query.WmiQuery) (WmiInstanceCollection, error) { + winstances, err := c.GetAllRelated(q.ClassName) + if err != nil { + return nil, err + } + + if !q.HasFilter() { + return winstances, nil + } + + defer winstances.Close() + // For now, only Equals is implemented + filter := q.Filters[0] + filteredCollection := WmiInstanceCollection{} + for _, inst := range winstances { + propVal, err := inst.GetProperty(filter.Name) + if err != nil { + continue + } + propString := fmt.Sprintf("%v", propVal) + if propString == filter.Value { + clins, err := inst.Clone() + if err != nil { + return nil, err + } + filteredCollection = append(filteredCollection, clins) + continue + } + } + return filteredCollection, nil +} + +// GetAllRelated +func (c *WmiInstance) GetAllRelated(resultClassName string) (WmiInstanceCollection, error) { + return c.GetAssociated("", resultClassName, "", "") +} + +// GetRelated +func (c *WmiInstance) GetRelated(resultClassName string) (*WmiInstance, error) { + result, err := c.GetAllRelated(resultClassName) + if err != nil { + return nil, err + } + + if len(result) == 0 { + return nil, errors.Wrapf(errors.NotFound, "No Related Items were received for [%s]", resultClassName) + } + return result[0], nil +} + +// GetRelatedEx +func (c *WmiInstance) GetRelatedEx(associatedClassName, resultClassName, resultRole, sourceRole string) (WmiInstanceCollection, error) { + return c.GetAssociated(associatedClassName, resultClassName, resultRole, sourceRole) +} + +// GetFirstRelatedEx +func (c *WmiInstance) GetFirstRelatedEx(associatedClassName, resultClassName, resultRole, sourceRole string) (*WmiInstance, error) { + col, err := c.GetAssociated(associatedClassName, resultClassName, resultRole, sourceRole) + if err != nil { + return nil, err + } + defer col.Close() + + if len(col) == 0 { + return nil, errors.Wrapf(errors.NotFound, "No Related Items were received for [%s]", resultClassName) + } + + return col[0].Clone() +} + +func (c *WmiInstance) GetAssociatedEx(associatedClassName string) (WmiInstanceCollection, error) { + return c.GetAssociated(associatedClassName, "", "", "") +} + +// GetAssociated +func (c *WmiInstance) GetAssociated(associatedClassName, resultClassName, resultRole, sourceRole string) (WmiInstanceCollection, error) { + // Documentation here: https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemobject-associators- + rawResult, err := oleutil.CallMethod(c.instance, "Associators_", + associatedClassName, + resultClassName, + resultRole, + sourceRole, + ) + if err != nil { + return nil, err + } + + result := rawResult.ToIDispatch() + defer rawResult.Clear() + + // Doc: https://docs.microsoft.com/en-us/previous-versions/windows/desktop/automat/dispid-constants + enum_property, err := result.GetProperty("_NewEnum") + if err != nil { + return nil, err + } + defer enum_property.Clear() + + // https://docs.microsoft.com/en-us/windows/win32/api/oaidl/nn-oaidl-ienumvariant + enum, err := enum_property.ToIUnknown().IEnumVARIANT(ole.IID_IEnumVariant) + if err != nil { + return nil, err + } + if enum == nil { + return nil, fmt.Errorf("Enum is nil") + } + + defer enum.Release() + + wmiInstances := WmiInstanceCollection{} + for tmp, length, err := enum.Next(1); length > 0; tmp, length, err = enum.Next(1) { + //defer func() { + // if err != nil { + // wmiInstances.Close() + // } + //}() + if err != nil { + return nil, err + } + + wmiInstance, err := CreateWmiInstance(&tmp, c.session) + if err != nil { + // tmp.Clear() + return nil, err + } + + wmiInstances = append(wmiInstances, wmiInstance) + } + + //if len(wmiInstances) == 0 { + // return nil, errors.Wrapf(errors.NotFound, "GetAssociated [%s] [%s]", associatedClassName, resultClassName) + //} + + return wmiInstances, nil +} + +// GetReferences +func (c *WmiInstance) GetReferences(associatedClassName string) (WmiInstanceCollection, error) { + return c.EnumerateReferencingInstances(associatedClassName, "") +} + +// EnumerateReferencingInstances +func (c *WmiInstance) EnumerateReferencingInstances(resultClassName, sourceRole string) (WmiInstanceCollection, error) { + //Documentation: https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemobject-references- + rawResult, err := oleutil.CallMethod(c.instance, "References_", resultClassName, sourceRole) + if err != nil { + return nil, err + } + + result := rawResult.ToIDispatch() + defer rawResult.Clear() + + // Doc: https://docs.microsoft.com/en-us/previous-versions/windows/desktop/automat/dispid-constants + enum_property, err := result.GetProperty("_NewEnum") + if err != nil { + return nil, err + } + defer enum_property.Clear() + + // https://docs.microsoft.com/en-us/windows/win32/api/oaidl/nn-oaidl-ienumvariant + enum, err := enum_property.ToIUnknown().IEnumVARIANT(ole.IID_IEnumVariant) + if err != nil { + return nil, err + } + if enum == nil { + return nil, fmt.Errorf("Enum is nil") + } + + defer enum.Release() + + wmiInstances := WmiInstanceCollection{} + for tmp, length, err := enum.Next(1); length > 0; tmp, length, err = enum.Next(1) { + //defer func() { + // if err != nil { + // wmiInstances.Close() + // } + //}() + + if err != nil { + return nil, err + } + + wmiInstance, err := CreateWmiInstance(&tmp, c.session) + if err != nil { + //tmp.Clear() + return nil, err + } + + wmiInstances = append(wmiInstances, wmiInstance) + } + + return wmiInstances, nil +} + +// CloseAllInstances +func CloseAllInstances(instances []*WmiInstance) { + for _, instance := range instances { + instance.Close() + } +} + +// Close +func (c *WmiInstance) Close() (err error) { + if c.instanceVar != nil { + // https://docs.microsoft.com/en-us/windows/win32/api/oleauto/nf-oleauto-variantclear + // VariantClear would release the reference if its VT_DISPATCH. + // In our case, WmiInstance holds only VT_DISPATCH + c.instanceVar.Clear() + c.instanceVar = nil + } + + return +} diff --git a/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiJob.go b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiJob.go new file mode 100644 index 000000000..941e6a5e9 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiJob.go @@ -0,0 +1,220 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +// This class implements the swbemproperty class +// Documentation: https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemmethod + +package cim + +import ( + "fmt" + "time" + + "github.com/microsoft/wmi/pkg/errors" +) + +// JobState +type JobState int + +const ( + // New enum + JobState_Unknown JobState = 0 + // New enum + JobState_New JobState = 2 + // Starting enum + JobState_Starting JobState = 3 + // Running enum + JobState_Running JobState = 4 + // Suspended enum + JobState_Suspended JobState = 5 + // Shutting_Down enum + JobState_Shutting_Down JobState = 6 + // Completed enum + JobState_Completed JobState = 7 + // Terminated enum + JobState_Terminated JobState = 8 + // Killed enum + JobState_Killed JobState = 9 + // Exception enum + JobState_Exception JobState = 10 + // Service enum + JobState_Service JobState = 11 + // Query_Pending enum + JobState_Query_Pending JobState = 12 + // DMTF_Reserved enum + JobState_DMTF_Reserved JobState = 13 + // Vendor_Reserved enum + JobState_Vendor_Reserved JobState = 14 +) + +type WmiJob struct { + *WmiInstance +} + +func NewWmiJob(instance *WmiInstance) (*WmiJob, error) { + return &WmiJob{instance}, nil +} + +func (job *WmiJob) String() string { + jtype, err := job.JobType() + if err != nil { + return "" + } + return fmt.Sprintf("Type[%s] State[%s]", jtype, job.GetJobState()) +} + +// GetJobType gets the value of JobType for the instance +func (job *WmiJob) JobType() (value int32, err error) { + retValue, err := job.GetProperty("JobType") + if err != nil { + return + } + value, ok := retValue.(int32) + if !ok { + // TODO: Set an error + } + return +} + +// WaitForPercentComplete waits for the percentComplete or timeout +func (job *WmiJob) WaitForPercentComplete(percentComplete uint16, timeoutSeconds int16) error { + start := time.Now() + + // Run the loop, only if the job is actually running + for !job.IsComplete() { + pComplete, err := job.PercentComplete() + if err != nil { + return err + } + // Break if have achieved the target + if pComplete >= percentComplete { + break + } + time.Sleep(100 * time.Millisecond) + + // Infinite Loop + if timeoutSeconds < 0 { + continue + } + + // If we have waited enough time, return with a timeout error + if time.Since(start) > (time.Duration(timeoutSeconds) * time.Second) { + state := job.GetJobState() + exception := job.GetException() + return errors.Wrapf(errors.Timedout, "WaitForPercentComplete timeout. Current state: [%v], Exception: [%v]", state, exception) + } + } + + return job.GetException() +} + +// WaitForAction waits for the task based on the action type, percent complete and timeoutSeconds +func (job *WmiJob) WaitForAction(action UserAction, percentComplete uint16, timeoutSeconds int16) error { + switch action { + case Wait: + return job.WaitForPercentComplete(percentComplete, timeoutSeconds) + case Cancel: + return job.WaitForPercentComplete(percentComplete, timeoutSeconds) + case None: + fallthrough + case Default: + fallthrough + case Async: + break + } + return nil +} + +// PercentComplete +func (job *WmiJob) PercentComplete() (uint16, error) { + err := job.Refresh() + if err != nil { + return 0, err + } + retValue, err := job.GetProperty("PercentComplete") + if err != nil { + return 0, err + } + return uint16(retValue.(int32)), nil +} + +func (job *WmiJob) GetJobState() (js JobState) { + state, err := job.GetProperty("JobState") + if err != nil { + return + } + js = JobState(state.(int32)) + return +} + +func (job *WmiJob) IsComplete() bool { + err := job.Refresh() + if err != nil { + + } + state := job.GetJobState() + switch state { + case JobState_New: + fallthrough + case JobState_Starting: + fallthrough + case JobState_Running: + fallthrough + case JobState_Suspended: + fallthrough + case JobState_Shutting_Down: + return false + case JobState_Completed: + fallthrough + case JobState_Terminated: + fallthrough + case JobState_Killed: + fallthrough + case JobState_Exception: + return true + } + return false +} + +func (job *WmiJob) GetException() error { + job.Refresh() + state := job.GetJobState() + switch state { + case JobState_Terminated: + fallthrough + case JobState_Killed: + fallthrough + case JobState_Exception: + errorCodeVal, _ := job.GetProperty("ErrorCode") + errorCode := uint16(errorCodeVal.(int32)) + errorDescriptionVal, _ := job.GetProperty("ErrorDescription") + errorDescription, _ := errorDescriptionVal.(string) + errorSummaryDescriptionVal, _ := job.GetProperty("ErrorSummaryDescription") + errorSummaryDescription, _ := errorSummaryDescriptionVal.(string) + return errors.Wrapf(errors.NewWMIError(errorCode), + "ErrorCode[%d] ErrorDescription[%s] ErrorSummaryDescription [%s]", + errorCode, errorDescription, errorSummaryDescription) + } + return nil +} + +func (job *WmiJob) WaitForJobCompletion(result int32, timeoutSeconds int16) error { + if result == 0 { + return nil + } else if result == 4096 { + return job.WaitForAction(Wait, 100, timeoutSeconds) + } else { + return errors.Wrapf(errors.Failed, "Unable to Wait for Job on Result[%d] ", result) + } + +} + +type WmiJobCollection []*WmiJob + +func (c *WmiJobCollection) Close() error { + var err error + for _, p := range *c { + err = p.Close() + } + return err +} diff --git a/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiMethod.go b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiMethod.go new file mode 100644 index 000000000..b1be6e8a9 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiMethod.go @@ -0,0 +1,143 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +// This class implements the swbemproperty class +// Documentation: https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemmethod + +package cim + +import ( + "log" + + "github.com/go-ole/go-ole" + "github.com/go-ole/go-ole/oleutil" + "github.com/microsoft/wmi/pkg/errors" +) + +type WmiMethod struct { + Name string + // Reference + session *WmiSession + // Reference + classInstance *WmiInstance +} + +type WmiMethodResult struct { + ReturnValue int32 + OutMethodParams map[string]*WmiMethodParam +} + +// NewWmiMethod +func NewWmiMethod(methodName string, instance *WmiInstance) (*WmiMethod, error) { + return &WmiMethod{ + Name: methodName, + classInstance: instance, + session: instance.GetSession(), + }, nil +} + +func (c *WmiMethod) addInParam(inparamVariant *ole.VARIANT, paramName string, paramValue interface{}) error { + rawProperties, err := inparamVariant.ToIDispatch().GetProperty("Properties_") + if err != nil { + return err + } + defer rawProperties.Clear() + rawProperty, err := rawProperties.ToIDispatch().CallMethod("Item", paramName) + if err != nil { + return err + } + defer rawProperty.Clear() + + p, err := rawProperty.ToIDispatch().PutProperty("Value", paramValue) + if err != nil { + return err + } + defer p.Clear() + return nil +} + +func (c *WmiMethod) Execute(inParam, outParam WmiMethodParamCollection) (result *WmiMethodResult, err error) { + log.Printf("[WMI] - Executing Method [%s]\n", c.Name) + + iDispatchInstance := c.classInstance.GetIDispatch() + if iDispatchInstance == nil { + return nil, errors.Wrapf(errors.InvalidInput, "InvalidInstance") + } + rawResult, err := iDispatchInstance.GetProperty("Methods_") + if err != nil { + return nil, err + } + defer rawResult.Clear() + // Retrive the method + rawMethod, err := rawResult.ToIDispatch().CallMethod("Item", c.Name) + if err != nil { + return nil, err + } + defer rawMethod.Clear() + + inparamsRaw, err := rawMethod.ToIDispatch().GetProperty("InParameters") + if err != nil { + return nil, err + } + defer inparamsRaw.Clear() + + inparams, err := oleutil.CallMethod(inparamsRaw.ToIDispatch(), "SpawnInstance_") + if err != nil { + return nil, err + } + defer inparams.Clear() + + for _, inp := range inParam { + // log.Printf("InParam [%s]=>[%+v]\n", inp.Name, inp.Value) + c.addInParam(inparams, inp.Name, inp.Value) + } + + result = &WmiMethodResult{ + OutMethodParams: map[string]*WmiMethodParam{}, + } + outparams, err := c.classInstance.GetIDispatch().CallMethod("ExecMethod_", c.Name, inparams) + if err != nil { + return + } + defer outparams.Clear() + returnRaw, err := outparams.ToIDispatch().GetProperty("ReturnValue") + if err != nil { + return + } + defer returnRaw.Clear() + result.ReturnValue = returnRaw.Value().(int32) + log.Printf("[WMI] - Return [%d] ", result.ReturnValue) + + for _, outp := range outParam { + returnRawIn, err1 := outparams.ToIDispatch().GetProperty(outp.Name) + if err1 != nil { + err = err1 + return + } + defer returnRawIn.Clear() + + value, err1 := GetVariantValue(returnRawIn) + if err1 != nil { + err = err1 + return + } + // log.Printf("OutParam [%s]=> [%+v]\n", outp.Name, value) + + result.OutMethodParams[outp.Name] = NewWmiMethodParam(outp.Name, value) + } + return +} + +func (c *WmiMethod) Close() error { + return nil +} + +type WmiMethodCollection []*WmiMethod + +func (c *WmiMethodCollection) Close() error { + var err error + for _, p := range *c { + err = p.Close() + } + return err +} diff --git a/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiMethodParam.go b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiMethodParam.go new file mode 100644 index 000000000..b6a5b91f7 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiMethodParam.go @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +// This class implements the swbemproperty class +// Documentation: https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemproperty + +package cim + +import ( +// "github.com/go-ole/go-ole" +) + +type WmiMethodParam struct { + Name string + Value interface{} + //session *WmiSession + //property *ole.IDispatch + //propertyVar *ole.VARIANT +} + +// func NewWmiMethodParam(name string, val interface{}, propertyVariant *ole.VARIANT, session *WmiSession) (*WmiMethodParam, error) { +func NewWmiMethodParam(name string, val interface{}) *WmiMethodParam { + return &WmiMethodParam{ + Name: name, + //propertyVar: propertyVariant, + //property: propertyVariant.ToIDispatch(), + //session: session, + Value: val, + } +} + +// Dispose +func (c *WmiMethodParam) Close() error { + return nil //c.propertyVar.Clear() +} + +type WmiMethodParamCollection []*WmiMethodParam + +func (c *WmiMethodParamCollection) Close() error { + var err error + for _, p := range *c { + err = p.Close() + } + return err +} diff --git a/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiProperty.go b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiProperty.go new file mode 100644 index 000000000..09dff7907 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiProperty.go @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +// This class implements the swbemproperty class +// Documentation: https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemproperty + +package cim + +import ( + "github.com/go-ole/go-ole" + "github.com/go-ole/go-ole/oleutil" + + "github.com/microsoft/wmi/go/wmi" +) + +type WmiProperty struct { + session *WmiSession + property *ole.IDispatch + propertyVar *ole.VARIANT +} + +func CreateWmiProperty(propertyVariant *ole.VARIANT, session *WmiSession) (*WmiProperty, error) { + return &WmiProperty{ + propertyVar: propertyVariant, + property: propertyVariant.ToIDispatch(), + session: session, + }, nil +} + +// Name +func (c *WmiProperty) Name() string { + name, err := oleutil.GetProperty(c.property, "Name") + if err != nil { + panic("Error retrieving the property Name") + } + + value, err := GetVariantValue(name) + if err != nil { + panic("Error retrieving the property Name") + } + + return value.(string) +} + +// Value +func (c *WmiProperty) Value() interface{} { + rawSystemProperty, err := oleutil.GetProperty(c.property, "Value") + if err != nil { + panic("Error retrieving the property value") + } + + value, err := GetVariantValue(rawSystemProperty) + if err != nil { + panic("Error retrieving the property value") + } + + return value +} + +// Type +func (c *WmiProperty) Type() wmi.WmiType { + rawSystemProperty, err := oleutil.GetProperty(c.property, "CIMType") + if err != nil { + panic("Error retrieving the property type") + } + + value, err := GetVariantValue(rawSystemProperty) + if err != nil { + panic("Error retrieving the property type") + } + + return wmi.WmiType(value.(int)) +} + +func CloseAllProperties(properties []*WmiProperty) { + for _, property := range properties { + property.Close() + } +} + +// Dispose +func (c *WmiProperty) Close() error { + return c.propertyVar.Clear() +} diff --git a/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiQualifier.go b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiQualifier.go new file mode 100644 index 000000000..242bfee1b --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiQualifier.go @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +package cim + +type WmiQualifier struct { +} + +// Name +func (c WmiQualifier) Name() string { + panic("not implemented") + +} + +// Value +func (c WmiQualifier) Value() string { + panic("not implemented") + +} diff --git a/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiSession.go b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiSession.go new file mode 100644 index 000000000..35498e01b --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiSession.go @@ -0,0 +1,307 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +// This class implements the SWbemServices object +// Documentation: https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemservices + +package cim + +import ( + "fmt" + "log" + "runtime/debug" + "strings" + + ole "github.com/go-ole/go-ole" + "github.com/go-ole/go-ole/oleutil" + "github.com/microsoft/wmi/go/wmi" + "github.com/microsoft/wmi/pkg/base/host" +) + +// WmiSession struct to hold the current session information +type WmiSession struct { + ServerName string + Namespace string + Username string + Password string + Domain string + WMIHost *host.WmiHost + Status wmi.SessionStatus + RawSession *ole.VARIANT + Session *ole.IDispatch + CimwmiService *ole.IDispatch +} + +// CreateSessionEx creates a session based on credentials +func CreateSessionEx(CimwmiService *ole.IDispatch, serverName, wmiNamespace string, credentials wmi.Credentials) (*WmiSession, error) { + return CreateSession(CimwmiService, wmiNamespace, serverName, credentials.Domain, credentials.UserName, credentials.Password) +} + +// CreateSession creates a new session with the server and namespace +func CreateSession(CimwmiService *ole.IDispatch, wmiNamespace, serverName, domain, userName, password string) (*WmiSession, error) { + return &WmiSession{ + CimwmiService: CimwmiService, + ServerName: serverName, + Namespace: wmiNamespace, + Username: userName, + Password: password, + Domain: domain, + Status: wmi.Created, + WMIHost: host.NewWmiHostWithCredential(serverName, userName, password, domain), + }, nil +} + +type WbemAuthenticationLevelEnum uint32 + +const ( + wbemAuthenticationLevelDefault WbemAuthenticationLevelEnum = 0 + wbemAuthenticationLevelNone WbemAuthenticationLevelEnum = 1 + wbemAuthenticationLevelConnect WbemAuthenticationLevelEnum = 2 + wbemAuthenticationLevelCall WbemAuthenticationLevelEnum = 3 + wbemAuthenticationLevelPkt WbemAuthenticationLevelEnum = 4 + wbemAuthenticationLevelPktIntegrity WbemAuthenticationLevelEnum = 5 + wbemAuthenticationLevelPktPrivacy WbemAuthenticationLevelEnum = 6 +) + +type WbemImpersonationLevel uint32 + +const ( + wbemImpersonationLevelAnonymous WbemImpersonationLevel = 1 + wbemImpersonationLevelIdentify WbemImpersonationLevel = 2 + wbemImpersonationLevelImpersonate WbemImpersonationLevel = 3 + wbemImpersonationLevelDelegate WbemImpersonationLevel = 4 +) + +// Connect the wmi session +func (c *WmiSession) Connect() (bool, error) { + var err error + // Node that we are connected through SWbemLocator, which uses the scripting language syntax for ConnectServer + // This means the first parameter of the call is the name of the server, and the second parameter is the name of the namespace + // (as opposed to C++ where these two are exposed as one parameter) + // See here for an example illustrating the scripting syntax: https://docs.microsoft.com/en-us/windows/win32/wmisdk/connecting-to-wmi-with-vbscript + c.RawSession, err = oleutil.CallMethod( + c.CimwmiService, "ConnectServer", strings.Join([]string{c.ServerName, c.Domain}, "."), c.Namespace, c.Username, c.Password, "MS_409") + if err != nil { + return false, err + } + c.Session = c.RawSession.ToIDispatch() + c.Status = wmi.Connected + + if c.Session == nil { + panic("Returned session is null") + } + + // Set the authentication level to packet privacy and impersonation to impersonate + // Relevant documentations: + // https://docs.microsoft.com/en-us/windows/win32/wmisdk/setting-security-on-an-asynchronous-call + // https://docs.microsoft.com/en-us/windows/win32/wmisdk/setting-the-default-process-security-level-using-vbscript + // https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemsecurity + // https://docs.microsoft.com/en-us/windows/win32/wmisdk/maintaining-wmi-security + // https://docs.microsoft.com/en-us/windows/win32/wmisdk/securing-scripting-clients + // https://docs.microsoft.com/en-us/windows/win32/wmisdk/providing-events-securely + rawSecurityObject, err := oleutil.GetProperty(c.Session, "Security_") + if err != nil { + debug.PrintStack() + return false, err + } + securityObject := rawSecurityObject.ToIDispatch() + defer rawSecurityObject.Clear() + + rawImpersonationLevel, err := oleutil.PutProperty(securityObject, "ImpersonationLevel", uint32(wbemImpersonationLevelImpersonate)) + if err != nil { + debug.PrintStack() + return false, err + } + defer rawImpersonationLevel.Clear() + + rawAuthenticationLevel, err := oleutil.PutProperty(securityObject, "AuthenticationLevel", uint32(wbemAuthenticationLevelPktPrivacy)) + if err != nil { + debug.PrintStack() + return false, err + } + defer rawAuthenticationLevel.Clear() + + return true, nil +} + +// Close the wmi session +func (c *WmiSession) Close() { + c.RawSession.Clear() + c.Status = wmi.Disconnected +} + +// Dispose the wmi session +func (c *WmiSession) Dispose() { + if c.Status != wmi.Disposed { + c.Close() + c.Status = wmi.Disposed + } +} + +// TestConnection +func (c *WmiSession) TestConnection() bool { + panic("not implemented") +} + +// Tells WMI to create a new class for us +func (c *WmiSession) CreateNewClass() (*WmiClass, error) { + rawResult, err := c.Session.CallMethod("Get") + if err != nil { + return nil, err + } + + return CreateWmiClass(rawResult, c) +} + +func (c *WmiSession) GetClass(classDefinition string) (*WmiClass, error) { + rawResult, err := c.Session.CallMethod("Get", classDefinition) + if err != nil { + return nil, err + } + + return CreateWmiClass(rawResult, c) +} + +// EnumerateClasses +func (c *WmiSession) EnumerateClasses(className string) ([]*WmiClass, error) { + return c.QueryClasses("SELECT * FROM meta_class") +} + +// QueryClasses +func (c *WmiSession) QueryClasses(queryString string) ([]*WmiClass, error) { + enum, err := c.PerformRawQuery(queryString) + if err != nil { + return nil, err + } + defer enum.Release() + + wmiClasses := []*WmiClass{} + for tmp, length, err := enum.Next(1); length > 0; tmp, length, err = enum.Next(1) { + if err != nil { + return nil, err + } + + wmiClass, err := CreateWmiClass(&tmp, c) + if err != nil { + return nil, err + } + + wmiClasses = append(wmiClasses, wmiClass) + } + + return wmiClasses, nil +} + +// GetInstance +func (c *WmiSession) GetInstance(path string) (*WmiInstance, error) { + rawResult, err := c.Session.CallMethod("Get", path) + if err != nil { + return nil, err + } + + return CreateWmiInstance(rawResult, c) +} + +// EnumerateInstances +func (c *WmiSession) EnumerateInstances(className string) ([]*WmiInstance, error) { + return c.QueryInstances("SELECT * FROM " + className) +} + +// QueryInstances +func (c *WmiSession) QueryInstances(queryExpression string) ([]*WmiInstance, error) { + enum, err := c.PerformRawQuery(queryExpression) + if err != nil { + return nil, err + } + defer enum.Release() + + wmiInstances := []*WmiInstance{} + for tmp, length, err := enum.Next(1); length > 0; tmp, length, err = enum.Next(1) { + if err != nil { + return nil, err + } + + wmiInstance, err := CreateWmiInstance(&tmp, c) + if err != nil { + return nil, err + } + + wmiInstances = append(wmiInstances, wmiInstance) + } + + log.Printf("[WMI] QueryInstances [%s]=> [%d]\n", queryExpression, len(wmiInstances)) + return wmiInstances, nil +} + +// QueryInstancesEx +func (c *WmiSession) QueryInstancesEx(query wmi.Query) (*[]wmi.Instance, error) { + panic("not implemented") +} + +// EnumerateReferencingInstances +func (c *WmiSession) EnumerateReferencingInstances(namespaceName string, sourceInstance WmiInstance, associationClassName, sourceRole string) (*[]WmiInstance, error) { + panic("not implemented") +} + +func (c *WmiSession) PerformRawQuery(queryExpression string) (*ole.IEnumVARIANT, error) { + rawResult, err := c.Session.CallMethod("ExecQuery", queryExpression) + if err != nil { + return nil, err + } + + result := rawResult.ToIDispatch() + defer rawResult.Clear() + + // Doc: https://docs.microsoft.com/en-us/previous-versions/windows/desktop/automat/dispid-constants + enum_property, err := result.GetProperty("_NewEnum") + if err != nil { + return nil, err + } + defer enum_property.Clear() + + // https://docs.microsoft.com/en-us/windows/win32/api/oaidl/nn-oaidl-ienumvariant + enum, err := enum_property.ToIUnknown().IEnumVARIANT(ole.IID_IEnumVariant) + if err != nil { + return nil, err + } + if enum == nil { + return nil, fmt.Errorf("Enum is nil") + } + + return enum, err +} + +// Credentials +func (c *WmiSession) Credentials() *wmi.Credentials { + credentials := wmi.Credentials{ + UserName: c.Username, + Password: c.Password, + Domain: c.Domain, + } + + return &credentials +} + +// Asynchronous approach to handling events +// Documentation: https://docs.microsoft.com/en-us/windows/win32/wmisdk/receiving-synchronous-and-semisynchronous-event-notifications +// Security considerations with Asynchronous calls: https://docs.microsoft.com/en-us/windows/win32/wmisdk/making-an-asynchronous-call-with-vbscript +func (c *WmiSession) ExecNotificationQueryAsync(eventSink *WmiEventSink, query string) (interface{}, error) { + rawResult, err := oleutil.CallMethod(c.Session, "ExecNotificationQueryAsync", eventSink.instance, query) + if err != nil { + return nil, err + } + defer rawResult.Clear() + + return GetVariantValue(rawResult) +} + +// Synchronous approach to handling events +// Documentation: https://docs.microsoft.com/en-us/windows/win32/wmisdk/receiving-synchronous-and-semisynchronous-event-notifications +func (c *WmiSession) ExecNotificationQuery(query string) (*WmiSynchronousEventsList, error) { + rawResult, err := oleutil.CallMethod(c.Session, "ExecNotificationQuery", query) + if err != nil { + return nil, err + } + + return CreateWmiSynchronousEventsList(rawResult, c), nil +} diff --git a/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiSessionManager.go b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiSessionManager.go new file mode 100644 index 000000000..927f74549 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiSessionManager.go @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +package cim + +import ( + "errors" + "fmt" + + ole "github.com/go-ole/go-ole" + "github.com/go-ole/go-ole/oleutil" +) + +const S_FALSE = 0x00000001 + +var IID_ISWbemLocator = &ole.GUID{0x76a6415b, 0xcb41, 0x11d1, [8]byte{0x8b, 0x02, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}} + +// Reference https://github.com/StackExchange/wmi +// Reference https://docs.microsoft.com/en-us/windows/desktop/WmiSdk/swbemlocator-connectserver + +type WmiSessionManager struct { + unknown *ole.IUnknown + wmi *ole.IDispatch + sessions map[string]*WmiSession +} + +func NewWmiSessionManager() *WmiSessionManager { + wsm := &WmiSessionManager{} + + err := wsm.init() + if err != nil { + panic("couldn't initialize the WmiSessionManager") + } + + return wsm +} + +func (c *WmiSessionManager) init() error { + err := ole.CoInitializeEx(0, ole.COINIT_MULTITHREADED) + if err != nil { + oleCode := err.(*ole.OleError).Code() + if oleCode != ole.S_OK && oleCode != S_FALSE { + return err + } + } + + // Initialize COM security for the whole process + err = CoInitializeSecurity(RPC_C_AUTHN_LEVEL_PKT_PRIVACY, RPC_C_IMP_LEVEL_IMPERSONATE) + if err != nil { + oleCode := err.(*ole.OleError).Code() + + // Note: RPC_E_TOO_LATE means we have already initialized security. + if oleCode != ole.S_OK && oleCode != S_FALSE && oleCode != uintptr(RPC_E_TOO_LATE) { + panic(fmt.Sprintf("Couldn't initialize COM/DCOM security. Error: [%v]", err)) + } + } + + c.unknown, err = oleutil.CreateObject("WbemScripting.SWbemLocator") + if err != nil { + c.Dispose() + return err + } + if c.unknown == nil { + c.Dispose() + return errors.New("CreateObject failed") + } + + c.wmi, err = c.unknown.QueryInterface(IID_ISWbemLocator) + if err != nil { + c.Dispose() + return err + } + + return nil +} + +// Dispose clears the WmiSessionManager +func (c *WmiSessionManager) Dispose() { + c.Close() +} + +// Close +func (c *WmiSessionManager) Close() error { + // clear the Sessions + + if c.wmi != nil { + c.wmi.Release() + } + // clear ole object + if c.unknown != nil { + c.unknown.Release() + } + + // clear com + ole.CoUninitialize() + + return nil +} + +// GetSession +func (c *WmiSessionManager) GetSession(wmiNamespace, serverName, domain, userName, password string) (*WmiSession, error) { + return CreateSession(c.wmi, wmiNamespace, serverName, domain, userName, password) +} + +// GetLocalSession +func (c *WmiSessionManager) GetLocalSession(wmiNamespace string) (*WmiSession, error) { + return CreateSession(c.wmi, wmiNamespace, "", "", "", "") +} diff --git a/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiSynchronousEvents.go b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiSynchronousEvents.go new file mode 100644 index 000000000..4017f2aa1 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/pkg/wmiinstance/WmiSynchronousEvents.go @@ -0,0 +1,50 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +// This class wraps a typicaly SWbemEventSource object as returned by SWbemServices.ExecNotificationQuery. Its implementation is based on the +// Documentations: +// https://docs.microsoft.com/en-us/windows/win32/wmisdk/receiving-synchronous-and-semisynchronous-event-notifications +// https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemservices-execnotificationquery +// https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemeventsource + +package cim + +import ( + ole "github.com/go-ole/go-ole" + "github.com/go-ole/go-ole/oleutil" +) + +const ( + wbemTimeoutInfinite int32 = -1 +) + +type WmiSynchronousEventsList struct { + session *WmiSession + instance *ole.IDispatch + instanceVar *ole.VARIANT +} + +func CreateWmiSynchronousEventsList(instanceVar *ole.VARIANT, session *WmiSession) *WmiSynchronousEventsList { + return &WmiSynchronousEventsList{ + session: session, + instance: instanceVar.ToIDispatch(), + instanceVar: instanceVar, + } +} + +func (c *WmiSynchronousEventsList) Close() { + c.instanceVar.Clear() +} + +func (c *WmiSynchronousEventsList) WaitForNextEventUntil(timeout int32) (*WmiInstance, error) { + eventInstance, err := oleutil.CallMethod(c.instance, "NextEvent", timeout) + if err != nil { + return nil, err + } + + return CreateWmiInstance(eventInstance, c.session) +} + +func (c *WmiSynchronousEventsList) WaitForNextEvent() (*WmiInstance, error) { + return c.WaitForNextEventUntil(wbemTimeoutInfinite) +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ACE.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ACE.go new file mode 100644 index 000000000..55abedefb --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ACE.go @@ -0,0 +1,260 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __ACE struct +type __ACE struct { + *__SecurityRelatedClass + + // + AccessMask uint32 + + // + AceFlags uint32 + + // + AceType uint32 + + // + GuidInheritedObjectType string + + // + GuidObjectType string + + // + TIME_CREATED uint64 + + // + Trustee __Trustee +} + +func New__ACEEx1(instance *cim.WmiInstance) (newInstance *__ACE, err error) { + tmp, err := New__SecurityRelatedClassEx1(instance) + + if err != nil { + return + } + newInstance = &__ACE{ + __SecurityRelatedClass: tmp, + } + return +} + +func New__ACEEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__ACE, err error) { + tmp, err := New__SecurityRelatedClassEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__ACE{ + __SecurityRelatedClass: tmp, + } + return +} + +// SetAccessMask sets the value of AccessMask for the instance +func (instance *__ACE) SetPropertyAccessMask(value uint32) (err error) { + return instance.SetProperty("AccessMask", (value)) +} + +// GetAccessMask gets the value of AccessMask for the instance +func (instance *__ACE) GetPropertyAccessMask() (value uint32, err error) { + retValue, err := instance.GetProperty("AccessMask") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetAceFlags sets the value of AceFlags for the instance +func (instance *__ACE) SetPropertyAceFlags(value uint32) (err error) { + return instance.SetProperty("AceFlags", (value)) +} + +// GetAceFlags gets the value of AceFlags for the instance +func (instance *__ACE) GetPropertyAceFlags() (value uint32, err error) { + retValue, err := instance.GetProperty("AceFlags") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetAceType sets the value of AceType for the instance +func (instance *__ACE) SetPropertyAceType(value uint32) (err error) { + return instance.SetProperty("AceType", (value)) +} + +// GetAceType gets the value of AceType for the instance +func (instance *__ACE) GetPropertyAceType() (value uint32, err error) { + retValue, err := instance.GetProperty("AceType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetGuidInheritedObjectType sets the value of GuidInheritedObjectType for the instance +func (instance *__ACE) SetPropertyGuidInheritedObjectType(value string) (err error) { + return instance.SetProperty("GuidInheritedObjectType", (value)) +} + +// GetGuidInheritedObjectType gets the value of GuidInheritedObjectType for the instance +func (instance *__ACE) GetPropertyGuidInheritedObjectType() (value string, err error) { + retValue, err := instance.GetProperty("GuidInheritedObjectType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetGuidObjectType sets the value of GuidObjectType for the instance +func (instance *__ACE) SetPropertyGuidObjectType(value string) (err error) { + return instance.SetProperty("GuidObjectType", (value)) +} + +// GetGuidObjectType gets the value of GuidObjectType for the instance +func (instance *__ACE) GetPropertyGuidObjectType() (value string, err error) { + retValue, err := instance.GetProperty("GuidObjectType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetTIME_CREATED sets the value of TIME_CREATED for the instance +func (instance *__ACE) SetPropertyTIME_CREATED(value uint64) (err error) { + return instance.SetProperty("TIME_CREATED", (value)) +} + +// GetTIME_CREATED gets the value of TIME_CREATED for the instance +func (instance *__ACE) GetPropertyTIME_CREATED() (value uint64, err error) { + retValue, err := instance.GetProperty("TIME_CREATED") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetTrustee sets the value of Trustee for the instance +func (instance *__ACE) SetPropertyTrustee(value __Trustee) (err error) { + return instance.SetProperty("Trustee", (value)) +} + +// GetTrustee gets the value of Trustee for the instance +func (instance *__ACE) GetPropertyTrustee() (value __Trustee, err error) { + retValue, err := instance.GetProperty("Trustee") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(__Trustee) + if !ok { + err = errors.Wrapf(errors.InvalidType, " __Trustee is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = __Trustee(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/AbsoluteTimerInstruction.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/AbsoluteTimerInstruction.go new file mode 100644 index 000000000..a0aefee81 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/AbsoluteTimerInstruction.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __AbsoluteTimerInstruction struct +type __AbsoluteTimerInstruction struct { + *__TimerInstruction + + // + EventDateTime string +} + +func New__AbsoluteTimerInstructionEx1(instance *cim.WmiInstance) (newInstance *__AbsoluteTimerInstruction, err error) { + tmp, err := New__TimerInstructionEx1(instance) + + if err != nil { + return + } + newInstance = &__AbsoluteTimerInstruction{ + __TimerInstruction: tmp, + } + return +} + +func New__AbsoluteTimerInstructionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__AbsoluteTimerInstruction, err error) { + tmp, err := New__TimerInstructionEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__AbsoluteTimerInstruction{ + __TimerInstruction: tmp, + } + return +} + +// SetEventDateTime sets the value of EventDateTime for the instance +func (instance *__AbsoluteTimerInstruction) SetPropertyEventDateTime(value string) (err error) { + return instance.SetProperty("EventDateTime", (value)) +} + +// GetEventDateTime gets the value of EventDateTime for the instance +func (instance *__AbsoluteTimerInstruction) GetPropertyEventDateTime() (value string, err error) { + retValue, err := instance.GetProperty("EventDateTime") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/AggregateEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/AggregateEvent.go new file mode 100644 index 000000000..6722c717b --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/AggregateEvent.go @@ -0,0 +1,110 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __AggregateEvent struct +type __AggregateEvent struct { + *__IndicationRelated + + // + NumberOfEvents uint32 + + // + Representative interface{} +} + +func New__AggregateEventEx1(instance *cim.WmiInstance) (newInstance *__AggregateEvent, err error) { + tmp, err := New__IndicationRelatedEx1(instance) + + if err != nil { + return + } + newInstance = &__AggregateEvent{ + __IndicationRelated: tmp, + } + return +} + +func New__AggregateEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__AggregateEvent, err error) { + tmp, err := New__IndicationRelatedEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__AggregateEvent{ + __IndicationRelated: tmp, + } + return +} + +// SetNumberOfEvents sets the value of NumberOfEvents for the instance +func (instance *__AggregateEvent) SetPropertyNumberOfEvents(value uint32) (err error) { + return instance.SetProperty("NumberOfEvents", (value)) +} + +// GetNumberOfEvents gets the value of NumberOfEvents for the instance +func (instance *__AggregateEvent) GetPropertyNumberOfEvents() (value uint32, err error) { + retValue, err := instance.GetProperty("NumberOfEvents") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetRepresentative sets the value of Representative for the instance +func (instance *__AggregateEvent) SetPropertyRepresentative(value interface{}) (err error) { + return instance.SetProperty("Representative", (value)) +} + +// GetRepresentative gets the value of Representative for the instance +func (instance *__AggregateEvent) GetPropertyRepresentative() (value interface{}, err error) { + retValue, err := instance.GetProperty("Representative") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(interface{}) + if !ok { + err = errors.Wrapf(errors.InvalidType, " interface{} is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = interface{}(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_ClassCreation.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_ClassCreation.go new file mode 100644 index 000000000..356e5a7f3 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_ClassCreation.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// CIM_ClassCreation struct +type CIM_ClassCreation struct { + *CIM_ClassIndication +} + +func NewCIM_ClassCreationEx1(instance *cim.WmiInstance) (newInstance *CIM_ClassCreation, err error) { + tmp, err := NewCIM_ClassIndicationEx1(instance) + + if err != nil { + return + } + newInstance = &CIM_ClassCreation{ + CIM_ClassIndication: tmp, + } + return +} + +func NewCIM_ClassCreationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *CIM_ClassCreation, err error) { + tmp, err := NewCIM_ClassIndicationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &CIM_ClassCreation{ + CIM_ClassIndication: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_ClassDeletion.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_ClassDeletion.go new file mode 100644 index 000000000..fece2ac3f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_ClassDeletion.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// CIM_ClassDeletion struct +type CIM_ClassDeletion struct { + *CIM_ClassIndication +} + +func NewCIM_ClassDeletionEx1(instance *cim.WmiInstance) (newInstance *CIM_ClassDeletion, err error) { + tmp, err := NewCIM_ClassIndicationEx1(instance) + + if err != nil { + return + } + newInstance = &CIM_ClassDeletion{ + CIM_ClassIndication: tmp, + } + return +} + +func NewCIM_ClassDeletionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *CIM_ClassDeletion, err error) { + tmp, err := NewCIM_ClassIndicationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &CIM_ClassDeletion{ + CIM_ClassIndication: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_ClassIndication.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_ClassIndication.go new file mode 100644 index 000000000..a771335e7 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_ClassIndication.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// CIM_ClassIndication struct +type CIM_ClassIndication struct { + *CIM_Indication + + // The current definition of the class that is created, changed or deleted in the schema. In the case of a CIM_ClassDeletion Indication, the definition for the class just prior to deletion should be placed in this property. + ClassDefinition interface{} +} + +func NewCIM_ClassIndicationEx1(instance *cim.WmiInstance) (newInstance *CIM_ClassIndication, err error) { + tmp, err := NewCIM_IndicationEx1(instance) + + if err != nil { + return + } + newInstance = &CIM_ClassIndication{ + CIM_Indication: tmp, + } + return +} + +func NewCIM_ClassIndicationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *CIM_ClassIndication, err error) { + tmp, err := NewCIM_IndicationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &CIM_ClassIndication{ + CIM_Indication: tmp, + } + return +} + +// SetClassDefinition sets the value of ClassDefinition for the instance +func (instance *CIM_ClassIndication) SetPropertyClassDefinition(value interface{}) (err error) { + return instance.SetProperty("ClassDefinition", (value)) +} + +// GetClassDefinition gets the value of ClassDefinition for the instance +func (instance *CIM_ClassIndication) GetPropertyClassDefinition() (value interface{}, err error) { + retValue, err := instance.GetProperty("ClassDefinition") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(interface{}) + if !ok { + err = errors.Wrapf(errors.InvalidType, " interface{} is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = interface{}(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_ClassModification.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_ClassModification.go new file mode 100644 index 000000000..d900839ee --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_ClassModification.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// CIM_ClassModification struct +type CIM_ClassModification struct { + *CIM_ClassIndication + + // A copy of the 'previous' class definition whose change generated the Indication. PreviousClassDefinition contains an 'older' copy of the class' information, as compared to what is found in the ClassDefinition property (inherited from ClassIndication). + PreviousClassDefinition interface{} +} + +func NewCIM_ClassModificationEx1(instance *cim.WmiInstance) (newInstance *CIM_ClassModification, err error) { + tmp, err := NewCIM_ClassIndicationEx1(instance) + + if err != nil { + return + } + newInstance = &CIM_ClassModification{ + CIM_ClassIndication: tmp, + } + return +} + +func NewCIM_ClassModificationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *CIM_ClassModification, err error) { + tmp, err := NewCIM_ClassIndicationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &CIM_ClassModification{ + CIM_ClassIndication: tmp, + } + return +} + +// SetPreviousClassDefinition sets the value of PreviousClassDefinition for the instance +func (instance *CIM_ClassModification) SetPropertyPreviousClassDefinition(value interface{}) (err error) { + return instance.SetProperty("PreviousClassDefinition", (value)) +} + +// GetPreviousClassDefinition gets the value of PreviousClassDefinition for the instance +func (instance *CIM_ClassModification) GetPropertyPreviousClassDefinition() (value interface{}, err error) { + retValue, err := instance.GetProperty("PreviousClassDefinition") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(interface{}) + if !ok { + err = errors.Wrapf(errors.InvalidType, " interface{} is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = interface{}(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_Error.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_Error.go new file mode 100644 index 000000000..67222f41f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_Error.go @@ -0,0 +1,503 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// CIM_Error struct +type CIM_Error struct { + *cim.WmiInstance + + // + CIMStatusCode uint32 + + // + CIMStatusCodeDescription string + + // + ErrorSource string + + // + ErrorSourceFormat uint16 + + // + ErrorType uint16 + + // + Message string + + // + MessageArguments []string + + // + MessageID string + + // + OtherErrorSourceFormat string + + // + OtherErrorType string + + // + OwningEntity string + + // + PerceivedSeverity uint16 + + // + ProbableCause uint16 + + // + ProbableCauseDescription string + + // + RecommendedActions []string +} + +func NewCIM_ErrorEx1(instance *cim.WmiInstance) (newInstance *CIM_Error, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &CIM_Error{ + WmiInstance: tmp, + } + return +} + +func NewCIM_ErrorEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *CIM_Error, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &CIM_Error{ + WmiInstance: tmp, + } + return +} + +// SetCIMStatusCode sets the value of CIMStatusCode for the instance +func (instance *CIM_Error) SetPropertyCIMStatusCode(value uint32) (err error) { + return instance.SetProperty("CIMStatusCode", (value)) +} + +// GetCIMStatusCode gets the value of CIMStatusCode for the instance +func (instance *CIM_Error) GetPropertyCIMStatusCode() (value uint32, err error) { + retValue, err := instance.GetProperty("CIMStatusCode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetCIMStatusCodeDescription sets the value of CIMStatusCodeDescription for the instance +func (instance *CIM_Error) SetPropertyCIMStatusCodeDescription(value string) (err error) { + return instance.SetProperty("CIMStatusCodeDescription", (value)) +} + +// GetCIMStatusCodeDescription gets the value of CIMStatusCodeDescription for the instance +func (instance *CIM_Error) GetPropertyCIMStatusCodeDescription() (value string, err error) { + retValue, err := instance.GetProperty("CIMStatusCodeDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetErrorSource sets the value of ErrorSource for the instance +func (instance *CIM_Error) SetPropertyErrorSource(value string) (err error) { + return instance.SetProperty("ErrorSource", (value)) +} + +// GetErrorSource gets the value of ErrorSource for the instance +func (instance *CIM_Error) GetPropertyErrorSource() (value string, err error) { + retValue, err := instance.GetProperty("ErrorSource") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetErrorSourceFormat sets the value of ErrorSourceFormat for the instance +func (instance *CIM_Error) SetPropertyErrorSourceFormat(value uint16) (err error) { + return instance.SetProperty("ErrorSourceFormat", (value)) +} + +// GetErrorSourceFormat gets the value of ErrorSourceFormat for the instance +func (instance *CIM_Error) GetPropertyErrorSourceFormat() (value uint16, err error) { + retValue, err := instance.GetProperty("ErrorSourceFormat") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetErrorType sets the value of ErrorType for the instance +func (instance *CIM_Error) SetPropertyErrorType(value uint16) (err error) { + return instance.SetProperty("ErrorType", (value)) +} + +// GetErrorType gets the value of ErrorType for the instance +func (instance *CIM_Error) GetPropertyErrorType() (value uint16, err error) { + retValue, err := instance.GetProperty("ErrorType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetMessage sets the value of Message for the instance +func (instance *CIM_Error) SetPropertyMessage(value string) (err error) { + return instance.SetProperty("Message", (value)) +} + +// GetMessage gets the value of Message for the instance +func (instance *CIM_Error) GetPropertyMessage() (value string, err error) { + retValue, err := instance.GetProperty("Message") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetMessageArguments sets the value of MessageArguments for the instance +func (instance *CIM_Error) SetPropertyMessageArguments(value []string) (err error) { + return instance.SetProperty("MessageArguments", (value)) +} + +// GetMessageArguments gets the value of MessageArguments for the instance +func (instance *CIM_Error) GetPropertyMessageArguments() (value []string, err error) { + retValue, err := instance.GetProperty("MessageArguments") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetMessageID sets the value of MessageID for the instance +func (instance *CIM_Error) SetPropertyMessageID(value string) (err error) { + return instance.SetProperty("MessageID", (value)) +} + +// GetMessageID gets the value of MessageID for the instance +func (instance *CIM_Error) GetPropertyMessageID() (value string, err error) { + retValue, err := instance.GetProperty("MessageID") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOtherErrorSourceFormat sets the value of OtherErrorSourceFormat for the instance +func (instance *CIM_Error) SetPropertyOtherErrorSourceFormat(value string) (err error) { + return instance.SetProperty("OtherErrorSourceFormat", (value)) +} + +// GetOtherErrorSourceFormat gets the value of OtherErrorSourceFormat for the instance +func (instance *CIM_Error) GetPropertyOtherErrorSourceFormat() (value string, err error) { + retValue, err := instance.GetProperty("OtherErrorSourceFormat") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOtherErrorType sets the value of OtherErrorType for the instance +func (instance *CIM_Error) SetPropertyOtherErrorType(value string) (err error) { + return instance.SetProperty("OtherErrorType", (value)) +} + +// GetOtherErrorType gets the value of OtherErrorType for the instance +func (instance *CIM_Error) GetPropertyOtherErrorType() (value string, err error) { + retValue, err := instance.GetProperty("OtherErrorType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOwningEntity sets the value of OwningEntity for the instance +func (instance *CIM_Error) SetPropertyOwningEntity(value string) (err error) { + return instance.SetProperty("OwningEntity", (value)) +} + +// GetOwningEntity gets the value of OwningEntity for the instance +func (instance *CIM_Error) GetPropertyOwningEntity() (value string, err error) { + retValue, err := instance.GetProperty("OwningEntity") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPerceivedSeverity sets the value of PerceivedSeverity for the instance +func (instance *CIM_Error) SetPropertyPerceivedSeverity(value uint16) (err error) { + return instance.SetProperty("PerceivedSeverity", (value)) +} + +// GetPerceivedSeverity gets the value of PerceivedSeverity for the instance +func (instance *CIM_Error) GetPropertyPerceivedSeverity() (value uint16, err error) { + retValue, err := instance.GetProperty("PerceivedSeverity") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetProbableCause sets the value of ProbableCause for the instance +func (instance *CIM_Error) SetPropertyProbableCause(value uint16) (err error) { + return instance.SetProperty("ProbableCause", (value)) +} + +// GetProbableCause gets the value of ProbableCause for the instance +func (instance *CIM_Error) GetPropertyProbableCause() (value uint16, err error) { + retValue, err := instance.GetProperty("ProbableCause") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetProbableCauseDescription sets the value of ProbableCauseDescription for the instance +func (instance *CIM_Error) SetPropertyProbableCauseDescription(value string) (err error) { + return instance.SetProperty("ProbableCauseDescription", (value)) +} + +// GetProbableCauseDescription gets the value of ProbableCauseDescription for the instance +func (instance *CIM_Error) GetPropertyProbableCauseDescription() (value string, err error) { + retValue, err := instance.GetProperty("ProbableCauseDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetRecommendedActions sets the value of RecommendedActions for the instance +func (instance *CIM_Error) SetPropertyRecommendedActions(value []string) (err error) { + return instance.SetProperty("RecommendedActions", (value)) +} + +// GetRecommendedActions gets the value of RecommendedActions for the instance +func (instance *CIM_Error) GetPropertyRecommendedActions() (value []string, err error) { + retValue, err := instance.GetProperty("RecommendedActions") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_Indication.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_Indication.go new file mode 100644 index 000000000..abf22be1b --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_Indication.go @@ -0,0 +1,315 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// CIM_Indication struct +type CIM_Indication struct { + *cim.WmiInstance + + // A list of IndicationIdentifiers whose notifications are correlated with (related to) this one. + CorrelatedIndications []string + + // An identifier for the indication filter that selects this indication and causes it to be sent. This property is to be filled out by the indication sending service. The value shall be correlatable with the Name property of the instance of CIM_IndicationFilter describing the criteria of the indication. The value of the IndicationFilterName should be formatted using the following algorithm: < OrgID > : < LocalID >, where < OrgID > and < LocalID > are separated by a colon (:) and < OrgID > shall include a copyrighted, trademarked, or otherwise unique name that is owned by the business entity that is creating or defining the value or that is a registered ID assigned to the business entity by a recognized global authority. In addition, to ensure uniqueness, < OrgID > shall not contain a colon (:).When using this algorithm, the first colon to appear in the value shall appear between < OrgID > and < LocalID >. < LocalID > is chosen by the business entity and shall be used uniquely. + IndicationFilterName string + + // An identifier for the Indication. This property is similar to a key value in that it can be used for identification, when correlating Indications (see the CorrelatedIndications array). Its value SHOULD be unique as long as correlations are reported, but MAY be reused or left NULL if no future Indications will reference it in their CorrelatedIndications array.To ensure uniqueness, the value of IndicationIdentifier should be constructed using the following "preferred" algorithm: + ///: + ///Where and are separated by a colon (:), and where must include a copyrighted, trademarked, or otherwise unique name that is owned by the business entity that is creating or defining the IndicationIdentifier or that is a recognized ID that is assigned to the business entity by a recognized global authority. (This requirement is similar to the _ structure of Schema class names.) In addition, to ensure uniqueness must not contain a colon (:). When using this algorithm, the first colon to appear in IndicationIdentifier must appear between and . + /// is chosen by the business entity and should not be re-used to identify different underlying (real-world) elements. + ///If the above "preferred" algorithm is not used, the defining entity should assure that the resulting IndicationIdentifier is not re-used across any IndicationIdentifiers that are produced by this or other providers for the NameSpace of this instance. + ///For DMTF-defined instances, the "preferred" algorithm should be used with the set to CIM. + IndicationIdentifier string + + // The time and date of creation of the Indication. The property may be set to NULL if the entity creating the Indication is not capable of determining this information. Note that IndicationTime may be the same for two Indications that are generated in rapid succession. + IndicationTime string + + // Holds the value of the user defined severity value when 'PerceivedSeverity' is 1 ("Other"). + OtherSeverity string + + // An enumerated value that describes the severity of the Indication from the notifier's point of view: + ///1 - Other, by CIM convention, is used to indicate that the Severity's value can be found in the OtherSeverity property. + ///3 - Degraded/Warning should be used when its appropriate to let the user decide if action is needed. + ///4 - Minor should be used to indicate action is needed, but the situation is not serious at this time. + ///5 - Major should be used to indicate action is needed NOW. + ///6 - Critical should be used to indicate action is needed NOW and the scope is broad (perhaps an imminent outage to a critical resource will result). + ///7 - Fatal/NonRecoverable should be used to indicate an error occurred, but it's too late to take remedial action. + ///2 and 0 - Information and Unknown (respectively) follow common usage. Literally, the Indication is purely informational or its severity is simply unknown. + PerceivedSeverity Indication_PerceivedSeverity + + // The sequence context portion of a sequence identifier for the indication. The sequence number portion of the sequence identifier is provided by the SequenceNumber property. The combination of both property values represents the sequence identifier for the indication. + ///The sequence identifier for the indication enables a CIM listener to identify duplicate indications when the CIM service attempts the delivery retry of indications, to reorder indications that arrive out-of-order, and to detect lost indications. + ///If a CIM service does not support sequence identifiers for indications, this property shall be NULL. + ///If a CIM service supports sequence identifiers for indications, this property shall be maintained by the CIM service for each registered listener destination, and its value shall uniquely identify the CIM service and the indication service within the CIM service such that restarts of the CIM service and deregistration of listener destinations to the CIM service cause the value to change, without reusing earlier values for a sufficiently long time. + ///When retrying the delivery of an indication, this property shall have the same value as in the original delivery. + ///To guarantee this uniqueness, the property value should be constructed using the following format (defined in ABNF): sequence-context = indication-service-name "#" cim-service-start-id "#" listener-destination-creation-time + ///Where: indication-service-name is the value of the Name property of the CIM_IndicationService instance responsible for delivering the indication. cim-service-start-id is an identifier that uniquely identifies the CIM service start, for example via a timestamp of the start time, or via a counter that increases for each start or restart. listener-destination-creation-time is a timestamp of the creation time of the CIM_ListenerDestination instance representing the listener destination. + ///Since this format is only a recommendation, CIM clients shall treat the value as an opaque identifier for the sequence context and shall not rely on this format. + SequenceContext string + + // The sequence number portion of a sequence identifier for the indication. The sequence context portion of the sequence identifier is provided by the SequenceContext property. The combination of both property values represents the sequence identifier for the indication. + ///The sequence identifier for the indication enables a CIM listener to identify duplicate indications when the CIM service attempts the delivery retry of indications, to reorder indications that arrive out-of-order, and to detect lost indications. + ///If a CIM service does not support sequence identifiers for indications, this property shall be NULL. + ///If a CIM service supports sequence identifiers for indications, this property shall be maintained by the CIM service for each registered listener destination, and its value shall uniquely identify the indication within the sequence context provided by SequenceContext. It shall start at 0 whenever the sequence context string changes. Otherwise, it shall be increased by 1 for every new indication to that listener destination, and it shall wrap to 0 when the value range is exceeded. + ///When retrying the delivery of an indication, this property shall have the same value as in the original delivery. + SequenceNumber int64 +} + +func NewCIM_IndicationEx1(instance *cim.WmiInstance) (newInstance *CIM_Indication, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &CIM_Indication{ + WmiInstance: tmp, + } + return +} + +func NewCIM_IndicationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *CIM_Indication, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &CIM_Indication{ + WmiInstance: tmp, + } + return +} + +// SetCorrelatedIndications sets the value of CorrelatedIndications for the instance +func (instance *CIM_Indication) SetPropertyCorrelatedIndications(value []string) (err error) { + return instance.SetProperty("CorrelatedIndications", (value)) +} + +// GetCorrelatedIndications gets the value of CorrelatedIndications for the instance +func (instance *CIM_Indication) GetPropertyCorrelatedIndications() (value []string, err error) { + retValue, err := instance.GetProperty("CorrelatedIndications") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetIndicationFilterName sets the value of IndicationFilterName for the instance +func (instance *CIM_Indication) SetPropertyIndicationFilterName(value string) (err error) { + return instance.SetProperty("IndicationFilterName", (value)) +} + +// GetIndicationFilterName gets the value of IndicationFilterName for the instance +func (instance *CIM_Indication) GetPropertyIndicationFilterName() (value string, err error) { + retValue, err := instance.GetProperty("IndicationFilterName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetIndicationIdentifier sets the value of IndicationIdentifier for the instance +func (instance *CIM_Indication) SetPropertyIndicationIdentifier(value string) (err error) { + return instance.SetProperty("IndicationIdentifier", (value)) +} + +// GetIndicationIdentifier gets the value of IndicationIdentifier for the instance +func (instance *CIM_Indication) GetPropertyIndicationIdentifier() (value string, err error) { + retValue, err := instance.GetProperty("IndicationIdentifier") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetIndicationTime sets the value of IndicationTime for the instance +func (instance *CIM_Indication) SetPropertyIndicationTime(value string) (err error) { + return instance.SetProperty("IndicationTime", (value)) +} + +// GetIndicationTime gets the value of IndicationTime for the instance +func (instance *CIM_Indication) GetPropertyIndicationTime() (value string, err error) { + retValue, err := instance.GetProperty("IndicationTime") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOtherSeverity sets the value of OtherSeverity for the instance +func (instance *CIM_Indication) SetPropertyOtherSeverity(value string) (err error) { + return instance.SetProperty("OtherSeverity", (value)) +} + +// GetOtherSeverity gets the value of OtherSeverity for the instance +func (instance *CIM_Indication) GetPropertyOtherSeverity() (value string, err error) { + retValue, err := instance.GetProperty("OtherSeverity") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPerceivedSeverity sets the value of PerceivedSeverity for the instance +func (instance *CIM_Indication) SetPropertyPerceivedSeverity(value Indication_PerceivedSeverity) (err error) { + return instance.SetProperty("PerceivedSeverity", (value)) +} + +// GetPerceivedSeverity gets the value of PerceivedSeverity for the instance +func (instance *CIM_Indication) GetPropertyPerceivedSeverity() (value Indication_PerceivedSeverity, err error) { + retValue, err := instance.GetProperty("PerceivedSeverity") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(int32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " int32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = Indication_PerceivedSeverity(valuetmp) + + return +} + +// SetSequenceContext sets the value of SequenceContext for the instance +func (instance *CIM_Indication) SetPropertySequenceContext(value string) (err error) { + return instance.SetProperty("SequenceContext", (value)) +} + +// GetSequenceContext gets the value of SequenceContext for the instance +func (instance *CIM_Indication) GetPropertySequenceContext() (value string, err error) { + retValue, err := instance.GetProperty("SequenceContext") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSequenceNumber sets the value of SequenceNumber for the instance +func (instance *CIM_Indication) SetPropertySequenceNumber(value int64) (err error) { + return instance.SetProperty("SequenceNumber", (value)) +} + +// GetSequenceNumber gets the value of SequenceNumber for the instance +func (instance *CIM_Indication) GetPropertySequenceNumber() (value int64, err error) { + retValue, err := instance.GetProperty("SequenceNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(int64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " int64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = int64(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_InstCreation.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_InstCreation.go new file mode 100644 index 000000000..a743dc98d --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_InstCreation.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// CIM_InstCreation struct +type CIM_InstCreation struct { + *CIM_InstIndication +} + +func NewCIM_InstCreationEx1(instance *cim.WmiInstance) (newInstance *CIM_InstCreation, err error) { + tmp, err := NewCIM_InstIndicationEx1(instance) + + if err != nil { + return + } + newInstance = &CIM_InstCreation{ + CIM_InstIndication: tmp, + } + return +} + +func NewCIM_InstCreationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *CIM_InstCreation, err error) { + tmp, err := NewCIM_InstIndicationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &CIM_InstCreation{ + CIM_InstIndication: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_InstDeletion.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_InstDeletion.go new file mode 100644 index 000000000..6e999b169 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_InstDeletion.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// CIM_InstDeletion struct +type CIM_InstDeletion struct { + *CIM_InstIndication +} + +func NewCIM_InstDeletionEx1(instance *cim.WmiInstance) (newInstance *CIM_InstDeletion, err error) { + tmp, err := NewCIM_InstIndicationEx1(instance) + + if err != nil { + return + } + newInstance = &CIM_InstDeletion{ + CIM_InstIndication: tmp, + } + return +} + +func NewCIM_InstDeletionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *CIM_InstDeletion, err error) { + tmp, err := NewCIM_InstIndicationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &CIM_InstDeletion{ + CIM_InstIndication: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_InstIndication.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_InstIndication.go new file mode 100644 index 000000000..d1f270bc1 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_InstIndication.go @@ -0,0 +1,142 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// CIM_InstIndication struct +type CIM_InstIndication struct { + *CIM_Indication + + // A copy of the instance that changed to generate the Indication. SourceInstance contains the current values of the properties selected by the Indication Filter's Query. In the case of CIM_InstDeletion, the property values are copied before the instance is deleted. + SourceInstance interface{} + + // The host name or IP address of the SourceInstance. + SourceInstanceHost string + + // The Model Path of the SourceInstance. The following format MUST be used to encode the Model Path: + ///:.="", + ///="", ... + SourceInstanceModelPath string +} + +func NewCIM_InstIndicationEx1(instance *cim.WmiInstance) (newInstance *CIM_InstIndication, err error) { + tmp, err := NewCIM_IndicationEx1(instance) + + if err != nil { + return + } + newInstance = &CIM_InstIndication{ + CIM_Indication: tmp, + } + return +} + +func NewCIM_InstIndicationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *CIM_InstIndication, err error) { + tmp, err := NewCIM_IndicationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &CIM_InstIndication{ + CIM_Indication: tmp, + } + return +} + +// SetSourceInstance sets the value of SourceInstance for the instance +func (instance *CIM_InstIndication) SetPropertySourceInstance(value interface{}) (err error) { + return instance.SetProperty("SourceInstance", (value)) +} + +// GetSourceInstance gets the value of SourceInstance for the instance +func (instance *CIM_InstIndication) GetPropertySourceInstance() (value interface{}, err error) { + retValue, err := instance.GetProperty("SourceInstance") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(interface{}) + if !ok { + err = errors.Wrapf(errors.InvalidType, " interface{} is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = interface{}(valuetmp) + + return +} + +// SetSourceInstanceHost sets the value of SourceInstanceHost for the instance +func (instance *CIM_InstIndication) SetPropertySourceInstanceHost(value string) (err error) { + return instance.SetProperty("SourceInstanceHost", (value)) +} + +// GetSourceInstanceHost gets the value of SourceInstanceHost for the instance +func (instance *CIM_InstIndication) GetPropertySourceInstanceHost() (value string, err error) { + retValue, err := instance.GetProperty("SourceInstanceHost") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSourceInstanceModelPath sets the value of SourceInstanceModelPath for the instance +func (instance *CIM_InstIndication) SetPropertySourceInstanceModelPath(value string) (err error) { + return instance.SetProperty("SourceInstanceModelPath", (value)) +} + +// GetSourceInstanceModelPath gets the value of SourceInstanceModelPath for the instance +func (instance *CIM_InstIndication) GetPropertySourceInstanceModelPath() (value string, err error) { + retValue, err := instance.GetProperty("SourceInstanceModelPath") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_InstModification.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_InstModification.go new file mode 100644 index 000000000..c07317191 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/CIM_InstModification.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// CIM_InstModification struct +type CIM_InstModification struct { + *CIM_InstIndication + + // A copy of the 'previous' instance whose change generated the Indication. PreviousInstance contains 'older' values of an instance's properties (as compared to SourceInstance), selected by the IndicationFilter's Query. + PreviousInstance interface{} +} + +func NewCIM_InstModificationEx1(instance *cim.WmiInstance) (newInstance *CIM_InstModification, err error) { + tmp, err := NewCIM_InstIndicationEx1(instance) + + if err != nil { + return + } + newInstance = &CIM_InstModification{ + CIM_InstIndication: tmp, + } + return +} + +func NewCIM_InstModificationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *CIM_InstModification, err error) { + tmp, err := NewCIM_InstIndicationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &CIM_InstModification{ + CIM_InstIndication: tmp, + } + return +} + +// SetPreviousInstance sets the value of PreviousInstance for the instance +func (instance *CIM_InstModification) SetPropertyPreviousInstance(value interface{}) (err error) { + return instance.SetProperty("PreviousInstance", (value)) +} + +// GetPreviousInstance gets the value of PreviousInstance for the instance +func (instance *CIM_InstModification) GetPropertyPreviousInstance() (value interface{}, err error) { + retValue, err := instance.GetProperty("PreviousInstance") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(interface{}) + if !ok { + err = errors.Wrapf(errors.InvalidType, " interface{} is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = interface{}(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassCreationEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassCreationEvent.go new file mode 100644 index 000000000..3a3336531 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassCreationEvent.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __ClassCreationEvent struct +type __ClassCreationEvent struct { + *__ClassOperationEvent +} + +func New__ClassCreationEventEx1(instance *cim.WmiInstance) (newInstance *__ClassCreationEvent, err error) { + tmp, err := New__ClassOperationEventEx1(instance) + + if err != nil { + return + } + newInstance = &__ClassCreationEvent{ + __ClassOperationEvent: tmp, + } + return +} + +func New__ClassCreationEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__ClassCreationEvent, err error) { + tmp, err := New__ClassOperationEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__ClassCreationEvent{ + __ClassOperationEvent: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassDeletionEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassDeletionEvent.go new file mode 100644 index 000000000..72b392d3d --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassDeletionEvent.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __ClassDeletionEvent struct +type __ClassDeletionEvent struct { + *__ClassOperationEvent +} + +func New__ClassDeletionEventEx1(instance *cim.WmiInstance) (newInstance *__ClassDeletionEvent, err error) { + tmp, err := New__ClassOperationEventEx1(instance) + + if err != nil { + return + } + newInstance = &__ClassDeletionEvent{ + __ClassOperationEvent: tmp, + } + return +} + +func New__ClassDeletionEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__ClassDeletionEvent, err error) { + tmp, err := New__ClassOperationEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__ClassDeletionEvent{ + __ClassOperationEvent: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassModificationEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassModificationEvent.go new file mode 100644 index 000000000..e1abd57a1 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassModificationEvent.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __ClassModificationEvent struct +type __ClassModificationEvent struct { + *__ClassOperationEvent + + // + PreviousClass interface{} +} + +func New__ClassModificationEventEx1(instance *cim.WmiInstance) (newInstance *__ClassModificationEvent, err error) { + tmp, err := New__ClassOperationEventEx1(instance) + + if err != nil { + return + } + newInstance = &__ClassModificationEvent{ + __ClassOperationEvent: tmp, + } + return +} + +func New__ClassModificationEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__ClassModificationEvent, err error) { + tmp, err := New__ClassOperationEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__ClassModificationEvent{ + __ClassOperationEvent: tmp, + } + return +} + +// SetPreviousClass sets the value of PreviousClass for the instance +func (instance *__ClassModificationEvent) SetPropertyPreviousClass(value interface{}) (err error) { + return instance.SetProperty("PreviousClass", (value)) +} + +// GetPreviousClass gets the value of PreviousClass for the instance +func (instance *__ClassModificationEvent) GetPropertyPreviousClass() (value interface{}, err error) { + retValue, err := instance.GetProperty("PreviousClass") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(interface{}) + if !ok { + err = errors.Wrapf(errors.InvalidType, " interface{} is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = interface{}(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassOperationEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassOperationEvent.go new file mode 100644 index 000000000..75f94a4c9 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassOperationEvent.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __ClassOperationEvent struct +type __ClassOperationEvent struct { + *__Event + + // + TargetClass interface{} +} + +func New__ClassOperationEventEx1(instance *cim.WmiInstance) (newInstance *__ClassOperationEvent, err error) { + tmp, err := New__EventEx1(instance) + + if err != nil { + return + } + newInstance = &__ClassOperationEvent{ + __Event: tmp, + } + return +} + +func New__ClassOperationEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__ClassOperationEvent, err error) { + tmp, err := New__EventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__ClassOperationEvent{ + __Event: tmp, + } + return +} + +// SetTargetClass sets the value of TargetClass for the instance +func (instance *__ClassOperationEvent) SetPropertyTargetClass(value interface{}) (err error) { + return instance.SetProperty("TargetClass", (value)) +} + +// GetTargetClass gets the value of TargetClass for the instance +func (instance *__ClassOperationEvent) GetPropertyTargetClass() (value interface{}, err error) { + retValue, err := instance.GetProperty("TargetClass") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(interface{}) + if !ok { + err = errors.Wrapf(errors.InvalidType, " interface{} is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = interface{}(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassProviderRegistration.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassProviderRegistration.go new file mode 100644 index 000000000..7ec301562 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ClassProviderRegistration.go @@ -0,0 +1,263 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __ClassProviderRegistration struct +type __ClassProviderRegistration struct { + *__ObjectProviderRegistration + + // + CacheRefreshInterval string + + // + PerUserSchema bool + + // + ReferencedSetQueries []string + + // + ResultSetQueries []string + + // + ReSynchroniseOnNamespaceOpen bool + + // + UnsupportedQueries []string + + // + Version uint32 +} + +func New__ClassProviderRegistrationEx1(instance *cim.WmiInstance) (newInstance *__ClassProviderRegistration, err error) { + tmp, err := New__ObjectProviderRegistrationEx1(instance) + + if err != nil { + return + } + newInstance = &__ClassProviderRegistration{ + __ObjectProviderRegistration: tmp, + } + return +} + +func New__ClassProviderRegistrationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__ClassProviderRegistration, err error) { + tmp, err := New__ObjectProviderRegistrationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__ClassProviderRegistration{ + __ObjectProviderRegistration: tmp, + } + return +} + +// SetCacheRefreshInterval sets the value of CacheRefreshInterval for the instance +func (instance *__ClassProviderRegistration) SetPropertyCacheRefreshInterval(value string) (err error) { + return instance.SetProperty("CacheRefreshInterval", (value)) +} + +// GetCacheRefreshInterval gets the value of CacheRefreshInterval for the instance +func (instance *__ClassProviderRegistration) GetPropertyCacheRefreshInterval() (value string, err error) { + retValue, err := instance.GetProperty("CacheRefreshInterval") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPerUserSchema sets the value of PerUserSchema for the instance +func (instance *__ClassProviderRegistration) SetPropertyPerUserSchema(value bool) (err error) { + return instance.SetProperty("PerUserSchema", (value)) +} + +// GetPerUserSchema gets the value of PerUserSchema for the instance +func (instance *__ClassProviderRegistration) GetPropertyPerUserSchema() (value bool, err error) { + retValue, err := instance.GetProperty("PerUserSchema") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetReferencedSetQueries sets the value of ReferencedSetQueries for the instance +func (instance *__ClassProviderRegistration) SetPropertyReferencedSetQueries(value []string) (err error) { + return instance.SetProperty("ReferencedSetQueries", (value)) +} + +// GetReferencedSetQueries gets the value of ReferencedSetQueries for the instance +func (instance *__ClassProviderRegistration) GetPropertyReferencedSetQueries() (value []string, err error) { + retValue, err := instance.GetProperty("ReferencedSetQueries") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetResultSetQueries sets the value of ResultSetQueries for the instance +func (instance *__ClassProviderRegistration) SetPropertyResultSetQueries(value []string) (err error) { + return instance.SetProperty("ResultSetQueries", (value)) +} + +// GetResultSetQueries gets the value of ResultSetQueries for the instance +func (instance *__ClassProviderRegistration) GetPropertyResultSetQueries() (value []string, err error) { + retValue, err := instance.GetProperty("ResultSetQueries") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetReSynchroniseOnNamespaceOpen sets the value of ReSynchroniseOnNamespaceOpen for the instance +func (instance *__ClassProviderRegistration) SetPropertyReSynchroniseOnNamespaceOpen(value bool) (err error) { + return instance.SetProperty("ReSynchroniseOnNamespaceOpen", (value)) +} + +// GetReSynchroniseOnNamespaceOpen gets the value of ReSynchroniseOnNamespaceOpen for the instance +func (instance *__ClassProviderRegistration) GetPropertyReSynchroniseOnNamespaceOpen() (value bool, err error) { + retValue, err := instance.GetProperty("ReSynchroniseOnNamespaceOpen") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetUnsupportedQueries sets the value of UnsupportedQueries for the instance +func (instance *__ClassProviderRegistration) SetPropertyUnsupportedQueries(value []string) (err error) { + return instance.SetProperty("UnsupportedQueries", (value)) +} + +// GetUnsupportedQueries gets the value of UnsupportedQueries for the instance +func (instance *__ClassProviderRegistration) GetPropertyUnsupportedQueries() (value []string, err error) { + retValue, err := instance.GetProperty("UnsupportedQueries") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetVersion sets the value of Version for the instance +func (instance *__ClassProviderRegistration) SetPropertyVersion(value uint32) (err error) { + return instance.SetProperty("Version", (value)) +} + +// GetVersion gets the value of Version for the instance +func (instance *__ClassProviderRegistration) GetPropertyVersion() (value uint32, err error) { + retValue, err := instance.GetProperty("Version") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ConsumerFailureEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ConsumerFailureEvent.go new file mode 100644 index 000000000..73cde9d35 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ConsumerFailureEvent.go @@ -0,0 +1,140 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __ConsumerFailureEvent struct +type __ConsumerFailureEvent struct { + *__EventDroppedEvent + + // + ErrorCode uint32 + + // + ErrorDescription string + + // + ErrorObject __ExtendedStatus +} + +func New__ConsumerFailureEventEx1(instance *cim.WmiInstance) (newInstance *__ConsumerFailureEvent, err error) { + tmp, err := New__EventDroppedEventEx1(instance) + + if err != nil { + return + } + newInstance = &__ConsumerFailureEvent{ + __EventDroppedEvent: tmp, + } + return +} + +func New__ConsumerFailureEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__ConsumerFailureEvent, err error) { + tmp, err := New__EventDroppedEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__ConsumerFailureEvent{ + __EventDroppedEvent: tmp, + } + return +} + +// SetErrorCode sets the value of ErrorCode for the instance +func (instance *__ConsumerFailureEvent) SetPropertyErrorCode(value uint32) (err error) { + return instance.SetProperty("ErrorCode", (value)) +} + +// GetErrorCode gets the value of ErrorCode for the instance +func (instance *__ConsumerFailureEvent) GetPropertyErrorCode() (value uint32, err error) { + retValue, err := instance.GetProperty("ErrorCode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetErrorDescription sets the value of ErrorDescription for the instance +func (instance *__ConsumerFailureEvent) SetPropertyErrorDescription(value string) (err error) { + return instance.SetProperty("ErrorDescription", (value)) +} + +// GetErrorDescription gets the value of ErrorDescription for the instance +func (instance *__ConsumerFailureEvent) GetPropertyErrorDescription() (value string, err error) { + retValue, err := instance.GetProperty("ErrorDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetErrorObject sets the value of ErrorObject for the instance +func (instance *__ConsumerFailureEvent) SetPropertyErrorObject(value __ExtendedStatus) (err error) { + return instance.SetProperty("ErrorObject", (value)) +} + +// GetErrorObject gets the value of ErrorObject for the instance +func (instance *__ConsumerFailureEvent) GetPropertyErrorObject() (value __ExtendedStatus, err error) { + retValue, err := instance.GetProperty("ErrorObject") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(__ExtendedStatus) + if !ok { + err = errors.Wrapf(errors.InvalidType, " __ExtendedStatus is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = __ExtendedStatus(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Event.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Event.go new file mode 100644 index 000000000..aa87931d3 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Event.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __Event struct +type __Event struct { + *__IndicationRelated + + // + SECURITY_DESCRIPTOR []uint8 + + // + TIME_CREATED uint64 +} + +func New__EventEx1(instance *cim.WmiInstance) (newInstance *__Event, err error) { + tmp, err := New__IndicationRelatedEx1(instance) + + if err != nil { + return + } + newInstance = &__Event{ + __IndicationRelated: tmp, + } + return +} + +func New__EventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__Event, err error) { + tmp, err := New__IndicationRelatedEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__Event{ + __IndicationRelated: tmp, + } + return +} + +// SetSECURITY_DESCRIPTOR sets the value of SECURITY_DESCRIPTOR for the instance +func (instance *__Event) SetPropertySECURITY_DESCRIPTOR(value []uint8) (err error) { + return instance.SetProperty("SECURITY_DESCRIPTOR", (value)) +} + +// GetSECURITY_DESCRIPTOR gets the value of SECURITY_DESCRIPTOR for the instance +func (instance *__Event) GetPropertySECURITY_DESCRIPTOR() (value []uint8, err error) { + retValue, err := instance.GetProperty("SECURITY_DESCRIPTOR") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint8) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint8 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint8(valuetmp)) + } + + return +} + +// SetTIME_CREATED sets the value of TIME_CREATED for the instance +func (instance *__Event) SetPropertyTIME_CREATED(value uint64) (err error) { + return instance.SetProperty("TIME_CREATED", (value)) +} + +// GetTIME_CREATED gets the value of TIME_CREATED for the instance +func (instance *__Event) GetPropertyTIME_CREATED() (value uint64, err error) { + retValue, err := instance.GetProperty("TIME_CREATED") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventConsumer.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventConsumer.go new file mode 100644 index 000000000..9e7172a96 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventConsumer.go @@ -0,0 +1,141 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __EventConsumer struct +type __EventConsumer struct { + *__IndicationRelated + + // + CreatorSID []uint8 + + // + MachineName string + + // + MaximumQueueSize uint32 +} + +func New__EventConsumerEx1(instance *cim.WmiInstance) (newInstance *__EventConsumer, err error) { + tmp, err := New__IndicationRelatedEx1(instance) + + if err != nil { + return + } + newInstance = &__EventConsumer{ + __IndicationRelated: tmp, + } + return +} + +func New__EventConsumerEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__EventConsumer, err error) { + tmp, err := New__IndicationRelatedEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__EventConsumer{ + __IndicationRelated: tmp, + } + return +} + +// SetCreatorSID sets the value of CreatorSID for the instance +func (instance *__EventConsumer) SetPropertyCreatorSID(value []uint8) (err error) { + return instance.SetProperty("CreatorSID", (value)) +} + +// GetCreatorSID gets the value of CreatorSID for the instance +func (instance *__EventConsumer) GetPropertyCreatorSID() (value []uint8, err error) { + retValue, err := instance.GetProperty("CreatorSID") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint8) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint8 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint8(valuetmp)) + } + + return +} + +// SetMachineName sets the value of MachineName for the instance +func (instance *__EventConsumer) SetPropertyMachineName(value string) (err error) { + return instance.SetProperty("MachineName", (value)) +} + +// GetMachineName gets the value of MachineName for the instance +func (instance *__EventConsumer) GetPropertyMachineName() (value string, err error) { + retValue, err := instance.GetProperty("MachineName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetMaximumQueueSize sets the value of MaximumQueueSize for the instance +func (instance *__EventConsumer) SetPropertyMaximumQueueSize(value uint32) (err error) { + return instance.SetProperty("MaximumQueueSize", (value)) +} + +// GetMaximumQueueSize gets the value of MaximumQueueSize for the instance +func (instance *__EventConsumer) GetPropertyMaximumQueueSize() (value uint32, err error) { + retValue, err := instance.GetProperty("MaximumQueueSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventConsumerProviderRegistration.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventConsumerProviderRegistration.go new file mode 100644 index 000000000..fce897520 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventConsumerProviderRegistration.go @@ -0,0 +1,81 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __EventConsumerProviderRegistration struct +type __EventConsumerProviderRegistration struct { + *__ProviderRegistration + + // + ConsumerClassNames []string +} + +func New__EventConsumerProviderRegistrationEx1(instance *cim.WmiInstance) (newInstance *__EventConsumerProviderRegistration, err error) { + tmp, err := New__ProviderRegistrationEx1(instance) + + if err != nil { + return + } + newInstance = &__EventConsumerProviderRegistration{ + __ProviderRegistration: tmp, + } + return +} + +func New__EventConsumerProviderRegistrationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__EventConsumerProviderRegistration, err error) { + tmp, err := New__ProviderRegistrationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__EventConsumerProviderRegistration{ + __ProviderRegistration: tmp, + } + return +} + +// SetConsumerClassNames sets the value of ConsumerClassNames for the instance +func (instance *__EventConsumerProviderRegistration) SetPropertyConsumerClassNames(value []string) (err error) { + return instance.SetProperty("ConsumerClassNames", (value)) +} + +// GetConsumerClassNames gets the value of ConsumerClassNames for the instance +func (instance *__EventConsumerProviderRegistration) GetPropertyConsumerClassNames() (value []string, err error) { + retValue, err := instance.GetProperty("ConsumerClassNames") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventDroppedEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventDroppedEvent.go new file mode 100644 index 000000000..9f8145585 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventDroppedEvent.go @@ -0,0 +1,110 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __EventDroppedEvent struct +type __EventDroppedEvent struct { + *__SystemEvent + + // + Event __Event + + // + IntendedConsumer __EventConsumer +} + +func New__EventDroppedEventEx1(instance *cim.WmiInstance) (newInstance *__EventDroppedEvent, err error) { + tmp, err := New__SystemEventEx1(instance) + + if err != nil { + return + } + newInstance = &__EventDroppedEvent{ + __SystemEvent: tmp, + } + return +} + +func New__EventDroppedEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__EventDroppedEvent, err error) { + tmp, err := New__SystemEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__EventDroppedEvent{ + __SystemEvent: tmp, + } + return +} + +// SetEvent sets the value of Event for the instance +func (instance *__EventDroppedEvent) SetPropertyEvent(value __Event) (err error) { + return instance.SetProperty("Event", (value)) +} + +// GetEvent gets the value of Event for the instance +func (instance *__EventDroppedEvent) GetPropertyEvent() (value __Event, err error) { + retValue, err := instance.GetProperty("Event") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(__Event) + if !ok { + err = errors.Wrapf(errors.InvalidType, " __Event is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = __Event(valuetmp) + + return +} + +// SetIntendedConsumer sets the value of IntendedConsumer for the instance +func (instance *__EventDroppedEvent) SetPropertyIntendedConsumer(value __EventConsumer) (err error) { + return instance.SetProperty("IntendedConsumer", (value)) +} + +// GetIntendedConsumer gets the value of IntendedConsumer for the instance +func (instance *__EventDroppedEvent) GetPropertyIntendedConsumer() (value __EventConsumer, err error) { + retValue, err := instance.GetProperty("IntendedConsumer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(__EventConsumer) + if !ok { + err = errors.Wrapf(errors.InvalidType, " __EventConsumer is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = __EventConsumer(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventFilter.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventFilter.go new file mode 100644 index 000000000..9913d731b --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventFilter.go @@ -0,0 +1,231 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __EventFilter struct +type __EventFilter struct { + *__IndicationRelated + + // + CreatorSID []uint8 + + // + EventAccess string + + // + EventNamespace string + + // + Name string + + // + Query string + + // + QueryLanguage string +} + +func New__EventFilterEx1(instance *cim.WmiInstance) (newInstance *__EventFilter, err error) { + tmp, err := New__IndicationRelatedEx1(instance) + + if err != nil { + return + } + newInstance = &__EventFilter{ + __IndicationRelated: tmp, + } + return +} + +func New__EventFilterEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__EventFilter, err error) { + tmp, err := New__IndicationRelatedEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__EventFilter{ + __IndicationRelated: tmp, + } + return +} + +// SetCreatorSID sets the value of CreatorSID for the instance +func (instance *__EventFilter) SetPropertyCreatorSID(value []uint8) (err error) { + return instance.SetProperty("CreatorSID", (value)) +} + +// GetCreatorSID gets the value of CreatorSID for the instance +func (instance *__EventFilter) GetPropertyCreatorSID() (value []uint8, err error) { + retValue, err := instance.GetProperty("CreatorSID") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint8) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint8 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint8(valuetmp)) + } + + return +} + +// SetEventAccess sets the value of EventAccess for the instance +func (instance *__EventFilter) SetPropertyEventAccess(value string) (err error) { + return instance.SetProperty("EventAccess", (value)) +} + +// GetEventAccess gets the value of EventAccess for the instance +func (instance *__EventFilter) GetPropertyEventAccess() (value string, err error) { + retValue, err := instance.GetProperty("EventAccess") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetEventNamespace sets the value of EventNamespace for the instance +func (instance *__EventFilter) SetPropertyEventNamespace(value string) (err error) { + return instance.SetProperty("EventNamespace", (value)) +} + +// GetEventNamespace gets the value of EventNamespace for the instance +func (instance *__EventFilter) GetPropertyEventNamespace() (value string, err error) { + retValue, err := instance.GetProperty("EventNamespace") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetName sets the value of Name for the instance +func (instance *__EventFilter) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *__EventFilter) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetQuery sets the value of Query for the instance +func (instance *__EventFilter) SetPropertyQuery(value string) (err error) { + return instance.SetProperty("Query", (value)) +} + +// GetQuery gets the value of Query for the instance +func (instance *__EventFilter) GetPropertyQuery() (value string, err error) { + retValue, err := instance.GetProperty("Query") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetQueryLanguage sets the value of QueryLanguage for the instance +func (instance *__EventFilter) SetPropertyQueryLanguage(value string) (err error) { + return instance.SetProperty("QueryLanguage", (value)) +} + +// GetQueryLanguage gets the value of QueryLanguage for the instance +func (instance *__EventFilter) GetPropertyQueryLanguage() (value string, err error) { + retValue, err := instance.GetProperty("QueryLanguage") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventGenerator.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventGenerator.go new file mode 100644 index 000000000..b28e38bbe --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventGenerator.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __EventGenerator struct +type __EventGenerator struct { + *__IndicationRelated +} + +func New__EventGeneratorEx1(instance *cim.WmiInstance) (newInstance *__EventGenerator, err error) { + tmp, err := New__IndicationRelatedEx1(instance) + + if err != nil { + return + } + newInstance = &__EventGenerator{ + __IndicationRelated: tmp, + } + return +} + +func New__EventGeneratorEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__EventGenerator, err error) { + tmp, err := New__IndicationRelatedEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__EventGenerator{ + __IndicationRelated: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventProviderRegistration.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventProviderRegistration.go new file mode 100644 index 000000000..4fb73b383 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventProviderRegistration.go @@ -0,0 +1,81 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __EventProviderRegistration struct +type __EventProviderRegistration struct { + *__ProviderRegistration + + // + EventQueryList []string +} + +func New__EventProviderRegistrationEx1(instance *cim.WmiInstance) (newInstance *__EventProviderRegistration, err error) { + tmp, err := New__ProviderRegistrationEx1(instance) + + if err != nil { + return + } + newInstance = &__EventProviderRegistration{ + __ProviderRegistration: tmp, + } + return +} + +func New__EventProviderRegistrationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__EventProviderRegistration, err error) { + tmp, err := New__ProviderRegistrationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__EventProviderRegistration{ + __ProviderRegistration: tmp, + } + return +} + +// SetEventQueryList sets the value of EventQueryList for the instance +func (instance *__EventProviderRegistration) SetPropertyEventQueryList(value []string) (err error) { + return instance.SetProperty("EventQueryList", (value)) +} + +// GetEventQueryList gets the value of EventQueryList for the instance +func (instance *__EventProviderRegistration) GetPropertyEventQueryList() (value []string, err error) { + retValue, err := instance.GetProperty("EventQueryList") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventQueueOverflowEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventQueueOverflowEvent.go new file mode 100644 index 000000000..a1c110cf0 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/EventQueueOverflowEvent.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __EventQueueOverflowEvent struct +type __EventQueueOverflowEvent struct { + *__EventDroppedEvent + + // + CurrentQueueSize uint32 +} + +func New__EventQueueOverflowEventEx1(instance *cim.WmiInstance) (newInstance *__EventQueueOverflowEvent, err error) { + tmp, err := New__EventDroppedEventEx1(instance) + + if err != nil { + return + } + newInstance = &__EventQueueOverflowEvent{ + __EventDroppedEvent: tmp, + } + return +} + +func New__EventQueueOverflowEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__EventQueueOverflowEvent, err error) { + tmp, err := New__EventDroppedEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__EventQueueOverflowEvent{ + __EventDroppedEvent: tmp, + } + return +} + +// SetCurrentQueueSize sets the value of CurrentQueueSize for the instance +func (instance *__EventQueueOverflowEvent) SetPropertyCurrentQueueSize(value uint32) (err error) { + return instance.SetProperty("CurrentQueueSize", (value)) +} + +// GetCurrentQueueSize gets the value of CurrentQueueSize for the instance +func (instance *__EventQueueOverflowEvent) GetPropertyCurrentQueueSize() (value uint32, err error) { + retValue, err := instance.GetProperty("CurrentQueueSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ExtendedStatus.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ExtendedStatus.go new file mode 100644 index 000000000..be13c78eb --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ExtendedStatus.go @@ -0,0 +1,170 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __ExtendedStatus struct +type __ExtendedStatus struct { + *__NotifyStatus + + // + Description string + + // + Operation string + + // + ParameterInfo string + + // + ProviderName string +} + +func New__ExtendedStatusEx1(instance *cim.WmiInstance) (newInstance *__ExtendedStatus, err error) { + tmp, err := New__NotifyStatusEx1(instance) + + if err != nil { + return + } + newInstance = &__ExtendedStatus{ + __NotifyStatus: tmp, + } + return +} + +func New__ExtendedStatusEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__ExtendedStatus, err error) { + tmp, err := New__NotifyStatusEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__ExtendedStatus{ + __NotifyStatus: tmp, + } + return +} + +// SetDescription sets the value of Description for the instance +func (instance *__ExtendedStatus) SetPropertyDescription(value string) (err error) { + return instance.SetProperty("Description", (value)) +} + +// GetDescription gets the value of Description for the instance +func (instance *__ExtendedStatus) GetPropertyDescription() (value string, err error) { + retValue, err := instance.GetProperty("Description") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOperation sets the value of Operation for the instance +func (instance *__ExtendedStatus) SetPropertyOperation(value string) (err error) { + return instance.SetProperty("Operation", (value)) +} + +// GetOperation gets the value of Operation for the instance +func (instance *__ExtendedStatus) GetPropertyOperation() (value string, err error) { + retValue, err := instance.GetProperty("Operation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetParameterInfo sets the value of ParameterInfo for the instance +func (instance *__ExtendedStatus) SetPropertyParameterInfo(value string) (err error) { + return instance.SetProperty("ParameterInfo", (value)) +} + +// GetParameterInfo gets the value of ParameterInfo for the instance +func (instance *__ExtendedStatus) GetPropertyParameterInfo() (value string, err error) { + retValue, err := instance.GetProperty("ParameterInfo") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetProviderName sets the value of ProviderName for the instance +func (instance *__ExtendedStatus) SetPropertyProviderName(value string) (err error) { + return instance.SetProperty("ProviderName", (value)) +} + +// GetProviderName gets the value of ProviderName for the instance +func (instance *__ExtendedStatus) GetPropertyProviderName() (value string, err error) { + retValue, err := instance.GetProperty("ProviderName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ExtrinsicEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ExtrinsicEvent.go new file mode 100644 index 000000000..e71d3b367 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ExtrinsicEvent.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __ExtrinsicEvent struct +type __ExtrinsicEvent struct { + *__Event +} + +func New__ExtrinsicEventEx1(instance *cim.WmiInstance) (newInstance *__ExtrinsicEvent, err error) { + tmp, err := New__EventEx1(instance) + + if err != nil { + return + } + newInstance = &__ExtrinsicEvent{ + __Event: tmp, + } + return +} + +func New__ExtrinsicEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__ExtrinsicEvent, err error) { + tmp, err := New__EventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__ExtrinsicEvent{ + __Event: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/FilterToConsumerBinding.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/FilterToConsumerBinding.go new file mode 100644 index 000000000..a0f87be64 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/FilterToConsumerBinding.go @@ -0,0 +1,261 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __FilterToConsumerBinding struct +type __FilterToConsumerBinding struct { + *__IndicationRelated + + // + Consumer __EventConsumer + + // + CreatorSID []uint8 + + // + DeliverSynchronously bool + + // + DeliveryQoS uint32 + + // + Filter __EventFilter + + // + MaintainSecurityContext bool + + // + SlowDownProviders bool +} + +func New__FilterToConsumerBindingEx1(instance *cim.WmiInstance) (newInstance *__FilterToConsumerBinding, err error) { + tmp, err := New__IndicationRelatedEx1(instance) + + if err != nil { + return + } + newInstance = &__FilterToConsumerBinding{ + __IndicationRelated: tmp, + } + return +} + +func New__FilterToConsumerBindingEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__FilterToConsumerBinding, err error) { + tmp, err := New__IndicationRelatedEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__FilterToConsumerBinding{ + __IndicationRelated: tmp, + } + return +} + +// SetConsumer sets the value of Consumer for the instance +func (instance *__FilterToConsumerBinding) SetPropertyConsumer(value __EventConsumer) (err error) { + return instance.SetProperty("Consumer", (value)) +} + +// GetConsumer gets the value of Consumer for the instance +func (instance *__FilterToConsumerBinding) GetPropertyConsumer() (value __EventConsumer, err error) { + retValue, err := instance.GetProperty("Consumer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(__EventConsumer) + if !ok { + err = errors.Wrapf(errors.InvalidType, " __EventConsumer is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = __EventConsumer(valuetmp) + + return +} + +// SetCreatorSID sets the value of CreatorSID for the instance +func (instance *__FilterToConsumerBinding) SetPropertyCreatorSID(value []uint8) (err error) { + return instance.SetProperty("CreatorSID", (value)) +} + +// GetCreatorSID gets the value of CreatorSID for the instance +func (instance *__FilterToConsumerBinding) GetPropertyCreatorSID() (value []uint8, err error) { + retValue, err := instance.GetProperty("CreatorSID") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint8) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint8 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint8(valuetmp)) + } + + return +} + +// SetDeliverSynchronously sets the value of DeliverSynchronously for the instance +func (instance *__FilterToConsumerBinding) SetPropertyDeliverSynchronously(value bool) (err error) { + return instance.SetProperty("DeliverSynchronously", (value)) +} + +// GetDeliverSynchronously gets the value of DeliverSynchronously for the instance +func (instance *__FilterToConsumerBinding) GetPropertyDeliverSynchronously() (value bool, err error) { + retValue, err := instance.GetProperty("DeliverSynchronously") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetDeliveryQoS sets the value of DeliveryQoS for the instance +func (instance *__FilterToConsumerBinding) SetPropertyDeliveryQoS(value uint32) (err error) { + return instance.SetProperty("DeliveryQoS", (value)) +} + +// GetDeliveryQoS gets the value of DeliveryQoS for the instance +func (instance *__FilterToConsumerBinding) GetPropertyDeliveryQoS() (value uint32, err error) { + retValue, err := instance.GetProperty("DeliveryQoS") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetFilter sets the value of Filter for the instance +func (instance *__FilterToConsumerBinding) SetPropertyFilter(value __EventFilter) (err error) { + return instance.SetProperty("Filter", (value)) +} + +// GetFilter gets the value of Filter for the instance +func (instance *__FilterToConsumerBinding) GetPropertyFilter() (value __EventFilter, err error) { + retValue, err := instance.GetProperty("Filter") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(__EventFilter) + if !ok { + err = errors.Wrapf(errors.InvalidType, " __EventFilter is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = __EventFilter(valuetmp) + + return +} + +// SetMaintainSecurityContext sets the value of MaintainSecurityContext for the instance +func (instance *__FilterToConsumerBinding) SetPropertyMaintainSecurityContext(value bool) (err error) { + return instance.SetProperty("MaintainSecurityContext", (value)) +} + +// GetMaintainSecurityContext gets the value of MaintainSecurityContext for the instance +func (instance *__FilterToConsumerBinding) GetPropertyMaintainSecurityContext() (value bool, err error) { + retValue, err := instance.GetProperty("MaintainSecurityContext") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSlowDownProviders sets the value of SlowDownProviders for the instance +func (instance *__FilterToConsumerBinding) SetPropertySlowDownProviders(value bool) (err error) { + return instance.SetProperty("SlowDownProviders", (value)) +} + +// GetSlowDownProviders gets the value of SlowDownProviders for the instance +func (instance *__FilterToConsumerBinding) GetPropertySlowDownProviders() (value bool, err error) { + retValue, err := instance.GetProperty("SlowDownProviders") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/IndicationRelated.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/IndicationRelated.go new file mode 100644 index 000000000..9bb16b1b5 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/IndicationRelated.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __IndicationRelated struct +type __IndicationRelated struct { + *__SystemClass +} + +func New__IndicationRelatedEx1(instance *cim.WmiInstance) (newInstance *__IndicationRelated, err error) { + tmp, err := New__SystemClassEx1(instance) + + if err != nil { + return + } + newInstance = &__IndicationRelated{ + __SystemClass: tmp, + } + return +} + +func New__IndicationRelatedEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__IndicationRelated, err error) { + tmp, err := New__SystemClassEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__IndicationRelated{ + __SystemClass: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Indication_PerceivedSeverity.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Indication_PerceivedSeverity.go new file mode 100644 index 000000000..9a06b6107 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Indication_PerceivedSeverity.go @@ -0,0 +1,33 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source Indication_PerceivedSeverity +////////////////////////////////////////////// +package storage + +// Indication_PerceivedSeverity +type Indication_PerceivedSeverity int + +const ( + // Unknown enum + Indication_PerceivedSeverity_Unknown Indication_PerceivedSeverity = 0 + // Other enum + Indication_PerceivedSeverity_Other Indication_PerceivedSeverity = 1 + // Information enum + Indication_PerceivedSeverity_Information Indication_PerceivedSeverity = 2 + // Degraded_Warning enum + Indication_PerceivedSeverity_Degraded_Warning Indication_PerceivedSeverity = 3 + // Minor enum + Indication_PerceivedSeverity_Minor Indication_PerceivedSeverity = 4 + // Major enum + Indication_PerceivedSeverity_Major Indication_PerceivedSeverity = 5 + // Critical enum + Indication_PerceivedSeverity_Critical Indication_PerceivedSeverity = 6 + // Fatal_NonRecoverable enum + Indication_PerceivedSeverity_Fatal_NonRecoverable Indication_PerceivedSeverity = 7 + // DMTF_Reserved enum + Indication_PerceivedSeverity_DMTF_Reserved Indication_PerceivedSeverity = 8 +) diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceCreationEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceCreationEvent.go new file mode 100644 index 000000000..fac8cdf13 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceCreationEvent.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __InstanceCreationEvent struct +type __InstanceCreationEvent struct { + *__InstanceOperationEvent +} + +func New__InstanceCreationEventEx1(instance *cim.WmiInstance) (newInstance *__InstanceCreationEvent, err error) { + tmp, err := New__InstanceOperationEventEx1(instance) + + if err != nil { + return + } + newInstance = &__InstanceCreationEvent{ + __InstanceOperationEvent: tmp, + } + return +} + +func New__InstanceCreationEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__InstanceCreationEvent, err error) { + tmp, err := New__InstanceOperationEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__InstanceCreationEvent{ + __InstanceOperationEvent: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceDeletionEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceDeletionEvent.go new file mode 100644 index 000000000..1680878d6 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceDeletionEvent.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __InstanceDeletionEvent struct +type __InstanceDeletionEvent struct { + *__InstanceOperationEvent +} + +func New__InstanceDeletionEventEx1(instance *cim.WmiInstance) (newInstance *__InstanceDeletionEvent, err error) { + tmp, err := New__InstanceOperationEventEx1(instance) + + if err != nil { + return + } + newInstance = &__InstanceDeletionEvent{ + __InstanceOperationEvent: tmp, + } + return +} + +func New__InstanceDeletionEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__InstanceDeletionEvent, err error) { + tmp, err := New__InstanceOperationEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__InstanceDeletionEvent{ + __InstanceOperationEvent: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceModificationEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceModificationEvent.go new file mode 100644 index 000000000..1d529801f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceModificationEvent.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __InstanceModificationEvent struct +type __InstanceModificationEvent struct { + *__InstanceOperationEvent + + // + PreviousInstance interface{} +} + +func New__InstanceModificationEventEx1(instance *cim.WmiInstance) (newInstance *__InstanceModificationEvent, err error) { + tmp, err := New__InstanceOperationEventEx1(instance) + + if err != nil { + return + } + newInstance = &__InstanceModificationEvent{ + __InstanceOperationEvent: tmp, + } + return +} + +func New__InstanceModificationEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__InstanceModificationEvent, err error) { + tmp, err := New__InstanceOperationEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__InstanceModificationEvent{ + __InstanceOperationEvent: tmp, + } + return +} + +// SetPreviousInstance sets the value of PreviousInstance for the instance +func (instance *__InstanceModificationEvent) SetPropertyPreviousInstance(value interface{}) (err error) { + return instance.SetProperty("PreviousInstance", (value)) +} + +// GetPreviousInstance gets the value of PreviousInstance for the instance +func (instance *__InstanceModificationEvent) GetPropertyPreviousInstance() (value interface{}, err error) { + retValue, err := instance.GetProperty("PreviousInstance") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(interface{}) + if !ok { + err = errors.Wrapf(errors.InvalidType, " interface{} is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = interface{}(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceOperationEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceOperationEvent.go new file mode 100644 index 000000000..e5c9dbc95 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceOperationEvent.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __InstanceOperationEvent struct +type __InstanceOperationEvent struct { + *__Event + + // + TargetInstance interface{} +} + +func New__InstanceOperationEventEx1(instance *cim.WmiInstance) (newInstance *__InstanceOperationEvent, err error) { + tmp, err := New__EventEx1(instance) + + if err != nil { + return + } + newInstance = &__InstanceOperationEvent{ + __Event: tmp, + } + return +} + +func New__InstanceOperationEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__InstanceOperationEvent, err error) { + tmp, err := New__EventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__InstanceOperationEvent{ + __Event: tmp, + } + return +} + +// SetTargetInstance sets the value of TargetInstance for the instance +func (instance *__InstanceOperationEvent) SetPropertyTargetInstance(value interface{}) (err error) { + return instance.SetProperty("TargetInstance", (value)) +} + +// GetTargetInstance gets the value of TargetInstance for the instance +func (instance *__InstanceOperationEvent) GetPropertyTargetInstance() (value interface{}, err error) { + retValue, err := instance.GetProperty("TargetInstance") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(interface{}) + if !ok { + err = errors.Wrapf(errors.InvalidType, " interface{} is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = interface{}(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceProviderRegistration.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceProviderRegistration.go new file mode 100644 index 000000000..6a32c9e95 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/InstanceProviderRegistration.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __InstanceProviderRegistration struct +type __InstanceProviderRegistration struct { + *__ObjectProviderRegistration +} + +func New__InstanceProviderRegistrationEx1(instance *cim.WmiInstance) (newInstance *__InstanceProviderRegistration, err error) { + tmp, err := New__ObjectProviderRegistrationEx1(instance) + + if err != nil { + return + } + newInstance = &__InstanceProviderRegistration{ + __ObjectProviderRegistration: tmp, + } + return +} + +func New__InstanceProviderRegistrationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__InstanceProviderRegistration, err error) { + tmp, err := New__ObjectProviderRegistrationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__InstanceProviderRegistration{ + __ObjectProviderRegistration: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/IntervalTimerInstruction.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/IntervalTimerInstruction.go new file mode 100644 index 000000000..6d27e3196 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/IntervalTimerInstruction.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __IntervalTimerInstruction struct +type __IntervalTimerInstruction struct { + *__TimerInstruction + + // + IntervalBetweenEvents uint32 +} + +func New__IntervalTimerInstructionEx1(instance *cim.WmiInstance) (newInstance *__IntervalTimerInstruction, err error) { + tmp, err := New__TimerInstructionEx1(instance) + + if err != nil { + return + } + newInstance = &__IntervalTimerInstruction{ + __TimerInstruction: tmp, + } + return +} + +func New__IntervalTimerInstructionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__IntervalTimerInstruction, err error) { + tmp, err := New__TimerInstructionEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__IntervalTimerInstruction{ + __TimerInstruction: tmp, + } + return +} + +// SetIntervalBetweenEvents sets the value of IntervalBetweenEvents for the instance +func (instance *__IntervalTimerInstruction) SetPropertyIntervalBetweenEvents(value uint32) (err error) { + return instance.SetProperty("IntervalBetweenEvents", (value)) +} + +// GetIntervalBetweenEvents gets the value of IntervalBetweenEvents for the instance +func (instance *__IntervalTimerInstruction) GetPropertyIntervalBetweenEvents() (value uint32, err error) { + retValue, err := instance.GetProperty("IntervalBetweenEvents") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DedupProperties.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DedupProperties.go new file mode 100644 index 000000000..367ad1ef5 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DedupProperties.go @@ -0,0 +1,291 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_DedupProperties struct +type MSFT_DedupProperties struct { + *cim.WmiInstance + + // + InPolicyFilesCount uint64 + + // + InPolicyFilesSize uint64 + + // + OptimizedFilesCount uint64 + + // + OptimizedFilesSavingsRate uint32 + + // + OptimizedFilesSize uint64 + + // + SavingsRate uint32 + + // + SavingsSize uint64 + + // + UnoptimizedSize uint64 +} + +func NewMSFT_DedupPropertiesEx1(instance *cim.WmiInstance) (newInstance *MSFT_DedupProperties, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_DedupProperties{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_DedupPropertiesEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_DedupProperties, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_DedupProperties{ + WmiInstance: tmp, + } + return +} + +// SetInPolicyFilesCount sets the value of InPolicyFilesCount for the instance +func (instance *MSFT_DedupProperties) SetPropertyInPolicyFilesCount(value uint64) (err error) { + return instance.SetProperty("InPolicyFilesCount", (value)) +} + +// GetInPolicyFilesCount gets the value of InPolicyFilesCount for the instance +func (instance *MSFT_DedupProperties) GetPropertyInPolicyFilesCount() (value uint64, err error) { + retValue, err := instance.GetProperty("InPolicyFilesCount") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetInPolicyFilesSize sets the value of InPolicyFilesSize for the instance +func (instance *MSFT_DedupProperties) SetPropertyInPolicyFilesSize(value uint64) (err error) { + return instance.SetProperty("InPolicyFilesSize", (value)) +} + +// GetInPolicyFilesSize gets the value of InPolicyFilesSize for the instance +func (instance *MSFT_DedupProperties) GetPropertyInPolicyFilesSize() (value uint64, err error) { + retValue, err := instance.GetProperty("InPolicyFilesSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetOptimizedFilesCount sets the value of OptimizedFilesCount for the instance +func (instance *MSFT_DedupProperties) SetPropertyOptimizedFilesCount(value uint64) (err error) { + return instance.SetProperty("OptimizedFilesCount", (value)) +} + +// GetOptimizedFilesCount gets the value of OptimizedFilesCount for the instance +func (instance *MSFT_DedupProperties) GetPropertyOptimizedFilesCount() (value uint64, err error) { + retValue, err := instance.GetProperty("OptimizedFilesCount") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetOptimizedFilesSavingsRate sets the value of OptimizedFilesSavingsRate for the instance +func (instance *MSFT_DedupProperties) SetPropertyOptimizedFilesSavingsRate(value uint32) (err error) { + return instance.SetProperty("OptimizedFilesSavingsRate", (value)) +} + +// GetOptimizedFilesSavingsRate gets the value of OptimizedFilesSavingsRate for the instance +func (instance *MSFT_DedupProperties) GetPropertyOptimizedFilesSavingsRate() (value uint32, err error) { + retValue, err := instance.GetProperty("OptimizedFilesSavingsRate") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetOptimizedFilesSize sets the value of OptimizedFilesSize for the instance +func (instance *MSFT_DedupProperties) SetPropertyOptimizedFilesSize(value uint64) (err error) { + return instance.SetProperty("OptimizedFilesSize", (value)) +} + +// GetOptimizedFilesSize gets the value of OptimizedFilesSize for the instance +func (instance *MSFT_DedupProperties) GetPropertyOptimizedFilesSize() (value uint64, err error) { + retValue, err := instance.GetProperty("OptimizedFilesSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetSavingsRate sets the value of SavingsRate for the instance +func (instance *MSFT_DedupProperties) SetPropertySavingsRate(value uint32) (err error) { + return instance.SetProperty("SavingsRate", (value)) +} + +// GetSavingsRate gets the value of SavingsRate for the instance +func (instance *MSFT_DedupProperties) GetPropertySavingsRate() (value uint32, err error) { + retValue, err := instance.GetProperty("SavingsRate") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetSavingsSize sets the value of SavingsSize for the instance +func (instance *MSFT_DedupProperties) SetPropertySavingsSize(value uint64) (err error) { + return instance.SetProperty("SavingsSize", (value)) +} + +// GetSavingsSize gets the value of SavingsSize for the instance +func (instance *MSFT_DedupProperties) GetPropertySavingsSize() (value uint64, err error) { + retValue, err := instance.GetProperty("SavingsSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetUnoptimizedSize sets the value of UnoptimizedSize for the instance +func (instance *MSFT_DedupProperties) SetPropertyUnoptimizedSize(value uint64) (err error) { + return instance.SetProperty("UnoptimizedSize", (value)) +} + +// GetUnoptimizedSize gets the value of UnoptimizedSize for the instance +func (instance *MSFT_DedupProperties) GetPropertyUnoptimizedSize() (value uint64, err error) { + retValue, err := instance.GetProperty("UnoptimizedSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Disk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Disk.go new file mode 100644 index 000000000..95c39e3e5 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Disk.go @@ -0,0 +1,1252 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_Disk struct +type MSFT_Disk struct { + *MSFT_StorageObject + + // + AdapterSerialNumber string + + // + AllocatedSize uint64 + + // + BootFromDisk bool + + // + BusType uint16 + + // + FirmwareVersion string + + // + FriendlyName string + + // + Guid string + + // + HealthStatus uint16 + + // + IsBoot bool + + // + IsClustered bool + + // + IsHighlyAvailable bool + + // + IsOffline bool + + // + IsReadOnly bool + + // + IsScaleOut bool + + // + IsSystem bool + + // + LargestFreeExtent uint64 + + // + Location string + + // + LogicalSectorSize uint32 + + // + Manufacturer string + + // + Model string + + // + Number uint32 + + // + NumberOfPartitions uint32 + + // + OfflineReason uint16 + + // + OperationalStatus []uint16 + + // + PartitionStyle uint16 + + // + Path string + + // + PhysicalSectorSize uint32 + + // + ProvisioningType uint16 + + // + SerialNumber string + + // + Signature uint32 + + // + Size uint64 + + // + UniqueIdFormat uint16 +} + +func NewMSFT_DiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_Disk, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_Disk{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_DiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_Disk, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_Disk{ + MSFT_StorageObject: tmp, + } + return +} + +// SetAdapterSerialNumber sets the value of AdapterSerialNumber for the instance +func (instance *MSFT_Disk) SetPropertyAdapterSerialNumber(value string) (err error) { + return instance.SetProperty("AdapterSerialNumber", (value)) +} + +// GetAdapterSerialNumber gets the value of AdapterSerialNumber for the instance +func (instance *MSFT_Disk) GetPropertyAdapterSerialNumber() (value string, err error) { + retValue, err := instance.GetProperty("AdapterSerialNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetAllocatedSize sets the value of AllocatedSize for the instance +func (instance *MSFT_Disk) SetPropertyAllocatedSize(value uint64) (err error) { + return instance.SetProperty("AllocatedSize", (value)) +} + +// GetAllocatedSize gets the value of AllocatedSize for the instance +func (instance *MSFT_Disk) GetPropertyAllocatedSize() (value uint64, err error) { + retValue, err := instance.GetProperty("AllocatedSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetBootFromDisk sets the value of BootFromDisk for the instance +func (instance *MSFT_Disk) SetPropertyBootFromDisk(value bool) (err error) { + return instance.SetProperty("BootFromDisk", (value)) +} + +// GetBootFromDisk gets the value of BootFromDisk for the instance +func (instance *MSFT_Disk) GetPropertyBootFromDisk() (value bool, err error) { + retValue, err := instance.GetProperty("BootFromDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetBusType sets the value of BusType for the instance +func (instance *MSFT_Disk) SetPropertyBusType(value uint16) (err error) { + return instance.SetProperty("BusType", (value)) +} + +// GetBusType gets the value of BusType for the instance +func (instance *MSFT_Disk) GetPropertyBusType() (value uint16, err error) { + retValue, err := instance.GetProperty("BusType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetFirmwareVersion sets the value of FirmwareVersion for the instance +func (instance *MSFT_Disk) SetPropertyFirmwareVersion(value string) (err error) { + return instance.SetProperty("FirmwareVersion", (value)) +} + +// GetFirmwareVersion gets the value of FirmwareVersion for the instance +func (instance *MSFT_Disk) GetPropertyFirmwareVersion() (value string, err error) { + retValue, err := instance.GetProperty("FirmwareVersion") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFriendlyName sets the value of FriendlyName for the instance +func (instance *MSFT_Disk) SetPropertyFriendlyName(value string) (err error) { + return instance.SetProperty("FriendlyName", (value)) +} + +// GetFriendlyName gets the value of FriendlyName for the instance +func (instance *MSFT_Disk) GetPropertyFriendlyName() (value string, err error) { + retValue, err := instance.GetProperty("FriendlyName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetGuid sets the value of Guid for the instance +func (instance *MSFT_Disk) SetPropertyGuid(value string) (err error) { + return instance.SetProperty("Guid", (value)) +} + +// GetGuid gets the value of Guid for the instance +func (instance *MSFT_Disk) GetPropertyGuid() (value string, err error) { + retValue, err := instance.GetProperty("Guid") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetHealthStatus sets the value of HealthStatus for the instance +func (instance *MSFT_Disk) SetPropertyHealthStatus(value uint16) (err error) { + return instance.SetProperty("HealthStatus", (value)) +} + +// GetHealthStatus gets the value of HealthStatus for the instance +func (instance *MSFT_Disk) GetPropertyHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("HealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetIsBoot sets the value of IsBoot for the instance +func (instance *MSFT_Disk) SetPropertyIsBoot(value bool) (err error) { + return instance.SetProperty("IsBoot", (value)) +} + +// GetIsBoot gets the value of IsBoot for the instance +func (instance *MSFT_Disk) GetPropertyIsBoot() (value bool, err error) { + retValue, err := instance.GetProperty("IsBoot") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsClustered sets the value of IsClustered for the instance +func (instance *MSFT_Disk) SetPropertyIsClustered(value bool) (err error) { + return instance.SetProperty("IsClustered", (value)) +} + +// GetIsClustered gets the value of IsClustered for the instance +func (instance *MSFT_Disk) GetPropertyIsClustered() (value bool, err error) { + retValue, err := instance.GetProperty("IsClustered") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsHighlyAvailable sets the value of IsHighlyAvailable for the instance +func (instance *MSFT_Disk) SetPropertyIsHighlyAvailable(value bool) (err error) { + return instance.SetProperty("IsHighlyAvailable", (value)) +} + +// GetIsHighlyAvailable gets the value of IsHighlyAvailable for the instance +func (instance *MSFT_Disk) GetPropertyIsHighlyAvailable() (value bool, err error) { + retValue, err := instance.GetProperty("IsHighlyAvailable") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsOffline sets the value of IsOffline for the instance +func (instance *MSFT_Disk) SetPropertyIsOffline(value bool) (err error) { + return instance.SetProperty("IsOffline", (value)) +} + +// GetIsOffline gets the value of IsOffline for the instance +func (instance *MSFT_Disk) GetPropertyIsOffline() (value bool, err error) { + retValue, err := instance.GetProperty("IsOffline") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsReadOnly sets the value of IsReadOnly for the instance +func (instance *MSFT_Disk) SetPropertyIsReadOnly(value bool) (err error) { + return instance.SetProperty("IsReadOnly", (value)) +} + +// GetIsReadOnly gets the value of IsReadOnly for the instance +func (instance *MSFT_Disk) GetPropertyIsReadOnly() (value bool, err error) { + retValue, err := instance.GetProperty("IsReadOnly") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsScaleOut sets the value of IsScaleOut for the instance +func (instance *MSFT_Disk) SetPropertyIsScaleOut(value bool) (err error) { + return instance.SetProperty("IsScaleOut", (value)) +} + +// GetIsScaleOut gets the value of IsScaleOut for the instance +func (instance *MSFT_Disk) GetPropertyIsScaleOut() (value bool, err error) { + retValue, err := instance.GetProperty("IsScaleOut") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsSystem sets the value of IsSystem for the instance +func (instance *MSFT_Disk) SetPropertyIsSystem(value bool) (err error) { + return instance.SetProperty("IsSystem", (value)) +} + +// GetIsSystem gets the value of IsSystem for the instance +func (instance *MSFT_Disk) GetPropertyIsSystem() (value bool, err error) { + retValue, err := instance.GetProperty("IsSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetLargestFreeExtent sets the value of LargestFreeExtent for the instance +func (instance *MSFT_Disk) SetPropertyLargestFreeExtent(value uint64) (err error) { + return instance.SetProperty("LargestFreeExtent", (value)) +} + +// GetLargestFreeExtent gets the value of LargestFreeExtent for the instance +func (instance *MSFT_Disk) GetPropertyLargestFreeExtent() (value uint64, err error) { + retValue, err := instance.GetProperty("LargestFreeExtent") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetLocation sets the value of Location for the instance +func (instance *MSFT_Disk) SetPropertyLocation(value string) (err error) { + return instance.SetProperty("Location", (value)) +} + +// GetLocation gets the value of Location for the instance +func (instance *MSFT_Disk) GetPropertyLocation() (value string, err error) { + retValue, err := instance.GetProperty("Location") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetLogicalSectorSize sets the value of LogicalSectorSize for the instance +func (instance *MSFT_Disk) SetPropertyLogicalSectorSize(value uint32) (err error) { + return instance.SetProperty("LogicalSectorSize", (value)) +} + +// GetLogicalSectorSize gets the value of LogicalSectorSize for the instance +func (instance *MSFT_Disk) GetPropertyLogicalSectorSize() (value uint32, err error) { + retValue, err := instance.GetProperty("LogicalSectorSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetManufacturer sets the value of Manufacturer for the instance +func (instance *MSFT_Disk) SetPropertyManufacturer(value string) (err error) { + return instance.SetProperty("Manufacturer", (value)) +} + +// GetManufacturer gets the value of Manufacturer for the instance +func (instance *MSFT_Disk) GetPropertyManufacturer() (value string, err error) { + retValue, err := instance.GetProperty("Manufacturer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetModel sets the value of Model for the instance +func (instance *MSFT_Disk) SetPropertyModel(value string) (err error) { + return instance.SetProperty("Model", (value)) +} + +// GetModel gets the value of Model for the instance +func (instance *MSFT_Disk) GetPropertyModel() (value string, err error) { + retValue, err := instance.GetProperty("Model") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetNumber sets the value of Number for the instance +func (instance *MSFT_Disk) SetPropertyNumber(value uint32) (err error) { + return instance.SetProperty("Number", (value)) +} + +// GetNumber gets the value of Number for the instance +func (instance *MSFT_Disk) GetPropertyNumber() (value uint32, err error) { + retValue, err := instance.GetProperty("Number") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetNumberOfPartitions sets the value of NumberOfPartitions for the instance +func (instance *MSFT_Disk) SetPropertyNumberOfPartitions(value uint32) (err error) { + return instance.SetProperty("NumberOfPartitions", (value)) +} + +// GetNumberOfPartitions gets the value of NumberOfPartitions for the instance +func (instance *MSFT_Disk) GetPropertyNumberOfPartitions() (value uint32, err error) { + retValue, err := instance.GetProperty("NumberOfPartitions") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetOfflineReason sets the value of OfflineReason for the instance +func (instance *MSFT_Disk) SetPropertyOfflineReason(value uint16) (err error) { + return instance.SetProperty("OfflineReason", (value)) +} + +// GetOfflineReason gets the value of OfflineReason for the instance +func (instance *MSFT_Disk) GetPropertyOfflineReason() (value uint16, err error) { + retValue, err := instance.GetProperty("OfflineReason") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_Disk) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_Disk) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetPartitionStyle sets the value of PartitionStyle for the instance +func (instance *MSFT_Disk) SetPropertyPartitionStyle(value uint16) (err error) { + return instance.SetProperty("PartitionStyle", (value)) +} + +// GetPartitionStyle gets the value of PartitionStyle for the instance +func (instance *MSFT_Disk) GetPropertyPartitionStyle() (value uint16, err error) { + retValue, err := instance.GetProperty("PartitionStyle") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetPath sets the value of Path for the instance +func (instance *MSFT_Disk) SetPropertyPath(value string) (err error) { + return instance.SetProperty("Path", (value)) +} + +// GetPath gets the value of Path for the instance +func (instance *MSFT_Disk) GetPropertyPath() (value string, err error) { + retValue, err := instance.GetProperty("Path") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPhysicalSectorSize sets the value of PhysicalSectorSize for the instance +func (instance *MSFT_Disk) SetPropertyPhysicalSectorSize(value uint32) (err error) { + return instance.SetProperty("PhysicalSectorSize", (value)) +} + +// GetPhysicalSectorSize gets the value of PhysicalSectorSize for the instance +func (instance *MSFT_Disk) GetPropertyPhysicalSectorSize() (value uint32, err error) { + retValue, err := instance.GetProperty("PhysicalSectorSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetProvisioningType sets the value of ProvisioningType for the instance +func (instance *MSFT_Disk) SetPropertyProvisioningType(value uint16) (err error) { + return instance.SetProperty("ProvisioningType", (value)) +} + +// GetProvisioningType gets the value of ProvisioningType for the instance +func (instance *MSFT_Disk) GetPropertyProvisioningType() (value uint16, err error) { + retValue, err := instance.GetProperty("ProvisioningType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetSerialNumber sets the value of SerialNumber for the instance +func (instance *MSFT_Disk) SetPropertySerialNumber(value string) (err error) { + return instance.SetProperty("SerialNumber", (value)) +} + +// GetSerialNumber gets the value of SerialNumber for the instance +func (instance *MSFT_Disk) GetPropertySerialNumber() (value string, err error) { + retValue, err := instance.GetProperty("SerialNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSignature sets the value of Signature for the instance +func (instance *MSFT_Disk) SetPropertySignature(value uint32) (err error) { + return instance.SetProperty("Signature", (value)) +} + +// GetSignature gets the value of Signature for the instance +func (instance *MSFT_Disk) GetPropertySignature() (value uint32, err error) { + retValue, err := instance.GetProperty("Signature") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetSize sets the value of Size for the instance +func (instance *MSFT_Disk) SetPropertySize(value uint64) (err error) { + return instance.SetProperty("Size", (value)) +} + +// GetSize gets the value of Size for the instance +func (instance *MSFT_Disk) GetPropertySize() (value uint64, err error) { + retValue, err := instance.GetProperty("Size") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetUniqueIdFormat sets the value of UniqueIdFormat for the instance +func (instance *MSFT_Disk) SetPropertyUniqueIdFormat(value uint16) (err error) { + return instance.SetProperty("UniqueIdFormat", (value)) +} + +// GetUniqueIdFormat gets the value of UniqueIdFormat for the instance +func (instance *MSFT_Disk) GetPropertyUniqueIdFormat() (value uint16, err error) { + retValue, err := instance.GetProperty("UniqueIdFormat") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// + +// +// +// +// +// +// +// +// +// +// + +// +// +// +func (instance *MSFT_Disk) CreatePartition( /* IN */ Size uint64, + /* IN */ UseMaximumSize bool, + /* IN */ Offset uint64, + /* IN */ Alignment uint32, + /* IN */ DriveLetter byte, + /* IN */ AssignDriveLetter bool, + /* IN */ MbrType uint16, + /* IN */ GptType string, + /* IN */ IsHidden bool, + /* IN */ IsActive bool, + /* OUT */ CreatedPartition MSFT_Partition, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreatePartition", Size, UseMaximumSize, Offset, Alignment, DriveLetter, AssignDriveLetter, MbrType, GptType, IsHidden, IsActive) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_Disk) Initialize( /* IN */ PartitionStyle uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Initialize", PartitionStyle) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// + +// +// +// +func (instance *MSFT_Disk) Clear( /* IN */ RemoveData bool, + /* IN */ RemoveOEM bool, + /* IN */ ZeroOutEntireDisk bool, + /* IN */ Sanitize bool, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Clear", RemoveData, RemoveOEM, ZeroOutEntireDisk, Sanitize, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_Disk) ConvertStyle( /* IN */ PartitionStyle uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("ConvertStyle", PartitionStyle) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *MSFT_Disk) Offline( /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Offline") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *MSFT_Disk) Online( /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Online") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// + +// +// +func (instance *MSFT_Disk) SetAttributes( /* IN */ IsReadOnly bool, + /* IN */ Signature uint32, + /* IN */ Guid string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetAttributes", IsReadOnly, Signature, Guid) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *MSFT_Disk) Refresh( /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Refresh") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// + +// +// +// +// +func (instance *MSFT_Disk) CreateVolume( /* IN */ FriendlyName string, + /* IN */ FileSystem uint16, + /* IN */ AccessPath string, + /* IN */ AllocationUnitSize uint32, + /* OUT */ CreatedVolume MSFT_Volume, + /* OPTIONAL IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateVolume", FriendlyName, FileSystem, AccessPath, AllocationUnitSize, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +func (instance *MSFT_Disk) EnableHighAvailability( /* IN */ ScaleOut bool, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("EnableHighAvailability", ScaleOut, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_Disk) DisableHighAvailability( /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("DisableHighAvailability", RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DiskImage.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DiskImage.go new file mode 100644 index 000000000..806211e9c --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DiskImage.go @@ -0,0 +1,356 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_DiskImage struct +type MSFT_DiskImage struct { + *cim.WmiInstance + + // + Attached bool + + // + BlockSize uint64 + + // + DevicePath string + + // + FileSize uint64 + + // + ImagePath string + + // + LogicalSectorSize uint64 + + // + Number uint32 + + // + Size uint64 + + // + StorageType uint32 +} + +func NewMSFT_DiskImageEx1(instance *cim.WmiInstance) (newInstance *MSFT_DiskImage, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_DiskImage{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_DiskImageEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_DiskImage, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_DiskImage{ + WmiInstance: tmp, + } + return +} + +// SetAttached sets the value of Attached for the instance +func (instance *MSFT_DiskImage) SetPropertyAttached(value bool) (err error) { + return instance.SetProperty("Attached", (value)) +} + +// GetAttached gets the value of Attached for the instance +func (instance *MSFT_DiskImage) GetPropertyAttached() (value bool, err error) { + retValue, err := instance.GetProperty("Attached") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetBlockSize sets the value of BlockSize for the instance +func (instance *MSFT_DiskImage) SetPropertyBlockSize(value uint64) (err error) { + return instance.SetProperty("BlockSize", (value)) +} + +// GetBlockSize gets the value of BlockSize for the instance +func (instance *MSFT_DiskImage) GetPropertyBlockSize() (value uint64, err error) { + retValue, err := instance.GetProperty("BlockSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetDevicePath sets the value of DevicePath for the instance +func (instance *MSFT_DiskImage) SetPropertyDevicePath(value string) (err error) { + return instance.SetProperty("DevicePath", (value)) +} + +// GetDevicePath gets the value of DevicePath for the instance +func (instance *MSFT_DiskImage) GetPropertyDevicePath() (value string, err error) { + retValue, err := instance.GetProperty("DevicePath") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFileSize sets the value of FileSize for the instance +func (instance *MSFT_DiskImage) SetPropertyFileSize(value uint64) (err error) { + return instance.SetProperty("FileSize", (value)) +} + +// GetFileSize gets the value of FileSize for the instance +func (instance *MSFT_DiskImage) GetPropertyFileSize() (value uint64, err error) { + retValue, err := instance.GetProperty("FileSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetImagePath sets the value of ImagePath for the instance +func (instance *MSFT_DiskImage) SetPropertyImagePath(value string) (err error) { + return instance.SetProperty("ImagePath", (value)) +} + +// GetImagePath gets the value of ImagePath for the instance +func (instance *MSFT_DiskImage) GetPropertyImagePath() (value string, err error) { + retValue, err := instance.GetProperty("ImagePath") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetLogicalSectorSize sets the value of LogicalSectorSize for the instance +func (instance *MSFT_DiskImage) SetPropertyLogicalSectorSize(value uint64) (err error) { + return instance.SetProperty("LogicalSectorSize", (value)) +} + +// GetLogicalSectorSize gets the value of LogicalSectorSize for the instance +func (instance *MSFT_DiskImage) GetPropertyLogicalSectorSize() (value uint64, err error) { + retValue, err := instance.GetProperty("LogicalSectorSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetNumber sets the value of Number for the instance +func (instance *MSFT_DiskImage) SetPropertyNumber(value uint32) (err error) { + return instance.SetProperty("Number", (value)) +} + +// GetNumber gets the value of Number for the instance +func (instance *MSFT_DiskImage) GetPropertyNumber() (value uint32, err error) { + retValue, err := instance.GetProperty("Number") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetSize sets the value of Size for the instance +func (instance *MSFT_DiskImage) SetPropertySize(value uint64) (err error) { + return instance.SetProperty("Size", (value)) +} + +// GetSize gets the value of Size for the instance +func (instance *MSFT_DiskImage) GetPropertySize() (value uint64, err error) { + retValue, err := instance.GetProperty("Size") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetStorageType sets the value of StorageType for the instance +func (instance *MSFT_DiskImage) SetPropertyStorageType(value uint32) (err error) { + return instance.SetProperty("StorageType", (value)) +} + +// GetStorageType gets the value of StorageType for the instance +func (instance *MSFT_DiskImage) GetPropertyStorageType() (value uint32, err error) { + retValue, err := instance.GetProperty("StorageType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// + +// +// + +// +// +func (instance *MSFT_DiskImage) Mount( /* IN */ Access uint16, + /* IN */ NoDriveLetter bool, + /* OUT */ DiskImage MSFT_DiskImage) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Mount", Access, NoDriveLetter) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *MSFT_DiskImage) Dismount( /* OUT */ DiskImage MSFT_DiskImage) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Dismount") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DiskImageToVolume.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DiskImageToVolume.go new file mode 100644 index 000000000..4bb32563f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DiskImageToVolume.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_DiskImageToVolume struct +type MSFT_DiskImageToVolume struct { + *cim.WmiInstance + + // + DiskImage MSFT_DiskImage + + // + Volume MSFT_Volume +} + +func NewMSFT_DiskImageToVolumeEx1(instance *cim.WmiInstance) (newInstance *MSFT_DiskImageToVolume, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_DiskImageToVolume{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_DiskImageToVolumeEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_DiskImageToVolume, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_DiskImageToVolume{ + WmiInstance: tmp, + } + return +} + +// SetDiskImage sets the value of DiskImage for the instance +func (instance *MSFT_DiskImageToVolume) SetPropertyDiskImage(value MSFT_DiskImage) (err error) { + return instance.SetProperty("DiskImage", (value)) +} + +// GetDiskImage gets the value of DiskImage for the instance +func (instance *MSFT_DiskImageToVolume) GetPropertyDiskImage() (value MSFT_DiskImage, err error) { + retValue, err := instance.GetProperty("DiskImage") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_DiskImage) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_DiskImage is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_DiskImage(valuetmp) + + return +} + +// SetVolume sets the value of Volume for the instance +func (instance *MSFT_DiskImageToVolume) SetPropertyVolume(value MSFT_Volume) (err error) { + return instance.SetProperty("Volume", (value)) +} + +// GetVolume gets the value of Volume for the instance +func (instance *MSFT_DiskImageToVolume) GetPropertyVolume() (value MSFT_Volume, err error) { + retValue, err := instance.GetProperty("Volume") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Volume) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Volume is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Volume(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DiskToPartition.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DiskToPartition.go new file mode 100644 index 000000000..b6d31c2a7 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DiskToPartition.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_DiskToPartition struct +type MSFT_DiskToPartition struct { + *cim.WmiInstance + + // + Disk MSFT_Disk + + // + Partition MSFT_Partition +} + +func NewMSFT_DiskToPartitionEx1(instance *cim.WmiInstance) (newInstance *MSFT_DiskToPartition, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_DiskToPartition{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_DiskToPartitionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_DiskToPartition, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_DiskToPartition{ + WmiInstance: tmp, + } + return +} + +// SetDisk sets the value of Disk for the instance +func (instance *MSFT_DiskToPartition) SetPropertyDisk(value MSFT_Disk) (err error) { + return instance.SetProperty("Disk", (value)) +} + +// GetDisk gets the value of Disk for the instance +func (instance *MSFT_DiskToPartition) GetPropertyDisk() (value MSFT_Disk, err error) { + retValue, err := instance.GetProperty("Disk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Disk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Disk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Disk(valuetmp) + + return +} + +// SetPartition sets the value of Partition for the instance +func (instance *MSFT_DiskToPartition) SetPropertyPartition(value MSFT_Partition) (err error) { + return instance.SetProperty("Partition", (value)) +} + +// GetPartition gets the value of Partition for the instance +func (instance *MSFT_DiskToPartition) GetPropertyPartition() (value MSFT_Partition, err error) { + retValue, err := instance.GetProperty("Partition") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Partition) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Partition is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Partition(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DiskToStorageReliabilityCounter.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DiskToStorageReliabilityCounter.go new file mode 100644 index 000000000..e66fe870f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_DiskToStorageReliabilityCounter.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_DiskToStorageReliabilityCounter struct +type MSFT_DiskToStorageReliabilityCounter struct { + *cim.WmiInstance + + // + Disk MSFT_Disk + + // + StorageReliabilityCounter MSFT_StorageReliabilityCounter +} + +func NewMSFT_DiskToStorageReliabilityCounterEx1(instance *cim.WmiInstance) (newInstance *MSFT_DiskToStorageReliabilityCounter, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_DiskToStorageReliabilityCounter{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_DiskToStorageReliabilityCounterEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_DiskToStorageReliabilityCounter, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_DiskToStorageReliabilityCounter{ + WmiInstance: tmp, + } + return +} + +// SetDisk sets the value of Disk for the instance +func (instance *MSFT_DiskToStorageReliabilityCounter) SetPropertyDisk(value MSFT_Disk) (err error) { + return instance.SetProperty("Disk", (value)) +} + +// GetDisk gets the value of Disk for the instance +func (instance *MSFT_DiskToStorageReliabilityCounter) GetPropertyDisk() (value MSFT_Disk, err error) { + retValue, err := instance.GetProperty("Disk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Disk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Disk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Disk(valuetmp) + + return +} + +// SetStorageReliabilityCounter sets the value of StorageReliabilityCounter for the instance +func (instance *MSFT_DiskToStorageReliabilityCounter) SetPropertyStorageReliabilityCounter(value MSFT_StorageReliabilityCounter) (err error) { + return instance.SetProperty("StorageReliabilityCounter", (value)) +} + +// GetStorageReliabilityCounter gets the value of StorageReliabilityCounter for the instance +func (instance *MSFT_DiskToStorageReliabilityCounter) GetPropertyStorageReliabilityCounter() (value MSFT_StorageReliabilityCounter, err error) { + retValue, err := instance.GetProperty("StorageReliabilityCounter") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageReliabilityCounter) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageReliabilityCounter is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageReliabilityCounter(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ExtendedStatus.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ExtendedStatus.go new file mode 100644 index 000000000..b030a50d7 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ExtendedStatus.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_ExtendedStatus struct +type MSFT_ExtendedStatus struct { + *CIM_Error +} + +func NewMSFT_ExtendedStatusEx1(instance *cim.WmiInstance) (newInstance *MSFT_ExtendedStatus, err error) { + tmp, err := NewCIM_ErrorEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_ExtendedStatus{ + CIM_Error: tmp, + } + return +} + +func NewMSFT_ExtendedStatusEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_ExtendedStatus, err error) { + tmp, err := NewCIM_ErrorEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_ExtendedStatus{ + CIM_Error: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileIntegrity.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileIntegrity.go new file mode 100644 index 000000000..25805e4b4 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileIntegrity.go @@ -0,0 +1,201 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_FileIntegrity struct +type MSFT_FileIntegrity struct { + *cim.WmiInstance + + // + Enabled bool + + // + Enforced bool + + // + FileName string +} + +func NewMSFT_FileIntegrityEx1(instance *cim.WmiInstance) (newInstance *MSFT_FileIntegrity, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_FileIntegrity{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_FileIntegrityEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_FileIntegrity, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_FileIntegrity{ + WmiInstance: tmp, + } + return +} + +// SetEnabled sets the value of Enabled for the instance +func (instance *MSFT_FileIntegrity) SetPropertyEnabled(value bool) (err error) { + return instance.SetProperty("Enabled", (value)) +} + +// GetEnabled gets the value of Enabled for the instance +func (instance *MSFT_FileIntegrity) GetPropertyEnabled() (value bool, err error) { + retValue, err := instance.GetProperty("Enabled") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetEnforced sets the value of Enforced for the instance +func (instance *MSFT_FileIntegrity) SetPropertyEnforced(value bool) (err error) { + return instance.SetProperty("Enforced", (value)) +} + +// GetEnforced gets the value of Enforced for the instance +func (instance *MSFT_FileIntegrity) GetPropertyEnforced() (value bool, err error) { + retValue, err := instance.GetProperty("Enforced") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetFileName sets the value of FileName for the instance +func (instance *MSFT_FileIntegrity) SetPropertyFileName(value string) (err error) { + return instance.SetProperty("FileName", (value)) +} + +// GetFileName gets the value of FileName for the instance +func (instance *MSFT_FileIntegrity) GetPropertyFileName() (value string, err error) { + retValue, err := instance.GetProperty("FileName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// + +// + +// +// +// +func (instance *MSFT_FileIntegrity) Get( /* IN */ FileName string, + /* OUT */ FileIntegrity MSFT_FileIntegrity, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Get", FileName) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_FileIntegrity) Repair( /* IN */ FileName string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Repair", FileName) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// + +// +// +func (instance *MSFT_FileIntegrity) Set( /* IN */ FileName string, + /* IN */ Enable bool, + /* IN */ Enforce bool, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Set", FileName, Enable, Enforce) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileServer.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileServer.go new file mode 100644 index 000000000..73073561c --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileServer.go @@ -0,0 +1,398 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_FileServer struct +type MSFT_FileServer struct { + *MSFT_StorageObject + + // + FileSharingProtocols []uint16 + + // + FileSharingProtocolVersions []string + + // + FriendlyName string + + // + HealthStatus uint16 + + // + HostNames []string + + // + OperationalStatus []uint16 + + // + OtherOperationalStatusDescription string + + // + SupportsContinuouslyAvailableFileShare bool + + // + SupportsFileShareCreation bool +} + +func NewMSFT_FileServerEx1(instance *cim.WmiInstance) (newInstance *MSFT_FileServer, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_FileServer{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_FileServerEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_FileServer, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_FileServer{ + MSFT_StorageObject: tmp, + } + return +} + +// SetFileSharingProtocols sets the value of FileSharingProtocols for the instance +func (instance *MSFT_FileServer) SetPropertyFileSharingProtocols(value []uint16) (err error) { + return instance.SetProperty("FileSharingProtocols", (value)) +} + +// GetFileSharingProtocols gets the value of FileSharingProtocols for the instance +func (instance *MSFT_FileServer) GetPropertyFileSharingProtocols() (value []uint16, err error) { + retValue, err := instance.GetProperty("FileSharingProtocols") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetFileSharingProtocolVersions sets the value of FileSharingProtocolVersions for the instance +func (instance *MSFT_FileServer) SetPropertyFileSharingProtocolVersions(value []string) (err error) { + return instance.SetProperty("FileSharingProtocolVersions", (value)) +} + +// GetFileSharingProtocolVersions gets the value of FileSharingProtocolVersions for the instance +func (instance *MSFT_FileServer) GetPropertyFileSharingProtocolVersions() (value []string, err error) { + retValue, err := instance.GetProperty("FileSharingProtocolVersions") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetFriendlyName sets the value of FriendlyName for the instance +func (instance *MSFT_FileServer) SetPropertyFriendlyName(value string) (err error) { + return instance.SetProperty("FriendlyName", (value)) +} + +// GetFriendlyName gets the value of FriendlyName for the instance +func (instance *MSFT_FileServer) GetPropertyFriendlyName() (value string, err error) { + retValue, err := instance.GetProperty("FriendlyName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetHealthStatus sets the value of HealthStatus for the instance +func (instance *MSFT_FileServer) SetPropertyHealthStatus(value uint16) (err error) { + return instance.SetProperty("HealthStatus", (value)) +} + +// GetHealthStatus gets the value of HealthStatus for the instance +func (instance *MSFT_FileServer) GetPropertyHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("HealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetHostNames sets the value of HostNames for the instance +func (instance *MSFT_FileServer) SetPropertyHostNames(value []string) (err error) { + return instance.SetProperty("HostNames", (value)) +} + +// GetHostNames gets the value of HostNames for the instance +func (instance *MSFT_FileServer) GetPropertyHostNames() (value []string, err error) { + retValue, err := instance.GetProperty("HostNames") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_FileServer) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_FileServer) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetOtherOperationalStatusDescription sets the value of OtherOperationalStatusDescription for the instance +func (instance *MSFT_FileServer) SetPropertyOtherOperationalStatusDescription(value string) (err error) { + return instance.SetProperty("OtherOperationalStatusDescription", (value)) +} + +// GetOtherOperationalStatusDescription gets the value of OtherOperationalStatusDescription for the instance +func (instance *MSFT_FileServer) GetPropertyOtherOperationalStatusDescription() (value string, err error) { + retValue, err := instance.GetProperty("OtherOperationalStatusDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSupportsContinuouslyAvailableFileShare sets the value of SupportsContinuouslyAvailableFileShare for the instance +func (instance *MSFT_FileServer) SetPropertySupportsContinuouslyAvailableFileShare(value bool) (err error) { + return instance.SetProperty("SupportsContinuouslyAvailableFileShare", (value)) +} + +// GetSupportsContinuouslyAvailableFileShare gets the value of SupportsContinuouslyAvailableFileShare for the instance +func (instance *MSFT_FileServer) GetPropertySupportsContinuouslyAvailableFileShare() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsContinuouslyAvailableFileShare") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsFileShareCreation sets the value of SupportsFileShareCreation for the instance +func (instance *MSFT_FileServer) SetPropertySupportsFileShareCreation(value bool) (err error) { + return instance.SetProperty("SupportsFileShareCreation", (value)) +} + +// GetSupportsFileShareCreation gets the value of SupportsFileShareCreation for the instance +func (instance *MSFT_FileServer) GetPropertySupportsFileShareCreation() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsFileShareCreation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// + +// +// +// +// +// +// +// +// + +// +// +// +// +func (instance *MSFT_FileServer) CreateFileShare( /* IN */ Name string, + /* IN */ Description string, + /* IN */ SourceVolume MSFT_Volume, + /* IN */ VolumeRelativePath string, + /* IN */ ContinuouslyAvailable bool, + /* IN */ EncryptData bool, + /* IN */ FileSharingProtocol uint16, + /* IN */ RunAsJob bool, + /* OUT */ CreatedFileShare MSFT_FileShare, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateFileShare", Name, Description, SourceVolume, VolumeRelativePath, ContinuouslyAvailable, EncryptData, FileSharingProtocol, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_FileServer) DeleteObject( /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("DeleteObject", RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_FileServer) SetFriendlyName( /* IN */ FriendlyName string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetFriendlyName", FriendlyName) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileServerToFileShare.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileServerToFileShare.go new file mode 100644 index 000000000..635b20a33 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileServerToFileShare.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_FileServerToFileShare struct +type MSFT_FileServerToFileShare struct { + *cim.WmiInstance + + // + FileServer MSFT_FileServer + + // + FileShare MSFT_FileShare +} + +func NewMSFT_FileServerToFileShareEx1(instance *cim.WmiInstance) (newInstance *MSFT_FileServerToFileShare, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_FileServerToFileShare{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_FileServerToFileShareEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_FileServerToFileShare, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_FileServerToFileShare{ + WmiInstance: tmp, + } + return +} + +// SetFileServer sets the value of FileServer for the instance +func (instance *MSFT_FileServerToFileShare) SetPropertyFileServer(value MSFT_FileServer) (err error) { + return instance.SetProperty("FileServer", (value)) +} + +// GetFileServer gets the value of FileServer for the instance +func (instance *MSFT_FileServerToFileShare) GetPropertyFileServer() (value MSFT_FileServer, err error) { + retValue, err := instance.GetProperty("FileServer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_FileServer) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_FileServer is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_FileServer(valuetmp) + + return +} + +// SetFileShare sets the value of FileShare for the instance +func (instance *MSFT_FileServerToFileShare) SetPropertyFileShare(value MSFT_FileShare) (err error) { + return instance.SetProperty("FileShare", (value)) +} + +// GetFileShare gets the value of FileShare for the instance +func (instance *MSFT_FileServerToFileShare) GetPropertyFileShare() (value MSFT_FileShare, err error) { + retValue, err := instance.GetProperty("FileShare") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_FileShare) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_FileShare is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_FileShare(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileServerToVolume.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileServerToVolume.go new file mode 100644 index 000000000..a8b18a42f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileServerToVolume.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_FileServerToVolume struct +type MSFT_FileServerToVolume struct { + *cim.WmiInstance + + // + FileServer MSFT_FileServer + + // + Volume MSFT_Volume +} + +func NewMSFT_FileServerToVolumeEx1(instance *cim.WmiInstance) (newInstance *MSFT_FileServerToVolume, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_FileServerToVolume{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_FileServerToVolumeEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_FileServerToVolume, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_FileServerToVolume{ + WmiInstance: tmp, + } + return +} + +// SetFileServer sets the value of FileServer for the instance +func (instance *MSFT_FileServerToVolume) SetPropertyFileServer(value MSFT_FileServer) (err error) { + return instance.SetProperty("FileServer", (value)) +} + +// GetFileServer gets the value of FileServer for the instance +func (instance *MSFT_FileServerToVolume) GetPropertyFileServer() (value MSFT_FileServer, err error) { + retValue, err := instance.GetProperty("FileServer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_FileServer) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_FileServer is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_FileServer(valuetmp) + + return +} + +// SetVolume sets the value of Volume for the instance +func (instance *MSFT_FileServerToVolume) SetPropertyVolume(value MSFT_Volume) (err error) { + return instance.SetProperty("Volume", (value)) +} + +// GetVolume gets the value of Volume for the instance +func (instance *MSFT_FileServerToVolume) GetPropertyVolume() (value MSFT_Volume, err error) { + retValue, err := instance.GetProperty("Volume") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Volume) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Volume is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Volume(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileShare.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileShare.go new file mode 100644 index 000000000..1d0716304 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileShare.go @@ -0,0 +1,502 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_FileShare struct +type MSFT_FileShare struct { + *MSFT_StorageObject + + // + ContinuouslyAvailable bool + + // + Description string + + // + EncryptData bool + + // + FileSharingProtocol uint16 + + // + HealthStatus uint16 + + // + Name string + + // + OperationalStatus []uint16 + + // + ShareState uint16 + + // + VolumeRelativePath string +} + +func NewMSFT_FileShareEx1(instance *cim.WmiInstance) (newInstance *MSFT_FileShare, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_FileShare{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_FileShareEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_FileShare, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_FileShare{ + MSFT_StorageObject: tmp, + } + return +} + +// SetContinuouslyAvailable sets the value of ContinuouslyAvailable for the instance +func (instance *MSFT_FileShare) SetPropertyContinuouslyAvailable(value bool) (err error) { + return instance.SetProperty("ContinuouslyAvailable", (value)) +} + +// GetContinuouslyAvailable gets the value of ContinuouslyAvailable for the instance +func (instance *MSFT_FileShare) GetPropertyContinuouslyAvailable() (value bool, err error) { + retValue, err := instance.GetProperty("ContinuouslyAvailable") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetDescription sets the value of Description for the instance +func (instance *MSFT_FileShare) SetPropertyDescription(value string) (err error) { + return instance.SetProperty("Description", (value)) +} + +// GetDescription gets the value of Description for the instance +func (instance *MSFT_FileShare) GetPropertyDescription() (value string, err error) { + retValue, err := instance.GetProperty("Description") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetEncryptData sets the value of EncryptData for the instance +func (instance *MSFT_FileShare) SetPropertyEncryptData(value bool) (err error) { + return instance.SetProperty("EncryptData", (value)) +} + +// GetEncryptData gets the value of EncryptData for the instance +func (instance *MSFT_FileShare) GetPropertyEncryptData() (value bool, err error) { + retValue, err := instance.GetProperty("EncryptData") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetFileSharingProtocol sets the value of FileSharingProtocol for the instance +func (instance *MSFT_FileShare) SetPropertyFileSharingProtocol(value uint16) (err error) { + return instance.SetProperty("FileSharingProtocol", (value)) +} + +// GetFileSharingProtocol gets the value of FileSharingProtocol for the instance +func (instance *MSFT_FileShare) GetPropertyFileSharingProtocol() (value uint16, err error) { + retValue, err := instance.GetProperty("FileSharingProtocol") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetHealthStatus sets the value of HealthStatus for the instance +func (instance *MSFT_FileShare) SetPropertyHealthStatus(value uint16) (err error) { + return instance.SetProperty("HealthStatus", (value)) +} + +// GetHealthStatus gets the value of HealthStatus for the instance +func (instance *MSFT_FileShare) GetPropertyHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("HealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetName sets the value of Name for the instance +func (instance *MSFT_FileShare) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *MSFT_FileShare) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_FileShare) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_FileShare) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetShareState sets the value of ShareState for the instance +func (instance *MSFT_FileShare) SetPropertyShareState(value uint16) (err error) { + return instance.SetProperty("ShareState", (value)) +} + +// GetShareState gets the value of ShareState for the instance +func (instance *MSFT_FileShare) GetPropertyShareState() (value uint16, err error) { + retValue, err := instance.GetProperty("ShareState") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetVolumeRelativePath sets the value of VolumeRelativePath for the instance +func (instance *MSFT_FileShare) SetPropertyVolumeRelativePath(value string) (err error) { + return instance.SetProperty("VolumeRelativePath", (value)) +} + +// GetVolumeRelativePath gets the value of VolumeRelativePath for the instance +func (instance *MSFT_FileShare) GetPropertyVolumeRelativePath() (value string, err error) { + retValue, err := instance.GetProperty("VolumeRelativePath") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// + +// + +// +// +// +func (instance *MSFT_FileShare) DeleteObject( /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("DeleteObject", RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_FileShare) SetDescription( /* IN */ Description string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetDescription", Description) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_FileShare) SetAttributes( /* IN */ EncryptData bool, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetAttributes", EncryptData) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_FileShare) GetAccessControlEntries( /* OUT */ AccessControlEntries []MSFT_FileShareAccessControlEntry, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetAccessControlEntries") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +func (instance *MSFT_FileShare) GrantAccess( /* IN */ AccountNames []string, + /* IN */ AccessRight uint32, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GrantAccess", AccountNames, AccessRight) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_FileShare) RevokeAccess( /* IN */ AccountNames []string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("RevokeAccess", AccountNames) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_FileShare) BlockAccess( /* IN */ AccountNames []string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("BlockAccess", AccountNames) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_FileShare) UnblockAccess( /* IN */ AccountNames []string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("UnblockAccess", AccountNames) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_FileShare) Diagnose( /* OUT */ DiagnoseResults []MSFT_StorageDiagnoseResult, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Diagnose") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_FileShare) GetActions( /* OUT */ ActionResults []MSFT_HealthAction, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetActions") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileShareAccessControlEntry.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileShareAccessControlEntry.go new file mode 100644 index 000000000..3c7fd3058 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileShareAccessControlEntry.go @@ -0,0 +1,141 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_FileShareAccessControlEntry struct +type MSFT_FileShareAccessControlEntry struct { + *cim.WmiInstance + + // + AccessControlType uint16 + + // + AccessRight uint16 + + // + AccountName string +} + +func NewMSFT_FileShareAccessControlEntryEx1(instance *cim.WmiInstance) (newInstance *MSFT_FileShareAccessControlEntry, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_FileShareAccessControlEntry{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_FileShareAccessControlEntryEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_FileShareAccessControlEntry, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_FileShareAccessControlEntry{ + WmiInstance: tmp, + } + return +} + +// SetAccessControlType sets the value of AccessControlType for the instance +func (instance *MSFT_FileShareAccessControlEntry) SetPropertyAccessControlType(value uint16) (err error) { + return instance.SetProperty("AccessControlType", (value)) +} + +// GetAccessControlType gets the value of AccessControlType for the instance +func (instance *MSFT_FileShareAccessControlEntry) GetPropertyAccessControlType() (value uint16, err error) { + retValue, err := instance.GetProperty("AccessControlType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetAccessRight sets the value of AccessRight for the instance +func (instance *MSFT_FileShareAccessControlEntry) SetPropertyAccessRight(value uint16) (err error) { + return instance.SetProperty("AccessRight", (value)) +} + +// GetAccessRight gets the value of AccessRight for the instance +func (instance *MSFT_FileShareAccessControlEntry) GetPropertyAccessRight() (value uint16, err error) { + retValue, err := instance.GetProperty("AccessRight") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetAccountName sets the value of AccountName for the instance +func (instance *MSFT_FileShareAccessControlEntry) SetPropertyAccountName(value string) (err error) { + return instance.SetProperty("AccountName", (value)) +} + +// GetAccountName gets the value of AccountName for the instance +func (instance *MSFT_FileShareAccessControlEntry) GetPropertyAccountName() (value string, err error) { + retValue, err := instance.GetProperty("AccountName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileStorageTier.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileStorageTier.go new file mode 100644 index 000000000..7c18ffe0b --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_FileStorageTier.go @@ -0,0 +1,353 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_FileStorageTier struct +type MSFT_FileStorageTier struct { + *cim.WmiInstance + + // + DesiredStorageTierClass uint16 + + // + DesiredStorageTierName string + + // + FilePath string + + // + FileSize uint64 + + // + FileSizeOnDesiredStorageTier uint64 + + // + FileSizeOnDesiredStorageTierClass uint64 + + // + PlacementStatus uint16 + + // + State uint16 +} + +func NewMSFT_FileStorageTierEx1(instance *cim.WmiInstance) (newInstance *MSFT_FileStorageTier, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_FileStorageTier{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_FileStorageTierEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_FileStorageTier, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_FileStorageTier{ + WmiInstance: tmp, + } + return +} + +// SetDesiredStorageTierClass sets the value of DesiredStorageTierClass for the instance +func (instance *MSFT_FileStorageTier) SetPropertyDesiredStorageTierClass(value uint16) (err error) { + return instance.SetProperty("DesiredStorageTierClass", (value)) +} + +// GetDesiredStorageTierClass gets the value of DesiredStorageTierClass for the instance +func (instance *MSFT_FileStorageTier) GetPropertyDesiredStorageTierClass() (value uint16, err error) { + retValue, err := instance.GetProperty("DesiredStorageTierClass") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetDesiredStorageTierName sets the value of DesiredStorageTierName for the instance +func (instance *MSFT_FileStorageTier) SetPropertyDesiredStorageTierName(value string) (err error) { + return instance.SetProperty("DesiredStorageTierName", (value)) +} + +// GetDesiredStorageTierName gets the value of DesiredStorageTierName for the instance +func (instance *MSFT_FileStorageTier) GetPropertyDesiredStorageTierName() (value string, err error) { + retValue, err := instance.GetProperty("DesiredStorageTierName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFilePath sets the value of FilePath for the instance +func (instance *MSFT_FileStorageTier) SetPropertyFilePath(value string) (err error) { + return instance.SetProperty("FilePath", (value)) +} + +// GetFilePath gets the value of FilePath for the instance +func (instance *MSFT_FileStorageTier) GetPropertyFilePath() (value string, err error) { + retValue, err := instance.GetProperty("FilePath") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFileSize sets the value of FileSize for the instance +func (instance *MSFT_FileStorageTier) SetPropertyFileSize(value uint64) (err error) { + return instance.SetProperty("FileSize", (value)) +} + +// GetFileSize gets the value of FileSize for the instance +func (instance *MSFT_FileStorageTier) GetPropertyFileSize() (value uint64, err error) { + retValue, err := instance.GetProperty("FileSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetFileSizeOnDesiredStorageTier sets the value of FileSizeOnDesiredStorageTier for the instance +func (instance *MSFT_FileStorageTier) SetPropertyFileSizeOnDesiredStorageTier(value uint64) (err error) { + return instance.SetProperty("FileSizeOnDesiredStorageTier", (value)) +} + +// GetFileSizeOnDesiredStorageTier gets the value of FileSizeOnDesiredStorageTier for the instance +func (instance *MSFT_FileStorageTier) GetPropertyFileSizeOnDesiredStorageTier() (value uint64, err error) { + retValue, err := instance.GetProperty("FileSizeOnDesiredStorageTier") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetFileSizeOnDesiredStorageTierClass sets the value of FileSizeOnDesiredStorageTierClass for the instance +func (instance *MSFT_FileStorageTier) SetPropertyFileSizeOnDesiredStorageTierClass(value uint64) (err error) { + return instance.SetProperty("FileSizeOnDesiredStorageTierClass", (value)) +} + +// GetFileSizeOnDesiredStorageTierClass gets the value of FileSizeOnDesiredStorageTierClass for the instance +func (instance *MSFT_FileStorageTier) GetPropertyFileSizeOnDesiredStorageTierClass() (value uint64, err error) { + retValue, err := instance.GetProperty("FileSizeOnDesiredStorageTierClass") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetPlacementStatus sets the value of PlacementStatus for the instance +func (instance *MSFT_FileStorageTier) SetPropertyPlacementStatus(value uint16) (err error) { + return instance.SetProperty("PlacementStatus", (value)) +} + +// GetPlacementStatus gets the value of PlacementStatus for the instance +func (instance *MSFT_FileStorageTier) GetPropertyPlacementStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("PlacementStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetState sets the value of State for the instance +func (instance *MSFT_FileStorageTier) SetPropertyState(value uint16) (err error) { + return instance.SetProperty("State", (value)) +} + +// GetState gets the value of State for the instance +func (instance *MSFT_FileStorageTier) GetPropertyState() (value uint16, err error) { + retValue, err := instance.GetProperty("State") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// + +// +// +// +// + +// +// +func (instance *MSFT_FileStorageTier) Get( /* IN */ FilePath string, + /* IN */ VolumeDriveLetter byte, + /* IN */ VolumePath string, + /* IN */ Volume MSFT_Volume, + /* OUT */ FileStorageTier []MSFT_FileStorageTier) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Get", FilePath, VolumeDriveLetter, VolumePath, Volume) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// + +// +func (instance *MSFT_FileStorageTier) Set( /* IN */ FilePath string, + /* IN */ DesiredStorageTierFriendlyName string, + /* IN */ DesiredStorageTierUniqueId string, + /* IN */ DesiredStorageTierClass uint16, + /* IN */ DesiredStorageTier MSFT_StorageTier) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("Set", FilePath, DesiredStorageTierFriendlyName, DesiredStorageTierUniqueId, DesiredStorageTierClass, DesiredStorageTier) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// + +// +func (instance *MSFT_FileStorageTier) Clear( /* IN */ FilePath string) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("Clear", FilePath) + if err != nil { + return + } + result = uint32(retVal) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthAction.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthAction.go new file mode 100644 index 000000000..d589500e8 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthAction.go @@ -0,0 +1,441 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_HealthAction struct +type MSFT_HealthAction struct { + *MSFT_StorageObject + + // + Description string + + // + ErrorCode uint32 + + // + ErrorDescription string + + // + MessageParameters []string + + // + PercentComplete uint16 + + // + Reason string + + // + ReportingObjectId string + + // + ReportingObjectType string + + // + ReportingObjectUniqueId string + + // + StartTime string + + // + State uint16 + + // + Status string + + // + Type string +} + +func NewMSFT_HealthActionEx1(instance *cim.WmiInstance) (newInstance *MSFT_HealthAction, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_HealthAction{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_HealthActionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_HealthAction, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_HealthAction{ + MSFT_StorageObject: tmp, + } + return +} + +// SetDescription sets the value of Description for the instance +func (instance *MSFT_HealthAction) SetPropertyDescription(value string) (err error) { + return instance.SetProperty("Description", (value)) +} + +// GetDescription gets the value of Description for the instance +func (instance *MSFT_HealthAction) GetPropertyDescription() (value string, err error) { + retValue, err := instance.GetProperty("Description") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetErrorCode sets the value of ErrorCode for the instance +func (instance *MSFT_HealthAction) SetPropertyErrorCode(value uint32) (err error) { + return instance.SetProperty("ErrorCode", (value)) +} + +// GetErrorCode gets the value of ErrorCode for the instance +func (instance *MSFT_HealthAction) GetPropertyErrorCode() (value uint32, err error) { + retValue, err := instance.GetProperty("ErrorCode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetErrorDescription sets the value of ErrorDescription for the instance +func (instance *MSFT_HealthAction) SetPropertyErrorDescription(value string) (err error) { + return instance.SetProperty("ErrorDescription", (value)) +} + +// GetErrorDescription gets the value of ErrorDescription for the instance +func (instance *MSFT_HealthAction) GetPropertyErrorDescription() (value string, err error) { + retValue, err := instance.GetProperty("ErrorDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetMessageParameters sets the value of MessageParameters for the instance +func (instance *MSFT_HealthAction) SetPropertyMessageParameters(value []string) (err error) { + return instance.SetProperty("MessageParameters", (value)) +} + +// GetMessageParameters gets the value of MessageParameters for the instance +func (instance *MSFT_HealthAction) GetPropertyMessageParameters() (value []string, err error) { + retValue, err := instance.GetProperty("MessageParameters") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetPercentComplete sets the value of PercentComplete for the instance +func (instance *MSFT_HealthAction) SetPropertyPercentComplete(value uint16) (err error) { + return instance.SetProperty("PercentComplete", (value)) +} + +// GetPercentComplete gets the value of PercentComplete for the instance +func (instance *MSFT_HealthAction) GetPropertyPercentComplete() (value uint16, err error) { + retValue, err := instance.GetProperty("PercentComplete") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetReason sets the value of Reason for the instance +func (instance *MSFT_HealthAction) SetPropertyReason(value string) (err error) { + return instance.SetProperty("Reason", (value)) +} + +// GetReason gets the value of Reason for the instance +func (instance *MSFT_HealthAction) GetPropertyReason() (value string, err error) { + retValue, err := instance.GetProperty("Reason") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetReportingObjectId sets the value of ReportingObjectId for the instance +func (instance *MSFT_HealthAction) SetPropertyReportingObjectId(value string) (err error) { + return instance.SetProperty("ReportingObjectId", (value)) +} + +// GetReportingObjectId gets the value of ReportingObjectId for the instance +func (instance *MSFT_HealthAction) GetPropertyReportingObjectId() (value string, err error) { + retValue, err := instance.GetProperty("ReportingObjectId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetReportingObjectType sets the value of ReportingObjectType for the instance +func (instance *MSFT_HealthAction) SetPropertyReportingObjectType(value string) (err error) { + return instance.SetProperty("ReportingObjectType", (value)) +} + +// GetReportingObjectType gets the value of ReportingObjectType for the instance +func (instance *MSFT_HealthAction) GetPropertyReportingObjectType() (value string, err error) { + retValue, err := instance.GetProperty("ReportingObjectType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetReportingObjectUniqueId sets the value of ReportingObjectUniqueId for the instance +func (instance *MSFT_HealthAction) SetPropertyReportingObjectUniqueId(value string) (err error) { + return instance.SetProperty("ReportingObjectUniqueId", (value)) +} + +// GetReportingObjectUniqueId gets the value of ReportingObjectUniqueId for the instance +func (instance *MSFT_HealthAction) GetPropertyReportingObjectUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("ReportingObjectUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetStartTime sets the value of StartTime for the instance +func (instance *MSFT_HealthAction) SetPropertyStartTime(value string) (err error) { + return instance.SetProperty("StartTime", (value)) +} + +// GetStartTime gets the value of StartTime for the instance +func (instance *MSFT_HealthAction) GetPropertyStartTime() (value string, err error) { + retValue, err := instance.GetProperty("StartTime") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetState sets the value of State for the instance +func (instance *MSFT_HealthAction) SetPropertyState(value uint16) (err error) { + return instance.SetProperty("State", (value)) +} + +// GetState gets the value of State for the instance +func (instance *MSFT_HealthAction) GetPropertyState() (value uint16, err error) { + retValue, err := instance.GetProperty("State") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetStatus sets the value of Status for the instance +func (instance *MSFT_HealthAction) SetPropertyStatus(value string) (err error) { + return instance.SetProperty("Status", (value)) +} + +// GetStatus gets the value of Status for the instance +func (instance *MSFT_HealthAction) GetPropertyStatus() (value string, err error) { + retValue, err := instance.GetProperty("Status") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetType sets the value of Type for the instance +func (instance *MSFT_HealthAction) SetPropertyType(value string) (err error) { + return instance.SetProperty("Type", (value)) +} + +// GetType gets the value of Type for the instance +func (instance *MSFT_HealthAction) GetPropertyType() (value string, err error) { + retValue, err := instance.GetProperty("Type") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthActionEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthActionEvent.go new file mode 100644 index 000000000..48d5e9378 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthActionEvent.go @@ -0,0 +1,320 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_HealthActionEvent struct +type MSFT_HealthActionEvent struct { + *MSFT_StorageEvent + + // + ChangeType uint16 + + // + HealthActionId string + + // + HealthActionType string + + // + PercentComplete uint16 + + // + Reason string + + // + StartTime string + + // + State uint16 + + // + Status string + + // + StorageSubsystemUniqueId string +} + +func NewMSFT_HealthActionEventEx1(instance *cim.WmiInstance) (newInstance *MSFT_HealthActionEvent, err error) { + tmp, err := NewMSFT_StorageEventEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_HealthActionEvent{ + MSFT_StorageEvent: tmp, + } + return +} + +func NewMSFT_HealthActionEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_HealthActionEvent, err error) { + tmp, err := NewMSFT_StorageEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_HealthActionEvent{ + MSFT_StorageEvent: tmp, + } + return +} + +// SetChangeType sets the value of ChangeType for the instance +func (instance *MSFT_HealthActionEvent) SetPropertyChangeType(value uint16) (err error) { + return instance.SetProperty("ChangeType", (value)) +} + +// GetChangeType gets the value of ChangeType for the instance +func (instance *MSFT_HealthActionEvent) GetPropertyChangeType() (value uint16, err error) { + retValue, err := instance.GetProperty("ChangeType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetHealthActionId sets the value of HealthActionId for the instance +func (instance *MSFT_HealthActionEvent) SetPropertyHealthActionId(value string) (err error) { + return instance.SetProperty("HealthActionId", (value)) +} + +// GetHealthActionId gets the value of HealthActionId for the instance +func (instance *MSFT_HealthActionEvent) GetPropertyHealthActionId() (value string, err error) { + retValue, err := instance.GetProperty("HealthActionId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetHealthActionType sets the value of HealthActionType for the instance +func (instance *MSFT_HealthActionEvent) SetPropertyHealthActionType(value string) (err error) { + return instance.SetProperty("HealthActionType", (value)) +} + +// GetHealthActionType gets the value of HealthActionType for the instance +func (instance *MSFT_HealthActionEvent) GetPropertyHealthActionType() (value string, err error) { + retValue, err := instance.GetProperty("HealthActionType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPercentComplete sets the value of PercentComplete for the instance +func (instance *MSFT_HealthActionEvent) SetPropertyPercentComplete(value uint16) (err error) { + return instance.SetProperty("PercentComplete", (value)) +} + +// GetPercentComplete gets the value of PercentComplete for the instance +func (instance *MSFT_HealthActionEvent) GetPropertyPercentComplete() (value uint16, err error) { + retValue, err := instance.GetProperty("PercentComplete") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetReason sets the value of Reason for the instance +func (instance *MSFT_HealthActionEvent) SetPropertyReason(value string) (err error) { + return instance.SetProperty("Reason", (value)) +} + +// GetReason gets the value of Reason for the instance +func (instance *MSFT_HealthActionEvent) GetPropertyReason() (value string, err error) { + retValue, err := instance.GetProperty("Reason") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetStartTime sets the value of StartTime for the instance +func (instance *MSFT_HealthActionEvent) SetPropertyStartTime(value string) (err error) { + return instance.SetProperty("StartTime", (value)) +} + +// GetStartTime gets the value of StartTime for the instance +func (instance *MSFT_HealthActionEvent) GetPropertyStartTime() (value string, err error) { + retValue, err := instance.GetProperty("StartTime") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetState sets the value of State for the instance +func (instance *MSFT_HealthActionEvent) SetPropertyState(value uint16) (err error) { + return instance.SetProperty("State", (value)) +} + +// GetState gets the value of State for the instance +func (instance *MSFT_HealthActionEvent) GetPropertyState() (value uint16, err error) { + retValue, err := instance.GetProperty("State") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetStatus sets the value of Status for the instance +func (instance *MSFT_HealthActionEvent) SetPropertyStatus(value string) (err error) { + return instance.SetProperty("Status", (value)) +} + +// GetStatus gets the value of Status for the instance +func (instance *MSFT_HealthActionEvent) GetPropertyStatus() (value string, err error) { + retValue, err := instance.GetProperty("Status") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetStorageSubsystemUniqueId sets the value of StorageSubsystemUniqueId for the instance +func (instance *MSFT_HealthActionEvent) SetPropertyStorageSubsystemUniqueId(value string) (err error) { + return instance.SetProperty("StorageSubsystemUniqueId", (value)) +} + +// GetStorageSubsystemUniqueId gets the value of StorageSubsystemUniqueId for the instance +func (instance *MSFT_HealthActionEvent) GetPropertyStorageSubsystemUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("StorageSubsystemUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthRecord.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthRecord.go new file mode 100644 index 000000000..c40d1ae8c --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthRecord.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_HealthRecord struct +type MSFT_HealthRecord struct { + *cim.WmiInstance + + // + Name string + + // + Units uint16 +} + +func NewMSFT_HealthRecordEx1(instance *cim.WmiInstance) (newInstance *MSFT_HealthRecord, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_HealthRecord{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_HealthRecordEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_HealthRecord, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_HealthRecord{ + WmiInstance: tmp, + } + return +} + +// SetName sets the value of Name for the instance +func (instance *MSFT_HealthRecord) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *MSFT_HealthRecord) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetUnits sets the value of Units for the instance +func (instance *MSFT_HealthRecord) SetPropertyUnits(value uint16) (err error) { + return instance.SetProperty("Units", (value)) +} + +// GetUnits gets the value of Units for the instance +func (instance *MSFT_HealthRecord) GetPropertyUnits() (value uint16, err error) { + retValue, err := instance.GetProperty("Units") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthRecordReal64.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthRecordReal64.go new file mode 100644 index 000000000..697c04814 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthRecordReal64.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_HealthRecordReal64 struct +type MSFT_HealthRecordReal64 struct { + *MSFT_HealthRecord + + // + Value float64 +} + +func NewMSFT_HealthRecordReal64Ex1(instance *cim.WmiInstance) (newInstance *MSFT_HealthRecordReal64, err error) { + tmp, err := NewMSFT_HealthRecordEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_HealthRecordReal64{ + MSFT_HealthRecord: tmp, + } + return +} + +func NewMSFT_HealthRecordReal64Ex6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_HealthRecordReal64, err error) { + tmp, err := NewMSFT_HealthRecordEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_HealthRecordReal64{ + MSFT_HealthRecord: tmp, + } + return +} + +// SetValue sets the value of Value for the instance +func (instance *MSFT_HealthRecordReal64) SetPropertyValue(value float64) (err error) { + return instance.SetProperty("Value", (value)) +} + +// GetValue gets the value of Value for the instance +func (instance *MSFT_HealthRecordReal64) GetPropertyValue() (value float64, err error) { + retValue, err := instance.GetProperty("Value") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(float64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " float64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = float64(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthRecordUInt64.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthRecordUInt64.go new file mode 100644 index 000000000..e4d50c0ac --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_HealthRecordUInt64.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_HealthRecordUInt64 struct +type MSFT_HealthRecordUInt64 struct { + *MSFT_HealthRecord + + // + Value uint64 +} + +func NewMSFT_HealthRecordUInt64Ex1(instance *cim.WmiInstance) (newInstance *MSFT_HealthRecordUInt64, err error) { + tmp, err := NewMSFT_HealthRecordEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_HealthRecordUInt64{ + MSFT_HealthRecord: tmp, + } + return +} + +func NewMSFT_HealthRecordUInt64Ex6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_HealthRecordUInt64, err error) { + tmp, err := NewMSFT_HealthRecordEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_HealthRecordUInt64{ + MSFT_HealthRecord: tmp, + } + return +} + +// SetValue sets the value of Value for the instance +func (instance *MSFT_HealthRecordUInt64) SetPropertyValue(value uint64) (err error) { + return instance.SetProperty("Value", (value)) +} + +// GetValue gets the value of Value for the instance +func (instance *MSFT_HealthRecordUInt64) GetPropertyValue() (value uint64, err error) { + retValue, err := instance.GetProperty("Value") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorId.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorId.go new file mode 100644 index 000000000..79af1e575 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorId.go @@ -0,0 +1,187 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_InitiatorId struct +type MSFT_InitiatorId struct { + *MSFT_StorageObject + + // + HostType []uint16 + + // + InitiatorAddress string + + // + OtherHostTypeDescription []string + + // + Type uint16 +} + +func NewMSFT_InitiatorIdEx1(instance *cim.WmiInstance) (newInstance *MSFT_InitiatorId, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_InitiatorId{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_InitiatorIdEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_InitiatorId, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_InitiatorId{ + MSFT_StorageObject: tmp, + } + return +} + +// SetHostType sets the value of HostType for the instance +func (instance *MSFT_InitiatorId) SetPropertyHostType(value []uint16) (err error) { + return instance.SetProperty("HostType", (value)) +} + +// GetHostType gets the value of HostType for the instance +func (instance *MSFT_InitiatorId) GetPropertyHostType() (value []uint16, err error) { + retValue, err := instance.GetProperty("HostType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetInitiatorAddress sets the value of InitiatorAddress for the instance +func (instance *MSFT_InitiatorId) SetPropertyInitiatorAddress(value string) (err error) { + return instance.SetProperty("InitiatorAddress", (value)) +} + +// GetInitiatorAddress gets the value of InitiatorAddress for the instance +func (instance *MSFT_InitiatorId) GetPropertyInitiatorAddress() (value string, err error) { + retValue, err := instance.GetProperty("InitiatorAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOtherHostTypeDescription sets the value of OtherHostTypeDescription for the instance +func (instance *MSFT_InitiatorId) SetPropertyOtherHostTypeDescription(value []string) (err error) { + return instance.SetProperty("OtherHostTypeDescription", (value)) +} + +// GetOtherHostTypeDescription gets the value of OtherHostTypeDescription for the instance +func (instance *MSFT_InitiatorId) GetPropertyOtherHostTypeDescription() (value []string, err error) { + retValue, err := instance.GetProperty("OtherHostTypeDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetType sets the value of Type for the instance +func (instance *MSFT_InitiatorId) SetPropertyType(value uint16) (err error) { + return instance.SetProperty("Type", (value)) +} + +// GetType gets the value of Type for the instance +func (instance *MSFT_InitiatorId) GetPropertyType() (value uint16, err error) { + retValue, err := instance.GetProperty("Type") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// + +// +// +func (instance *MSFT_InitiatorId) DeleteObject( /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("DeleteObject") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorIdToVirtualDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorIdToVirtualDisk.go new file mode 100644 index 000000000..1f534252d --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorIdToVirtualDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_InitiatorIdToVirtualDisk struct +type MSFT_InitiatorIdToVirtualDisk struct { + *cim.WmiInstance + + // + InitiatorId MSFT_InitiatorId + + // + VirtualDisk MSFT_VirtualDisk +} + +func NewMSFT_InitiatorIdToVirtualDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_InitiatorIdToVirtualDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_InitiatorIdToVirtualDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_InitiatorIdToVirtualDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_InitiatorIdToVirtualDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_InitiatorIdToVirtualDisk{ + WmiInstance: tmp, + } + return +} + +// SetInitiatorId sets the value of InitiatorId for the instance +func (instance *MSFT_InitiatorIdToVirtualDisk) SetPropertyInitiatorId(value MSFT_InitiatorId) (err error) { + return instance.SetProperty("InitiatorId", (value)) +} + +// GetInitiatorId gets the value of InitiatorId for the instance +func (instance *MSFT_InitiatorIdToVirtualDisk) GetPropertyInitiatorId() (value MSFT_InitiatorId, err error) { + retValue, err := instance.GetProperty("InitiatorId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_InitiatorId) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_InitiatorId is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_InitiatorId(valuetmp) + + return +} + +// SetVirtualDisk sets the value of VirtualDisk for the instance +func (instance *MSFT_InitiatorIdToVirtualDisk) SetPropertyVirtualDisk(value MSFT_VirtualDisk) (err error) { + return instance.SetProperty("VirtualDisk", (value)) +} + +// GetVirtualDisk gets the value of VirtualDisk for the instance +func (instance *MSFT_InitiatorIdToVirtualDisk) GetPropertyVirtualDisk() (value MSFT_VirtualDisk, err error) { + retValue, err := instance.GetProperty("VirtualDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_VirtualDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_VirtualDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_VirtualDisk(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorPort.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorPort.go new file mode 100644 index 000000000..d911657f4 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorPort.go @@ -0,0 +1,372 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_InitiatorPort struct +type MSFT_InitiatorPort struct { + *cim.WmiInstance + + // + AlternateNodeAddress []string + + // + AlternatePortAddress []string + + // + ConnectionType uint16 + + // + InstanceName string + + // + NodeAddress string + + // + ObjectId string + + // + OperationalStatus []uint16 + + // + OtherConnectionTypeDescription string + + // + PortAddress string + + // + PortType uint16 +} + +func NewMSFT_InitiatorPortEx1(instance *cim.WmiInstance) (newInstance *MSFT_InitiatorPort, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_InitiatorPort{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_InitiatorPortEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_InitiatorPort, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_InitiatorPort{ + WmiInstance: tmp, + } + return +} + +// SetAlternateNodeAddress sets the value of AlternateNodeAddress for the instance +func (instance *MSFT_InitiatorPort) SetPropertyAlternateNodeAddress(value []string) (err error) { + return instance.SetProperty("AlternateNodeAddress", (value)) +} + +// GetAlternateNodeAddress gets the value of AlternateNodeAddress for the instance +func (instance *MSFT_InitiatorPort) GetPropertyAlternateNodeAddress() (value []string, err error) { + retValue, err := instance.GetProperty("AlternateNodeAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetAlternatePortAddress sets the value of AlternatePortAddress for the instance +func (instance *MSFT_InitiatorPort) SetPropertyAlternatePortAddress(value []string) (err error) { + return instance.SetProperty("AlternatePortAddress", (value)) +} + +// GetAlternatePortAddress gets the value of AlternatePortAddress for the instance +func (instance *MSFT_InitiatorPort) GetPropertyAlternatePortAddress() (value []string, err error) { + retValue, err := instance.GetProperty("AlternatePortAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetConnectionType sets the value of ConnectionType for the instance +func (instance *MSFT_InitiatorPort) SetPropertyConnectionType(value uint16) (err error) { + return instance.SetProperty("ConnectionType", (value)) +} + +// GetConnectionType gets the value of ConnectionType for the instance +func (instance *MSFT_InitiatorPort) GetPropertyConnectionType() (value uint16, err error) { + retValue, err := instance.GetProperty("ConnectionType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetInstanceName sets the value of InstanceName for the instance +func (instance *MSFT_InitiatorPort) SetPropertyInstanceName(value string) (err error) { + return instance.SetProperty("InstanceName", (value)) +} + +// GetInstanceName gets the value of InstanceName for the instance +func (instance *MSFT_InitiatorPort) GetPropertyInstanceName() (value string, err error) { + retValue, err := instance.GetProperty("InstanceName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetNodeAddress sets the value of NodeAddress for the instance +func (instance *MSFT_InitiatorPort) SetPropertyNodeAddress(value string) (err error) { + return instance.SetProperty("NodeAddress", (value)) +} + +// GetNodeAddress gets the value of NodeAddress for the instance +func (instance *MSFT_InitiatorPort) GetPropertyNodeAddress() (value string, err error) { + retValue, err := instance.GetProperty("NodeAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetObjectId sets the value of ObjectId for the instance +func (instance *MSFT_InitiatorPort) SetPropertyObjectId(value string) (err error) { + return instance.SetProperty("ObjectId", (value)) +} + +// GetObjectId gets the value of ObjectId for the instance +func (instance *MSFT_InitiatorPort) GetPropertyObjectId() (value string, err error) { + retValue, err := instance.GetProperty("ObjectId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_InitiatorPort) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_InitiatorPort) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetOtherConnectionTypeDescription sets the value of OtherConnectionTypeDescription for the instance +func (instance *MSFT_InitiatorPort) SetPropertyOtherConnectionTypeDescription(value string) (err error) { + return instance.SetProperty("OtherConnectionTypeDescription", (value)) +} + +// GetOtherConnectionTypeDescription gets the value of OtherConnectionTypeDescription for the instance +func (instance *MSFT_InitiatorPort) GetPropertyOtherConnectionTypeDescription() (value string, err error) { + retValue, err := instance.GetProperty("OtherConnectionTypeDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPortAddress sets the value of PortAddress for the instance +func (instance *MSFT_InitiatorPort) SetPropertyPortAddress(value string) (err error) { + return instance.SetProperty("PortAddress", (value)) +} + +// GetPortAddress gets the value of PortAddress for the instance +func (instance *MSFT_InitiatorPort) GetPropertyPortAddress() (value string, err error) { + retValue, err := instance.GetProperty("PortAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPortType sets the value of PortType for the instance +func (instance *MSFT_InitiatorPort) SetPropertyPortType(value uint16) (err error) { + return instance.SetProperty("PortType", (value)) +} + +// GetPortType gets the value of PortType for the instance +func (instance *MSFT_InitiatorPort) GetPropertyPortType() (value uint16, err error) { + retValue, err := instance.GetProperty("PortType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// + +// + +// +// +func (instance *MSFT_InitiatorPort) SetNodeAddress( /* IN */ NodeAddress string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetNodeAddress", NodeAddress) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorPortToiSCSIConnection.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorPortToiSCSIConnection.go new file mode 100644 index 000000000..c914afd58 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorPortToiSCSIConnection.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_InitiatorPortToiSCSIConnection struct +type MSFT_InitiatorPortToiSCSIConnection struct { + *cim.WmiInstance + + // + InitiatorPort MSFT_InitiatorPort + + // + iSCSIConnection MSFT_iSCSIConnection +} + +func NewMSFT_InitiatorPortToiSCSIConnectionEx1(instance *cim.WmiInstance) (newInstance *MSFT_InitiatorPortToiSCSIConnection, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_InitiatorPortToiSCSIConnection{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_InitiatorPortToiSCSIConnectionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_InitiatorPortToiSCSIConnection, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_InitiatorPortToiSCSIConnection{ + WmiInstance: tmp, + } + return +} + +// SetInitiatorPort sets the value of InitiatorPort for the instance +func (instance *MSFT_InitiatorPortToiSCSIConnection) SetPropertyInitiatorPort(value MSFT_InitiatorPort) (err error) { + return instance.SetProperty("InitiatorPort", (value)) +} + +// GetInitiatorPort gets the value of InitiatorPort for the instance +func (instance *MSFT_InitiatorPortToiSCSIConnection) GetPropertyInitiatorPort() (value MSFT_InitiatorPort, err error) { + retValue, err := instance.GetProperty("InitiatorPort") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_InitiatorPort) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_InitiatorPort is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_InitiatorPort(valuetmp) + + return +} + +// SetiSCSIConnection sets the value of iSCSIConnection for the instance +func (instance *MSFT_InitiatorPortToiSCSIConnection) SetPropertyiSCSIConnection(value MSFT_iSCSIConnection) (err error) { + return instance.SetProperty("iSCSIConnection", (value)) +} + +// GetiSCSIConnection gets the value of iSCSIConnection for the instance +func (instance *MSFT_InitiatorPortToiSCSIConnection) GetPropertyiSCSIConnection() (value MSFT_iSCSIConnection, err error) { + retValue, err := instance.GetProperty("iSCSIConnection") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSIConnection) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSIConnection is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSIConnection(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorPortToiSCSISession.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorPortToiSCSISession.go new file mode 100644 index 000000000..3743e41ce --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorPortToiSCSISession.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_InitiatorPortToiSCSISession struct +type MSFT_InitiatorPortToiSCSISession struct { + *cim.WmiInstance + + // + InitiatorPort MSFT_InitiatorPort + + // + iSCSISession MSFT_iSCSISession +} + +func NewMSFT_InitiatorPortToiSCSISessionEx1(instance *cim.WmiInstance) (newInstance *MSFT_InitiatorPortToiSCSISession, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_InitiatorPortToiSCSISession{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_InitiatorPortToiSCSISessionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_InitiatorPortToiSCSISession, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_InitiatorPortToiSCSISession{ + WmiInstance: tmp, + } + return +} + +// SetInitiatorPort sets the value of InitiatorPort for the instance +func (instance *MSFT_InitiatorPortToiSCSISession) SetPropertyInitiatorPort(value MSFT_InitiatorPort) (err error) { + return instance.SetProperty("InitiatorPort", (value)) +} + +// GetInitiatorPort gets the value of InitiatorPort for the instance +func (instance *MSFT_InitiatorPortToiSCSISession) GetPropertyInitiatorPort() (value MSFT_InitiatorPort, err error) { + retValue, err := instance.GetProperty("InitiatorPort") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_InitiatorPort) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_InitiatorPort is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_InitiatorPort(valuetmp) + + return +} + +// SetiSCSISession sets the value of iSCSISession for the instance +func (instance *MSFT_InitiatorPortToiSCSISession) SetPropertyiSCSISession(value MSFT_iSCSISession) (err error) { + return instance.SetProperty("iSCSISession", (value)) +} + +// GetiSCSISession gets the value of iSCSISession for the instance +func (instance *MSFT_InitiatorPortToiSCSISession) GetPropertyiSCSISession() (value MSFT_iSCSISession, err error) { + retValue, err := instance.GetProperty("iSCSISession") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSISession) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSISession is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSISession(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorPortToiSCSITarget.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorPortToiSCSITarget.go new file mode 100644 index 000000000..f39fa9791 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_InitiatorPortToiSCSITarget.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_InitiatorPortToiSCSITarget struct +type MSFT_InitiatorPortToiSCSITarget struct { + *cim.WmiInstance + + // + InitiatorPort MSFT_InitiatorPort + + // + iSCSITarget MSFT_iSCSITarget +} + +func NewMSFT_InitiatorPortToiSCSITargetEx1(instance *cim.WmiInstance) (newInstance *MSFT_InitiatorPortToiSCSITarget, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_InitiatorPortToiSCSITarget{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_InitiatorPortToiSCSITargetEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_InitiatorPortToiSCSITarget, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_InitiatorPortToiSCSITarget{ + WmiInstance: tmp, + } + return +} + +// SetInitiatorPort sets the value of InitiatorPort for the instance +func (instance *MSFT_InitiatorPortToiSCSITarget) SetPropertyInitiatorPort(value MSFT_InitiatorPort) (err error) { + return instance.SetProperty("InitiatorPort", (value)) +} + +// GetInitiatorPort gets the value of InitiatorPort for the instance +func (instance *MSFT_InitiatorPortToiSCSITarget) GetPropertyInitiatorPort() (value MSFT_InitiatorPort, err error) { + retValue, err := instance.GetProperty("InitiatorPort") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_InitiatorPort) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_InitiatorPort is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_InitiatorPort(valuetmp) + + return +} + +// SetiSCSITarget sets the value of iSCSITarget for the instance +func (instance *MSFT_InitiatorPortToiSCSITarget) SetPropertyiSCSITarget(value MSFT_iSCSITarget) (err error) { + return instance.SetProperty("iSCSITarget", (value)) +} + +// GetiSCSITarget gets the value of iSCSITarget for the instance +func (instance *MSFT_InitiatorPortToiSCSITarget) GetPropertyiSCSITarget() (value MSFT_iSCSITarget, err error) { + retValue, err := instance.GetProperty("iSCSITarget") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSITarget) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSITarget is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSITarget(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_MaskingSet.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_MaskingSet.go new file mode 100644 index 000000000..66fba832f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_MaskingSet.go @@ -0,0 +1,351 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_MaskingSet struct +type MSFT_MaskingSet struct { + *MSFT_StorageObject + + // + FriendlyName string + + // + HostType uint16 + + // + Name string +} + +func NewMSFT_MaskingSetEx1(instance *cim.WmiInstance) (newInstance *MSFT_MaskingSet, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_MaskingSet{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_MaskingSetEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_MaskingSet, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_MaskingSet{ + MSFT_StorageObject: tmp, + } + return +} + +// SetFriendlyName sets the value of FriendlyName for the instance +func (instance *MSFT_MaskingSet) SetPropertyFriendlyName(value string) (err error) { + return instance.SetProperty("FriendlyName", (value)) +} + +// GetFriendlyName gets the value of FriendlyName for the instance +func (instance *MSFT_MaskingSet) GetPropertyFriendlyName() (value string, err error) { + retValue, err := instance.GetProperty("FriendlyName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetHostType sets the value of HostType for the instance +func (instance *MSFT_MaskingSet) SetPropertyHostType(value uint16) (err error) { + return instance.SetProperty("HostType", (value)) +} + +// GetHostType gets the value of HostType for the instance +func (instance *MSFT_MaskingSet) GetPropertyHostType() (value uint16, err error) { + retValue, err := instance.GetProperty("HostType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetName sets the value of Name for the instance +func (instance *MSFT_MaskingSet) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *MSFT_MaskingSet) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// + +// +// +// + +// +// +// +func (instance *MSFT_MaskingSet) AddInitiatorId( /* IN */ InitiatorIds []string, + /* IN */ HostType uint16, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("AddInitiatorId", InitiatorIds, HostType, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +func (instance *MSFT_MaskingSet) RemoveInitiatorId( /* IN */ InitiatorIds []string, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("RemoveInitiatorId", InitiatorIds, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +func (instance *MSFT_MaskingSet) AddTargetPort( /* IN */ TargetPortAddresses []string, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("AddTargetPort", TargetPortAddresses, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +func (instance *MSFT_MaskingSet) RemoveTargetPort( /* IN */ TargetPortAddresses []string, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("RemoveTargetPort", TargetPortAddresses, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// + +// +// +// +func (instance *MSFT_MaskingSet) AddVirtualDisk( /* IN */ VirtualDiskNames []string, + /* IN */ DeviceNumbers []string, + /* IN */ DeviceAccesses []uint16, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("AddVirtualDisk", VirtualDiskNames, DeviceNumbers, DeviceAccesses, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +func (instance *MSFT_MaskingSet) RemoveVirtualDisk( /* IN */ VirtualDiskNames []string, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("RemoveVirtualDisk", VirtualDiskNames, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_MaskingSet) DeleteObject( /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("DeleteObject", RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_MaskingSet) SetFriendlyName( /* IN */ FriendlyName string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetFriendlyName", FriendlyName) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_MaskingSet) GetSecurityDescriptor( /* OUT */ SecurityDescriptor string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSecurityDescriptor") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_MaskingSet) SetSecurityDescriptor( /* IN */ SecurityDescriptor string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetSecurityDescriptor", SecurityDescriptor) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_MaskingSetToInitiatorId.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_MaskingSetToInitiatorId.go new file mode 100644 index 000000000..e11cd5ab4 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_MaskingSetToInitiatorId.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_MaskingSetToInitiatorId struct +type MSFT_MaskingSetToInitiatorId struct { + *cim.WmiInstance + + // + InitiatorId MSFT_InitiatorId + + // + MaskingSet MSFT_MaskingSet +} + +func NewMSFT_MaskingSetToInitiatorIdEx1(instance *cim.WmiInstance) (newInstance *MSFT_MaskingSetToInitiatorId, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_MaskingSetToInitiatorId{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_MaskingSetToInitiatorIdEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_MaskingSetToInitiatorId, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_MaskingSetToInitiatorId{ + WmiInstance: tmp, + } + return +} + +// SetInitiatorId sets the value of InitiatorId for the instance +func (instance *MSFT_MaskingSetToInitiatorId) SetPropertyInitiatorId(value MSFT_InitiatorId) (err error) { + return instance.SetProperty("InitiatorId", (value)) +} + +// GetInitiatorId gets the value of InitiatorId for the instance +func (instance *MSFT_MaskingSetToInitiatorId) GetPropertyInitiatorId() (value MSFT_InitiatorId, err error) { + retValue, err := instance.GetProperty("InitiatorId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_InitiatorId) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_InitiatorId is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_InitiatorId(valuetmp) + + return +} + +// SetMaskingSet sets the value of MaskingSet for the instance +func (instance *MSFT_MaskingSetToInitiatorId) SetPropertyMaskingSet(value MSFT_MaskingSet) (err error) { + return instance.SetProperty("MaskingSet", (value)) +} + +// GetMaskingSet gets the value of MaskingSet for the instance +func (instance *MSFT_MaskingSetToInitiatorId) GetPropertyMaskingSet() (value MSFT_MaskingSet, err error) { + retValue, err := instance.GetProperty("MaskingSet") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_MaskingSet) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_MaskingSet is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_MaskingSet(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_MaskingSetToTargetPort.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_MaskingSetToTargetPort.go new file mode 100644 index 000000000..851ef30b6 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_MaskingSetToTargetPort.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_MaskingSetToTargetPort struct +type MSFT_MaskingSetToTargetPort struct { + *cim.WmiInstance + + // + MaskingSet MSFT_MaskingSet + + // + TargetPort MSFT_TargetPort +} + +func NewMSFT_MaskingSetToTargetPortEx1(instance *cim.WmiInstance) (newInstance *MSFT_MaskingSetToTargetPort, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_MaskingSetToTargetPort{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_MaskingSetToTargetPortEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_MaskingSetToTargetPort, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_MaskingSetToTargetPort{ + WmiInstance: tmp, + } + return +} + +// SetMaskingSet sets the value of MaskingSet for the instance +func (instance *MSFT_MaskingSetToTargetPort) SetPropertyMaskingSet(value MSFT_MaskingSet) (err error) { + return instance.SetProperty("MaskingSet", (value)) +} + +// GetMaskingSet gets the value of MaskingSet for the instance +func (instance *MSFT_MaskingSetToTargetPort) GetPropertyMaskingSet() (value MSFT_MaskingSet, err error) { + retValue, err := instance.GetProperty("MaskingSet") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_MaskingSet) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_MaskingSet is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_MaskingSet(valuetmp) + + return +} + +// SetTargetPort sets the value of TargetPort for the instance +func (instance *MSFT_MaskingSetToTargetPort) SetPropertyTargetPort(value MSFT_TargetPort) (err error) { + return instance.SetProperty("TargetPort", (value)) +} + +// GetTargetPort gets the value of TargetPort for the instance +func (instance *MSFT_MaskingSetToTargetPort) GetPropertyTargetPort() (value MSFT_TargetPort, err error) { + retValue, err := instance.GetProperty("TargetPort") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_TargetPort) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_TargetPort is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_TargetPort(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_MaskingSetToVirtualDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_MaskingSetToVirtualDisk.go new file mode 100644 index 000000000..5cf6b88bf --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_MaskingSetToVirtualDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_MaskingSetToVirtualDisk struct +type MSFT_MaskingSetToVirtualDisk struct { + *cim.WmiInstance + + // + MaskingSet MSFT_MaskingSet + + // + VirtualDisk MSFT_VirtualDisk +} + +func NewMSFT_MaskingSetToVirtualDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_MaskingSetToVirtualDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_MaskingSetToVirtualDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_MaskingSetToVirtualDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_MaskingSetToVirtualDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_MaskingSetToVirtualDisk{ + WmiInstance: tmp, + } + return +} + +// SetMaskingSet sets the value of MaskingSet for the instance +func (instance *MSFT_MaskingSetToVirtualDisk) SetPropertyMaskingSet(value MSFT_MaskingSet) (err error) { + return instance.SetProperty("MaskingSet", (value)) +} + +// GetMaskingSet gets the value of MaskingSet for the instance +func (instance *MSFT_MaskingSetToVirtualDisk) GetPropertyMaskingSet() (value MSFT_MaskingSet, err error) { + retValue, err := instance.GetProperty("MaskingSet") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_MaskingSet) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_MaskingSet is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_MaskingSet(valuetmp) + + return +} + +// SetVirtualDisk sets the value of VirtualDisk for the instance +func (instance *MSFT_MaskingSetToVirtualDisk) SetPropertyVirtualDisk(value MSFT_VirtualDisk) (err error) { + return instance.SetProperty("VirtualDisk", (value)) +} + +// GetVirtualDisk gets the value of VirtualDisk for the instance +func (instance *MSFT_MaskingSetToVirtualDisk) GetPropertyVirtualDisk() (value MSFT_VirtualDisk, err error) { + retValue, err := instance.GetProperty("VirtualDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_VirtualDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_VirtualDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_VirtualDisk(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_OffloadDataTransferSetting.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_OffloadDataTransferSetting.go new file mode 100644 index 000000000..485b0f268 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_OffloadDataTransferSetting.go @@ -0,0 +1,170 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_OffloadDataTransferSetting struct +type MSFT_OffloadDataTransferSetting struct { + *MSFT_StorageObject + + // + NumberOfTokensInUse uint32 + + // + NumberOfTokensMax uint32 + + // + OptimalDataTokenSize uint32 + + // + SupportInterSubsystem bool +} + +func NewMSFT_OffloadDataTransferSettingEx1(instance *cim.WmiInstance) (newInstance *MSFT_OffloadDataTransferSetting, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_OffloadDataTransferSetting{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_OffloadDataTransferSettingEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_OffloadDataTransferSetting, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_OffloadDataTransferSetting{ + MSFT_StorageObject: tmp, + } + return +} + +// SetNumberOfTokensInUse sets the value of NumberOfTokensInUse for the instance +func (instance *MSFT_OffloadDataTransferSetting) SetPropertyNumberOfTokensInUse(value uint32) (err error) { + return instance.SetProperty("NumberOfTokensInUse", (value)) +} + +// GetNumberOfTokensInUse gets the value of NumberOfTokensInUse for the instance +func (instance *MSFT_OffloadDataTransferSetting) GetPropertyNumberOfTokensInUse() (value uint32, err error) { + retValue, err := instance.GetProperty("NumberOfTokensInUse") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetNumberOfTokensMax sets the value of NumberOfTokensMax for the instance +func (instance *MSFT_OffloadDataTransferSetting) SetPropertyNumberOfTokensMax(value uint32) (err error) { + return instance.SetProperty("NumberOfTokensMax", (value)) +} + +// GetNumberOfTokensMax gets the value of NumberOfTokensMax for the instance +func (instance *MSFT_OffloadDataTransferSetting) GetPropertyNumberOfTokensMax() (value uint32, err error) { + retValue, err := instance.GetProperty("NumberOfTokensMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetOptimalDataTokenSize sets the value of OptimalDataTokenSize for the instance +func (instance *MSFT_OffloadDataTransferSetting) SetPropertyOptimalDataTokenSize(value uint32) (err error) { + return instance.SetProperty("OptimalDataTokenSize", (value)) +} + +// GetOptimalDataTokenSize gets the value of OptimalDataTokenSize for the instance +func (instance *MSFT_OffloadDataTransferSetting) GetPropertyOptimalDataTokenSize() (value uint32, err error) { + retValue, err := instance.GetProperty("OptimalDataTokenSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetSupportInterSubsystem sets the value of SupportInterSubsystem for the instance +func (instance *MSFT_OffloadDataTransferSetting) SetPropertySupportInterSubsystem(value bool) (err error) { + return instance.SetProperty("SupportInterSubsystem", (value)) +} + +// GetSupportInterSubsystem gets the value of SupportInterSubsystem for the instance +func (instance *MSFT_OffloadDataTransferSetting) GetPropertySupportInterSubsystem() (value bool, err error) { + retValue, err := instance.GetProperty("SupportInterSubsystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Partition.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Partition.go new file mode 100644 index 000000000..b07ae2674 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Partition.go @@ -0,0 +1,850 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_Partition struct +type MSFT_Partition struct { + *MSFT_StorageObject + + // + AccessPaths []string + + // + DiskId string + + // + DiskNumber uint32 + + // + DriveLetter byte + + // + GptType string + + // + Guid string + + // + IsActive bool + + // + IsBoot bool + + // + IsDAX bool + + // + IsHidden bool + + // + IsOffline bool + + // + IsReadOnly bool + + // + IsShadowCopy bool + + // + IsSystem bool + + // + MbrType uint16 + + // + NoDefaultDriveLetter bool + + // + Offset uint64 + + // + OperationalStatus uint16 + + // + PartitionNumber uint32 + + // + Size uint64 + + // + TransitionState uint16 +} + +func NewMSFT_PartitionEx1(instance *cim.WmiInstance) (newInstance *MSFT_Partition, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_Partition{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_PartitionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_Partition, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_Partition{ + MSFT_StorageObject: tmp, + } + return +} + +// SetAccessPaths sets the value of AccessPaths for the instance +func (instance *MSFT_Partition) SetPropertyAccessPaths(value []string) (err error) { + return instance.SetProperty("AccessPaths", (value)) +} + +// GetAccessPaths gets the value of AccessPaths for the instance +func (instance *MSFT_Partition) GetPropertyAccessPaths() (value []string, err error) { + retValue, err := instance.GetProperty("AccessPaths") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetDiskId sets the value of DiskId for the instance +func (instance *MSFT_Partition) SetPropertyDiskId(value string) (err error) { + return instance.SetProperty("DiskId", (value)) +} + +// GetDiskId gets the value of DiskId for the instance +func (instance *MSFT_Partition) GetPropertyDiskId() (value string, err error) { + retValue, err := instance.GetProperty("DiskId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetDiskNumber sets the value of DiskNumber for the instance +func (instance *MSFT_Partition) SetPropertyDiskNumber(value uint32) (err error) { + return instance.SetProperty("DiskNumber", (value)) +} + +// GetDiskNumber gets the value of DiskNumber for the instance +func (instance *MSFT_Partition) GetPropertyDiskNumber() (value uint32, err error) { + retValue, err := instance.GetProperty("DiskNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetDriveLetter sets the value of DriveLetter for the instance +func (instance *MSFT_Partition) SetPropertyDriveLetter(value byte) (err error) { + return instance.SetProperty("DriveLetter", (value)) +} + +// GetDriveLetter gets the value of DriveLetter for the instance +func (instance *MSFT_Partition) GetPropertyDriveLetter() (value byte, err error) { + retValue, err := instance.GetProperty("DriveLetter") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(byte) + if !ok { + err = errors.Wrapf(errors.InvalidType, " byte is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = byte(valuetmp) + + return +} + +// SetGptType sets the value of GptType for the instance +func (instance *MSFT_Partition) SetPropertyGptType(value string) (err error) { + return instance.SetProperty("GptType", (value)) +} + +// GetGptType gets the value of GptType for the instance +func (instance *MSFT_Partition) GetPropertyGptType() (value string, err error) { + retValue, err := instance.GetProperty("GptType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetGuid sets the value of Guid for the instance +func (instance *MSFT_Partition) SetPropertyGuid(value string) (err error) { + return instance.SetProperty("Guid", (value)) +} + +// GetGuid gets the value of Guid for the instance +func (instance *MSFT_Partition) GetPropertyGuid() (value string, err error) { + retValue, err := instance.GetProperty("Guid") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetIsActive sets the value of IsActive for the instance +func (instance *MSFT_Partition) SetPropertyIsActive(value bool) (err error) { + return instance.SetProperty("IsActive", (value)) +} + +// GetIsActive gets the value of IsActive for the instance +func (instance *MSFT_Partition) GetPropertyIsActive() (value bool, err error) { + retValue, err := instance.GetProperty("IsActive") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsBoot sets the value of IsBoot for the instance +func (instance *MSFT_Partition) SetPropertyIsBoot(value bool) (err error) { + return instance.SetProperty("IsBoot", (value)) +} + +// GetIsBoot gets the value of IsBoot for the instance +func (instance *MSFT_Partition) GetPropertyIsBoot() (value bool, err error) { + retValue, err := instance.GetProperty("IsBoot") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsDAX sets the value of IsDAX for the instance +func (instance *MSFT_Partition) SetPropertyIsDAX(value bool) (err error) { + return instance.SetProperty("IsDAX", (value)) +} + +// GetIsDAX gets the value of IsDAX for the instance +func (instance *MSFT_Partition) GetPropertyIsDAX() (value bool, err error) { + retValue, err := instance.GetProperty("IsDAX") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsHidden sets the value of IsHidden for the instance +func (instance *MSFT_Partition) SetPropertyIsHidden(value bool) (err error) { + return instance.SetProperty("IsHidden", (value)) +} + +// GetIsHidden gets the value of IsHidden for the instance +func (instance *MSFT_Partition) GetPropertyIsHidden() (value bool, err error) { + retValue, err := instance.GetProperty("IsHidden") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsOffline sets the value of IsOffline for the instance +func (instance *MSFT_Partition) SetPropertyIsOffline(value bool) (err error) { + return instance.SetProperty("IsOffline", (value)) +} + +// GetIsOffline gets the value of IsOffline for the instance +func (instance *MSFT_Partition) GetPropertyIsOffline() (value bool, err error) { + retValue, err := instance.GetProperty("IsOffline") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsReadOnly sets the value of IsReadOnly for the instance +func (instance *MSFT_Partition) SetPropertyIsReadOnly(value bool) (err error) { + return instance.SetProperty("IsReadOnly", (value)) +} + +// GetIsReadOnly gets the value of IsReadOnly for the instance +func (instance *MSFT_Partition) GetPropertyIsReadOnly() (value bool, err error) { + retValue, err := instance.GetProperty("IsReadOnly") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsShadowCopy sets the value of IsShadowCopy for the instance +func (instance *MSFT_Partition) SetPropertyIsShadowCopy(value bool) (err error) { + return instance.SetProperty("IsShadowCopy", (value)) +} + +// GetIsShadowCopy gets the value of IsShadowCopy for the instance +func (instance *MSFT_Partition) GetPropertyIsShadowCopy() (value bool, err error) { + retValue, err := instance.GetProperty("IsShadowCopy") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsSystem sets the value of IsSystem for the instance +func (instance *MSFT_Partition) SetPropertyIsSystem(value bool) (err error) { + return instance.SetProperty("IsSystem", (value)) +} + +// GetIsSystem gets the value of IsSystem for the instance +func (instance *MSFT_Partition) GetPropertyIsSystem() (value bool, err error) { + retValue, err := instance.GetProperty("IsSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetMbrType sets the value of MbrType for the instance +func (instance *MSFT_Partition) SetPropertyMbrType(value uint16) (err error) { + return instance.SetProperty("MbrType", (value)) +} + +// GetMbrType gets the value of MbrType for the instance +func (instance *MSFT_Partition) GetPropertyMbrType() (value uint16, err error) { + retValue, err := instance.GetProperty("MbrType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNoDefaultDriveLetter sets the value of NoDefaultDriveLetter for the instance +func (instance *MSFT_Partition) SetPropertyNoDefaultDriveLetter(value bool) (err error) { + return instance.SetProperty("NoDefaultDriveLetter", (value)) +} + +// GetNoDefaultDriveLetter gets the value of NoDefaultDriveLetter for the instance +func (instance *MSFT_Partition) GetPropertyNoDefaultDriveLetter() (value bool, err error) { + retValue, err := instance.GetProperty("NoDefaultDriveLetter") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetOffset sets the value of Offset for the instance +func (instance *MSFT_Partition) SetPropertyOffset(value uint64) (err error) { + return instance.SetProperty("Offset", (value)) +} + +// GetOffset gets the value of Offset for the instance +func (instance *MSFT_Partition) GetPropertyOffset() (value uint64, err error) { + retValue, err := instance.GetProperty("Offset") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_Partition) SetPropertyOperationalStatus(value uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_Partition) GetPropertyOperationalStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetPartitionNumber sets the value of PartitionNumber for the instance +func (instance *MSFT_Partition) SetPropertyPartitionNumber(value uint32) (err error) { + return instance.SetProperty("PartitionNumber", (value)) +} + +// GetPartitionNumber gets the value of PartitionNumber for the instance +func (instance *MSFT_Partition) GetPropertyPartitionNumber() (value uint32, err error) { + retValue, err := instance.GetProperty("PartitionNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetSize sets the value of Size for the instance +func (instance *MSFT_Partition) SetPropertySize(value uint64) (err error) { + return instance.SetProperty("Size", (value)) +} + +// GetSize gets the value of Size for the instance +func (instance *MSFT_Partition) GetPropertySize() (value uint64, err error) { + retValue, err := instance.GetProperty("Size") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetTransitionState sets the value of TransitionState for the instance +func (instance *MSFT_Partition) SetPropertyTransitionState(value uint16) (err error) { + return instance.SetProperty("TransitionState", (value)) +} + +// GetTransitionState gets the value of TransitionState for the instance +func (instance *MSFT_Partition) GetPropertyTransitionState() (value uint16, err error) { + retValue, err := instance.GetProperty("TransitionState") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// + +// +// +func (instance *MSFT_Partition) DeleteObject( /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("DeleteObject") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_Partition) GetAccessPaths( /* OUT */ AccessPaths []string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetAccessPaths") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +func (instance *MSFT_Partition) AddAccessPath( /* IN */ AccessPath string, + /* IN */ AssignDriveLetter bool, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("AddAccessPath", AccessPath, AssignDriveLetter) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_Partition) RemoveAccessPath( /* IN */ AccessPath string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("RemoveAccessPath", AccessPath) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_Partition) Resize( /* IN */ Size uint64, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Resize", Size) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +func (instance *MSFT_Partition) GetSupportedSize( /* OUT */ SizeMin uint64, + /* OUT */ SizeMax uint64, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSupportedSize") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *MSFT_Partition) Online( /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Online") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *MSFT_Partition) Offline( /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Offline") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// +// + +// +// +func (instance *MSFT_Partition) SetAttributes( /* IN */ IsReadOnly bool, + /* IN */ NoDefaultDriveLetter bool, + /* IN */ IsActive bool, + /* IN */ IsHidden bool, + /* IN */ IsShadowCopy bool, + /* IN */ IsDAX bool, + /* IN */ MbrType uint16, + /* IN */ GptType string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetAttributes", IsReadOnly, NoDefaultDriveLetter, IsActive, IsHidden, IsShadowCopy, IsDAX, MbrType, GptType) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PartitionToReplicaPeer.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PartitionToReplicaPeer.go new file mode 100644 index 000000000..d4b9dfcf7 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PartitionToReplicaPeer.go @@ -0,0 +1,110 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_PartitionToReplicaPeer struct +type MSFT_PartitionToReplicaPeer struct { + *MSFT_Synchronized + + // + Partition MSFT_Partition + + // + ReplicaPeer MSFT_ReplicaPeer +} + +func NewMSFT_PartitionToReplicaPeerEx1(instance *cim.WmiInstance) (newInstance *MSFT_PartitionToReplicaPeer, err error) { + tmp, err := NewMSFT_SynchronizedEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_PartitionToReplicaPeer{ + MSFT_Synchronized: tmp, + } + return +} + +func NewMSFT_PartitionToReplicaPeerEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_PartitionToReplicaPeer, err error) { + tmp, err := NewMSFT_SynchronizedEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_PartitionToReplicaPeer{ + MSFT_Synchronized: tmp, + } + return +} + +// SetPartition sets the value of Partition for the instance +func (instance *MSFT_PartitionToReplicaPeer) SetPropertyPartition(value MSFT_Partition) (err error) { + return instance.SetProperty("Partition", (value)) +} + +// GetPartition gets the value of Partition for the instance +func (instance *MSFT_PartitionToReplicaPeer) GetPropertyPartition() (value MSFT_Partition, err error) { + retValue, err := instance.GetProperty("Partition") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Partition) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Partition is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Partition(valuetmp) + + return +} + +// SetReplicaPeer sets the value of ReplicaPeer for the instance +func (instance *MSFT_PartitionToReplicaPeer) SetPropertyReplicaPeer(value MSFT_ReplicaPeer) (err error) { + return instance.SetProperty("ReplicaPeer", (value)) +} + +// GetReplicaPeer gets the value of ReplicaPeer for the instance +func (instance *MSFT_PartitionToReplicaPeer) GetPropertyReplicaPeer() (value MSFT_ReplicaPeer, err error) { + retValue, err := instance.GetProperty("ReplicaPeer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_ReplicaPeer) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_ReplicaPeer is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_ReplicaPeer(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PartitionToVolume.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PartitionToVolume.go new file mode 100644 index 000000000..c076fbff1 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PartitionToVolume.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_PartitionToVolume struct +type MSFT_PartitionToVolume struct { + *cim.WmiInstance + + // + Partition MSFT_Partition + + // + Volume MSFT_Volume +} + +func NewMSFT_PartitionToVolumeEx1(instance *cim.WmiInstance) (newInstance *MSFT_PartitionToVolume, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_PartitionToVolume{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_PartitionToVolumeEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_PartitionToVolume, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_PartitionToVolume{ + WmiInstance: tmp, + } + return +} + +// SetPartition sets the value of Partition for the instance +func (instance *MSFT_PartitionToVolume) SetPropertyPartition(value MSFT_Partition) (err error) { + return instance.SetProperty("Partition", (value)) +} + +// GetPartition gets the value of Partition for the instance +func (instance *MSFT_PartitionToVolume) GetPropertyPartition() (value MSFT_Partition, err error) { + retValue, err := instance.GetProperty("Partition") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Partition) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Partition is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Partition(valuetmp) + + return +} + +// SetVolume sets the value of Volume for the instance +func (instance *MSFT_PartitionToVolume) SetPropertyVolume(value MSFT_Volume) (err error) { + return instance.SetProperty("Volume", (value)) +} + +// GetVolume gets the value of Volume for the instance +func (instance *MSFT_PartitionToVolume) GetPropertyVolume() (value MSFT_Volume, err error) { + retValue, err := instance.GetProperty("Volume") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Volume) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Volume is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Volume(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PhysicalDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PhysicalDisk.go new file mode 100644 index 000000000..beb380499 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PhysicalDisk.go @@ -0,0 +1,985 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_PhysicalDisk struct +type MSFT_PhysicalDisk struct { + *MSFT_StorageFaultDomain + + // + AdapterSerialNumber string + + // + AllocatedSize uint64 + + // + BusType uint16 + + // + CannotPoolReason []uint16 + + // + CanPool bool + + // + DeviceId string + + // + EnclosureNumber uint16 + + // + FirmwareVersion string + + // + IsIndicationEnabled bool + + // + IsPartial bool + + // + LogicalSectorSize uint64 + + // + MediaType uint16 + + // + OtherCannotPoolReasonDescription string + + // + PartNumber string + + // + PhysicalSectorSize uint64 + + // + Size uint64 + + // + SlotNumber uint16 + + // + SoftwareVersion string + + // + SpindleSpeed uint32 + + // + StoragePoolUniqueId string + + // + SupportedUsages []uint16 + + // + UniqueIdFormat uint16 + + // + Usage uint16 + + // + VirtualDiskFootprint uint64 +} + +func NewMSFT_PhysicalDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_PhysicalDisk, err error) { + tmp, err := NewMSFT_StorageFaultDomainEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_PhysicalDisk{ + MSFT_StorageFaultDomain: tmp, + } + return +} + +func NewMSFT_PhysicalDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_PhysicalDisk, err error) { + tmp, err := NewMSFT_StorageFaultDomainEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_PhysicalDisk{ + MSFT_StorageFaultDomain: tmp, + } + return +} + +// SetAdapterSerialNumber sets the value of AdapterSerialNumber for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyAdapterSerialNumber(value string) (err error) { + return instance.SetProperty("AdapterSerialNumber", (value)) +} + +// GetAdapterSerialNumber gets the value of AdapterSerialNumber for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyAdapterSerialNumber() (value string, err error) { + retValue, err := instance.GetProperty("AdapterSerialNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetAllocatedSize sets the value of AllocatedSize for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyAllocatedSize(value uint64) (err error) { + return instance.SetProperty("AllocatedSize", (value)) +} + +// GetAllocatedSize gets the value of AllocatedSize for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyAllocatedSize() (value uint64, err error) { + retValue, err := instance.GetProperty("AllocatedSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetBusType sets the value of BusType for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyBusType(value uint16) (err error) { + return instance.SetProperty("BusType", (value)) +} + +// GetBusType gets the value of BusType for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyBusType() (value uint16, err error) { + retValue, err := instance.GetProperty("BusType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetCannotPoolReason sets the value of CannotPoolReason for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyCannotPoolReason(value []uint16) (err error) { + return instance.SetProperty("CannotPoolReason", (value)) +} + +// GetCannotPoolReason gets the value of CannotPoolReason for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyCannotPoolReason() (value []uint16, err error) { + retValue, err := instance.GetProperty("CannotPoolReason") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetCanPool sets the value of CanPool for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyCanPool(value bool) (err error) { + return instance.SetProperty("CanPool", (value)) +} + +// GetCanPool gets the value of CanPool for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyCanPool() (value bool, err error) { + retValue, err := instance.GetProperty("CanPool") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetDeviceId sets the value of DeviceId for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyDeviceId(value string) (err error) { + return instance.SetProperty("DeviceId", (value)) +} + +// GetDeviceId gets the value of DeviceId for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyDeviceId() (value string, err error) { + retValue, err := instance.GetProperty("DeviceId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetEnclosureNumber sets the value of EnclosureNumber for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyEnclosureNumber(value uint16) (err error) { + return instance.SetProperty("EnclosureNumber", (value)) +} + +// GetEnclosureNumber gets the value of EnclosureNumber for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyEnclosureNumber() (value uint16, err error) { + retValue, err := instance.GetProperty("EnclosureNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetFirmwareVersion sets the value of FirmwareVersion for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyFirmwareVersion(value string) (err error) { + return instance.SetProperty("FirmwareVersion", (value)) +} + +// GetFirmwareVersion gets the value of FirmwareVersion for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyFirmwareVersion() (value string, err error) { + retValue, err := instance.GetProperty("FirmwareVersion") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetIsIndicationEnabled sets the value of IsIndicationEnabled for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyIsIndicationEnabled(value bool) (err error) { + return instance.SetProperty("IsIndicationEnabled", (value)) +} + +// GetIsIndicationEnabled gets the value of IsIndicationEnabled for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyIsIndicationEnabled() (value bool, err error) { + retValue, err := instance.GetProperty("IsIndicationEnabled") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsPartial sets the value of IsPartial for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyIsPartial(value bool) (err error) { + return instance.SetProperty("IsPartial", (value)) +} + +// GetIsPartial gets the value of IsPartial for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyIsPartial() (value bool, err error) { + retValue, err := instance.GetProperty("IsPartial") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetLogicalSectorSize sets the value of LogicalSectorSize for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyLogicalSectorSize(value uint64) (err error) { + return instance.SetProperty("LogicalSectorSize", (value)) +} + +// GetLogicalSectorSize gets the value of LogicalSectorSize for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyLogicalSectorSize() (value uint64, err error) { + retValue, err := instance.GetProperty("LogicalSectorSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetMediaType sets the value of MediaType for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyMediaType(value uint16) (err error) { + return instance.SetProperty("MediaType", (value)) +} + +// GetMediaType gets the value of MediaType for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyMediaType() (value uint16, err error) { + retValue, err := instance.GetProperty("MediaType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetOtherCannotPoolReasonDescription sets the value of OtherCannotPoolReasonDescription for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyOtherCannotPoolReasonDescription(value string) (err error) { + return instance.SetProperty("OtherCannotPoolReasonDescription", (value)) +} + +// GetOtherCannotPoolReasonDescription gets the value of OtherCannotPoolReasonDescription for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyOtherCannotPoolReasonDescription() (value string, err error) { + retValue, err := instance.GetProperty("OtherCannotPoolReasonDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPartNumber sets the value of PartNumber for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyPartNumber(value string) (err error) { + return instance.SetProperty("PartNumber", (value)) +} + +// GetPartNumber gets the value of PartNumber for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyPartNumber() (value string, err error) { + retValue, err := instance.GetProperty("PartNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPhysicalSectorSize sets the value of PhysicalSectorSize for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyPhysicalSectorSize(value uint64) (err error) { + return instance.SetProperty("PhysicalSectorSize", (value)) +} + +// GetPhysicalSectorSize gets the value of PhysicalSectorSize for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyPhysicalSectorSize() (value uint64, err error) { + retValue, err := instance.GetProperty("PhysicalSectorSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetSize sets the value of Size for the instance +func (instance *MSFT_PhysicalDisk) SetPropertySize(value uint64) (err error) { + return instance.SetProperty("Size", (value)) +} + +// GetSize gets the value of Size for the instance +func (instance *MSFT_PhysicalDisk) GetPropertySize() (value uint64, err error) { + retValue, err := instance.GetProperty("Size") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetSlotNumber sets the value of SlotNumber for the instance +func (instance *MSFT_PhysicalDisk) SetPropertySlotNumber(value uint16) (err error) { + return instance.SetProperty("SlotNumber", (value)) +} + +// GetSlotNumber gets the value of SlotNumber for the instance +func (instance *MSFT_PhysicalDisk) GetPropertySlotNumber() (value uint16, err error) { + retValue, err := instance.GetProperty("SlotNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetSoftwareVersion sets the value of SoftwareVersion for the instance +func (instance *MSFT_PhysicalDisk) SetPropertySoftwareVersion(value string) (err error) { + return instance.SetProperty("SoftwareVersion", (value)) +} + +// GetSoftwareVersion gets the value of SoftwareVersion for the instance +func (instance *MSFT_PhysicalDisk) GetPropertySoftwareVersion() (value string, err error) { + retValue, err := instance.GetProperty("SoftwareVersion") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSpindleSpeed sets the value of SpindleSpeed for the instance +func (instance *MSFT_PhysicalDisk) SetPropertySpindleSpeed(value uint32) (err error) { + return instance.SetProperty("SpindleSpeed", (value)) +} + +// GetSpindleSpeed gets the value of SpindleSpeed for the instance +func (instance *MSFT_PhysicalDisk) GetPropertySpindleSpeed() (value uint32, err error) { + retValue, err := instance.GetProperty("SpindleSpeed") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetStoragePoolUniqueId sets the value of StoragePoolUniqueId for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyStoragePoolUniqueId(value string) (err error) { + return instance.SetProperty("StoragePoolUniqueId", (value)) +} + +// GetStoragePoolUniqueId gets the value of StoragePoolUniqueId for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyStoragePoolUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("StoragePoolUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSupportedUsages sets the value of SupportedUsages for the instance +func (instance *MSFT_PhysicalDisk) SetPropertySupportedUsages(value []uint16) (err error) { + return instance.SetProperty("SupportedUsages", (value)) +} + +// GetSupportedUsages gets the value of SupportedUsages for the instance +func (instance *MSFT_PhysicalDisk) GetPropertySupportedUsages() (value []uint16, err error) { + retValue, err := instance.GetProperty("SupportedUsages") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetUniqueIdFormat sets the value of UniqueIdFormat for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyUniqueIdFormat(value uint16) (err error) { + return instance.SetProperty("UniqueIdFormat", (value)) +} + +// GetUniqueIdFormat gets the value of UniqueIdFormat for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyUniqueIdFormat() (value uint16, err error) { + retValue, err := instance.GetProperty("UniqueIdFormat") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetUsage sets the value of Usage for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyUsage(value uint16) (err error) { + return instance.SetProperty("Usage", (value)) +} + +// GetUsage gets the value of Usage for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyUsage() (value uint16, err error) { + retValue, err := instance.GetProperty("Usage") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetVirtualDiskFootprint sets the value of VirtualDiskFootprint for the instance +func (instance *MSFT_PhysicalDisk) SetPropertyVirtualDiskFootprint(value uint64) (err error) { + return instance.SetProperty("VirtualDiskFootprint", (value)) +} + +// GetVirtualDiskFootprint gets the value of VirtualDiskFootprint for the instance +func (instance *MSFT_PhysicalDisk) GetPropertyVirtualDiskFootprint() (value uint64, err error) { + retValue, err := instance.GetProperty("VirtualDiskFootprint") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// + +// +// +// +func (instance *MSFT_PhysicalDisk) GetPhysicalExtent( /* OUT */ PhysicalExtents []MSFT_PhysicalExtent, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetPhysicalExtent") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// + +// +// +func (instance *MSFT_PhysicalDisk) Maintenance( /* IN */ EnableIndication bool, + /* IN */ EnableMaintenanceMode bool, + /* IN */ Timeout uint32, + /* IN */ IgnoreDetachedVirtualDisks bool, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Maintenance", EnableIndication, EnableMaintenanceMode, Timeout, IgnoreDetachedVirtualDisks) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *MSFT_PhysicalDisk) Reset( /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Reset") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_PhysicalDisk) SetFriendlyName( /* IN */ FriendlyName string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetFriendlyName", FriendlyName) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_PhysicalDisk) SetDescription( /* IN */ Description string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetDescription", Description) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_PhysicalDisk) SetUsage( /* IN */ Usage uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetUsage", Usage) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// + +// +// +func (instance *MSFT_PhysicalDisk) SetAttributes( /* IN */ MediaType uint16, + /* IN */ StorageEnclosureId string, + /* IN */ StorageScaleUnitId string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetAttributes", MediaType, StorageEnclosureId, StorageScaleUnitId) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_PhysicalDisk) IsDeviceCacheEnabled( /* OUT */ IsDeviceCacheEnabled bool, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("IsDeviceCacheEnabled") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_PhysicalDisk) IsPowerProtected( /* OUT */ IsPowerProtected bool, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("IsPowerProtected") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// +// +func (instance *MSFT_PhysicalDisk) GetFirmwareInformation( /* OUT */ SupportsUpdate bool, + /* OUT */ NumberOfSlots uint16, + /* OUT */ ActiveSlotNumber uint16, + /* OUT */ SlotNumber []uint16, + /* OUT */ IsSlotWritable []bool, + /* OUT */ FirmwareVersionInSlot []string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetFirmwareInformation") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +func (instance *MSFT_PhysicalDisk) UpdateFirmware( /* IN */ ImagePath string, + /* IN */ SlotNumber uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("UpdateFirmware", ImagePath, SlotNumber) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PhysicalDiskToStorageReliabilityCounter.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PhysicalDiskToStorageReliabilityCounter.go new file mode 100644 index 000000000..70bf4eb88 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PhysicalDiskToStorageReliabilityCounter.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_PhysicalDiskToStorageReliabilityCounter struct +type MSFT_PhysicalDiskToStorageReliabilityCounter struct { + *cim.WmiInstance + + // + PhysicalDisk MSFT_PhysicalDisk + + // + StorageReliabilityCounter MSFT_StorageReliabilityCounter +} + +func NewMSFT_PhysicalDiskToStorageReliabilityCounterEx1(instance *cim.WmiInstance) (newInstance *MSFT_PhysicalDiskToStorageReliabilityCounter, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_PhysicalDiskToStorageReliabilityCounter{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_PhysicalDiskToStorageReliabilityCounterEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_PhysicalDiskToStorageReliabilityCounter, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_PhysicalDiskToStorageReliabilityCounter{ + WmiInstance: tmp, + } + return +} + +// SetPhysicalDisk sets the value of PhysicalDisk for the instance +func (instance *MSFT_PhysicalDiskToStorageReliabilityCounter) SetPropertyPhysicalDisk(value MSFT_PhysicalDisk) (err error) { + return instance.SetProperty("PhysicalDisk", (value)) +} + +// GetPhysicalDisk gets the value of PhysicalDisk for the instance +func (instance *MSFT_PhysicalDiskToStorageReliabilityCounter) GetPropertyPhysicalDisk() (value MSFT_PhysicalDisk, err error) { + retValue, err := instance.GetProperty("PhysicalDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_PhysicalDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_PhysicalDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_PhysicalDisk(valuetmp) + + return +} + +// SetStorageReliabilityCounter sets the value of StorageReliabilityCounter for the instance +func (instance *MSFT_PhysicalDiskToStorageReliabilityCounter) SetPropertyStorageReliabilityCounter(value MSFT_StorageReliabilityCounter) (err error) { + return instance.SetProperty("StorageReliabilityCounter", (value)) +} + +// GetStorageReliabilityCounter gets the value of StorageReliabilityCounter for the instance +func (instance *MSFT_PhysicalDiskToStorageReliabilityCounter) GetPropertyStorageReliabilityCounter() (value MSFT_StorageReliabilityCounter, err error) { + retValue, err := instance.GetProperty("StorageReliabilityCounter") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageReliabilityCounter) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageReliabilityCounter is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageReliabilityCounter(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PhysicalExtent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PhysicalExtent.go new file mode 100644 index 000000000..ec589a4b1 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_PhysicalExtent.go @@ -0,0 +1,413 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_PhysicalExtent struct +type MSFT_PhysicalExtent struct { + *cim.WmiInstance + + // + ColumnNumber uint16 + + // + CopyNumber uint16 + + // + Flags uint64 + + // + OperationalDetails []string + + // + OperationalStatus []uint16 + + // + PhysicalDiskOffset uint64 + + // + PhysicalDiskUniqueId string + + // + ReplacementCopyNumber uint16 + + // + Size uint64 + + // + StorageTierUniqueId string + + // + VirtualDiskOffset uint64 + + // + VirtualDiskUniqueId string +} + +func NewMSFT_PhysicalExtentEx1(instance *cim.WmiInstance) (newInstance *MSFT_PhysicalExtent, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_PhysicalExtent{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_PhysicalExtentEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_PhysicalExtent, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_PhysicalExtent{ + WmiInstance: tmp, + } + return +} + +// SetColumnNumber sets the value of ColumnNumber for the instance +func (instance *MSFT_PhysicalExtent) SetPropertyColumnNumber(value uint16) (err error) { + return instance.SetProperty("ColumnNumber", (value)) +} + +// GetColumnNumber gets the value of ColumnNumber for the instance +func (instance *MSFT_PhysicalExtent) GetPropertyColumnNumber() (value uint16, err error) { + retValue, err := instance.GetProperty("ColumnNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetCopyNumber sets the value of CopyNumber for the instance +func (instance *MSFT_PhysicalExtent) SetPropertyCopyNumber(value uint16) (err error) { + return instance.SetProperty("CopyNumber", (value)) +} + +// GetCopyNumber gets the value of CopyNumber for the instance +func (instance *MSFT_PhysicalExtent) GetPropertyCopyNumber() (value uint16, err error) { + retValue, err := instance.GetProperty("CopyNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetFlags sets the value of Flags for the instance +func (instance *MSFT_PhysicalExtent) SetPropertyFlags(value uint64) (err error) { + return instance.SetProperty("Flags", (value)) +} + +// GetFlags gets the value of Flags for the instance +func (instance *MSFT_PhysicalExtent) GetPropertyFlags() (value uint64, err error) { + retValue, err := instance.GetProperty("Flags") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetOperationalDetails sets the value of OperationalDetails for the instance +func (instance *MSFT_PhysicalExtent) SetPropertyOperationalDetails(value []string) (err error) { + return instance.SetProperty("OperationalDetails", (value)) +} + +// GetOperationalDetails gets the value of OperationalDetails for the instance +func (instance *MSFT_PhysicalExtent) GetPropertyOperationalDetails() (value []string, err error) { + retValue, err := instance.GetProperty("OperationalDetails") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_PhysicalExtent) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_PhysicalExtent) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetPhysicalDiskOffset sets the value of PhysicalDiskOffset for the instance +func (instance *MSFT_PhysicalExtent) SetPropertyPhysicalDiskOffset(value uint64) (err error) { + return instance.SetProperty("PhysicalDiskOffset", (value)) +} + +// GetPhysicalDiskOffset gets the value of PhysicalDiskOffset for the instance +func (instance *MSFT_PhysicalExtent) GetPropertyPhysicalDiskOffset() (value uint64, err error) { + retValue, err := instance.GetProperty("PhysicalDiskOffset") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetPhysicalDiskUniqueId sets the value of PhysicalDiskUniqueId for the instance +func (instance *MSFT_PhysicalExtent) SetPropertyPhysicalDiskUniqueId(value string) (err error) { + return instance.SetProperty("PhysicalDiskUniqueId", (value)) +} + +// GetPhysicalDiskUniqueId gets the value of PhysicalDiskUniqueId for the instance +func (instance *MSFT_PhysicalExtent) GetPropertyPhysicalDiskUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("PhysicalDiskUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetReplacementCopyNumber sets the value of ReplacementCopyNumber for the instance +func (instance *MSFT_PhysicalExtent) SetPropertyReplacementCopyNumber(value uint16) (err error) { + return instance.SetProperty("ReplacementCopyNumber", (value)) +} + +// GetReplacementCopyNumber gets the value of ReplacementCopyNumber for the instance +func (instance *MSFT_PhysicalExtent) GetPropertyReplacementCopyNumber() (value uint16, err error) { + retValue, err := instance.GetProperty("ReplacementCopyNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetSize sets the value of Size for the instance +func (instance *MSFT_PhysicalExtent) SetPropertySize(value uint64) (err error) { + return instance.SetProperty("Size", (value)) +} + +// GetSize gets the value of Size for the instance +func (instance *MSFT_PhysicalExtent) GetPropertySize() (value uint64, err error) { + retValue, err := instance.GetProperty("Size") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetStorageTierUniqueId sets the value of StorageTierUniqueId for the instance +func (instance *MSFT_PhysicalExtent) SetPropertyStorageTierUniqueId(value string) (err error) { + return instance.SetProperty("StorageTierUniqueId", (value)) +} + +// GetStorageTierUniqueId gets the value of StorageTierUniqueId for the instance +func (instance *MSFT_PhysicalExtent) GetPropertyStorageTierUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("StorageTierUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetVirtualDiskOffset sets the value of VirtualDiskOffset for the instance +func (instance *MSFT_PhysicalExtent) SetPropertyVirtualDiskOffset(value uint64) (err error) { + return instance.SetProperty("VirtualDiskOffset", (value)) +} + +// GetVirtualDiskOffset gets the value of VirtualDiskOffset for the instance +func (instance *MSFT_PhysicalExtent) GetPropertyVirtualDiskOffset() (value uint64, err error) { + retValue, err := instance.GetProperty("VirtualDiskOffset") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetVirtualDiskUniqueId sets the value of VirtualDiskUniqueId for the instance +func (instance *MSFT_PhysicalExtent) SetPropertyVirtualDiskUniqueId(value string) (err error) { + return instance.SetProperty("VirtualDiskUniqueId", (value)) +} + +// GetVirtualDiskUniqueId gets the value of VirtualDiskUniqueId for the instance +func (instance *MSFT_PhysicalExtent) GetPropertyVirtualDiskUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("VirtualDiskUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicaPeer.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicaPeer.go new file mode 100644 index 000000000..4cb1c852e --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicaPeer.go @@ -0,0 +1,290 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_ReplicaPeer struct +type MSFT_ReplicaPeer struct { + *MSFT_StorageObject + + // + IsPrimary bool + + // + PeerObject MSFT_StorageObject + + // + PeerObjectId string + + // + PeerObjectName string + + // + PeerObjectType uint16 + + // + PeerProviderURI string + + // + PeerSubsystemName string + + // + PeerUniqueId string +} + +func NewMSFT_ReplicaPeerEx1(instance *cim.WmiInstance) (newInstance *MSFT_ReplicaPeer, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_ReplicaPeer{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_ReplicaPeerEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_ReplicaPeer, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_ReplicaPeer{ + MSFT_StorageObject: tmp, + } + return +} + +// SetIsPrimary sets the value of IsPrimary for the instance +func (instance *MSFT_ReplicaPeer) SetPropertyIsPrimary(value bool) (err error) { + return instance.SetProperty("IsPrimary", (value)) +} + +// GetIsPrimary gets the value of IsPrimary for the instance +func (instance *MSFT_ReplicaPeer) GetPropertyIsPrimary() (value bool, err error) { + retValue, err := instance.GetProperty("IsPrimary") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetPeerObject sets the value of PeerObject for the instance +func (instance *MSFT_ReplicaPeer) SetPropertyPeerObject(value MSFT_StorageObject) (err error) { + return instance.SetProperty("PeerObject", (value)) +} + +// GetPeerObject gets the value of PeerObject for the instance +func (instance *MSFT_ReplicaPeer) GetPropertyPeerObject() (value MSFT_StorageObject, err error) { + retValue, err := instance.GetProperty("PeerObject") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageObject) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageObject is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageObject(valuetmp) + + return +} + +// SetPeerObjectId sets the value of PeerObjectId for the instance +func (instance *MSFT_ReplicaPeer) SetPropertyPeerObjectId(value string) (err error) { + return instance.SetProperty("PeerObjectId", (value)) +} + +// GetPeerObjectId gets the value of PeerObjectId for the instance +func (instance *MSFT_ReplicaPeer) GetPropertyPeerObjectId() (value string, err error) { + retValue, err := instance.GetProperty("PeerObjectId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPeerObjectName sets the value of PeerObjectName for the instance +func (instance *MSFT_ReplicaPeer) SetPropertyPeerObjectName(value string) (err error) { + return instance.SetProperty("PeerObjectName", (value)) +} + +// GetPeerObjectName gets the value of PeerObjectName for the instance +func (instance *MSFT_ReplicaPeer) GetPropertyPeerObjectName() (value string, err error) { + retValue, err := instance.GetProperty("PeerObjectName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPeerObjectType sets the value of PeerObjectType for the instance +func (instance *MSFT_ReplicaPeer) SetPropertyPeerObjectType(value uint16) (err error) { + return instance.SetProperty("PeerObjectType", (value)) +} + +// GetPeerObjectType gets the value of PeerObjectType for the instance +func (instance *MSFT_ReplicaPeer) GetPropertyPeerObjectType() (value uint16, err error) { + retValue, err := instance.GetProperty("PeerObjectType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetPeerProviderURI sets the value of PeerProviderURI for the instance +func (instance *MSFT_ReplicaPeer) SetPropertyPeerProviderURI(value string) (err error) { + return instance.SetProperty("PeerProviderURI", (value)) +} + +// GetPeerProviderURI gets the value of PeerProviderURI for the instance +func (instance *MSFT_ReplicaPeer) GetPropertyPeerProviderURI() (value string, err error) { + retValue, err := instance.GetProperty("PeerProviderURI") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPeerSubsystemName sets the value of PeerSubsystemName for the instance +func (instance *MSFT_ReplicaPeer) SetPropertyPeerSubsystemName(value string) (err error) { + return instance.SetProperty("PeerSubsystemName", (value)) +} + +// GetPeerSubsystemName gets the value of PeerSubsystemName for the instance +func (instance *MSFT_ReplicaPeer) GetPropertyPeerSubsystemName() (value string, err error) { + retValue, err := instance.GetProperty("PeerSubsystemName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPeerUniqueId sets the value of PeerUniqueId for the instance +func (instance *MSFT_ReplicaPeer) SetPropertyPeerUniqueId(value string) (err error) { + return instance.SetProperty("PeerUniqueId", (value)) +} + +// GetPeerUniqueId gets the value of PeerUniqueId for the instance +func (instance *MSFT_ReplicaPeer) GetPropertyPeerUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("PeerUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationCapabilities.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationCapabilities.go new file mode 100644 index 000000000..ae472b99c --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationCapabilities.go @@ -0,0 +1,590 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_ReplicationCapabilities struct +type MSFT_ReplicationCapabilities struct { + *MSFT_StorageObject + + // + DefaultRecoveryPointObjective uint32 + + // + SupportedAsynchronousActions []uint16 + + // + SupportedLogVolumeFeatures []uint16 + + // + SupportedMaximumLogSize uint64 + + // + SupportedMinimumLogSize uint64 + + // + SupportedObjectTypes []uint16 + + // + SupportedReplicatedPartitionFeatures []uint16 + + // + SupportedReplicationTypes []uint16 + + // + SupportedSynchronousActions []uint16 + + // + SupportsCreateReplicationRelationshipMethod bool + + // + SupportsEmptyReplicationGroup bool + + // + SupportsFullDiscovery bool + + // + SupportsReplicationGroup bool +} + +func NewMSFT_ReplicationCapabilitiesEx1(instance *cim.WmiInstance) (newInstance *MSFT_ReplicationCapabilities, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_ReplicationCapabilities{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_ReplicationCapabilitiesEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_ReplicationCapabilities, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_ReplicationCapabilities{ + MSFT_StorageObject: tmp, + } + return +} + +// SetDefaultRecoveryPointObjective sets the value of DefaultRecoveryPointObjective for the instance +func (instance *MSFT_ReplicationCapabilities) SetPropertyDefaultRecoveryPointObjective(value uint32) (err error) { + return instance.SetProperty("DefaultRecoveryPointObjective", (value)) +} + +// GetDefaultRecoveryPointObjective gets the value of DefaultRecoveryPointObjective for the instance +func (instance *MSFT_ReplicationCapabilities) GetPropertyDefaultRecoveryPointObjective() (value uint32, err error) { + retValue, err := instance.GetProperty("DefaultRecoveryPointObjective") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetSupportedAsynchronousActions sets the value of SupportedAsynchronousActions for the instance +func (instance *MSFT_ReplicationCapabilities) SetPropertySupportedAsynchronousActions(value []uint16) (err error) { + return instance.SetProperty("SupportedAsynchronousActions", (value)) +} + +// GetSupportedAsynchronousActions gets the value of SupportedAsynchronousActions for the instance +func (instance *MSFT_ReplicationCapabilities) GetPropertySupportedAsynchronousActions() (value []uint16, err error) { + retValue, err := instance.GetProperty("SupportedAsynchronousActions") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSupportedLogVolumeFeatures sets the value of SupportedLogVolumeFeatures for the instance +func (instance *MSFT_ReplicationCapabilities) SetPropertySupportedLogVolumeFeatures(value []uint16) (err error) { + return instance.SetProperty("SupportedLogVolumeFeatures", (value)) +} + +// GetSupportedLogVolumeFeatures gets the value of SupportedLogVolumeFeatures for the instance +func (instance *MSFT_ReplicationCapabilities) GetPropertySupportedLogVolumeFeatures() (value []uint16, err error) { + retValue, err := instance.GetProperty("SupportedLogVolumeFeatures") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSupportedMaximumLogSize sets the value of SupportedMaximumLogSize for the instance +func (instance *MSFT_ReplicationCapabilities) SetPropertySupportedMaximumLogSize(value uint64) (err error) { + return instance.SetProperty("SupportedMaximumLogSize", (value)) +} + +// GetSupportedMaximumLogSize gets the value of SupportedMaximumLogSize for the instance +func (instance *MSFT_ReplicationCapabilities) GetPropertySupportedMaximumLogSize() (value uint64, err error) { + retValue, err := instance.GetProperty("SupportedMaximumLogSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetSupportedMinimumLogSize sets the value of SupportedMinimumLogSize for the instance +func (instance *MSFT_ReplicationCapabilities) SetPropertySupportedMinimumLogSize(value uint64) (err error) { + return instance.SetProperty("SupportedMinimumLogSize", (value)) +} + +// GetSupportedMinimumLogSize gets the value of SupportedMinimumLogSize for the instance +func (instance *MSFT_ReplicationCapabilities) GetPropertySupportedMinimumLogSize() (value uint64, err error) { + retValue, err := instance.GetProperty("SupportedMinimumLogSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetSupportedObjectTypes sets the value of SupportedObjectTypes for the instance +func (instance *MSFT_ReplicationCapabilities) SetPropertySupportedObjectTypes(value []uint16) (err error) { + return instance.SetProperty("SupportedObjectTypes", (value)) +} + +// GetSupportedObjectTypes gets the value of SupportedObjectTypes for the instance +func (instance *MSFT_ReplicationCapabilities) GetPropertySupportedObjectTypes() (value []uint16, err error) { + retValue, err := instance.GetProperty("SupportedObjectTypes") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSupportedReplicatedPartitionFeatures sets the value of SupportedReplicatedPartitionFeatures for the instance +func (instance *MSFT_ReplicationCapabilities) SetPropertySupportedReplicatedPartitionFeatures(value []uint16) (err error) { + return instance.SetProperty("SupportedReplicatedPartitionFeatures", (value)) +} + +// GetSupportedReplicatedPartitionFeatures gets the value of SupportedReplicatedPartitionFeatures for the instance +func (instance *MSFT_ReplicationCapabilities) GetPropertySupportedReplicatedPartitionFeatures() (value []uint16, err error) { + retValue, err := instance.GetProperty("SupportedReplicatedPartitionFeatures") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSupportedReplicationTypes sets the value of SupportedReplicationTypes for the instance +func (instance *MSFT_ReplicationCapabilities) SetPropertySupportedReplicationTypes(value []uint16) (err error) { + return instance.SetProperty("SupportedReplicationTypes", (value)) +} + +// GetSupportedReplicationTypes gets the value of SupportedReplicationTypes for the instance +func (instance *MSFT_ReplicationCapabilities) GetPropertySupportedReplicationTypes() (value []uint16, err error) { + retValue, err := instance.GetProperty("SupportedReplicationTypes") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSupportedSynchronousActions sets the value of SupportedSynchronousActions for the instance +func (instance *MSFT_ReplicationCapabilities) SetPropertySupportedSynchronousActions(value []uint16) (err error) { + return instance.SetProperty("SupportedSynchronousActions", (value)) +} + +// GetSupportedSynchronousActions gets the value of SupportedSynchronousActions for the instance +func (instance *MSFT_ReplicationCapabilities) GetPropertySupportedSynchronousActions() (value []uint16, err error) { + retValue, err := instance.GetProperty("SupportedSynchronousActions") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSupportsCreateReplicationRelationshipMethod sets the value of SupportsCreateReplicationRelationshipMethod for the instance +func (instance *MSFT_ReplicationCapabilities) SetPropertySupportsCreateReplicationRelationshipMethod(value bool) (err error) { + return instance.SetProperty("SupportsCreateReplicationRelationshipMethod", (value)) +} + +// GetSupportsCreateReplicationRelationshipMethod gets the value of SupportsCreateReplicationRelationshipMethod for the instance +func (instance *MSFT_ReplicationCapabilities) GetPropertySupportsCreateReplicationRelationshipMethod() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsCreateReplicationRelationshipMethod") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsEmptyReplicationGroup sets the value of SupportsEmptyReplicationGroup for the instance +func (instance *MSFT_ReplicationCapabilities) SetPropertySupportsEmptyReplicationGroup(value bool) (err error) { + return instance.SetProperty("SupportsEmptyReplicationGroup", (value)) +} + +// GetSupportsEmptyReplicationGroup gets the value of SupportsEmptyReplicationGroup for the instance +func (instance *MSFT_ReplicationCapabilities) GetPropertySupportsEmptyReplicationGroup() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsEmptyReplicationGroup") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsFullDiscovery sets the value of SupportsFullDiscovery for the instance +func (instance *MSFT_ReplicationCapabilities) SetPropertySupportsFullDiscovery(value bool) (err error) { + return instance.SetProperty("SupportsFullDiscovery", (value)) +} + +// GetSupportsFullDiscovery gets the value of SupportsFullDiscovery for the instance +func (instance *MSFT_ReplicationCapabilities) GetPropertySupportsFullDiscovery() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsFullDiscovery") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsReplicationGroup sets the value of SupportsReplicationGroup for the instance +func (instance *MSFT_ReplicationCapabilities) SetPropertySupportsReplicationGroup(value bool) (err error) { + return instance.SetProperty("SupportsReplicationGroup", (value)) +} + +// GetSupportsReplicationGroup gets the value of SupportsReplicationGroup for the instance +func (instance *MSFT_ReplicationCapabilities) GetPropertySupportsReplicationGroup() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsReplicationGroup") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// + +// + +// +// +// +func (instance *MSFT_ReplicationCapabilities) GetSupportedOperations( /* IN */ ReplicationType uint16, + /* OUT */ SupportedOperations []uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSupportedOperations", ReplicationType) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_ReplicationCapabilities) GetSupportedGroupOperations( /* IN */ ReplicationType uint16, + /* OUT */ SupportedGroupOperations []uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSupportedGroupOperations", ReplicationType) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_ReplicationCapabilities) GetSupportedFeatures( /* IN */ ReplicationType uint16, + /* OUT */ Features []uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSupportedFeatures", ReplicationType) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_ReplicationCapabilities) GetSupportedGroupFeatures( /* IN */ ReplicationType uint16, + /* OUT */ GroupFeatures []uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSupportedGroupFeatures", ReplicationType) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_ReplicationCapabilities) GetSupportedCopyStates( /* IN */ ReplicationType uint16, + /* OUT */ SupportedCopyStates []uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSupportedCopyStates", ReplicationType) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_ReplicationCapabilities) GetSupportedGroupCopyStates( /* IN */ ReplicationType uint16, + /* OUT */ SupportedCopyStates []uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSupportedGroupCopyStates", ReplicationType) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +// +// +func (instance *MSFT_ReplicationCapabilities) GetRecoveryPointData( /* IN */ ReplicationType uint16, + /* OUT */ DefaultRecoveryPoint uint32, + /* OUT */ RecoveryPointValues []uint32, + /* OUT */ RecoveryPointIndicator uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetRecoveryPointData", ReplicationType) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationGroup.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationGroup.go new file mode 100644 index 000000000..857bd37ee --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationGroup.go @@ -0,0 +1,341 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_ReplicationGroup struct +type MSFT_ReplicationGroup struct { + *MSFT_StorageObject + + // + Description string + + // + FriendlyName string + + // + HealthStatus uint16 + + // + OperationalStatus []uint16 +} + +func NewMSFT_ReplicationGroupEx1(instance *cim.WmiInstance) (newInstance *MSFT_ReplicationGroup, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_ReplicationGroup{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_ReplicationGroupEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_ReplicationGroup, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_ReplicationGroup{ + MSFT_StorageObject: tmp, + } + return +} + +// SetDescription sets the value of Description for the instance +func (instance *MSFT_ReplicationGroup) SetPropertyDescription(value string) (err error) { + return instance.SetProperty("Description", (value)) +} + +// GetDescription gets the value of Description for the instance +func (instance *MSFT_ReplicationGroup) GetPropertyDescription() (value string, err error) { + retValue, err := instance.GetProperty("Description") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFriendlyName sets the value of FriendlyName for the instance +func (instance *MSFT_ReplicationGroup) SetPropertyFriendlyName(value string) (err error) { + return instance.SetProperty("FriendlyName", (value)) +} + +// GetFriendlyName gets the value of FriendlyName for the instance +func (instance *MSFT_ReplicationGroup) GetPropertyFriendlyName() (value string, err error) { + retValue, err := instance.GetProperty("FriendlyName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetHealthStatus sets the value of HealthStatus for the instance +func (instance *MSFT_ReplicationGroup) SetPropertyHealthStatus(value uint16) (err error) { + return instance.SetProperty("HealthStatus", (value)) +} + +// GetHealthStatus gets the value of HealthStatus for the instance +func (instance *MSFT_ReplicationGroup) GetPropertyHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("HealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_ReplicationGroup) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_ReplicationGroup) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// + +// +// +// +// +// +// +// +// + +// +// +// +// +func (instance *MSFT_ReplicationGroup) CreateReplica( /* IN */ FriendlyName string, + /* IN */ TargetStorageSubsystem MSFT_ReplicaPeer, + /* IN */ TargetGroupObjectId string, + /* IN */ TargetStoragePoolObjectId string, + /* IN */ RecoveryPointObjective uint32, + /* IN */ ReplicationSettings MSFT_ReplicationSettings, + /* IN */ SyncType uint16, + /* IN */ RunAsJob bool, + /* OUT */ CreatedReplicaPeer MSFT_ReplicaPeer, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateReplica", FriendlyName, TargetStorageSubsystem, TargetGroupObjectId, TargetStoragePoolObjectId, RecoveryPointObjective, ReplicationSettings, SyncType, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// + +// +// +// +func (instance *MSFT_ReplicationGroup) SetReplicationRelationship( /* IN */ Operation uint16, + /* IN */ TargetGroup MSFT_ReplicaPeer, + /* IN */ SourceStorageObjects []MSFT_StorageObject, + /* IN */ TargetStorageObjects []MSFT_StorageObject, + /* IN */ SyncPairs []MSFT_Synchronized, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetReplicationRelationship", Operation, TargetGroup, SourceStorageObjects, TargetStorageObjects, SyncPairs, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_ReplicationGroup) SetReplicationSettings( /* IN */ ReplicationSettings MSFT_ReplicationSettings, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetReplicationSettings", ReplicationSettings) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_ReplicationGroup) GetReplicationSettings( /* OUT */ ReplicationSettings MSFT_ReplicationSettings, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetReplicationSettings") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_ReplicationGroup) AddMember( /* IN */ StorageObjects []MSFT_StorageObject, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("AddMember", StorageObjects) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_ReplicationGroup) RemoveMember( /* IN */ StorageObjects []MSFT_StorageObject, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("RemoveMember", StorageObjects) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_ReplicationGroup) SetFriendlyName( /* IN */ FriendlyName string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetFriendlyName", FriendlyName) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *MSFT_ReplicationGroup) DeleteObject( /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("DeleteObject") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationGroupToPartition.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationGroupToPartition.go new file mode 100644 index 000000000..a58591b83 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationGroupToPartition.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_ReplicationGroupToPartition struct +type MSFT_ReplicationGroupToPartition struct { + *cim.WmiInstance + + // + Partition MSFT_Partition + + // + ReplicationGroup MSFT_ReplicationGroup +} + +func NewMSFT_ReplicationGroupToPartitionEx1(instance *cim.WmiInstance) (newInstance *MSFT_ReplicationGroupToPartition, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_ReplicationGroupToPartition{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_ReplicationGroupToPartitionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_ReplicationGroupToPartition, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_ReplicationGroupToPartition{ + WmiInstance: tmp, + } + return +} + +// SetPartition sets the value of Partition for the instance +func (instance *MSFT_ReplicationGroupToPartition) SetPropertyPartition(value MSFT_Partition) (err error) { + return instance.SetProperty("Partition", (value)) +} + +// GetPartition gets the value of Partition for the instance +func (instance *MSFT_ReplicationGroupToPartition) GetPropertyPartition() (value MSFT_Partition, err error) { + retValue, err := instance.GetProperty("Partition") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Partition) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Partition is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Partition(valuetmp) + + return +} + +// SetReplicationGroup sets the value of ReplicationGroup for the instance +func (instance *MSFT_ReplicationGroupToPartition) SetPropertyReplicationGroup(value MSFT_ReplicationGroup) (err error) { + return instance.SetProperty("ReplicationGroup", (value)) +} + +// GetReplicationGroup gets the value of ReplicationGroup for the instance +func (instance *MSFT_ReplicationGroupToPartition) GetPropertyReplicationGroup() (value MSFT_ReplicationGroup, err error) { + retValue, err := instance.GetProperty("ReplicationGroup") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_ReplicationGroup) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_ReplicationGroup is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_ReplicationGroup(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationGroupToReplicaPeer.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationGroupToReplicaPeer.go new file mode 100644 index 000000000..3a316a0b7 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationGroupToReplicaPeer.go @@ -0,0 +1,170 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_ReplicationGroupToReplicaPeer struct +type MSFT_ReplicationGroupToReplicaPeer struct { + *MSFT_Synchronized + + // + ConsistencyState uint16 + + // + ConsistencyType uint16 + + // + ReplicaPeer MSFT_ReplicaPeer + + // + ReplicationGroup MSFT_ReplicationGroup +} + +func NewMSFT_ReplicationGroupToReplicaPeerEx1(instance *cim.WmiInstance) (newInstance *MSFT_ReplicationGroupToReplicaPeer, err error) { + tmp, err := NewMSFT_SynchronizedEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_ReplicationGroupToReplicaPeer{ + MSFT_Synchronized: tmp, + } + return +} + +func NewMSFT_ReplicationGroupToReplicaPeerEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_ReplicationGroupToReplicaPeer, err error) { + tmp, err := NewMSFT_SynchronizedEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_ReplicationGroupToReplicaPeer{ + MSFT_Synchronized: tmp, + } + return +} + +// SetConsistencyState sets the value of ConsistencyState for the instance +func (instance *MSFT_ReplicationGroupToReplicaPeer) SetPropertyConsistencyState(value uint16) (err error) { + return instance.SetProperty("ConsistencyState", (value)) +} + +// GetConsistencyState gets the value of ConsistencyState for the instance +func (instance *MSFT_ReplicationGroupToReplicaPeer) GetPropertyConsistencyState() (value uint16, err error) { + retValue, err := instance.GetProperty("ConsistencyState") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetConsistencyType sets the value of ConsistencyType for the instance +func (instance *MSFT_ReplicationGroupToReplicaPeer) SetPropertyConsistencyType(value uint16) (err error) { + return instance.SetProperty("ConsistencyType", (value)) +} + +// GetConsistencyType gets the value of ConsistencyType for the instance +func (instance *MSFT_ReplicationGroupToReplicaPeer) GetPropertyConsistencyType() (value uint16, err error) { + retValue, err := instance.GetProperty("ConsistencyType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetReplicaPeer sets the value of ReplicaPeer for the instance +func (instance *MSFT_ReplicationGroupToReplicaPeer) SetPropertyReplicaPeer(value MSFT_ReplicaPeer) (err error) { + return instance.SetProperty("ReplicaPeer", (value)) +} + +// GetReplicaPeer gets the value of ReplicaPeer for the instance +func (instance *MSFT_ReplicationGroupToReplicaPeer) GetPropertyReplicaPeer() (value MSFT_ReplicaPeer, err error) { + retValue, err := instance.GetProperty("ReplicaPeer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_ReplicaPeer) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_ReplicaPeer is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_ReplicaPeer(valuetmp) + + return +} + +// SetReplicationGroup sets the value of ReplicationGroup for the instance +func (instance *MSFT_ReplicationGroupToReplicaPeer) SetPropertyReplicationGroup(value MSFT_ReplicationGroup) (err error) { + return instance.SetProperty("ReplicationGroup", (value)) +} + +// GetReplicationGroup gets the value of ReplicationGroup for the instance +func (instance *MSFT_ReplicationGroupToReplicaPeer) GetPropertyReplicationGroup() (value MSFT_ReplicationGroup, err error) { + retValue, err := instance.GetProperty("ReplicationGroup") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_ReplicationGroup) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_ReplicationGroup is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_ReplicationGroup(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationGroupToVirtualDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationGroupToVirtualDisk.go new file mode 100644 index 000000000..f30365bd9 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationGroupToVirtualDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_ReplicationGroupToVirtualDisk struct +type MSFT_ReplicationGroupToVirtualDisk struct { + *cim.WmiInstance + + // + ReplicationGroup MSFT_ReplicationGroup + + // + VirtualDisk MSFT_VirtualDisk +} + +func NewMSFT_ReplicationGroupToVirtualDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_ReplicationGroupToVirtualDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_ReplicationGroupToVirtualDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_ReplicationGroupToVirtualDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_ReplicationGroupToVirtualDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_ReplicationGroupToVirtualDisk{ + WmiInstance: tmp, + } + return +} + +// SetReplicationGroup sets the value of ReplicationGroup for the instance +func (instance *MSFT_ReplicationGroupToVirtualDisk) SetPropertyReplicationGroup(value MSFT_ReplicationGroup) (err error) { + return instance.SetProperty("ReplicationGroup", (value)) +} + +// GetReplicationGroup gets the value of ReplicationGroup for the instance +func (instance *MSFT_ReplicationGroupToVirtualDisk) GetPropertyReplicationGroup() (value MSFT_ReplicationGroup, err error) { + retValue, err := instance.GetProperty("ReplicationGroup") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_ReplicationGroup) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_ReplicationGroup is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_ReplicationGroup(valuetmp) + + return +} + +// SetVirtualDisk sets the value of VirtualDisk for the instance +func (instance *MSFT_ReplicationGroupToVirtualDisk) SetPropertyVirtualDisk(value MSFT_VirtualDisk) (err error) { + return instance.SetProperty("VirtualDisk", (value)) +} + +// GetVirtualDisk gets the value of VirtualDisk for the instance +func (instance *MSFT_ReplicationGroupToVirtualDisk) GetPropertyVirtualDisk() (value MSFT_VirtualDisk, err error) { + retValue, err := instance.GetProperty("VirtualDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_VirtualDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_VirtualDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_VirtualDisk(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationSettings.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationSettings.go new file mode 100644 index 000000000..bb1ee8568 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ReplicationSettings.go @@ -0,0 +1,232 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_ReplicationSettings struct +type MSFT_ReplicationSettings struct { + *cim.WmiInstance + + // + LogDevices []MSFT_Volume + + // + LogSizeInBytes uint64 + + // + ReplicationQuorum uint16 + + // + SyncMode uint16 + + // + TargetElementSupplier uint16 + + // + ThinProvisioningPolicy uint16 +} + +func NewMSFT_ReplicationSettingsEx1(instance *cim.WmiInstance) (newInstance *MSFT_ReplicationSettings, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_ReplicationSettings{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_ReplicationSettingsEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_ReplicationSettings, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_ReplicationSettings{ + WmiInstance: tmp, + } + return +} + +// SetLogDevices sets the value of LogDevices for the instance +func (instance *MSFT_ReplicationSettings) SetPropertyLogDevices(value []MSFT_Volume) (err error) { + return instance.SetProperty("LogDevices", (value)) +} + +// GetLogDevices gets the value of LogDevices for the instance +func (instance *MSFT_ReplicationSettings) GetPropertyLogDevices() (value []MSFT_Volume, err error) { + retValue, err := instance.GetProperty("LogDevices") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(MSFT_Volume) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Volume is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, MSFT_Volume(valuetmp)) + } + + return +} + +// SetLogSizeInBytes sets the value of LogSizeInBytes for the instance +func (instance *MSFT_ReplicationSettings) SetPropertyLogSizeInBytes(value uint64) (err error) { + return instance.SetProperty("LogSizeInBytes", (value)) +} + +// GetLogSizeInBytes gets the value of LogSizeInBytes for the instance +func (instance *MSFT_ReplicationSettings) GetPropertyLogSizeInBytes() (value uint64, err error) { + retValue, err := instance.GetProperty("LogSizeInBytes") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetReplicationQuorum sets the value of ReplicationQuorum for the instance +func (instance *MSFT_ReplicationSettings) SetPropertyReplicationQuorum(value uint16) (err error) { + return instance.SetProperty("ReplicationQuorum", (value)) +} + +// GetReplicationQuorum gets the value of ReplicationQuorum for the instance +func (instance *MSFT_ReplicationSettings) GetPropertyReplicationQuorum() (value uint16, err error) { + retValue, err := instance.GetProperty("ReplicationQuorum") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetSyncMode sets the value of SyncMode for the instance +func (instance *MSFT_ReplicationSettings) SetPropertySyncMode(value uint16) (err error) { + return instance.SetProperty("SyncMode", (value)) +} + +// GetSyncMode gets the value of SyncMode for the instance +func (instance *MSFT_ReplicationSettings) GetPropertySyncMode() (value uint16, err error) { + retValue, err := instance.GetProperty("SyncMode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetTargetElementSupplier sets the value of TargetElementSupplier for the instance +func (instance *MSFT_ReplicationSettings) SetPropertyTargetElementSupplier(value uint16) (err error) { + return instance.SetProperty("TargetElementSupplier", (value)) +} + +// GetTargetElementSupplier gets the value of TargetElementSupplier for the instance +func (instance *MSFT_ReplicationSettings) GetPropertyTargetElementSupplier() (value uint16, err error) { + retValue, err := instance.GetProperty("TargetElementSupplier") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetThinProvisioningPolicy sets the value of ThinProvisioningPolicy for the instance +func (instance *MSFT_ReplicationSettings) SetPropertyThinProvisioningPolicy(value uint16) (err error) { + return instance.SetProperty("ThinProvisioningPolicy", (value)) +} + +// GetThinProvisioningPolicy gets the value of ThinProvisioningPolicy for the instance +func (instance *MSFT_ReplicationSettings) GetPropertyThinProvisioningPolicy() (value uint16, err error) { + retValue, err := instance.GetProperty("ThinProvisioningPolicy") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ResiliencySetting.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ResiliencySetting.go new file mode 100644 index 000000000..971e200ce --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_ResiliencySetting.go @@ -0,0 +1,648 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_ResiliencySetting struct +type MSFT_ResiliencySetting struct { + *MSFT_StorageObject + + // + Description string + + // + InterleaveDefault uint64 + + // + InterleaveMax uint64 + + // + InterleaveMin uint64 + + // + Name string + + // + NumberOfColumnsDefault uint16 + + // + NumberOfColumnsMax uint16 + + // + NumberOfColumnsMin uint16 + + // + NumberOfDataCopiesDefault uint16 + + // + NumberOfDataCopiesMax uint16 + + // + NumberOfDataCopiesMin uint16 + + // + NumberOfGroupsDefault uint16 + + // + NumberOfGroupsMax uint16 + + // + NumberOfGroupsMin uint16 + + // + ParityLayout uint16 + + // + PhysicalDiskRedundancyDefault uint16 + + // + PhysicalDiskRedundancyMax uint16 + + // + PhysicalDiskRedundancyMin uint16 + + // + RequestNoSinglePointOfFailure bool +} + +func NewMSFT_ResiliencySettingEx1(instance *cim.WmiInstance) (newInstance *MSFT_ResiliencySetting, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_ResiliencySetting{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_ResiliencySettingEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_ResiliencySetting, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_ResiliencySetting{ + MSFT_StorageObject: tmp, + } + return +} + +// SetDescription sets the value of Description for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyDescription(value string) (err error) { + return instance.SetProperty("Description", (value)) +} + +// GetDescription gets the value of Description for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyDescription() (value string, err error) { + retValue, err := instance.GetProperty("Description") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetInterleaveDefault sets the value of InterleaveDefault for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyInterleaveDefault(value uint64) (err error) { + return instance.SetProperty("InterleaveDefault", (value)) +} + +// GetInterleaveDefault gets the value of InterleaveDefault for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyInterleaveDefault() (value uint64, err error) { + retValue, err := instance.GetProperty("InterleaveDefault") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetInterleaveMax sets the value of InterleaveMax for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyInterleaveMax(value uint64) (err error) { + return instance.SetProperty("InterleaveMax", (value)) +} + +// GetInterleaveMax gets the value of InterleaveMax for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyInterleaveMax() (value uint64, err error) { + retValue, err := instance.GetProperty("InterleaveMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetInterleaveMin sets the value of InterleaveMin for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyInterleaveMin(value uint64) (err error) { + return instance.SetProperty("InterleaveMin", (value)) +} + +// GetInterleaveMin gets the value of InterleaveMin for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyInterleaveMin() (value uint64, err error) { + retValue, err := instance.GetProperty("InterleaveMin") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetName sets the value of Name for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetNumberOfColumnsDefault sets the value of NumberOfColumnsDefault for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyNumberOfColumnsDefault(value uint16) (err error) { + return instance.SetProperty("NumberOfColumnsDefault", (value)) +} + +// GetNumberOfColumnsDefault gets the value of NumberOfColumnsDefault for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyNumberOfColumnsDefault() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfColumnsDefault") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfColumnsMax sets the value of NumberOfColumnsMax for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyNumberOfColumnsMax(value uint16) (err error) { + return instance.SetProperty("NumberOfColumnsMax", (value)) +} + +// GetNumberOfColumnsMax gets the value of NumberOfColumnsMax for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyNumberOfColumnsMax() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfColumnsMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfColumnsMin sets the value of NumberOfColumnsMin for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyNumberOfColumnsMin(value uint16) (err error) { + return instance.SetProperty("NumberOfColumnsMin", (value)) +} + +// GetNumberOfColumnsMin gets the value of NumberOfColumnsMin for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyNumberOfColumnsMin() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfColumnsMin") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfDataCopiesDefault sets the value of NumberOfDataCopiesDefault for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyNumberOfDataCopiesDefault(value uint16) (err error) { + return instance.SetProperty("NumberOfDataCopiesDefault", (value)) +} + +// GetNumberOfDataCopiesDefault gets the value of NumberOfDataCopiesDefault for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyNumberOfDataCopiesDefault() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfDataCopiesDefault") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfDataCopiesMax sets the value of NumberOfDataCopiesMax for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyNumberOfDataCopiesMax(value uint16) (err error) { + return instance.SetProperty("NumberOfDataCopiesMax", (value)) +} + +// GetNumberOfDataCopiesMax gets the value of NumberOfDataCopiesMax for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyNumberOfDataCopiesMax() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfDataCopiesMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfDataCopiesMin sets the value of NumberOfDataCopiesMin for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyNumberOfDataCopiesMin(value uint16) (err error) { + return instance.SetProperty("NumberOfDataCopiesMin", (value)) +} + +// GetNumberOfDataCopiesMin gets the value of NumberOfDataCopiesMin for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyNumberOfDataCopiesMin() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfDataCopiesMin") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfGroupsDefault sets the value of NumberOfGroupsDefault for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyNumberOfGroupsDefault(value uint16) (err error) { + return instance.SetProperty("NumberOfGroupsDefault", (value)) +} + +// GetNumberOfGroupsDefault gets the value of NumberOfGroupsDefault for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyNumberOfGroupsDefault() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfGroupsDefault") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfGroupsMax sets the value of NumberOfGroupsMax for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyNumberOfGroupsMax(value uint16) (err error) { + return instance.SetProperty("NumberOfGroupsMax", (value)) +} + +// GetNumberOfGroupsMax gets the value of NumberOfGroupsMax for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyNumberOfGroupsMax() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfGroupsMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfGroupsMin sets the value of NumberOfGroupsMin for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyNumberOfGroupsMin(value uint16) (err error) { + return instance.SetProperty("NumberOfGroupsMin", (value)) +} + +// GetNumberOfGroupsMin gets the value of NumberOfGroupsMin for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyNumberOfGroupsMin() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfGroupsMin") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetParityLayout sets the value of ParityLayout for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyParityLayout(value uint16) (err error) { + return instance.SetProperty("ParityLayout", (value)) +} + +// GetParityLayout gets the value of ParityLayout for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyParityLayout() (value uint16, err error) { + retValue, err := instance.GetProperty("ParityLayout") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetPhysicalDiskRedundancyDefault sets the value of PhysicalDiskRedundancyDefault for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyPhysicalDiskRedundancyDefault(value uint16) (err error) { + return instance.SetProperty("PhysicalDiskRedundancyDefault", (value)) +} + +// GetPhysicalDiskRedundancyDefault gets the value of PhysicalDiskRedundancyDefault for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyPhysicalDiskRedundancyDefault() (value uint16, err error) { + retValue, err := instance.GetProperty("PhysicalDiskRedundancyDefault") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetPhysicalDiskRedundancyMax sets the value of PhysicalDiskRedundancyMax for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyPhysicalDiskRedundancyMax(value uint16) (err error) { + return instance.SetProperty("PhysicalDiskRedundancyMax", (value)) +} + +// GetPhysicalDiskRedundancyMax gets the value of PhysicalDiskRedundancyMax for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyPhysicalDiskRedundancyMax() (value uint16, err error) { + retValue, err := instance.GetProperty("PhysicalDiskRedundancyMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetPhysicalDiskRedundancyMin sets the value of PhysicalDiskRedundancyMin for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyPhysicalDiskRedundancyMin(value uint16) (err error) { + return instance.SetProperty("PhysicalDiskRedundancyMin", (value)) +} + +// GetPhysicalDiskRedundancyMin gets the value of PhysicalDiskRedundancyMin for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyPhysicalDiskRedundancyMin() (value uint16, err error) { + retValue, err := instance.GetProperty("PhysicalDiskRedundancyMin") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetRequestNoSinglePointOfFailure sets the value of RequestNoSinglePointOfFailure for the instance +func (instance *MSFT_ResiliencySetting) SetPropertyRequestNoSinglePointOfFailure(value bool) (err error) { + return instance.SetProperty("RequestNoSinglePointOfFailure", (value)) +} + +// GetRequestNoSinglePointOfFailure gets the value of RequestNoSinglePointOfFailure for the instance +func (instance *MSFT_ResiliencySetting) GetPropertyRequestNoSinglePointOfFailure() (value bool, err error) { + retValue, err := instance.GetProperty("RequestNoSinglePointOfFailure") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// + +// +// +// +// +// +// + +// +// +func (instance *MSFT_ResiliencySetting) SetDefaults( /* IN */ NumberOfDataCopiesDefault uint16, + /* IN */ PhysicalDiskRedundancyDefault uint16, + /* IN */ NumberOfColumnsDefault uint16, + /* IN */ AutoNumberOfColumns bool, + /* IN */ InterleaveDefault uint64, + /* IN */ NumberOfGroupsDefault uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetDefaults", NumberOfDataCopiesDefault, PhysicalDiskRedundancyDefault, NumberOfColumnsDefault, AutoNumberOfColumns, InterleaveDefault, NumberOfGroupsDefault) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SBLTargetCacheConfiguration.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SBLTargetCacheConfiguration.go new file mode 100644 index 000000000..7b7b4ca73 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SBLTargetCacheConfiguration.go @@ -0,0 +1,752 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_SBLTargetCacheConfiguration struct +type MSFT_SBLTargetCacheConfiguration struct { + *cim.WmiInstance + + // + CacheBehavior uint64 + + // + CachePageSizeinKB uint32 + + // + CurrentCacheModeHDD uint32 + + // + CurrentCacheModeSSD uint32 + + // + CurrentState uint32 + + // + CurrentStateProgress uint64 + + // + CurrentStateProgressMax uint64 + + // + DesiredCacheModeHDD uint32 + + // + DesiredCacheModeSSD uint32 + + // + DesiredState uint32 + + // + FlashMetadataReserveBytes uint64 + + // + FlashReservePercent uint32 + + // + Identifier string + + // + ProvisioningStage uint64 + + // + ProvisioningStageMax uint64 + + // + SpacesDirectEnabled bool +} + +func NewMSFT_SBLTargetCacheConfigurationEx1(instance *cim.WmiInstance) (newInstance *MSFT_SBLTargetCacheConfiguration, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_SBLTargetCacheConfiguration{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_SBLTargetCacheConfigurationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_SBLTargetCacheConfiguration, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_SBLTargetCacheConfiguration{ + WmiInstance: tmp, + } + return +} + +// SetCacheBehavior sets the value of CacheBehavior for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyCacheBehavior(value uint64) (err error) { + return instance.SetProperty("CacheBehavior", (value)) +} + +// GetCacheBehavior gets the value of CacheBehavior for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyCacheBehavior() (value uint64, err error) { + retValue, err := instance.GetProperty("CacheBehavior") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetCachePageSizeinKB sets the value of CachePageSizeinKB for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyCachePageSizeinKB(value uint32) (err error) { + return instance.SetProperty("CachePageSizeinKB", (value)) +} + +// GetCachePageSizeinKB gets the value of CachePageSizeinKB for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyCachePageSizeinKB() (value uint32, err error) { + retValue, err := instance.GetProperty("CachePageSizeinKB") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetCurrentCacheModeHDD sets the value of CurrentCacheModeHDD for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyCurrentCacheModeHDD(value uint32) (err error) { + return instance.SetProperty("CurrentCacheModeHDD", (value)) +} + +// GetCurrentCacheModeHDD gets the value of CurrentCacheModeHDD for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyCurrentCacheModeHDD() (value uint32, err error) { + retValue, err := instance.GetProperty("CurrentCacheModeHDD") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetCurrentCacheModeSSD sets the value of CurrentCacheModeSSD for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyCurrentCacheModeSSD(value uint32) (err error) { + return instance.SetProperty("CurrentCacheModeSSD", (value)) +} + +// GetCurrentCacheModeSSD gets the value of CurrentCacheModeSSD for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyCurrentCacheModeSSD() (value uint32, err error) { + retValue, err := instance.GetProperty("CurrentCacheModeSSD") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetCurrentState sets the value of CurrentState for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyCurrentState(value uint32) (err error) { + return instance.SetProperty("CurrentState", (value)) +} + +// GetCurrentState gets the value of CurrentState for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyCurrentState() (value uint32, err error) { + retValue, err := instance.GetProperty("CurrentState") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetCurrentStateProgress sets the value of CurrentStateProgress for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyCurrentStateProgress(value uint64) (err error) { + return instance.SetProperty("CurrentStateProgress", (value)) +} + +// GetCurrentStateProgress gets the value of CurrentStateProgress for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyCurrentStateProgress() (value uint64, err error) { + retValue, err := instance.GetProperty("CurrentStateProgress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetCurrentStateProgressMax sets the value of CurrentStateProgressMax for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyCurrentStateProgressMax(value uint64) (err error) { + return instance.SetProperty("CurrentStateProgressMax", (value)) +} + +// GetCurrentStateProgressMax gets the value of CurrentStateProgressMax for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyCurrentStateProgressMax() (value uint64, err error) { + retValue, err := instance.GetProperty("CurrentStateProgressMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetDesiredCacheModeHDD sets the value of DesiredCacheModeHDD for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyDesiredCacheModeHDD(value uint32) (err error) { + return instance.SetProperty("DesiredCacheModeHDD", (value)) +} + +// GetDesiredCacheModeHDD gets the value of DesiredCacheModeHDD for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyDesiredCacheModeHDD() (value uint32, err error) { + retValue, err := instance.GetProperty("DesiredCacheModeHDD") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetDesiredCacheModeSSD sets the value of DesiredCacheModeSSD for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyDesiredCacheModeSSD(value uint32) (err error) { + return instance.SetProperty("DesiredCacheModeSSD", (value)) +} + +// GetDesiredCacheModeSSD gets the value of DesiredCacheModeSSD for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyDesiredCacheModeSSD() (value uint32, err error) { + retValue, err := instance.GetProperty("DesiredCacheModeSSD") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetDesiredState sets the value of DesiredState for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyDesiredState(value uint32) (err error) { + return instance.SetProperty("DesiredState", (value)) +} + +// GetDesiredState gets the value of DesiredState for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyDesiredState() (value uint32, err error) { + retValue, err := instance.GetProperty("DesiredState") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetFlashMetadataReserveBytes sets the value of FlashMetadataReserveBytes for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyFlashMetadataReserveBytes(value uint64) (err error) { + return instance.SetProperty("FlashMetadataReserveBytes", (value)) +} + +// GetFlashMetadataReserveBytes gets the value of FlashMetadataReserveBytes for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyFlashMetadataReserveBytes() (value uint64, err error) { + retValue, err := instance.GetProperty("FlashMetadataReserveBytes") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetFlashReservePercent sets the value of FlashReservePercent for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyFlashReservePercent(value uint32) (err error) { + return instance.SetProperty("FlashReservePercent", (value)) +} + +// GetFlashReservePercent gets the value of FlashReservePercent for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyFlashReservePercent() (value uint32, err error) { + retValue, err := instance.GetProperty("FlashReservePercent") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetIdentifier sets the value of Identifier for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyIdentifier(value string) (err error) { + return instance.SetProperty("Identifier", (value)) +} + +// GetIdentifier gets the value of Identifier for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyIdentifier() (value string, err error) { + retValue, err := instance.GetProperty("Identifier") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetProvisioningStage sets the value of ProvisioningStage for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyProvisioningStage(value uint64) (err error) { + return instance.SetProperty("ProvisioningStage", (value)) +} + +// GetProvisioningStage gets the value of ProvisioningStage for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyProvisioningStage() (value uint64, err error) { + retValue, err := instance.GetProperty("ProvisioningStage") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetProvisioningStageMax sets the value of ProvisioningStageMax for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertyProvisioningStageMax(value uint64) (err error) { + return instance.SetProperty("ProvisioningStageMax", (value)) +} + +// GetProvisioningStageMax gets the value of ProvisioningStageMax for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertyProvisioningStageMax() (value uint64, err error) { + retValue, err := instance.GetProperty("ProvisioningStageMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetSpacesDirectEnabled sets the value of SpacesDirectEnabled for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) SetPropertySpacesDirectEnabled(value bool) (err error) { + return instance.SetProperty("SpacesDirectEnabled", (value)) +} + +// GetSpacesDirectEnabled gets the value of SpacesDirectEnabled for the instance +func (instance *MSFT_SBLTargetCacheConfiguration) GetPropertySpacesDirectEnabled() (value bool, err error) { + retValue, err := instance.GetProperty("SpacesDirectEnabled") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// + +// +// +// +// +// +// +// +// +// + +// +func (instance *MSFT_SBLTargetCacheConfiguration) NotifyDisk( /* IN */ DiskGuid string, + /* IN */ PoolId string, + /* IN */ Name string, + /* IN */ Description string, + /* IN */ Manufacturer string, + /* IN */ ProductId string, + /* IN */ Serial string, + /* IN */ SlotNumber uint32, + /* IN */ EnclosureId string) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("NotifyDisk", DiskGuid, PoolId, Name, Description, Manufacturer, ProductId, Serial, SlotNumber, EnclosureId) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +// +// +// +// + +// +func (instance *MSFT_SBLTargetCacheConfiguration) NotifyEnclosure( /* IN */ EnclosureGuid string, + /* IN */ Name string, + /* IN */ Description string, + /* IN */ Manufacturer string, + /* IN */ ProductId string, + /* IN */ Serial string) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("NotifyEnclosure", EnclosureGuid, Name, Description, Manufacturer, ProductId, Serial) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// + +// +func (instance *MSFT_SBLTargetCacheConfiguration) NotifyDiskStateChange( /* IN */ DiskGuid string, + /* IN */ StateChange uint32) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("NotifyDiskStateChange", DiskGuid, StateChange) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// + +// +func (instance *MSFT_SBLTargetCacheConfiguration) SetDiskUsage( /* IN */ DiskGuid string, + /* IN */ UseForStorageSpacesDirect uint32) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetDiskUsage", DiskGuid, UseForStorageSpacesDirect) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// + +// +func (instance *MSFT_SBLTargetCacheConfiguration) StartOptimize( /* IN */ Flags uint32) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("StartOptimize", Flags) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// + +// +func (instance *MSFT_SBLTargetCacheConfiguration) CheckSystemSupportsCacheState( /* IN */ CacheState uint32) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("CheckSystemSupportsCacheState", CacheState) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// + +// +func (instance *MSFT_SBLTargetCacheConfiguration) CheckDiskSupportsCacheState( /* IN */ DiskGuid string, + /* IN */ CacheState uint32) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("CheckDiskSupportsCacheState", DiskGuid, CacheState) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// + +// +// +// +// +func (instance *MSFT_SBLTargetCacheConfiguration) CheckAllDisksSupportCache( /* IN */ CacheState uint32, + /* OUT */ DiskGuids []string, + /* OUT */ DiskNumbers []uint32, + /* OUT */ SupportStatuses []uint32) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CheckAllDisksSupportCache", CacheState) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_SBLTargetCacheConfiguration) QueryBoundDevices( /* IN */ DiskGuid string, + /* OUT */ BoundDiskGuids []string) (result uint32, err error) { + retVal, err := instance.InvokeMethod("QueryBoundDevices", DiskGuid) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// + +// +func (instance *MSFT_SBLTargetCacheConfiguration) SetDiskCacheMode( /* IN */ DiskGuid string, + /* IN */ CacheMode uint32, + /* IN */ Flags uint32, + /* IN */ Originator uint32, + /* IN */ Force bool) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetDiskCacheMode", DiskGuid, CacheMode, Flags, Originator, Force) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +// +// + +// +func (instance *MSFT_SBLTargetCacheConfiguration) SetDiskCacheHint( /* IN */ DiskGuid string, + /* IN */ CacheHint uint32, + /* IN */ Flags uint32, + /* IN */ Originator uint32) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetDiskCacheHint", DiskGuid, CacheHint, Flags, Originator) + if err != nil { + return + } + result = uint32(retVal) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SBLTargetDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SBLTargetDisk.go new file mode 100644 index 000000000..c2140f23f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SBLTargetDisk.go @@ -0,0 +1,471 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_SBLTargetDisk struct +type MSFT_SBLTargetDisk struct { + *cim.WmiInstance + + // + CacheMode uint32 + + // + CurrentUsage uint32 + + // + DesiredUsage uint32 + + // + DeviceNumber uint32 + + // + Identifier string + + // + IsFlash bool + + // + IsSblCacheDevice bool + + // + LastStateChangeTime string + + // + ReadMediaErrorCount uint64 + + // + ReadTotalErrorCount uint64 + + // + SblAttributes uint32 + + // + State uint32 + + // + WriteMediaErrorCount uint64 + + // + WriteTotalErrorCount uint64 +} + +func NewMSFT_SBLTargetDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_SBLTargetDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_SBLTargetDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_SBLTargetDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_SBLTargetDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_SBLTargetDisk{ + WmiInstance: tmp, + } + return +} + +// SetCacheMode sets the value of CacheMode for the instance +func (instance *MSFT_SBLTargetDisk) SetPropertyCacheMode(value uint32) (err error) { + return instance.SetProperty("CacheMode", (value)) +} + +// GetCacheMode gets the value of CacheMode for the instance +func (instance *MSFT_SBLTargetDisk) GetPropertyCacheMode() (value uint32, err error) { + retValue, err := instance.GetProperty("CacheMode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetCurrentUsage sets the value of CurrentUsage for the instance +func (instance *MSFT_SBLTargetDisk) SetPropertyCurrentUsage(value uint32) (err error) { + return instance.SetProperty("CurrentUsage", (value)) +} + +// GetCurrentUsage gets the value of CurrentUsage for the instance +func (instance *MSFT_SBLTargetDisk) GetPropertyCurrentUsage() (value uint32, err error) { + retValue, err := instance.GetProperty("CurrentUsage") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetDesiredUsage sets the value of DesiredUsage for the instance +func (instance *MSFT_SBLTargetDisk) SetPropertyDesiredUsage(value uint32) (err error) { + return instance.SetProperty("DesiredUsage", (value)) +} + +// GetDesiredUsage gets the value of DesiredUsage for the instance +func (instance *MSFT_SBLTargetDisk) GetPropertyDesiredUsage() (value uint32, err error) { + retValue, err := instance.GetProperty("DesiredUsage") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetDeviceNumber sets the value of DeviceNumber for the instance +func (instance *MSFT_SBLTargetDisk) SetPropertyDeviceNumber(value uint32) (err error) { + return instance.SetProperty("DeviceNumber", (value)) +} + +// GetDeviceNumber gets the value of DeviceNumber for the instance +func (instance *MSFT_SBLTargetDisk) GetPropertyDeviceNumber() (value uint32, err error) { + retValue, err := instance.GetProperty("DeviceNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetIdentifier sets the value of Identifier for the instance +func (instance *MSFT_SBLTargetDisk) SetPropertyIdentifier(value string) (err error) { + return instance.SetProperty("Identifier", (value)) +} + +// GetIdentifier gets the value of Identifier for the instance +func (instance *MSFT_SBLTargetDisk) GetPropertyIdentifier() (value string, err error) { + retValue, err := instance.GetProperty("Identifier") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetIsFlash sets the value of IsFlash for the instance +func (instance *MSFT_SBLTargetDisk) SetPropertyIsFlash(value bool) (err error) { + return instance.SetProperty("IsFlash", (value)) +} + +// GetIsFlash gets the value of IsFlash for the instance +func (instance *MSFT_SBLTargetDisk) GetPropertyIsFlash() (value bool, err error) { + retValue, err := instance.GetProperty("IsFlash") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsSblCacheDevice sets the value of IsSblCacheDevice for the instance +func (instance *MSFT_SBLTargetDisk) SetPropertyIsSblCacheDevice(value bool) (err error) { + return instance.SetProperty("IsSblCacheDevice", (value)) +} + +// GetIsSblCacheDevice gets the value of IsSblCacheDevice for the instance +func (instance *MSFT_SBLTargetDisk) GetPropertyIsSblCacheDevice() (value bool, err error) { + retValue, err := instance.GetProperty("IsSblCacheDevice") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetLastStateChangeTime sets the value of LastStateChangeTime for the instance +func (instance *MSFT_SBLTargetDisk) SetPropertyLastStateChangeTime(value string) (err error) { + return instance.SetProperty("LastStateChangeTime", (value)) +} + +// GetLastStateChangeTime gets the value of LastStateChangeTime for the instance +func (instance *MSFT_SBLTargetDisk) GetPropertyLastStateChangeTime() (value string, err error) { + retValue, err := instance.GetProperty("LastStateChangeTime") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetReadMediaErrorCount sets the value of ReadMediaErrorCount for the instance +func (instance *MSFT_SBLTargetDisk) SetPropertyReadMediaErrorCount(value uint64) (err error) { + return instance.SetProperty("ReadMediaErrorCount", (value)) +} + +// GetReadMediaErrorCount gets the value of ReadMediaErrorCount for the instance +func (instance *MSFT_SBLTargetDisk) GetPropertyReadMediaErrorCount() (value uint64, err error) { + retValue, err := instance.GetProperty("ReadMediaErrorCount") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetReadTotalErrorCount sets the value of ReadTotalErrorCount for the instance +func (instance *MSFT_SBLTargetDisk) SetPropertyReadTotalErrorCount(value uint64) (err error) { + return instance.SetProperty("ReadTotalErrorCount", (value)) +} + +// GetReadTotalErrorCount gets the value of ReadTotalErrorCount for the instance +func (instance *MSFT_SBLTargetDisk) GetPropertyReadTotalErrorCount() (value uint64, err error) { + retValue, err := instance.GetProperty("ReadTotalErrorCount") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetSblAttributes sets the value of SblAttributes for the instance +func (instance *MSFT_SBLTargetDisk) SetPropertySblAttributes(value uint32) (err error) { + return instance.SetProperty("SblAttributes", (value)) +} + +// GetSblAttributes gets the value of SblAttributes for the instance +func (instance *MSFT_SBLTargetDisk) GetPropertySblAttributes() (value uint32, err error) { + retValue, err := instance.GetProperty("SblAttributes") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetState sets the value of State for the instance +func (instance *MSFT_SBLTargetDisk) SetPropertyState(value uint32) (err error) { + return instance.SetProperty("State", (value)) +} + +// GetState gets the value of State for the instance +func (instance *MSFT_SBLTargetDisk) GetPropertyState() (value uint32, err error) { + retValue, err := instance.GetProperty("State") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetWriteMediaErrorCount sets the value of WriteMediaErrorCount for the instance +func (instance *MSFT_SBLTargetDisk) SetPropertyWriteMediaErrorCount(value uint64) (err error) { + return instance.SetProperty("WriteMediaErrorCount", (value)) +} + +// GetWriteMediaErrorCount gets the value of WriteMediaErrorCount for the instance +func (instance *MSFT_SBLTargetDisk) GetPropertyWriteMediaErrorCount() (value uint64, err error) { + retValue, err := instance.GetProperty("WriteMediaErrorCount") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetWriteTotalErrorCount sets the value of WriteTotalErrorCount for the instance +func (instance *MSFT_SBLTargetDisk) SetPropertyWriteTotalErrorCount(value uint64) (err error) { + return instance.SetProperty("WriteTotalErrorCount", (value)) +} + +// GetWriteTotalErrorCount gets the value of WriteTotalErrorCount for the instance +func (instance *MSFT_SBLTargetDisk) GetPropertyWriteTotalErrorCount() (value uint64, err error) { + retValue, err := instance.GetProperty("WriteTotalErrorCount") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError.go new file mode 100644 index 000000000..ea0a6f13e --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_SoftError struct +type MSFT_SoftError struct { + *CIM_Error +} + +func NewMSFT_SoftErrorEx1(instance *cim.WmiInstance) (newInstance *MSFT_SoftError, err error) { + tmp, err := NewCIM_ErrorEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_SoftError{ + CIM_Error: tmp, + } + return +} + +func NewMSFT_SoftErrorEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_SoftError, err error) { + tmp, err := NewCIM_ErrorEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_SoftError{ + CIM_Error: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError_EmptyCache.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError_EmptyCache.go new file mode 100644 index 000000000..c6080c862 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError_EmptyCache.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_SoftError_EmptyCache struct +type MSFT_SoftError_EmptyCache struct { + *MSFT_SoftError +} + +func NewMSFT_SoftError_EmptyCacheEx1(instance *cim.WmiInstance) (newInstance *MSFT_SoftError_EmptyCache, err error) { + tmp, err := NewMSFT_SoftErrorEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_SoftError_EmptyCache{ + MSFT_SoftError: tmp, + } + return +} + +func NewMSFT_SoftError_EmptyCacheEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_SoftError_EmptyCache, err error) { + tmp, err := NewMSFT_SoftErrorEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_SoftError_EmptyCache{ + MSFT_SoftError: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError_NotAuthenticated.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError_NotAuthenticated.go new file mode 100644 index 000000000..de645a1dc --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError_NotAuthenticated.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_SoftError_NotAuthenticated struct +type MSFT_SoftError_NotAuthenticated struct { + *MSFT_SoftError +} + +func NewMSFT_SoftError_NotAuthenticatedEx1(instance *cim.WmiInstance) (newInstance *MSFT_SoftError_NotAuthenticated, err error) { + tmp, err := NewMSFT_SoftErrorEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_SoftError_NotAuthenticated{ + MSFT_SoftError: tmp, + } + return +} + +func NewMSFT_SoftError_NotAuthenticatedEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_SoftError_NotAuthenticated, err error) { + tmp, err := NewMSFT_SoftErrorEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_SoftError_NotAuthenticated{ + MSFT_SoftError: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError_NotInCache.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError_NotInCache.go new file mode 100644 index 000000000..026c111fd --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError_NotInCache.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_SoftError_NotInCache struct +type MSFT_SoftError_NotInCache struct { + *MSFT_SoftError +} + +func NewMSFT_SoftError_NotInCacheEx1(instance *cim.WmiInstance) (newInstance *MSFT_SoftError_NotInCache, err error) { + tmp, err := NewMSFT_SoftErrorEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_SoftError_NotInCache{ + MSFT_SoftError: tmp, + } + return +} + +func NewMSFT_SoftError_NotInCacheEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_SoftError_NotInCache, err error) { + tmp, err := NewMSFT_SoftErrorEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_SoftError_NotInCache{ + MSFT_SoftError: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError_RelativePath.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError_RelativePath.go new file mode 100644 index 000000000..badc71d14 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_SoftError_RelativePath.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_SoftError_RelativePath struct +type MSFT_SoftError_RelativePath struct { + *MSFT_SoftError +} + +func NewMSFT_SoftError_RelativePathEx1(instance *cim.WmiInstance) (newInstance *MSFT_SoftError_RelativePath, err error) { + tmp, err := NewMSFT_SoftErrorEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_SoftError_RelativePath{ + MSFT_SoftError: tmp, + } + return +} + +func NewMSFT_SoftError_RelativePathEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_SoftError_RelativePath, err error) { + tmp, err := NewMSFT_SoftErrorEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_SoftError_RelativePath{ + MSFT_SoftError: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageAlertEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageAlertEvent.go new file mode 100644 index 000000000..3b22d0f03 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageAlertEvent.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageAlertEvent struct +type MSFT_StorageAlertEvent struct { + *MSFT_StorageEvent + + // + AlertType uint16 +} + +func NewMSFT_StorageAlertEventEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageAlertEvent, err error) { + tmp, err := NewMSFT_StorageEventEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageAlertEvent{ + MSFT_StorageEvent: tmp, + } + return +} + +func NewMSFT_StorageAlertEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageAlertEvent, err error) { + tmp, err := NewMSFT_StorageEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageAlertEvent{ + MSFT_StorageEvent: tmp, + } + return +} + +// SetAlertType sets the value of AlertType for the instance +func (instance *MSFT_StorageAlertEvent) SetPropertyAlertType(value uint16) (err error) { + return instance.SetProperty("AlertType", (value)) +} + +// GetAlertType gets the value of AlertType for the instance +func (instance *MSFT_StorageAlertEvent) GetPropertyAlertType() (value uint16, err error) { + retValue, err := instance.GetProperty("AlertType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageArrivalEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageArrivalEvent.go new file mode 100644 index 000000000..c40db283a --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageArrivalEvent.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_StorageArrivalEvent struct +type MSFT_StorageArrivalEvent struct { + *MSFT_StorageEvent +} + +func NewMSFT_StorageArrivalEventEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageArrivalEvent, err error) { + tmp, err := NewMSFT_StorageEventEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageArrivalEvent{ + MSFT_StorageEvent: tmp, + } + return +} + +func NewMSFT_StorageArrivalEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageArrivalEvent, err error) { + tmp, err := NewMSFT_StorageEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageArrivalEvent{ + MSFT_StorageEvent: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageChassis.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageChassis.go new file mode 100644 index 000000000..16c164ee0 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageChassis.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_StorageChassis struct +type MSFT_StorageChassis struct { + *MSFT_StorageFaultDomain +} + +func NewMSFT_StorageChassisEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageChassis, err error) { + tmp, err := NewMSFT_StorageFaultDomainEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageChassis{ + MSFT_StorageFaultDomain: tmp, + } + return +} + +func NewMSFT_StorageChassisEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageChassis, err error) { + tmp, err := NewMSFT_StorageFaultDomainEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageChassis{ + MSFT_StorageFaultDomain: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageDepartureEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageDepartureEvent.go new file mode 100644 index 000000000..305d2c5ba --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageDepartureEvent.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_StorageDepartureEvent struct +type MSFT_StorageDepartureEvent struct { + *MSFT_StorageEvent +} + +func NewMSFT_StorageDepartureEventEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageDepartureEvent, err error) { + tmp, err := NewMSFT_StorageEventEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageDepartureEvent{ + MSFT_StorageEvent: tmp, + } + return +} + +func NewMSFT_StorageDepartureEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageDepartureEvent, err error) { + tmp, err := NewMSFT_StorageEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageDepartureEvent{ + MSFT_StorageEvent: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageDiagnoseResult.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageDiagnoseResult.go new file mode 100644 index 000000000..21e46aae8 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageDiagnoseResult.go @@ -0,0 +1,352 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageDiagnoseResult struct +type MSFT_StorageDiagnoseResult struct { + *cim.WmiInstance + + // + FaultId string + + // + FaultingObjectDescription string + + // + FaultingObjectLocation string + + // + FaultingObjectType string + + // + FaultingObjectUniqueId string + + // + FaultTime string + + // + FaultType string + + // + PerceivedSeverity uint16 + + // + Reason string + + // + RecommendedActions []string +} + +func NewMSFT_StorageDiagnoseResultEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageDiagnoseResult, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageDiagnoseResult{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageDiagnoseResultEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageDiagnoseResult, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageDiagnoseResult{ + WmiInstance: tmp, + } + return +} + +// SetFaultId sets the value of FaultId for the instance +func (instance *MSFT_StorageDiagnoseResult) SetPropertyFaultId(value string) (err error) { + return instance.SetProperty("FaultId", (value)) +} + +// GetFaultId gets the value of FaultId for the instance +func (instance *MSFT_StorageDiagnoseResult) GetPropertyFaultId() (value string, err error) { + retValue, err := instance.GetProperty("FaultId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFaultingObjectDescription sets the value of FaultingObjectDescription for the instance +func (instance *MSFT_StorageDiagnoseResult) SetPropertyFaultingObjectDescription(value string) (err error) { + return instance.SetProperty("FaultingObjectDescription", (value)) +} + +// GetFaultingObjectDescription gets the value of FaultingObjectDescription for the instance +func (instance *MSFT_StorageDiagnoseResult) GetPropertyFaultingObjectDescription() (value string, err error) { + retValue, err := instance.GetProperty("FaultingObjectDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFaultingObjectLocation sets the value of FaultingObjectLocation for the instance +func (instance *MSFT_StorageDiagnoseResult) SetPropertyFaultingObjectLocation(value string) (err error) { + return instance.SetProperty("FaultingObjectLocation", (value)) +} + +// GetFaultingObjectLocation gets the value of FaultingObjectLocation for the instance +func (instance *MSFT_StorageDiagnoseResult) GetPropertyFaultingObjectLocation() (value string, err error) { + retValue, err := instance.GetProperty("FaultingObjectLocation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFaultingObjectType sets the value of FaultingObjectType for the instance +func (instance *MSFT_StorageDiagnoseResult) SetPropertyFaultingObjectType(value string) (err error) { + return instance.SetProperty("FaultingObjectType", (value)) +} + +// GetFaultingObjectType gets the value of FaultingObjectType for the instance +func (instance *MSFT_StorageDiagnoseResult) GetPropertyFaultingObjectType() (value string, err error) { + retValue, err := instance.GetProperty("FaultingObjectType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFaultingObjectUniqueId sets the value of FaultingObjectUniqueId for the instance +func (instance *MSFT_StorageDiagnoseResult) SetPropertyFaultingObjectUniqueId(value string) (err error) { + return instance.SetProperty("FaultingObjectUniqueId", (value)) +} + +// GetFaultingObjectUniqueId gets the value of FaultingObjectUniqueId for the instance +func (instance *MSFT_StorageDiagnoseResult) GetPropertyFaultingObjectUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("FaultingObjectUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFaultTime sets the value of FaultTime for the instance +func (instance *MSFT_StorageDiagnoseResult) SetPropertyFaultTime(value string) (err error) { + return instance.SetProperty("FaultTime", (value)) +} + +// GetFaultTime gets the value of FaultTime for the instance +func (instance *MSFT_StorageDiagnoseResult) GetPropertyFaultTime() (value string, err error) { + retValue, err := instance.GetProperty("FaultTime") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFaultType sets the value of FaultType for the instance +func (instance *MSFT_StorageDiagnoseResult) SetPropertyFaultType(value string) (err error) { + return instance.SetProperty("FaultType", (value)) +} + +// GetFaultType gets the value of FaultType for the instance +func (instance *MSFT_StorageDiagnoseResult) GetPropertyFaultType() (value string, err error) { + retValue, err := instance.GetProperty("FaultType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPerceivedSeverity sets the value of PerceivedSeverity for the instance +func (instance *MSFT_StorageDiagnoseResult) SetPropertyPerceivedSeverity(value uint16) (err error) { + return instance.SetProperty("PerceivedSeverity", (value)) +} + +// GetPerceivedSeverity gets the value of PerceivedSeverity for the instance +func (instance *MSFT_StorageDiagnoseResult) GetPropertyPerceivedSeverity() (value uint16, err error) { + retValue, err := instance.GetProperty("PerceivedSeverity") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetReason sets the value of Reason for the instance +func (instance *MSFT_StorageDiagnoseResult) SetPropertyReason(value string) (err error) { + return instance.SetProperty("Reason", (value)) +} + +// GetReason gets the value of Reason for the instance +func (instance *MSFT_StorageDiagnoseResult) GetPropertyReason() (value string, err error) { + retValue, err := instance.GetProperty("Reason") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetRecommendedActions sets the value of RecommendedActions for the instance +func (instance *MSFT_StorageDiagnoseResult) SetPropertyRecommendedActions(value []string) (err error) { + return instance.SetProperty("RecommendedActions", (value)) +} + +// GetRecommendedActions gets the value of RecommendedActions for the instance +func (instance *MSFT_StorageDiagnoseResult) GetPropertyRecommendedActions() (value []string, err error) { + retValue, err := instance.GetProperty("RecommendedActions") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageEnclosure.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageEnclosure.go new file mode 100644 index 000000000..cc98a1a98 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageEnclosure.go @@ -0,0 +1,520 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageEnclosure struct +type MSFT_StorageEnclosure struct { + *MSFT_StorageFaultDomain + + // + BusType uint16 + + // + CurrentSensorOperationalStatus []uint16 + + // + DeviceId string + + // + FanOperationalStatus []uint16 + + // + FirmwareVersion string + + // + IOControllerOperationalStatus []uint16 + + // + NumberOfSlots uint32 + + // + PowerSupplyOperationalStatus []uint16 + + // + SlotOperationalStatus []uint16 + + // + TemperatureSensorOperationalStatus []uint16 + + // + VoltageSensorOperationalStatus []uint16 +} + +func NewMSFT_StorageEnclosureEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageEnclosure, err error) { + tmp, err := NewMSFT_StorageFaultDomainEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageEnclosure{ + MSFT_StorageFaultDomain: tmp, + } + return +} + +func NewMSFT_StorageEnclosureEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageEnclosure, err error) { + tmp, err := NewMSFT_StorageFaultDomainEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageEnclosure{ + MSFT_StorageFaultDomain: tmp, + } + return +} + +// SetBusType sets the value of BusType for the instance +func (instance *MSFT_StorageEnclosure) SetPropertyBusType(value uint16) (err error) { + return instance.SetProperty("BusType", (value)) +} + +// GetBusType gets the value of BusType for the instance +func (instance *MSFT_StorageEnclosure) GetPropertyBusType() (value uint16, err error) { + retValue, err := instance.GetProperty("BusType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetCurrentSensorOperationalStatus sets the value of CurrentSensorOperationalStatus for the instance +func (instance *MSFT_StorageEnclosure) SetPropertyCurrentSensorOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("CurrentSensorOperationalStatus", (value)) +} + +// GetCurrentSensorOperationalStatus gets the value of CurrentSensorOperationalStatus for the instance +func (instance *MSFT_StorageEnclosure) GetPropertyCurrentSensorOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("CurrentSensorOperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetDeviceId sets the value of DeviceId for the instance +func (instance *MSFT_StorageEnclosure) SetPropertyDeviceId(value string) (err error) { + return instance.SetProperty("DeviceId", (value)) +} + +// GetDeviceId gets the value of DeviceId for the instance +func (instance *MSFT_StorageEnclosure) GetPropertyDeviceId() (value string, err error) { + retValue, err := instance.GetProperty("DeviceId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFanOperationalStatus sets the value of FanOperationalStatus for the instance +func (instance *MSFT_StorageEnclosure) SetPropertyFanOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("FanOperationalStatus", (value)) +} + +// GetFanOperationalStatus gets the value of FanOperationalStatus for the instance +func (instance *MSFT_StorageEnclosure) GetPropertyFanOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("FanOperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetFirmwareVersion sets the value of FirmwareVersion for the instance +func (instance *MSFT_StorageEnclosure) SetPropertyFirmwareVersion(value string) (err error) { + return instance.SetProperty("FirmwareVersion", (value)) +} + +// GetFirmwareVersion gets the value of FirmwareVersion for the instance +func (instance *MSFT_StorageEnclosure) GetPropertyFirmwareVersion() (value string, err error) { + retValue, err := instance.GetProperty("FirmwareVersion") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetIOControllerOperationalStatus sets the value of IOControllerOperationalStatus for the instance +func (instance *MSFT_StorageEnclosure) SetPropertyIOControllerOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("IOControllerOperationalStatus", (value)) +} + +// GetIOControllerOperationalStatus gets the value of IOControllerOperationalStatus for the instance +func (instance *MSFT_StorageEnclosure) GetPropertyIOControllerOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("IOControllerOperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetNumberOfSlots sets the value of NumberOfSlots for the instance +func (instance *MSFT_StorageEnclosure) SetPropertyNumberOfSlots(value uint32) (err error) { + return instance.SetProperty("NumberOfSlots", (value)) +} + +// GetNumberOfSlots gets the value of NumberOfSlots for the instance +func (instance *MSFT_StorageEnclosure) GetPropertyNumberOfSlots() (value uint32, err error) { + retValue, err := instance.GetProperty("NumberOfSlots") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetPowerSupplyOperationalStatus sets the value of PowerSupplyOperationalStatus for the instance +func (instance *MSFT_StorageEnclosure) SetPropertyPowerSupplyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("PowerSupplyOperationalStatus", (value)) +} + +// GetPowerSupplyOperationalStatus gets the value of PowerSupplyOperationalStatus for the instance +func (instance *MSFT_StorageEnclosure) GetPropertyPowerSupplyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("PowerSupplyOperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSlotOperationalStatus sets the value of SlotOperationalStatus for the instance +func (instance *MSFT_StorageEnclosure) SetPropertySlotOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("SlotOperationalStatus", (value)) +} + +// GetSlotOperationalStatus gets the value of SlotOperationalStatus for the instance +func (instance *MSFT_StorageEnclosure) GetPropertySlotOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("SlotOperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetTemperatureSensorOperationalStatus sets the value of TemperatureSensorOperationalStatus for the instance +func (instance *MSFT_StorageEnclosure) SetPropertyTemperatureSensorOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("TemperatureSensorOperationalStatus", (value)) +} + +// GetTemperatureSensorOperationalStatus gets the value of TemperatureSensorOperationalStatus for the instance +func (instance *MSFT_StorageEnclosure) GetPropertyTemperatureSensorOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("TemperatureSensorOperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetVoltageSensorOperationalStatus sets the value of VoltageSensorOperationalStatus for the instance +func (instance *MSFT_StorageEnclosure) SetPropertyVoltageSensorOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("VoltageSensorOperationalStatus", (value)) +} + +// GetVoltageSensorOperationalStatus gets the value of VoltageSensorOperationalStatus for the instance +func (instance *MSFT_StorageEnclosure) GetPropertyVoltageSensorOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("VoltageSensorOperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// + +// +// + +// +// +func (instance *MSFT_StorageEnclosure) IdentifyElement( /* IN */ Enable bool, + /* IN */ SlotNumbers []uint32, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("IdentifyElement", Enable, SlotNumbers) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_StorageEnclosure) GetVendorData( /* IN */ PageNumber uint16, + /* OUT */ VendorData string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetVendorData", PageNumber) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// + +// +// +func (instance *MSFT_StorageEnclosure) Maintenance( /* IN */ EnableMaintenanceMode bool, + /* IN */ Timeout uint32, + /* IN */ Model string, + /* IN */ Manufacturer string, + /* IN */ IgnoreDetachedVirtualDisks bool, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Maintenance", EnableMaintenanceMode, Timeout, Model, Manufacturer, IgnoreDetachedVirtualDisks) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +func (instance *MSFT_StorageEnclosure) PowerElement( /* IN */ Off bool, + /* IN */ SlotNumbers []uint32, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("PowerElement", Off, SlotNumbers) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// +// +func (instance *MSFT_StorageEnclosure) GetFirmwareInformation( /* OUT */ SupportsUpdate bool, + /* OUT */ NumberOfSlots uint16, + /* OUT */ ActiveSlotNumber uint16, + /* OUT */ SlotNumber []uint16, + /* OUT */ IsSlotWritable []bool, + /* OUT */ FirmwareVersionInSlot []string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetFirmwareInformation") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +func (instance *MSFT_StorageEnclosure) UpdateFirmware( /* IN */ ImagePath string, + /* IN */ SlotNumber uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("UpdateFirmware", ImagePath, SlotNumber) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageEnclosureToPhysicalDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageEnclosureToPhysicalDisk.go new file mode 100644 index 000000000..4335f4dff --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageEnclosureToPhysicalDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageEnclosureToPhysicalDisk struct +type MSFT_StorageEnclosureToPhysicalDisk struct { + *cim.WmiInstance + + // + PhysicalDisk MSFT_PhysicalDisk + + // + StorageEnclosure MSFT_StorageEnclosure +} + +func NewMSFT_StorageEnclosureToPhysicalDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageEnclosureToPhysicalDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageEnclosureToPhysicalDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageEnclosureToPhysicalDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageEnclosureToPhysicalDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageEnclosureToPhysicalDisk{ + WmiInstance: tmp, + } + return +} + +// SetPhysicalDisk sets the value of PhysicalDisk for the instance +func (instance *MSFT_StorageEnclosureToPhysicalDisk) SetPropertyPhysicalDisk(value MSFT_PhysicalDisk) (err error) { + return instance.SetProperty("PhysicalDisk", (value)) +} + +// GetPhysicalDisk gets the value of PhysicalDisk for the instance +func (instance *MSFT_StorageEnclosureToPhysicalDisk) GetPropertyPhysicalDisk() (value MSFT_PhysicalDisk, err error) { + retValue, err := instance.GetProperty("PhysicalDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_PhysicalDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_PhysicalDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_PhysicalDisk(valuetmp) + + return +} + +// SetStorageEnclosure sets the value of StorageEnclosure for the instance +func (instance *MSFT_StorageEnclosureToPhysicalDisk) SetPropertyStorageEnclosure(value MSFT_StorageEnclosure) (err error) { + return instance.SetProperty("StorageEnclosure", (value)) +} + +// GetStorageEnclosure gets the value of StorageEnclosure for the instance +func (instance *MSFT_StorageEnclosureToPhysicalDisk) GetPropertyStorageEnclosure() (value MSFT_StorageEnclosure, err error) { + retValue, err := instance.GetProperty("StorageEnclosure") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageEnclosure) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageEnclosure is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageEnclosure(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageEvent.go new file mode 100644 index 000000000..ede9d0a12 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageEvent.go @@ -0,0 +1,321 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageEvent struct +type MSFT_StorageEvent struct { + *cim.WmiInstance + + // + Description string + + // + EventTime string + + // + PerceivedSeverity uint16 + + // + SourceClassName string + + // + SourceInstance MSFT_StorageObject + + // + SourceNamespace string + + // + SourceObjectId string + + // + SourceServer string + + // + StorageSubsystemObjectId string +} + +func NewMSFT_StorageEventEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageEvent, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageEvent{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageEvent, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageEvent{ + WmiInstance: tmp, + } + return +} + +// SetDescription sets the value of Description for the instance +func (instance *MSFT_StorageEvent) SetPropertyDescription(value string) (err error) { + return instance.SetProperty("Description", (value)) +} + +// GetDescription gets the value of Description for the instance +func (instance *MSFT_StorageEvent) GetPropertyDescription() (value string, err error) { + retValue, err := instance.GetProperty("Description") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetEventTime sets the value of EventTime for the instance +func (instance *MSFT_StorageEvent) SetPropertyEventTime(value string) (err error) { + return instance.SetProperty("EventTime", (value)) +} + +// GetEventTime gets the value of EventTime for the instance +func (instance *MSFT_StorageEvent) GetPropertyEventTime() (value string, err error) { + retValue, err := instance.GetProperty("EventTime") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPerceivedSeverity sets the value of PerceivedSeverity for the instance +func (instance *MSFT_StorageEvent) SetPropertyPerceivedSeverity(value uint16) (err error) { + return instance.SetProperty("PerceivedSeverity", (value)) +} + +// GetPerceivedSeverity gets the value of PerceivedSeverity for the instance +func (instance *MSFT_StorageEvent) GetPropertyPerceivedSeverity() (value uint16, err error) { + retValue, err := instance.GetProperty("PerceivedSeverity") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetSourceClassName sets the value of SourceClassName for the instance +func (instance *MSFT_StorageEvent) SetPropertySourceClassName(value string) (err error) { + return instance.SetProperty("SourceClassName", (value)) +} + +// GetSourceClassName gets the value of SourceClassName for the instance +func (instance *MSFT_StorageEvent) GetPropertySourceClassName() (value string, err error) { + retValue, err := instance.GetProperty("SourceClassName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSourceInstance sets the value of SourceInstance for the instance +func (instance *MSFT_StorageEvent) SetPropertySourceInstance(value MSFT_StorageObject) (err error) { + return instance.SetProperty("SourceInstance", (value)) +} + +// GetSourceInstance gets the value of SourceInstance for the instance +func (instance *MSFT_StorageEvent) GetPropertySourceInstance() (value MSFT_StorageObject, err error) { + retValue, err := instance.GetProperty("SourceInstance") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageObject) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageObject is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageObject(valuetmp) + + return +} + +// SetSourceNamespace sets the value of SourceNamespace for the instance +func (instance *MSFT_StorageEvent) SetPropertySourceNamespace(value string) (err error) { + return instance.SetProperty("SourceNamespace", (value)) +} + +// GetSourceNamespace gets the value of SourceNamespace for the instance +func (instance *MSFT_StorageEvent) GetPropertySourceNamespace() (value string, err error) { + retValue, err := instance.GetProperty("SourceNamespace") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSourceObjectId sets the value of SourceObjectId for the instance +func (instance *MSFT_StorageEvent) SetPropertySourceObjectId(value string) (err error) { + return instance.SetProperty("SourceObjectId", (value)) +} + +// GetSourceObjectId gets the value of SourceObjectId for the instance +func (instance *MSFT_StorageEvent) GetPropertySourceObjectId() (value string, err error) { + retValue, err := instance.GetProperty("SourceObjectId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSourceServer sets the value of SourceServer for the instance +func (instance *MSFT_StorageEvent) SetPropertySourceServer(value string) (err error) { + return instance.SetProperty("SourceServer", (value)) +} + +// GetSourceServer gets the value of SourceServer for the instance +func (instance *MSFT_StorageEvent) GetPropertySourceServer() (value string, err error) { + retValue, err := instance.GetProperty("SourceServer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetStorageSubsystemObjectId sets the value of StorageSubsystemObjectId for the instance +func (instance *MSFT_StorageEvent) SetPropertyStorageSubsystemObjectId(value string) (err error) { + return instance.SetProperty("StorageSubsystemObjectId", (value)) +} + +// GetStorageSubsystemObjectId gets the value of StorageSubsystemObjectId for the instance +func (instance *MSFT_StorageEvent) GetPropertyStorageSubsystemObjectId() (value string, err error) { + retValue, err := instance.GetProperty("StorageSubsystemObjectId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageExtendedStatus.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageExtendedStatus.go new file mode 100644 index 000000000..7df636754 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageExtendedStatus.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_StorageExtendedStatus struct +type MSFT_StorageExtendedStatus struct { + *CIM_Error +} + +func NewMSFT_StorageExtendedStatusEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageExtendedStatus, err error) { + tmp, err := NewCIM_ErrorEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageExtendedStatus{ + CIM_Error: tmp, + } + return +} + +func NewMSFT_StorageExtendedStatusEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageExtendedStatus, err error) { + tmp, err := NewCIM_ErrorEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageExtendedStatus{ + CIM_Error: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageFaultDomain.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageFaultDomain.go new file mode 100644 index 000000000..6b2067490 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageFaultDomain.go @@ -0,0 +1,322 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageFaultDomain struct +type MSFT_StorageFaultDomain struct { + *MSFT_StorageObject + + // + Description string + + // + FriendlyName string + + // + HealthStatus uint16 + + // + Manufacturer string + + // + Model string + + // + OperationalDetails []string + + // + OperationalStatus []uint16 + + // + PhysicalLocation string + + // + SerialNumber string +} + +func NewMSFT_StorageFaultDomainEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageFaultDomain, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageFaultDomain{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_StorageFaultDomainEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageFaultDomain, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageFaultDomain{ + MSFT_StorageObject: tmp, + } + return +} + +// SetDescription sets the value of Description for the instance +func (instance *MSFT_StorageFaultDomain) SetPropertyDescription(value string) (err error) { + return instance.SetProperty("Description", (value)) +} + +// GetDescription gets the value of Description for the instance +func (instance *MSFT_StorageFaultDomain) GetPropertyDescription() (value string, err error) { + retValue, err := instance.GetProperty("Description") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFriendlyName sets the value of FriendlyName for the instance +func (instance *MSFT_StorageFaultDomain) SetPropertyFriendlyName(value string) (err error) { + return instance.SetProperty("FriendlyName", (value)) +} + +// GetFriendlyName gets the value of FriendlyName for the instance +func (instance *MSFT_StorageFaultDomain) GetPropertyFriendlyName() (value string, err error) { + retValue, err := instance.GetProperty("FriendlyName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetHealthStatus sets the value of HealthStatus for the instance +func (instance *MSFT_StorageFaultDomain) SetPropertyHealthStatus(value uint16) (err error) { + return instance.SetProperty("HealthStatus", (value)) +} + +// GetHealthStatus gets the value of HealthStatus for the instance +func (instance *MSFT_StorageFaultDomain) GetPropertyHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("HealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetManufacturer sets the value of Manufacturer for the instance +func (instance *MSFT_StorageFaultDomain) SetPropertyManufacturer(value string) (err error) { + return instance.SetProperty("Manufacturer", (value)) +} + +// GetManufacturer gets the value of Manufacturer for the instance +func (instance *MSFT_StorageFaultDomain) GetPropertyManufacturer() (value string, err error) { + retValue, err := instance.GetProperty("Manufacturer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetModel sets the value of Model for the instance +func (instance *MSFT_StorageFaultDomain) SetPropertyModel(value string) (err error) { + return instance.SetProperty("Model", (value)) +} + +// GetModel gets the value of Model for the instance +func (instance *MSFT_StorageFaultDomain) GetPropertyModel() (value string, err error) { + retValue, err := instance.GetProperty("Model") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOperationalDetails sets the value of OperationalDetails for the instance +func (instance *MSFT_StorageFaultDomain) SetPropertyOperationalDetails(value []string) (err error) { + return instance.SetProperty("OperationalDetails", (value)) +} + +// GetOperationalDetails gets the value of OperationalDetails for the instance +func (instance *MSFT_StorageFaultDomain) GetPropertyOperationalDetails() (value []string, err error) { + retValue, err := instance.GetProperty("OperationalDetails") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_StorageFaultDomain) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_StorageFaultDomain) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetPhysicalLocation sets the value of PhysicalLocation for the instance +func (instance *MSFT_StorageFaultDomain) SetPropertyPhysicalLocation(value string) (err error) { + return instance.SetProperty("PhysicalLocation", (value)) +} + +// GetPhysicalLocation gets the value of PhysicalLocation for the instance +func (instance *MSFT_StorageFaultDomain) GetPropertyPhysicalLocation() (value string, err error) { + retValue, err := instance.GetProperty("PhysicalLocation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSerialNumber sets the value of SerialNumber for the instance +func (instance *MSFT_StorageFaultDomain) SetPropertySerialNumber(value string) (err error) { + return instance.SetProperty("SerialNumber", (value)) +} + +// GetSerialNumber gets the value of SerialNumber for the instance +func (instance *MSFT_StorageFaultDomain) GetPropertySerialNumber() (value string, err error) { + retValue, err := instance.GetProperty("SerialNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageFaultDomainToStorageFaultDomain.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageFaultDomainToStorageFaultDomain.go new file mode 100644 index 000000000..cc4be93d8 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageFaultDomainToStorageFaultDomain.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageFaultDomainToStorageFaultDomain struct +type MSFT_StorageFaultDomainToStorageFaultDomain struct { + *cim.WmiInstance + + // + SourceStorageFaultDomain MSFT_StorageFaultDomain + + // + TargetStorageFaultDomain MSFT_StorageFaultDomain +} + +func NewMSFT_StorageFaultDomainToStorageFaultDomainEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageFaultDomainToStorageFaultDomain, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageFaultDomainToStorageFaultDomain{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageFaultDomainToStorageFaultDomainEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageFaultDomainToStorageFaultDomain, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageFaultDomainToStorageFaultDomain{ + WmiInstance: tmp, + } + return +} + +// SetSourceStorageFaultDomain sets the value of SourceStorageFaultDomain for the instance +func (instance *MSFT_StorageFaultDomainToStorageFaultDomain) SetPropertySourceStorageFaultDomain(value MSFT_StorageFaultDomain) (err error) { + return instance.SetProperty("SourceStorageFaultDomain", (value)) +} + +// GetSourceStorageFaultDomain gets the value of SourceStorageFaultDomain for the instance +func (instance *MSFT_StorageFaultDomainToStorageFaultDomain) GetPropertySourceStorageFaultDomain() (value MSFT_StorageFaultDomain, err error) { + retValue, err := instance.GetProperty("SourceStorageFaultDomain") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageFaultDomain) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageFaultDomain is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageFaultDomain(valuetmp) + + return +} + +// SetTargetStorageFaultDomain sets the value of TargetStorageFaultDomain for the instance +func (instance *MSFT_StorageFaultDomainToStorageFaultDomain) SetPropertyTargetStorageFaultDomain(value MSFT_StorageFaultDomain) (err error) { + return instance.SetProperty("TargetStorageFaultDomain", (value)) +} + +// GetTargetStorageFaultDomain gets the value of TargetStorageFaultDomain for the instance +func (instance *MSFT_StorageFaultDomainToStorageFaultDomain) GetPropertyTargetStorageFaultDomain() (value MSFT_StorageFaultDomain, err error) { + retValue, err := instance.GetProperty("TargetStorageFaultDomain") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageFaultDomain) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageFaultDomain is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageFaultDomain(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageFaultEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageFaultEvent.go new file mode 100644 index 000000000..c694fe00d --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageFaultEvent.go @@ -0,0 +1,381 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageFaultEvent struct +type MSFT_StorageFaultEvent struct { + *MSFT_StorageEvent + + // + ChangeType uint16 + + // + FaultId string + + // + FaultingObjectDescription string + + // + FaultingObjectLocation string + + // + FaultingObjectType string + + // + FaultingObjectUniqueId string + + // + FaultType string + + // + Reason string + + // + RecommendedActions []string + + // + SourceUniqueId string + + // + StorageSubsystemUniqueId string +} + +func NewMSFT_StorageFaultEventEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageFaultEvent, err error) { + tmp, err := NewMSFT_StorageEventEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageFaultEvent{ + MSFT_StorageEvent: tmp, + } + return +} + +func NewMSFT_StorageFaultEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageFaultEvent, err error) { + tmp, err := NewMSFT_StorageEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageFaultEvent{ + MSFT_StorageEvent: tmp, + } + return +} + +// SetChangeType sets the value of ChangeType for the instance +func (instance *MSFT_StorageFaultEvent) SetPropertyChangeType(value uint16) (err error) { + return instance.SetProperty("ChangeType", (value)) +} + +// GetChangeType gets the value of ChangeType for the instance +func (instance *MSFT_StorageFaultEvent) GetPropertyChangeType() (value uint16, err error) { + retValue, err := instance.GetProperty("ChangeType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetFaultId sets the value of FaultId for the instance +func (instance *MSFT_StorageFaultEvent) SetPropertyFaultId(value string) (err error) { + return instance.SetProperty("FaultId", (value)) +} + +// GetFaultId gets the value of FaultId for the instance +func (instance *MSFT_StorageFaultEvent) GetPropertyFaultId() (value string, err error) { + retValue, err := instance.GetProperty("FaultId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFaultingObjectDescription sets the value of FaultingObjectDescription for the instance +func (instance *MSFT_StorageFaultEvent) SetPropertyFaultingObjectDescription(value string) (err error) { + return instance.SetProperty("FaultingObjectDescription", (value)) +} + +// GetFaultingObjectDescription gets the value of FaultingObjectDescription for the instance +func (instance *MSFT_StorageFaultEvent) GetPropertyFaultingObjectDescription() (value string, err error) { + retValue, err := instance.GetProperty("FaultingObjectDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFaultingObjectLocation sets the value of FaultingObjectLocation for the instance +func (instance *MSFT_StorageFaultEvent) SetPropertyFaultingObjectLocation(value string) (err error) { + return instance.SetProperty("FaultingObjectLocation", (value)) +} + +// GetFaultingObjectLocation gets the value of FaultingObjectLocation for the instance +func (instance *MSFT_StorageFaultEvent) GetPropertyFaultingObjectLocation() (value string, err error) { + retValue, err := instance.GetProperty("FaultingObjectLocation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFaultingObjectType sets the value of FaultingObjectType for the instance +func (instance *MSFT_StorageFaultEvent) SetPropertyFaultingObjectType(value string) (err error) { + return instance.SetProperty("FaultingObjectType", (value)) +} + +// GetFaultingObjectType gets the value of FaultingObjectType for the instance +func (instance *MSFT_StorageFaultEvent) GetPropertyFaultingObjectType() (value string, err error) { + retValue, err := instance.GetProperty("FaultingObjectType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFaultingObjectUniqueId sets the value of FaultingObjectUniqueId for the instance +func (instance *MSFT_StorageFaultEvent) SetPropertyFaultingObjectUniqueId(value string) (err error) { + return instance.SetProperty("FaultingObjectUniqueId", (value)) +} + +// GetFaultingObjectUniqueId gets the value of FaultingObjectUniqueId for the instance +func (instance *MSFT_StorageFaultEvent) GetPropertyFaultingObjectUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("FaultingObjectUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFaultType sets the value of FaultType for the instance +func (instance *MSFT_StorageFaultEvent) SetPropertyFaultType(value string) (err error) { + return instance.SetProperty("FaultType", (value)) +} + +// GetFaultType gets the value of FaultType for the instance +func (instance *MSFT_StorageFaultEvent) GetPropertyFaultType() (value string, err error) { + retValue, err := instance.GetProperty("FaultType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetReason sets the value of Reason for the instance +func (instance *MSFT_StorageFaultEvent) SetPropertyReason(value string) (err error) { + return instance.SetProperty("Reason", (value)) +} + +// GetReason gets the value of Reason for the instance +func (instance *MSFT_StorageFaultEvent) GetPropertyReason() (value string, err error) { + retValue, err := instance.GetProperty("Reason") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetRecommendedActions sets the value of RecommendedActions for the instance +func (instance *MSFT_StorageFaultEvent) SetPropertyRecommendedActions(value []string) (err error) { + return instance.SetProperty("RecommendedActions", (value)) +} + +// GetRecommendedActions gets the value of RecommendedActions for the instance +func (instance *MSFT_StorageFaultEvent) GetPropertyRecommendedActions() (value []string, err error) { + retValue, err := instance.GetProperty("RecommendedActions") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetSourceUniqueId sets the value of SourceUniqueId for the instance +func (instance *MSFT_StorageFaultEvent) SetPropertySourceUniqueId(value string) (err error) { + return instance.SetProperty("SourceUniqueId", (value)) +} + +// GetSourceUniqueId gets the value of SourceUniqueId for the instance +func (instance *MSFT_StorageFaultEvent) GetPropertySourceUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("SourceUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetStorageSubsystemUniqueId sets the value of StorageSubsystemUniqueId for the instance +func (instance *MSFT_StorageFaultEvent) SetPropertyStorageSubsystemUniqueId(value string) (err error) { + return instance.SetProperty("StorageSubsystemUniqueId", (value)) +} + +// GetStorageSubsystemUniqueId gets the value of StorageSubsystemUniqueId for the instance +func (instance *MSFT_StorageFaultEvent) GetPropertyStorageSubsystemUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("StorageSubsystemUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageHealth.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageHealth.go new file mode 100644 index 000000000..09fb63198 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageHealth.go @@ -0,0 +1,176 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_StorageHealth struct +type MSFT_StorageHealth struct { + *MSFT_StorageObject +} + +func NewMSFT_StorageHealthEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageHealth, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageHealth{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_StorageHealthEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageHealth, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageHealth{ + MSFT_StorageObject: tmp, + } + return +} + +// + +// + +// +// +// +func (instance *MSFT_StorageHealth) GetSetting( /* IN */ Name string, + /* OUT */ StorageHealthSetting []MSFT_StorageHealthSetting, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSetting", Name) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +func (instance *MSFT_StorageHealth) SetSetting( /* IN */ Name string, + /* IN */ Value string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetSetting", Name, Value) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_StorageHealth) RemoveSetting( /* IN */ Name string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("RemoveSetting", Name) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +func (instance *MSFT_StorageHealth) GetReport( /* IN */ TargetObject MSFT_StorageObject, + /* IN */ Count uint32, + /* OUT */ Reports []MSFT_StorageHealthReport, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetReport", TargetObject, Count) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// + +// +// +func (instance *MSFT_StorageHealth) Maintenance( /* IN */ TargetObject MSFT_StorageFaultDomain, + /* IN */ EnableMaintenanceMode bool, + /* IN */ IgnoreDetachedVirtualDisks bool, + /* IN */ Timeout uint32, + /* IN */ Model string, + /* IN */ Manufacturer string, + /* IN */ ValidationFlags uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Maintenance", TargetObject, EnableMaintenanceMode, IgnoreDetachedVirtualDisks, Timeout, Model, Manufacturer, ValidationFlags) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_StorageHealth) RemoveIntent( /* IN */ TargetObject MSFT_StorageObject, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("RemoveIntent", TargetObject) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageHealthReport.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageHealthReport.go new file mode 100644 index 000000000..20e656750 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageHealthReport.go @@ -0,0 +1,142 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageHealthReport struct +type MSFT_StorageHealthReport struct { + *cim.WmiInstance + + // + Records []MSFT_HealthRecord + + // + ReportedObjectUniqueId string + + // + StorageSubsystemUniqueId string +} + +func NewMSFT_StorageHealthReportEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageHealthReport, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageHealthReport{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageHealthReportEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageHealthReport, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageHealthReport{ + WmiInstance: tmp, + } + return +} + +// SetRecords sets the value of Records for the instance +func (instance *MSFT_StorageHealthReport) SetPropertyRecords(value []MSFT_HealthRecord) (err error) { + return instance.SetProperty("Records", (value)) +} + +// GetRecords gets the value of Records for the instance +func (instance *MSFT_StorageHealthReport) GetPropertyRecords() (value []MSFT_HealthRecord, err error) { + retValue, err := instance.GetProperty("Records") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(MSFT_HealthRecord) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_HealthRecord is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, MSFT_HealthRecord(valuetmp)) + } + + return +} + +// SetReportedObjectUniqueId sets the value of ReportedObjectUniqueId for the instance +func (instance *MSFT_StorageHealthReport) SetPropertyReportedObjectUniqueId(value string) (err error) { + return instance.SetProperty("ReportedObjectUniqueId", (value)) +} + +// GetReportedObjectUniqueId gets the value of ReportedObjectUniqueId for the instance +func (instance *MSFT_StorageHealthReport) GetPropertyReportedObjectUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("ReportedObjectUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetStorageSubsystemUniqueId sets the value of StorageSubsystemUniqueId for the instance +func (instance *MSFT_StorageHealthReport) SetPropertyStorageSubsystemUniqueId(value string) (err error) { + return instance.SetProperty("StorageSubsystemUniqueId", (value)) +} + +// GetStorageSubsystemUniqueId gets the value of StorageSubsystemUniqueId for the instance +func (instance *MSFT_StorageHealthReport) GetPropertyStorageSubsystemUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("StorageSubsystemUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageHealthSetting.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageHealthSetting.go new file mode 100644 index 000000000..4c117e475 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageHealthSetting.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageHealthSetting struct +type MSFT_StorageHealthSetting struct { + *cim.WmiInstance + + // + Name string + + // + Value string +} + +func NewMSFT_StorageHealthSettingEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageHealthSetting, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageHealthSetting{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageHealthSettingEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageHealthSetting, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageHealthSetting{ + WmiInstance: tmp, + } + return +} + +// SetName sets the value of Name for the instance +func (instance *MSFT_StorageHealthSetting) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *MSFT_StorageHealthSetting) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetValue sets the value of Value for the instance +func (instance *MSFT_StorageHealthSetting) SetPropertyValue(value string) (err error) { + return instance.SetProperty("Value", (value)) +} + +// GetValue gets the value of Value for the instance +func (instance *MSFT_StorageHealthSetting) GetPropertyValue() (value string, err error) { + retValue, err := instance.GetProperty("Value") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageHealthStatusChangeEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageHealthStatusChangeEvent.go new file mode 100644 index 000000000..121d4cd74 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageHealthStatusChangeEvent.go @@ -0,0 +1,170 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageHealthStatusChangeEvent struct +type MSFT_StorageHealthStatusChangeEvent struct { + *MSFT_StorageEvent + + // + CurrentHealthStatus uint16 + + // + PreviousHealthStatus uint16 + + // + SourceUniqueId string + + // + StorageSubsystemUniqueId string +} + +func NewMSFT_StorageHealthStatusChangeEventEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageHealthStatusChangeEvent, err error) { + tmp, err := NewMSFT_StorageEventEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageHealthStatusChangeEvent{ + MSFT_StorageEvent: tmp, + } + return +} + +func NewMSFT_StorageHealthStatusChangeEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageHealthStatusChangeEvent, err error) { + tmp, err := NewMSFT_StorageEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageHealthStatusChangeEvent{ + MSFT_StorageEvent: tmp, + } + return +} + +// SetCurrentHealthStatus sets the value of CurrentHealthStatus for the instance +func (instance *MSFT_StorageHealthStatusChangeEvent) SetPropertyCurrentHealthStatus(value uint16) (err error) { + return instance.SetProperty("CurrentHealthStatus", (value)) +} + +// GetCurrentHealthStatus gets the value of CurrentHealthStatus for the instance +func (instance *MSFT_StorageHealthStatusChangeEvent) GetPropertyCurrentHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("CurrentHealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetPreviousHealthStatus sets the value of PreviousHealthStatus for the instance +func (instance *MSFT_StorageHealthStatusChangeEvent) SetPropertyPreviousHealthStatus(value uint16) (err error) { + return instance.SetProperty("PreviousHealthStatus", (value)) +} + +// GetPreviousHealthStatus gets the value of PreviousHealthStatus for the instance +func (instance *MSFT_StorageHealthStatusChangeEvent) GetPropertyPreviousHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("PreviousHealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetSourceUniqueId sets the value of SourceUniqueId for the instance +func (instance *MSFT_StorageHealthStatusChangeEvent) SetPropertySourceUniqueId(value string) (err error) { + return instance.SetProperty("SourceUniqueId", (value)) +} + +// GetSourceUniqueId gets the value of SourceUniqueId for the instance +func (instance *MSFT_StorageHealthStatusChangeEvent) GetPropertySourceUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("SourceUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetStorageSubsystemUniqueId sets the value of StorageSubsystemUniqueId for the instance +func (instance *MSFT_StorageHealthStatusChangeEvent) SetPropertyStorageSubsystemUniqueId(value string) (err error) { + return instance.SetProperty("StorageSubsystemUniqueId", (value)) +} + +// GetStorageSubsystemUniqueId gets the value of StorageSubsystemUniqueId for the instance +func (instance *MSFT_StorageHealthStatusChangeEvent) GetPropertyStorageSubsystemUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("StorageSubsystemUniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageJob.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageJob.go new file mode 100644 index 000000000..5168145aa --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageJob.go @@ -0,0 +1,747 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageJob struct +type MSFT_StorageJob struct { + *MSFT_StorageObject + + // + BytesProcessed uint64 + + // + BytesTotal uint64 + + // + DeleteOnCompletion bool + + // + Description string + + // + ElapsedTime string + + // + ErrorCode uint16 + + // + ErrorDescription string + + // + IsBackgroundTask bool + + // + JobState uint16 + + // + JobStatus string + + // + LocalOrUtcTime uint16 + + // + Name string + + // + OperationalStatus []uint16 + + // + OtherRecoveryAction string + + // + PercentComplete uint16 + + // + RecoveryAction uint16 + + // + StartTime string + + // + StatusDescriptions []string + + // + TimeBeforeRemoval string + + // + TimeOfLastStateChange string + + // + TimeSubmitted string +} + +func NewMSFT_StorageJobEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageJob, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageJob{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_StorageJobEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageJob, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageJob{ + MSFT_StorageObject: tmp, + } + return +} + +// SetBytesProcessed sets the value of BytesProcessed for the instance +func (instance *MSFT_StorageJob) SetPropertyBytesProcessed(value uint64) (err error) { + return instance.SetProperty("BytesProcessed", (value)) +} + +// GetBytesProcessed gets the value of BytesProcessed for the instance +func (instance *MSFT_StorageJob) GetPropertyBytesProcessed() (value uint64, err error) { + retValue, err := instance.GetProperty("BytesProcessed") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetBytesTotal sets the value of BytesTotal for the instance +func (instance *MSFT_StorageJob) SetPropertyBytesTotal(value uint64) (err error) { + return instance.SetProperty("BytesTotal", (value)) +} + +// GetBytesTotal gets the value of BytesTotal for the instance +func (instance *MSFT_StorageJob) GetPropertyBytesTotal() (value uint64, err error) { + retValue, err := instance.GetProperty("BytesTotal") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetDeleteOnCompletion sets the value of DeleteOnCompletion for the instance +func (instance *MSFT_StorageJob) SetPropertyDeleteOnCompletion(value bool) (err error) { + return instance.SetProperty("DeleteOnCompletion", (value)) +} + +// GetDeleteOnCompletion gets the value of DeleteOnCompletion for the instance +func (instance *MSFT_StorageJob) GetPropertyDeleteOnCompletion() (value bool, err error) { + retValue, err := instance.GetProperty("DeleteOnCompletion") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetDescription sets the value of Description for the instance +func (instance *MSFT_StorageJob) SetPropertyDescription(value string) (err error) { + return instance.SetProperty("Description", (value)) +} + +// GetDescription gets the value of Description for the instance +func (instance *MSFT_StorageJob) GetPropertyDescription() (value string, err error) { + retValue, err := instance.GetProperty("Description") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetElapsedTime sets the value of ElapsedTime for the instance +func (instance *MSFT_StorageJob) SetPropertyElapsedTime(value string) (err error) { + return instance.SetProperty("ElapsedTime", (value)) +} + +// GetElapsedTime gets the value of ElapsedTime for the instance +func (instance *MSFT_StorageJob) GetPropertyElapsedTime() (value string, err error) { + retValue, err := instance.GetProperty("ElapsedTime") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetErrorCode sets the value of ErrorCode for the instance +func (instance *MSFT_StorageJob) SetPropertyErrorCode(value uint16) (err error) { + return instance.SetProperty("ErrorCode", (value)) +} + +// GetErrorCode gets the value of ErrorCode for the instance +func (instance *MSFT_StorageJob) GetPropertyErrorCode() (value uint16, err error) { + retValue, err := instance.GetProperty("ErrorCode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetErrorDescription sets the value of ErrorDescription for the instance +func (instance *MSFT_StorageJob) SetPropertyErrorDescription(value string) (err error) { + return instance.SetProperty("ErrorDescription", (value)) +} + +// GetErrorDescription gets the value of ErrorDescription for the instance +func (instance *MSFT_StorageJob) GetPropertyErrorDescription() (value string, err error) { + retValue, err := instance.GetProperty("ErrorDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetIsBackgroundTask sets the value of IsBackgroundTask for the instance +func (instance *MSFT_StorageJob) SetPropertyIsBackgroundTask(value bool) (err error) { + return instance.SetProperty("IsBackgroundTask", (value)) +} + +// GetIsBackgroundTask gets the value of IsBackgroundTask for the instance +func (instance *MSFT_StorageJob) GetPropertyIsBackgroundTask() (value bool, err error) { + retValue, err := instance.GetProperty("IsBackgroundTask") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetJobState sets the value of JobState for the instance +func (instance *MSFT_StorageJob) SetPropertyJobState(value uint16) (err error) { + return instance.SetProperty("JobState", (value)) +} + +// GetJobState gets the value of JobState for the instance +func (instance *MSFT_StorageJob) GetPropertyJobState() (value uint16, err error) { + retValue, err := instance.GetProperty("JobState") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetJobStatus sets the value of JobStatus for the instance +func (instance *MSFT_StorageJob) SetPropertyJobStatus(value string) (err error) { + return instance.SetProperty("JobStatus", (value)) +} + +// GetJobStatus gets the value of JobStatus for the instance +func (instance *MSFT_StorageJob) GetPropertyJobStatus() (value string, err error) { + retValue, err := instance.GetProperty("JobStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetLocalOrUtcTime sets the value of LocalOrUtcTime for the instance +func (instance *MSFT_StorageJob) SetPropertyLocalOrUtcTime(value uint16) (err error) { + return instance.SetProperty("LocalOrUtcTime", (value)) +} + +// GetLocalOrUtcTime gets the value of LocalOrUtcTime for the instance +func (instance *MSFT_StorageJob) GetPropertyLocalOrUtcTime() (value uint16, err error) { + retValue, err := instance.GetProperty("LocalOrUtcTime") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetName sets the value of Name for the instance +func (instance *MSFT_StorageJob) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *MSFT_StorageJob) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_StorageJob) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_StorageJob) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetOtherRecoveryAction sets the value of OtherRecoveryAction for the instance +func (instance *MSFT_StorageJob) SetPropertyOtherRecoveryAction(value string) (err error) { + return instance.SetProperty("OtherRecoveryAction", (value)) +} + +// GetOtherRecoveryAction gets the value of OtherRecoveryAction for the instance +func (instance *MSFT_StorageJob) GetPropertyOtherRecoveryAction() (value string, err error) { + retValue, err := instance.GetProperty("OtherRecoveryAction") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPercentComplete sets the value of PercentComplete for the instance +func (instance *MSFT_StorageJob) SetPropertyPercentComplete(value uint16) (err error) { + return instance.SetProperty("PercentComplete", (value)) +} + +// GetPercentComplete gets the value of PercentComplete for the instance +func (instance *MSFT_StorageJob) GetPropertyPercentComplete() (value uint16, err error) { + retValue, err := instance.GetProperty("PercentComplete") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetRecoveryAction sets the value of RecoveryAction for the instance +func (instance *MSFT_StorageJob) SetPropertyRecoveryAction(value uint16) (err error) { + return instance.SetProperty("RecoveryAction", (value)) +} + +// GetRecoveryAction gets the value of RecoveryAction for the instance +func (instance *MSFT_StorageJob) GetPropertyRecoveryAction() (value uint16, err error) { + retValue, err := instance.GetProperty("RecoveryAction") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetStartTime sets the value of StartTime for the instance +func (instance *MSFT_StorageJob) SetPropertyStartTime(value string) (err error) { + return instance.SetProperty("StartTime", (value)) +} + +// GetStartTime gets the value of StartTime for the instance +func (instance *MSFT_StorageJob) GetPropertyStartTime() (value string, err error) { + retValue, err := instance.GetProperty("StartTime") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetStatusDescriptions sets the value of StatusDescriptions for the instance +func (instance *MSFT_StorageJob) SetPropertyStatusDescriptions(value []string) (err error) { + return instance.SetProperty("StatusDescriptions", (value)) +} + +// GetStatusDescriptions gets the value of StatusDescriptions for the instance +func (instance *MSFT_StorageJob) GetPropertyStatusDescriptions() (value []string, err error) { + retValue, err := instance.GetProperty("StatusDescriptions") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetTimeBeforeRemoval sets the value of TimeBeforeRemoval for the instance +func (instance *MSFT_StorageJob) SetPropertyTimeBeforeRemoval(value string) (err error) { + return instance.SetProperty("TimeBeforeRemoval", (value)) +} + +// GetTimeBeforeRemoval gets the value of TimeBeforeRemoval for the instance +func (instance *MSFT_StorageJob) GetPropertyTimeBeforeRemoval() (value string, err error) { + retValue, err := instance.GetProperty("TimeBeforeRemoval") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetTimeOfLastStateChange sets the value of TimeOfLastStateChange for the instance +func (instance *MSFT_StorageJob) SetPropertyTimeOfLastStateChange(value string) (err error) { + return instance.SetProperty("TimeOfLastStateChange", (value)) +} + +// GetTimeOfLastStateChange gets the value of TimeOfLastStateChange for the instance +func (instance *MSFT_StorageJob) GetPropertyTimeOfLastStateChange() (value string, err error) { + retValue, err := instance.GetProperty("TimeOfLastStateChange") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetTimeSubmitted sets the value of TimeSubmitted for the instance +func (instance *MSFT_StorageJob) SetPropertyTimeSubmitted(value string) (err error) { + return instance.SetProperty("TimeSubmitted", (value)) +} + +// GetTimeSubmitted gets the value of TimeSubmitted for the instance +func (instance *MSFT_StorageJob) GetPropertyTimeSubmitted() (value string, err error) { + retValue, err := instance.GetProperty("TimeSubmitted") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// + +// + +// +// +func (instance *MSFT_StorageJob) RequestStateChange( /* IN */ RequestedState uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("RequestStateChange", RequestedState) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *MSFT_StorageJob) GetExtendedStatus( /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetExtendedStatus") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_StorageJob) GetMessages( /* OUT */ Channels []uint16, + /* OUT */ Messages []string) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetMessages") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *MSFT_StorageJob) GetOutParameters( /* OUT */ OutParameters MSFT_StorageJobOutParams) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetOutParameters") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageJobOutParams.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageJobOutParams.go new file mode 100644 index 000000000..b465e3158 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageJobOutParams.go @@ -0,0 +1,49 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_StorageJobOutParams struct +type MSFT_StorageJobOutParams struct { + *cim.WmiInstance +} + +func NewMSFT_StorageJobOutParamsEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageJobOutParams, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageJobOutParams{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageJobOutParamsEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageJobOutParams, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageJobOutParams{ + WmiInstance: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageJobToAffectedStorageObject.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageJobToAffectedStorageObject.go new file mode 100644 index 000000000..47cf886ce --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageJobToAffectedStorageObject.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageJobToAffectedStorageObject struct +type MSFT_StorageJobToAffectedStorageObject struct { + *cim.WmiInstance + + // + AffectedStorageObject MSFT_StorageObject + + // + StorageJob MSFT_StorageJob +} + +func NewMSFT_StorageJobToAffectedStorageObjectEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageJobToAffectedStorageObject, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageJobToAffectedStorageObject{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageJobToAffectedStorageObjectEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageJobToAffectedStorageObject, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageJobToAffectedStorageObject{ + WmiInstance: tmp, + } + return +} + +// SetAffectedStorageObject sets the value of AffectedStorageObject for the instance +func (instance *MSFT_StorageJobToAffectedStorageObject) SetPropertyAffectedStorageObject(value MSFT_StorageObject) (err error) { + return instance.SetProperty("AffectedStorageObject", (value)) +} + +// GetAffectedStorageObject gets the value of AffectedStorageObject for the instance +func (instance *MSFT_StorageJobToAffectedStorageObject) GetPropertyAffectedStorageObject() (value MSFT_StorageObject, err error) { + retValue, err := instance.GetProperty("AffectedStorageObject") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageObject) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageObject is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageObject(valuetmp) + + return +} + +// SetStorageJob sets the value of StorageJob for the instance +func (instance *MSFT_StorageJobToAffectedStorageObject) SetPropertyStorageJob(value MSFT_StorageJob) (err error) { + return instance.SetProperty("StorageJob", (value)) +} + +// GetStorageJob gets the value of StorageJob for the instance +func (instance *MSFT_StorageJobToAffectedStorageObject) GetPropertyStorageJob() (value MSFT_StorageJob, err error) { + retValue, err := instance.GetProperty("StorageJob") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageJob) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageJob is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageJob(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageModificationEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageModificationEvent.go new file mode 100644 index 000000000..2674815a1 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageModificationEvent.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_StorageModificationEvent struct +type MSFT_StorageModificationEvent struct { + *MSFT_StorageEvent +} + +func NewMSFT_StorageModificationEventEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageModificationEvent, err error) { + tmp, err := NewMSFT_StorageEventEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageModificationEvent{ + MSFT_StorageEvent: tmp, + } + return +} + +func NewMSFT_StorageModificationEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageModificationEvent, err error) { + tmp, err := NewMSFT_StorageEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageModificationEvent{ + MSFT_StorageEvent: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNode.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNode.go new file mode 100644 index 000000000..cba00848c --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNode.go @@ -0,0 +1,322 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageNode struct +type MSFT_StorageNode struct { + *MSFT_StorageObject + + // + FirmwareVersion string + + // + Manufacturer string + + // + Model string + + // + Name string + + // + NameFormat uint16 + + // + OperationalStatus uint16 + + // + OtherIdentifyingInfo []string + + // + OtherIdentifyingInfoDescription []string + + // + SerialNumber string +} + +func NewMSFT_StorageNodeEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageNode, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageNode{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_StorageNodeEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageNode, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageNode{ + MSFT_StorageObject: tmp, + } + return +} + +// SetFirmwareVersion sets the value of FirmwareVersion for the instance +func (instance *MSFT_StorageNode) SetPropertyFirmwareVersion(value string) (err error) { + return instance.SetProperty("FirmwareVersion", (value)) +} + +// GetFirmwareVersion gets the value of FirmwareVersion for the instance +func (instance *MSFT_StorageNode) GetPropertyFirmwareVersion() (value string, err error) { + retValue, err := instance.GetProperty("FirmwareVersion") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetManufacturer sets the value of Manufacturer for the instance +func (instance *MSFT_StorageNode) SetPropertyManufacturer(value string) (err error) { + return instance.SetProperty("Manufacturer", (value)) +} + +// GetManufacturer gets the value of Manufacturer for the instance +func (instance *MSFT_StorageNode) GetPropertyManufacturer() (value string, err error) { + retValue, err := instance.GetProperty("Manufacturer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetModel sets the value of Model for the instance +func (instance *MSFT_StorageNode) SetPropertyModel(value string) (err error) { + return instance.SetProperty("Model", (value)) +} + +// GetModel gets the value of Model for the instance +func (instance *MSFT_StorageNode) GetPropertyModel() (value string, err error) { + retValue, err := instance.GetProperty("Model") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetName sets the value of Name for the instance +func (instance *MSFT_StorageNode) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *MSFT_StorageNode) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetNameFormat sets the value of NameFormat for the instance +func (instance *MSFT_StorageNode) SetPropertyNameFormat(value uint16) (err error) { + return instance.SetProperty("NameFormat", (value)) +} + +// GetNameFormat gets the value of NameFormat for the instance +func (instance *MSFT_StorageNode) GetPropertyNameFormat() (value uint16, err error) { + retValue, err := instance.GetProperty("NameFormat") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_StorageNode) SetPropertyOperationalStatus(value uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_StorageNode) GetPropertyOperationalStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetOtherIdentifyingInfo sets the value of OtherIdentifyingInfo for the instance +func (instance *MSFT_StorageNode) SetPropertyOtherIdentifyingInfo(value []string) (err error) { + return instance.SetProperty("OtherIdentifyingInfo", (value)) +} + +// GetOtherIdentifyingInfo gets the value of OtherIdentifyingInfo for the instance +func (instance *MSFT_StorageNode) GetPropertyOtherIdentifyingInfo() (value []string, err error) { + retValue, err := instance.GetProperty("OtherIdentifyingInfo") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetOtherIdentifyingInfoDescription sets the value of OtherIdentifyingInfoDescription for the instance +func (instance *MSFT_StorageNode) SetPropertyOtherIdentifyingInfoDescription(value []string) (err error) { + return instance.SetProperty("OtherIdentifyingInfoDescription", (value)) +} + +// GetOtherIdentifyingInfoDescription gets the value of OtherIdentifyingInfoDescription for the instance +func (instance *MSFT_StorageNode) GetPropertyOtherIdentifyingInfoDescription() (value []string, err error) { + retValue, err := instance.GetProperty("OtherIdentifyingInfoDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetSerialNumber sets the value of SerialNumber for the instance +func (instance *MSFT_StorageNode) SetPropertySerialNumber(value string) (err error) { + return instance.SetProperty("SerialNumber", (value)) +} + +// GetSerialNumber gets the value of SerialNumber for the instance +func (instance *MSFT_StorageNode) GetPropertySerialNumber() (value string, err error) { + retValue, err := instance.GetProperty("SerialNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToDisk.go new file mode 100644 index 000000000..b0a81cfa8 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToDisk.go @@ -0,0 +1,292 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageNodeToDisk struct +type MSFT_StorageNodeToDisk struct { + *cim.WmiInstance + + // + Disk MSFT_Disk + + // + DiskNumber uint32 + + // + HealthStatus uint16 + + // + IsOffline bool + + // + IsReadOnly bool + + // + OfflineReason uint16 + + // + OperationalStatus []uint16 + + // + StorageNode MSFT_StorageNode +} + +func NewMSFT_StorageNodeToDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageNodeToDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageNodeToDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageNodeToDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageNodeToDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageNodeToDisk{ + WmiInstance: tmp, + } + return +} + +// SetDisk sets the value of Disk for the instance +func (instance *MSFT_StorageNodeToDisk) SetPropertyDisk(value MSFT_Disk) (err error) { + return instance.SetProperty("Disk", (value)) +} + +// GetDisk gets the value of Disk for the instance +func (instance *MSFT_StorageNodeToDisk) GetPropertyDisk() (value MSFT_Disk, err error) { + retValue, err := instance.GetProperty("Disk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Disk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Disk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Disk(valuetmp) + + return +} + +// SetDiskNumber sets the value of DiskNumber for the instance +func (instance *MSFT_StorageNodeToDisk) SetPropertyDiskNumber(value uint32) (err error) { + return instance.SetProperty("DiskNumber", (value)) +} + +// GetDiskNumber gets the value of DiskNumber for the instance +func (instance *MSFT_StorageNodeToDisk) GetPropertyDiskNumber() (value uint32, err error) { + retValue, err := instance.GetProperty("DiskNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetHealthStatus sets the value of HealthStatus for the instance +func (instance *MSFT_StorageNodeToDisk) SetPropertyHealthStatus(value uint16) (err error) { + return instance.SetProperty("HealthStatus", (value)) +} + +// GetHealthStatus gets the value of HealthStatus for the instance +func (instance *MSFT_StorageNodeToDisk) GetPropertyHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("HealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetIsOffline sets the value of IsOffline for the instance +func (instance *MSFT_StorageNodeToDisk) SetPropertyIsOffline(value bool) (err error) { + return instance.SetProperty("IsOffline", (value)) +} + +// GetIsOffline gets the value of IsOffline for the instance +func (instance *MSFT_StorageNodeToDisk) GetPropertyIsOffline() (value bool, err error) { + retValue, err := instance.GetProperty("IsOffline") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsReadOnly sets the value of IsReadOnly for the instance +func (instance *MSFT_StorageNodeToDisk) SetPropertyIsReadOnly(value bool) (err error) { + return instance.SetProperty("IsReadOnly", (value)) +} + +// GetIsReadOnly gets the value of IsReadOnly for the instance +func (instance *MSFT_StorageNodeToDisk) GetPropertyIsReadOnly() (value bool, err error) { + retValue, err := instance.GetProperty("IsReadOnly") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetOfflineReason sets the value of OfflineReason for the instance +func (instance *MSFT_StorageNodeToDisk) SetPropertyOfflineReason(value uint16) (err error) { + return instance.SetProperty("OfflineReason", (value)) +} + +// GetOfflineReason gets the value of OfflineReason for the instance +func (instance *MSFT_StorageNodeToDisk) GetPropertyOfflineReason() (value uint16, err error) { + retValue, err := instance.GetProperty("OfflineReason") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_StorageNodeToDisk) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_StorageNodeToDisk) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetStorageNode sets the value of StorageNode for the instance +func (instance *MSFT_StorageNodeToDisk) SetPropertyStorageNode(value MSFT_StorageNode) (err error) { + return instance.SetProperty("StorageNode", (value)) +} + +// GetStorageNode gets the value of StorageNode for the instance +func (instance *MSFT_StorageNodeToDisk) GetPropertyStorageNode() (value MSFT_StorageNode, err error) { + retValue, err := instance.GetProperty("StorageNode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageNode) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageNode is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageNode(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToPhysicalDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToPhysicalDisk.go new file mode 100644 index 000000000..d177647c9 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToPhysicalDisk.go @@ -0,0 +1,354 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageNodeToPhysicalDisk struct +type MSFT_StorageNodeToPhysicalDisk struct { + *cim.WmiInstance + + // + DiskNumber uint32 + + // + HealthStatus uint16 + + // + IsMpioEnabled bool + + // + IsPhysicallyConnected bool + + // + LoadBalancePolicy uint16 + + // + OperationalStatus []uint16 + + // + PathId []string + + // + PathState []uint16 + + // + PhysicalDisk MSFT_PhysicalDisk + + // + StorageNode MSFT_StorageNode +} + +func NewMSFT_StorageNodeToPhysicalDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageNodeToPhysicalDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageNodeToPhysicalDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageNodeToPhysicalDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageNodeToPhysicalDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageNodeToPhysicalDisk{ + WmiInstance: tmp, + } + return +} + +// SetDiskNumber sets the value of DiskNumber for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) SetPropertyDiskNumber(value uint32) (err error) { + return instance.SetProperty("DiskNumber", (value)) +} + +// GetDiskNumber gets the value of DiskNumber for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) GetPropertyDiskNumber() (value uint32, err error) { + retValue, err := instance.GetProperty("DiskNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetHealthStatus sets the value of HealthStatus for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) SetPropertyHealthStatus(value uint16) (err error) { + return instance.SetProperty("HealthStatus", (value)) +} + +// GetHealthStatus gets the value of HealthStatus for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) GetPropertyHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("HealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetIsMpioEnabled sets the value of IsMpioEnabled for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) SetPropertyIsMpioEnabled(value bool) (err error) { + return instance.SetProperty("IsMpioEnabled", (value)) +} + +// GetIsMpioEnabled gets the value of IsMpioEnabled for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) GetPropertyIsMpioEnabled() (value bool, err error) { + retValue, err := instance.GetProperty("IsMpioEnabled") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsPhysicallyConnected sets the value of IsPhysicallyConnected for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) SetPropertyIsPhysicallyConnected(value bool) (err error) { + return instance.SetProperty("IsPhysicallyConnected", (value)) +} + +// GetIsPhysicallyConnected gets the value of IsPhysicallyConnected for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) GetPropertyIsPhysicallyConnected() (value bool, err error) { + retValue, err := instance.GetProperty("IsPhysicallyConnected") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetLoadBalancePolicy sets the value of LoadBalancePolicy for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) SetPropertyLoadBalancePolicy(value uint16) (err error) { + return instance.SetProperty("LoadBalancePolicy", (value)) +} + +// GetLoadBalancePolicy gets the value of LoadBalancePolicy for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) GetPropertyLoadBalancePolicy() (value uint16, err error) { + retValue, err := instance.GetProperty("LoadBalancePolicy") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetPathId sets the value of PathId for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) SetPropertyPathId(value []string) (err error) { + return instance.SetProperty("PathId", (value)) +} + +// GetPathId gets the value of PathId for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) GetPropertyPathId() (value []string, err error) { + retValue, err := instance.GetProperty("PathId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetPathState sets the value of PathState for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) SetPropertyPathState(value []uint16) (err error) { + return instance.SetProperty("PathState", (value)) +} + +// GetPathState gets the value of PathState for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) GetPropertyPathState() (value []uint16, err error) { + retValue, err := instance.GetProperty("PathState") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetPhysicalDisk sets the value of PhysicalDisk for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) SetPropertyPhysicalDisk(value MSFT_PhysicalDisk) (err error) { + return instance.SetProperty("PhysicalDisk", (value)) +} + +// GetPhysicalDisk gets the value of PhysicalDisk for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) GetPropertyPhysicalDisk() (value MSFT_PhysicalDisk, err error) { + retValue, err := instance.GetProperty("PhysicalDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_PhysicalDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_PhysicalDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_PhysicalDisk(valuetmp) + + return +} + +// SetStorageNode sets the value of StorageNode for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) SetPropertyStorageNode(value MSFT_StorageNode) (err error) { + return instance.SetProperty("StorageNode", (value)) +} + +// GetStorageNode gets the value of StorageNode for the instance +func (instance *MSFT_StorageNodeToPhysicalDisk) GetPropertyStorageNode() (value MSFT_StorageNode, err error) { + retValue, err := instance.GetProperty("StorageNode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageNode) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageNode is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageNode(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToStorageEnclosure.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToStorageEnclosure.go new file mode 100644 index 000000000..3ae28efbf --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToStorageEnclosure.go @@ -0,0 +1,418 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageNodeToStorageEnclosure struct +type MSFT_StorageNodeToStorageEnclosure struct { + *cim.WmiInstance + + // + CurrentSensorOperationalStatus []uint16 + + // + EnclosureNumber uint32 + + // + FanOperationalStatus []uint16 + + // + HealthStatus uint16 + + // + IOControllerOperationalStatus []uint16 + + // + IsPhysicallyConnected bool + + // + PowerSupplyOperationalStatus []uint16 + + // + SlotOperationalStatus []uint16 + + // + StorageEnclosure MSFT_StorageEnclosure + + // + StorageNode MSFT_StorageNode + + // + TemperatureSensorOperationalStatus []uint16 + + // + VoltageSensorOperationalStatus []uint16 +} + +func NewMSFT_StorageNodeToStorageEnclosureEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageNodeToStorageEnclosure, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageNodeToStorageEnclosure{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageNodeToStorageEnclosureEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageNodeToStorageEnclosure, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageNodeToStorageEnclosure{ + WmiInstance: tmp, + } + return +} + +// SetCurrentSensorOperationalStatus sets the value of CurrentSensorOperationalStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) SetPropertyCurrentSensorOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("CurrentSensorOperationalStatus", (value)) +} + +// GetCurrentSensorOperationalStatus gets the value of CurrentSensorOperationalStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) GetPropertyCurrentSensorOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("CurrentSensorOperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetEnclosureNumber sets the value of EnclosureNumber for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) SetPropertyEnclosureNumber(value uint32) (err error) { + return instance.SetProperty("EnclosureNumber", (value)) +} + +// GetEnclosureNumber gets the value of EnclosureNumber for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) GetPropertyEnclosureNumber() (value uint32, err error) { + retValue, err := instance.GetProperty("EnclosureNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetFanOperationalStatus sets the value of FanOperationalStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) SetPropertyFanOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("FanOperationalStatus", (value)) +} + +// GetFanOperationalStatus gets the value of FanOperationalStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) GetPropertyFanOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("FanOperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetHealthStatus sets the value of HealthStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) SetPropertyHealthStatus(value uint16) (err error) { + return instance.SetProperty("HealthStatus", (value)) +} + +// GetHealthStatus gets the value of HealthStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) GetPropertyHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("HealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetIOControllerOperationalStatus sets the value of IOControllerOperationalStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) SetPropertyIOControllerOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("IOControllerOperationalStatus", (value)) +} + +// GetIOControllerOperationalStatus gets the value of IOControllerOperationalStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) GetPropertyIOControllerOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("IOControllerOperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetIsPhysicallyConnected sets the value of IsPhysicallyConnected for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) SetPropertyIsPhysicallyConnected(value bool) (err error) { + return instance.SetProperty("IsPhysicallyConnected", (value)) +} + +// GetIsPhysicallyConnected gets the value of IsPhysicallyConnected for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) GetPropertyIsPhysicallyConnected() (value bool, err error) { + retValue, err := instance.GetProperty("IsPhysicallyConnected") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetPowerSupplyOperationalStatus sets the value of PowerSupplyOperationalStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) SetPropertyPowerSupplyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("PowerSupplyOperationalStatus", (value)) +} + +// GetPowerSupplyOperationalStatus gets the value of PowerSupplyOperationalStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) GetPropertyPowerSupplyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("PowerSupplyOperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSlotOperationalStatus sets the value of SlotOperationalStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) SetPropertySlotOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("SlotOperationalStatus", (value)) +} + +// GetSlotOperationalStatus gets the value of SlotOperationalStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) GetPropertySlotOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("SlotOperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetStorageEnclosure sets the value of StorageEnclosure for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) SetPropertyStorageEnclosure(value MSFT_StorageEnclosure) (err error) { + return instance.SetProperty("StorageEnclosure", (value)) +} + +// GetStorageEnclosure gets the value of StorageEnclosure for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) GetPropertyStorageEnclosure() (value MSFT_StorageEnclosure, err error) { + retValue, err := instance.GetProperty("StorageEnclosure") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageEnclosure) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageEnclosure is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageEnclosure(valuetmp) + + return +} + +// SetStorageNode sets the value of StorageNode for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) SetPropertyStorageNode(value MSFT_StorageNode) (err error) { + return instance.SetProperty("StorageNode", (value)) +} + +// GetStorageNode gets the value of StorageNode for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) GetPropertyStorageNode() (value MSFT_StorageNode, err error) { + retValue, err := instance.GetProperty("StorageNode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageNode) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageNode is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageNode(valuetmp) + + return +} + +// SetTemperatureSensorOperationalStatus sets the value of TemperatureSensorOperationalStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) SetPropertyTemperatureSensorOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("TemperatureSensorOperationalStatus", (value)) +} + +// GetTemperatureSensorOperationalStatus gets the value of TemperatureSensorOperationalStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) GetPropertyTemperatureSensorOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("TemperatureSensorOperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetVoltageSensorOperationalStatus sets the value of VoltageSensorOperationalStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) SetPropertyVoltageSensorOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("VoltageSensorOperationalStatus", (value)) +} + +// GetVoltageSensorOperationalStatus gets the value of VoltageSensorOperationalStatus for the instance +func (instance *MSFT_StorageNodeToStorageEnclosure) GetPropertyVoltageSensorOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("VoltageSensorOperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToStoragePool.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToStoragePool.go new file mode 100644 index 000000000..2cded689a --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToStoragePool.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageNodeToStoragePool struct +type MSFT_StorageNodeToStoragePool struct { + *cim.WmiInstance + + // + StorageNode MSFT_StorageNode + + // + StoragePool MSFT_StoragePool +} + +func NewMSFT_StorageNodeToStoragePoolEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageNodeToStoragePool, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageNodeToStoragePool{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageNodeToStoragePoolEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageNodeToStoragePool, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageNodeToStoragePool{ + WmiInstance: tmp, + } + return +} + +// SetStorageNode sets the value of StorageNode for the instance +func (instance *MSFT_StorageNodeToStoragePool) SetPropertyStorageNode(value MSFT_StorageNode) (err error) { + return instance.SetProperty("StorageNode", (value)) +} + +// GetStorageNode gets the value of StorageNode for the instance +func (instance *MSFT_StorageNodeToStoragePool) GetPropertyStorageNode() (value MSFT_StorageNode, err error) { + retValue, err := instance.GetProperty("StorageNode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageNode) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageNode is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageNode(valuetmp) + + return +} + +// SetStoragePool sets the value of StoragePool for the instance +func (instance *MSFT_StorageNodeToStoragePool) SetPropertyStoragePool(value MSFT_StoragePool) (err error) { + return instance.SetProperty("StoragePool", (value)) +} + +// GetStoragePool gets the value of StoragePool for the instance +func (instance *MSFT_StorageNodeToStoragePool) GetPropertyStoragePool() (value MSFT_StoragePool, err error) { + retValue, err := instance.GetProperty("StoragePool") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StoragePool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StoragePool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StoragePool(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToVirtualDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToVirtualDisk.go new file mode 100644 index 000000000..35d81102b --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToVirtualDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageNodeToVirtualDisk struct +type MSFT_StorageNodeToVirtualDisk struct { + *cim.WmiInstance + + // + StorageNode MSFT_StorageNode + + // + VirtualDisk MSFT_VirtualDisk +} + +func NewMSFT_StorageNodeToVirtualDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageNodeToVirtualDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageNodeToVirtualDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageNodeToVirtualDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageNodeToVirtualDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageNodeToVirtualDisk{ + WmiInstance: tmp, + } + return +} + +// SetStorageNode sets the value of StorageNode for the instance +func (instance *MSFT_StorageNodeToVirtualDisk) SetPropertyStorageNode(value MSFT_StorageNode) (err error) { + return instance.SetProperty("StorageNode", (value)) +} + +// GetStorageNode gets the value of StorageNode for the instance +func (instance *MSFT_StorageNodeToVirtualDisk) GetPropertyStorageNode() (value MSFT_StorageNode, err error) { + retValue, err := instance.GetProperty("StorageNode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageNode) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageNode is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageNode(valuetmp) + + return +} + +// SetVirtualDisk sets the value of VirtualDisk for the instance +func (instance *MSFT_StorageNodeToVirtualDisk) SetPropertyVirtualDisk(value MSFT_VirtualDisk) (err error) { + return instance.SetProperty("VirtualDisk", (value)) +} + +// GetVirtualDisk gets the value of VirtualDisk for the instance +func (instance *MSFT_StorageNodeToVirtualDisk) GetPropertyVirtualDisk() (value MSFT_VirtualDisk, err error) { + retValue, err := instance.GetProperty("VirtualDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_VirtualDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_VirtualDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_VirtualDisk(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToVolume.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToVolume.go new file mode 100644 index 000000000..038141919 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageNodeToVolume.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageNodeToVolume struct +type MSFT_StorageNodeToVolume struct { + *cim.WmiInstance + + // + StorageNode MSFT_StorageNode + + // + Volume MSFT_Volume +} + +func NewMSFT_StorageNodeToVolumeEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageNodeToVolume, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageNodeToVolume{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageNodeToVolumeEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageNodeToVolume, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageNodeToVolume{ + WmiInstance: tmp, + } + return +} + +// SetStorageNode sets the value of StorageNode for the instance +func (instance *MSFT_StorageNodeToVolume) SetPropertyStorageNode(value MSFT_StorageNode) (err error) { + return instance.SetProperty("StorageNode", (value)) +} + +// GetStorageNode gets the value of StorageNode for the instance +func (instance *MSFT_StorageNodeToVolume) GetPropertyStorageNode() (value MSFT_StorageNode, err error) { + retValue, err := instance.GetProperty("StorageNode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageNode) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageNode is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageNode(valuetmp) + + return +} + +// SetVolume sets the value of Volume for the instance +func (instance *MSFT_StorageNodeToVolume) SetPropertyVolume(value MSFT_Volume) (err error) { + return instance.SetProperty("Volume", (value)) +} + +// GetVolume gets the value of Volume for the instance +func (instance *MSFT_StorageNodeToVolume) GetPropertyVolume() (value MSFT_Volume, err error) { + retValue, err := instance.GetProperty("Volume") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Volume) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Volume is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Volume(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageObject.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageObject.go new file mode 100644 index 000000000..c2bb86dce --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageObject.go @@ -0,0 +1,231 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageObject struct +type MSFT_StorageObject struct { + *cim.WmiInstance + + // + ObjectId string + + // + PassThroughClass string + + // + PassThroughIds string + + // + PassThroughNamespace string + + // + PassThroughServer string + + // + UniqueId string +} + +func NewMSFT_StorageObjectEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageObject, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageObject{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageObjectEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageObject, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageObject{ + WmiInstance: tmp, + } + return +} + +// SetObjectId sets the value of ObjectId for the instance +func (instance *MSFT_StorageObject) SetPropertyObjectId(value string) (err error) { + return instance.SetProperty("ObjectId", (value)) +} + +// GetObjectId gets the value of ObjectId for the instance +func (instance *MSFT_StorageObject) GetPropertyObjectId() (value string, err error) { + retValue, err := instance.GetProperty("ObjectId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPassThroughClass sets the value of PassThroughClass for the instance +func (instance *MSFT_StorageObject) SetPropertyPassThroughClass(value string) (err error) { + return instance.SetProperty("PassThroughClass", (value)) +} + +// GetPassThroughClass gets the value of PassThroughClass for the instance +func (instance *MSFT_StorageObject) GetPropertyPassThroughClass() (value string, err error) { + retValue, err := instance.GetProperty("PassThroughClass") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPassThroughIds sets the value of PassThroughIds for the instance +func (instance *MSFT_StorageObject) SetPropertyPassThroughIds(value string) (err error) { + return instance.SetProperty("PassThroughIds", (value)) +} + +// GetPassThroughIds gets the value of PassThroughIds for the instance +func (instance *MSFT_StorageObject) GetPropertyPassThroughIds() (value string, err error) { + retValue, err := instance.GetProperty("PassThroughIds") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPassThroughNamespace sets the value of PassThroughNamespace for the instance +func (instance *MSFT_StorageObject) SetPropertyPassThroughNamespace(value string) (err error) { + return instance.SetProperty("PassThroughNamespace", (value)) +} + +// GetPassThroughNamespace gets the value of PassThroughNamespace for the instance +func (instance *MSFT_StorageObject) GetPropertyPassThroughNamespace() (value string, err error) { + retValue, err := instance.GetProperty("PassThroughNamespace") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPassThroughServer sets the value of PassThroughServer for the instance +func (instance *MSFT_StorageObject) SetPropertyPassThroughServer(value string) (err error) { + return instance.SetProperty("PassThroughServer", (value)) +} + +// GetPassThroughServer gets the value of PassThroughServer for the instance +func (instance *MSFT_StorageObject) GetPropertyPassThroughServer() (value string, err error) { + retValue, err := instance.GetProperty("PassThroughServer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetUniqueId sets the value of UniqueId for the instance +func (instance *MSFT_StorageObject) SetPropertyUniqueId(value string) (err error) { + return instance.SetProperty("UniqueId", (value)) +} + +// GetUniqueId gets the value of UniqueId for the instance +func (instance *MSFT_StorageObject) GetPropertyUniqueId() (value string, err error) { + retValue, err := instance.GetProperty("UniqueId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePool.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePool.go new file mode 100644 index 000000000..56cb03b4f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePool.go @@ -0,0 +1,1415 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StoragePool struct +type MSFT_StoragePool struct { + *MSFT_StorageObject + + // + AllocatedSize uint64 + + // + ClearOnDeallocate bool + + // + EnclosureAwareDefault bool + + // + FaultDomainAwarenessDefault uint16 + + // + FriendlyName string + + // + HealthStatus uint16 + + // + IsClustered bool + + // + IsPowerProtected bool + + // + IsPrimordial bool + + // + IsReadOnly bool + + // + LogicalSectorSize uint64 + + // + MediaTypeDefault uint16 + + // + Name string + + // + OperationalStatus []uint16 + + // + OtherOperationalStatusDescription string + + // + OtherUsageDescription string + + // + PhysicalSectorSize uint64 + + // + ProvisioningTypeDefault uint16 + + // + ReadOnlyReason uint16 + + // + RepairPolicy uint16 + + // + ResiliencySettingNameDefault string + + // + RetireMissingPhysicalDisks uint16 + + // + Size uint64 + + // + SupportedProvisioningTypes []uint16 + + // + SupportsDeduplication bool + + // + ThinProvisioningAlertThresholds []uint16 + + // + Usage uint16 + + // + Version uint16 + + // + WriteCacheSizeDefault uint64 + + // + WriteCacheSizeMax uint64 + + // + WriteCacheSizeMin uint64 +} + +func NewMSFT_StoragePoolEx1(instance *cim.WmiInstance) (newInstance *MSFT_StoragePool, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StoragePool{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_StoragePoolEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StoragePool, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StoragePool{ + MSFT_StorageObject: tmp, + } + return +} + +// SetAllocatedSize sets the value of AllocatedSize for the instance +func (instance *MSFT_StoragePool) SetPropertyAllocatedSize(value uint64) (err error) { + return instance.SetProperty("AllocatedSize", (value)) +} + +// GetAllocatedSize gets the value of AllocatedSize for the instance +func (instance *MSFT_StoragePool) GetPropertyAllocatedSize() (value uint64, err error) { + retValue, err := instance.GetProperty("AllocatedSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetClearOnDeallocate sets the value of ClearOnDeallocate for the instance +func (instance *MSFT_StoragePool) SetPropertyClearOnDeallocate(value bool) (err error) { + return instance.SetProperty("ClearOnDeallocate", (value)) +} + +// GetClearOnDeallocate gets the value of ClearOnDeallocate for the instance +func (instance *MSFT_StoragePool) GetPropertyClearOnDeallocate() (value bool, err error) { + retValue, err := instance.GetProperty("ClearOnDeallocate") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetEnclosureAwareDefault sets the value of EnclosureAwareDefault for the instance +func (instance *MSFT_StoragePool) SetPropertyEnclosureAwareDefault(value bool) (err error) { + return instance.SetProperty("EnclosureAwareDefault", (value)) +} + +// GetEnclosureAwareDefault gets the value of EnclosureAwareDefault for the instance +func (instance *MSFT_StoragePool) GetPropertyEnclosureAwareDefault() (value bool, err error) { + retValue, err := instance.GetProperty("EnclosureAwareDefault") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetFaultDomainAwarenessDefault sets the value of FaultDomainAwarenessDefault for the instance +func (instance *MSFT_StoragePool) SetPropertyFaultDomainAwarenessDefault(value uint16) (err error) { + return instance.SetProperty("FaultDomainAwarenessDefault", (value)) +} + +// GetFaultDomainAwarenessDefault gets the value of FaultDomainAwarenessDefault for the instance +func (instance *MSFT_StoragePool) GetPropertyFaultDomainAwarenessDefault() (value uint16, err error) { + retValue, err := instance.GetProperty("FaultDomainAwarenessDefault") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetFriendlyName sets the value of FriendlyName for the instance +func (instance *MSFT_StoragePool) SetPropertyFriendlyName(value string) (err error) { + return instance.SetProperty("FriendlyName", (value)) +} + +// GetFriendlyName gets the value of FriendlyName for the instance +func (instance *MSFT_StoragePool) GetPropertyFriendlyName() (value string, err error) { + retValue, err := instance.GetProperty("FriendlyName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetHealthStatus sets the value of HealthStatus for the instance +func (instance *MSFT_StoragePool) SetPropertyHealthStatus(value uint16) (err error) { + return instance.SetProperty("HealthStatus", (value)) +} + +// GetHealthStatus gets the value of HealthStatus for the instance +func (instance *MSFT_StoragePool) GetPropertyHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("HealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetIsClustered sets the value of IsClustered for the instance +func (instance *MSFT_StoragePool) SetPropertyIsClustered(value bool) (err error) { + return instance.SetProperty("IsClustered", (value)) +} + +// GetIsClustered gets the value of IsClustered for the instance +func (instance *MSFT_StoragePool) GetPropertyIsClustered() (value bool, err error) { + retValue, err := instance.GetProperty("IsClustered") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsPowerProtected sets the value of IsPowerProtected for the instance +func (instance *MSFT_StoragePool) SetPropertyIsPowerProtected(value bool) (err error) { + return instance.SetProperty("IsPowerProtected", (value)) +} + +// GetIsPowerProtected gets the value of IsPowerProtected for the instance +func (instance *MSFT_StoragePool) GetPropertyIsPowerProtected() (value bool, err error) { + retValue, err := instance.GetProperty("IsPowerProtected") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsPrimordial sets the value of IsPrimordial for the instance +func (instance *MSFT_StoragePool) SetPropertyIsPrimordial(value bool) (err error) { + return instance.SetProperty("IsPrimordial", (value)) +} + +// GetIsPrimordial gets the value of IsPrimordial for the instance +func (instance *MSFT_StoragePool) GetPropertyIsPrimordial() (value bool, err error) { + retValue, err := instance.GetProperty("IsPrimordial") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsReadOnly sets the value of IsReadOnly for the instance +func (instance *MSFT_StoragePool) SetPropertyIsReadOnly(value bool) (err error) { + return instance.SetProperty("IsReadOnly", (value)) +} + +// GetIsReadOnly gets the value of IsReadOnly for the instance +func (instance *MSFT_StoragePool) GetPropertyIsReadOnly() (value bool, err error) { + retValue, err := instance.GetProperty("IsReadOnly") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetLogicalSectorSize sets the value of LogicalSectorSize for the instance +func (instance *MSFT_StoragePool) SetPropertyLogicalSectorSize(value uint64) (err error) { + return instance.SetProperty("LogicalSectorSize", (value)) +} + +// GetLogicalSectorSize gets the value of LogicalSectorSize for the instance +func (instance *MSFT_StoragePool) GetPropertyLogicalSectorSize() (value uint64, err error) { + retValue, err := instance.GetProperty("LogicalSectorSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetMediaTypeDefault sets the value of MediaTypeDefault for the instance +func (instance *MSFT_StoragePool) SetPropertyMediaTypeDefault(value uint16) (err error) { + return instance.SetProperty("MediaTypeDefault", (value)) +} + +// GetMediaTypeDefault gets the value of MediaTypeDefault for the instance +func (instance *MSFT_StoragePool) GetPropertyMediaTypeDefault() (value uint16, err error) { + retValue, err := instance.GetProperty("MediaTypeDefault") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetName sets the value of Name for the instance +func (instance *MSFT_StoragePool) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *MSFT_StoragePool) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_StoragePool) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_StoragePool) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetOtherOperationalStatusDescription sets the value of OtherOperationalStatusDescription for the instance +func (instance *MSFT_StoragePool) SetPropertyOtherOperationalStatusDescription(value string) (err error) { + return instance.SetProperty("OtherOperationalStatusDescription", (value)) +} + +// GetOtherOperationalStatusDescription gets the value of OtherOperationalStatusDescription for the instance +func (instance *MSFT_StoragePool) GetPropertyOtherOperationalStatusDescription() (value string, err error) { + retValue, err := instance.GetProperty("OtherOperationalStatusDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOtherUsageDescription sets the value of OtherUsageDescription for the instance +func (instance *MSFT_StoragePool) SetPropertyOtherUsageDescription(value string) (err error) { + return instance.SetProperty("OtherUsageDescription", (value)) +} + +// GetOtherUsageDescription gets the value of OtherUsageDescription for the instance +func (instance *MSFT_StoragePool) GetPropertyOtherUsageDescription() (value string, err error) { + retValue, err := instance.GetProperty("OtherUsageDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPhysicalSectorSize sets the value of PhysicalSectorSize for the instance +func (instance *MSFT_StoragePool) SetPropertyPhysicalSectorSize(value uint64) (err error) { + return instance.SetProperty("PhysicalSectorSize", (value)) +} + +// GetPhysicalSectorSize gets the value of PhysicalSectorSize for the instance +func (instance *MSFT_StoragePool) GetPropertyPhysicalSectorSize() (value uint64, err error) { + retValue, err := instance.GetProperty("PhysicalSectorSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetProvisioningTypeDefault sets the value of ProvisioningTypeDefault for the instance +func (instance *MSFT_StoragePool) SetPropertyProvisioningTypeDefault(value uint16) (err error) { + return instance.SetProperty("ProvisioningTypeDefault", (value)) +} + +// GetProvisioningTypeDefault gets the value of ProvisioningTypeDefault for the instance +func (instance *MSFT_StoragePool) GetPropertyProvisioningTypeDefault() (value uint16, err error) { + retValue, err := instance.GetProperty("ProvisioningTypeDefault") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetReadOnlyReason sets the value of ReadOnlyReason for the instance +func (instance *MSFT_StoragePool) SetPropertyReadOnlyReason(value uint16) (err error) { + return instance.SetProperty("ReadOnlyReason", (value)) +} + +// GetReadOnlyReason gets the value of ReadOnlyReason for the instance +func (instance *MSFT_StoragePool) GetPropertyReadOnlyReason() (value uint16, err error) { + retValue, err := instance.GetProperty("ReadOnlyReason") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetRepairPolicy sets the value of RepairPolicy for the instance +func (instance *MSFT_StoragePool) SetPropertyRepairPolicy(value uint16) (err error) { + return instance.SetProperty("RepairPolicy", (value)) +} + +// GetRepairPolicy gets the value of RepairPolicy for the instance +func (instance *MSFT_StoragePool) GetPropertyRepairPolicy() (value uint16, err error) { + retValue, err := instance.GetProperty("RepairPolicy") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetResiliencySettingNameDefault sets the value of ResiliencySettingNameDefault for the instance +func (instance *MSFT_StoragePool) SetPropertyResiliencySettingNameDefault(value string) (err error) { + return instance.SetProperty("ResiliencySettingNameDefault", (value)) +} + +// GetResiliencySettingNameDefault gets the value of ResiliencySettingNameDefault for the instance +func (instance *MSFT_StoragePool) GetPropertyResiliencySettingNameDefault() (value string, err error) { + retValue, err := instance.GetProperty("ResiliencySettingNameDefault") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetRetireMissingPhysicalDisks sets the value of RetireMissingPhysicalDisks for the instance +func (instance *MSFT_StoragePool) SetPropertyRetireMissingPhysicalDisks(value uint16) (err error) { + return instance.SetProperty("RetireMissingPhysicalDisks", (value)) +} + +// GetRetireMissingPhysicalDisks gets the value of RetireMissingPhysicalDisks for the instance +func (instance *MSFT_StoragePool) GetPropertyRetireMissingPhysicalDisks() (value uint16, err error) { + retValue, err := instance.GetProperty("RetireMissingPhysicalDisks") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetSize sets the value of Size for the instance +func (instance *MSFT_StoragePool) SetPropertySize(value uint64) (err error) { + return instance.SetProperty("Size", (value)) +} + +// GetSize gets the value of Size for the instance +func (instance *MSFT_StoragePool) GetPropertySize() (value uint64, err error) { + retValue, err := instance.GetProperty("Size") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetSupportedProvisioningTypes sets the value of SupportedProvisioningTypes for the instance +func (instance *MSFT_StoragePool) SetPropertySupportedProvisioningTypes(value []uint16) (err error) { + return instance.SetProperty("SupportedProvisioningTypes", (value)) +} + +// GetSupportedProvisioningTypes gets the value of SupportedProvisioningTypes for the instance +func (instance *MSFT_StoragePool) GetPropertySupportedProvisioningTypes() (value []uint16, err error) { + retValue, err := instance.GetProperty("SupportedProvisioningTypes") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSupportsDeduplication sets the value of SupportsDeduplication for the instance +func (instance *MSFT_StoragePool) SetPropertySupportsDeduplication(value bool) (err error) { + return instance.SetProperty("SupportsDeduplication", (value)) +} + +// GetSupportsDeduplication gets the value of SupportsDeduplication for the instance +func (instance *MSFT_StoragePool) GetPropertySupportsDeduplication() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsDeduplication") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetThinProvisioningAlertThresholds sets the value of ThinProvisioningAlertThresholds for the instance +func (instance *MSFT_StoragePool) SetPropertyThinProvisioningAlertThresholds(value []uint16) (err error) { + return instance.SetProperty("ThinProvisioningAlertThresholds", (value)) +} + +// GetThinProvisioningAlertThresholds gets the value of ThinProvisioningAlertThresholds for the instance +func (instance *MSFT_StoragePool) GetPropertyThinProvisioningAlertThresholds() (value []uint16, err error) { + retValue, err := instance.GetProperty("ThinProvisioningAlertThresholds") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetUsage sets the value of Usage for the instance +func (instance *MSFT_StoragePool) SetPropertyUsage(value uint16) (err error) { + return instance.SetProperty("Usage", (value)) +} + +// GetUsage gets the value of Usage for the instance +func (instance *MSFT_StoragePool) GetPropertyUsage() (value uint16, err error) { + retValue, err := instance.GetProperty("Usage") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetVersion sets the value of Version for the instance +func (instance *MSFT_StoragePool) SetPropertyVersion(value uint16) (err error) { + return instance.SetProperty("Version", (value)) +} + +// GetVersion gets the value of Version for the instance +func (instance *MSFT_StoragePool) GetPropertyVersion() (value uint16, err error) { + retValue, err := instance.GetProperty("Version") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetWriteCacheSizeDefault sets the value of WriteCacheSizeDefault for the instance +func (instance *MSFT_StoragePool) SetPropertyWriteCacheSizeDefault(value uint64) (err error) { + return instance.SetProperty("WriteCacheSizeDefault", (value)) +} + +// GetWriteCacheSizeDefault gets the value of WriteCacheSizeDefault for the instance +func (instance *MSFT_StoragePool) GetPropertyWriteCacheSizeDefault() (value uint64, err error) { + retValue, err := instance.GetProperty("WriteCacheSizeDefault") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetWriteCacheSizeMax sets the value of WriteCacheSizeMax for the instance +func (instance *MSFT_StoragePool) SetPropertyWriteCacheSizeMax(value uint64) (err error) { + return instance.SetProperty("WriteCacheSizeMax", (value)) +} + +// GetWriteCacheSizeMax gets the value of WriteCacheSizeMax for the instance +func (instance *MSFT_StoragePool) GetPropertyWriteCacheSizeMax() (value uint64, err error) { + retValue, err := instance.GetProperty("WriteCacheSizeMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetWriteCacheSizeMin sets the value of WriteCacheSizeMin for the instance +func (instance *MSFT_StoragePool) SetPropertyWriteCacheSizeMin(value uint64) (err error) { + return instance.SetProperty("WriteCacheSizeMin", (value)) +} + +// GetWriteCacheSizeMin gets the value of WriteCacheSizeMin for the instance +func (instance *MSFT_StoragePool) GetPropertyWriteCacheSizeMin() (value uint64, err error) { + retValue, err := instance.GetProperty("WriteCacheSizeMin") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +// +// +// +// +func (instance *MSFT_StoragePool) CreateVirtualDisk( /* IN */ FriendlyName string, + /* IN */ Size uint64, + /* IN */ UseMaximumSize bool, + /* IN */ ProvisioningType uint16, + /* IN */ AllocationUnitSize uint64, + /* IN */ MediaType uint16, + /* IN */ ResiliencySettingName string, + /* IN */ Usage uint16, + /* IN */ OtherUsageDescription string, + /* IN */ NumberOfDataCopies uint16, + /* IN */ PhysicalDiskRedundancy uint16, + /* IN */ NumberOfColumns uint16, + /* IN */ AutoNumberOfColumns bool, + /* IN */ Interleave uint64, + /* IN */ NumberOfGroups uint16, + /* IN */ IsEnclosureAware bool, + /* IN */ FaultDomainAwareness uint16, + /* IN */ ColumnIsolation uint16, + /* IN */ PhysicalDisksToUse []MSFT_PhysicalDisk, + /* IN */ StorageFaultDomainsToUse []MSFT_StorageFaultDomain, + /* IN */ StorageTiers []MSFT_StorageTier, + /* IN */ StorageTierSizes []uint64, + /* IN */ WriteCacheSize uint64, + /* IN */ AutoWriteCacheSize bool, + /* IN */ ReadCacheSize uint64, + /* IN */ RunAsJob bool, + /* OUT */ CreatedVirtualDisk MSFT_VirtualDisk, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateVirtualDisk", FriendlyName, Size, UseMaximumSize, ProvisioningType, AllocationUnitSize, MediaType, ResiliencySettingName, Usage, OtherUsageDescription, NumberOfDataCopies, PhysicalDiskRedundancy, NumberOfColumns, AutoNumberOfColumns, Interleave, NumberOfGroups, IsEnclosureAware, FaultDomainAwareness, ColumnIsolation, PhysicalDisksToUse, StorageFaultDomainsToUse, StorageTiers, StorageTierSizes, WriteCacheSize, AutoWriteCacheSize, ReadCacheSize, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +// +// +// +// +func (instance *MSFT_StoragePool) CreateVolume( /* IN */ FriendlyName string, + /* IN */ Size uint64, + /* IN */ StorageTiers []MSFT_StorageTier, + /* IN */ StorageTierSizes []uint64, + /* IN */ ProvisioningType uint16, + /* IN */ ResiliencySettingName string, + /* IN */ PhysicalDiskRedundancy uint16, + /* IN */ NumberOfColumns uint16, + /* IN */ FileSystem uint16, + /* IN */ AccessPath string, + /* IN */ AllocationUnitSize uint32, + /* IN */ ReadCacheSize uint64, + /* IN */ FileServer MSFT_FileServer, + /* OUT */ CreatedVolume MSFT_Volume, + /* OPTIONAL IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateVolume", FriendlyName, Size, StorageTiers, StorageTierSizes, ProvisioningType, ResiliencySettingName, PhysicalDiskRedundancy, NumberOfColumns, FileSystem, AccessPath, AllocationUnitSize, ReadCacheSize, FileServer, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +// +// +// +// +func (instance *MSFT_StoragePool) CreateStorageTier( /* IN */ FriendlyName string, + /* IN */ ProvisioningType uint16, + /* IN */ AllocationUnitSize uint64, + /* IN */ MediaType uint16, + /* IN */ FaultDomainAwareness uint16, + /* IN */ ColumnIsolation uint16, + /* IN */ StorageFaultDomainsToUse []MSFT_StorageFaultDomain, + /* IN */ ResiliencySettingName string, + /* IN */ Usage uint16, + /* IN */ Interleave uint64, + /* IN */ NumberOfDataCopies uint16, + /* IN */ NumberOfGroups uint16, + /* IN */ NumberOfColumns uint16, + /* IN */ PhysicalDiskRedundancy uint16, + /* IN */ Description string, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageTier MSFT_StorageTier, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateStorageTier", FriendlyName, ProvisioningType, AllocationUnitSize, MediaType, FaultDomainAwareness, ColumnIsolation, StorageFaultDomainsToUse, ResiliencySettingName, Usage, Interleave, NumberOfDataCopies, NumberOfGroups, NumberOfColumns, PhysicalDiskRedundancy, Description, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_StoragePool) DeleteObject( /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("DeleteObject", RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *MSFT_StoragePool) Upgrade( /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Upgrade") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_StoragePool) Optimize( /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Optimize", RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// + +// +// +// +func (instance *MSFT_StoragePool) AddPhysicalDisk( /* IN */ PhysicalDisks []MSFT_PhysicalDisk, + /* IN */ Usage uint16, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("AddPhysicalDisk", PhysicalDisks, Usage, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +func (instance *MSFT_StoragePool) RemovePhysicalDisk( /* IN */ PhysicalDisks []MSFT_PhysicalDisk, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("RemovePhysicalDisk", PhysicalDisks, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +// +// +// +func (instance *MSFT_StoragePool) GetSupportedSize( /* IN */ ResiliencySettingName string, + /* IN */ FaultDomainAwareness uint16, + /* OUT */ SupportedSizes []uint64, + /* OUT */ VirtualDiskSizeMin uint64, + /* OUT */ VirtualDiskSizeMax uint64, + /* OUT */ VirtualDiskSizeDivisor uint64, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSupportedSize", ResiliencySettingName, FaultDomainAwareness) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_StoragePool) GetSecurityDescriptor( /* OUT */ SecurityDescriptor string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSecurityDescriptor") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_StoragePool) SetSecurityDescriptor( /* IN */ SecurityDescriptor string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetSecurityDescriptor", SecurityDescriptor) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_StoragePool) SetFriendlyName( /* IN */ FriendlyName string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetFriendlyName", FriendlyName) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +func (instance *MSFT_StoragePool) SetUsage( /* IN */ Usage uint16, + /* IN */ OtherUsageDescription string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetUsage", Usage, OtherUsageDescription) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// + +// +// +func (instance *MSFT_StoragePool) SetDefaults( /* IN */ ProvisioningTypeDefault uint16, + /* IN */ MediaTypeDefault uint16, + /* IN */ ResiliencySettingNameDefault string, + /* IN */ EnclosureAwareDefault bool, + /* IN */ FaultDomainAwarenessDefault uint16, + /* IN */ WriteCacheSizeDefault uint64, + /* IN */ AutoWriteCacheSize bool, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetDefaults", ProvisioningTypeDefault, MediaTypeDefault, ResiliencySettingNameDefault, EnclosureAwareDefault, FaultDomainAwarenessDefault, WriteCacheSizeDefault, AutoWriteCacheSize) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// + +// +// +func (instance *MSFT_StoragePool) SetAttributes( /* IN */ IsReadOnly bool, + /* IN */ ClearOnDeallocate bool, + /* IN */ IsPowerProtected bool, + /* IN */ RepairPolicy uint16, + /* IN */ RetireMissingPhysicalDisks uint16, + /* IN */ ThinProvisioningAlertThresholds []uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetAttributes", IsReadOnly, ClearOnDeallocate, IsPowerProtected, RepairPolicy, RetireMissingPhysicalDisks, ThinProvisioningAlertThresholds) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToPhysicalDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToPhysicalDisk.go new file mode 100644 index 000000000..6180c6d23 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToPhysicalDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StoragePoolToPhysicalDisk struct +type MSFT_StoragePoolToPhysicalDisk struct { + *cim.WmiInstance + + // + PhysicalDisk MSFT_PhysicalDisk + + // + StoragePool MSFT_StoragePool +} + +func NewMSFT_StoragePoolToPhysicalDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_StoragePoolToPhysicalDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StoragePoolToPhysicalDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StoragePoolToPhysicalDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StoragePoolToPhysicalDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StoragePoolToPhysicalDisk{ + WmiInstance: tmp, + } + return +} + +// SetPhysicalDisk sets the value of PhysicalDisk for the instance +func (instance *MSFT_StoragePoolToPhysicalDisk) SetPropertyPhysicalDisk(value MSFT_PhysicalDisk) (err error) { + return instance.SetProperty("PhysicalDisk", (value)) +} + +// GetPhysicalDisk gets the value of PhysicalDisk for the instance +func (instance *MSFT_StoragePoolToPhysicalDisk) GetPropertyPhysicalDisk() (value MSFT_PhysicalDisk, err error) { + retValue, err := instance.GetProperty("PhysicalDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_PhysicalDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_PhysicalDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_PhysicalDisk(valuetmp) + + return +} + +// SetStoragePool sets the value of StoragePool for the instance +func (instance *MSFT_StoragePoolToPhysicalDisk) SetPropertyStoragePool(value MSFT_StoragePool) (err error) { + return instance.SetProperty("StoragePool", (value)) +} + +// GetStoragePool gets the value of StoragePool for the instance +func (instance *MSFT_StoragePoolToPhysicalDisk) GetPropertyStoragePool() (value MSFT_StoragePool, err error) { + retValue, err := instance.GetProperty("StoragePool") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StoragePool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StoragePool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StoragePool(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToResiliencySetting.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToResiliencySetting.go new file mode 100644 index 000000000..3878f86f5 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToResiliencySetting.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StoragePoolToResiliencySetting struct +type MSFT_StoragePoolToResiliencySetting struct { + *cim.WmiInstance + + // + ResiliencySetting MSFT_ResiliencySetting + + // + StoragePool MSFT_StoragePool +} + +func NewMSFT_StoragePoolToResiliencySettingEx1(instance *cim.WmiInstance) (newInstance *MSFT_StoragePoolToResiliencySetting, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StoragePoolToResiliencySetting{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StoragePoolToResiliencySettingEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StoragePoolToResiliencySetting, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StoragePoolToResiliencySetting{ + WmiInstance: tmp, + } + return +} + +// SetResiliencySetting sets the value of ResiliencySetting for the instance +func (instance *MSFT_StoragePoolToResiliencySetting) SetPropertyResiliencySetting(value MSFT_ResiliencySetting) (err error) { + return instance.SetProperty("ResiliencySetting", (value)) +} + +// GetResiliencySetting gets the value of ResiliencySetting for the instance +func (instance *MSFT_StoragePoolToResiliencySetting) GetPropertyResiliencySetting() (value MSFT_ResiliencySetting, err error) { + retValue, err := instance.GetProperty("ResiliencySetting") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_ResiliencySetting) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_ResiliencySetting is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_ResiliencySetting(valuetmp) + + return +} + +// SetStoragePool sets the value of StoragePool for the instance +func (instance *MSFT_StoragePoolToResiliencySetting) SetPropertyStoragePool(value MSFT_StoragePool) (err error) { + return instance.SetProperty("StoragePool", (value)) +} + +// GetStoragePool gets the value of StoragePool for the instance +func (instance *MSFT_StoragePoolToResiliencySetting) GetPropertyStoragePool() (value MSFT_StoragePool, err error) { + retValue, err := instance.GetProperty("StoragePool") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StoragePool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StoragePool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StoragePool(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToStorageTier.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToStorageTier.go new file mode 100644 index 000000000..44d42e5b4 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToStorageTier.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StoragePoolToStorageTier struct +type MSFT_StoragePoolToStorageTier struct { + *cim.WmiInstance + + // + StoragePool MSFT_StoragePool + + // + StorageTier MSFT_StorageTier +} + +func NewMSFT_StoragePoolToStorageTierEx1(instance *cim.WmiInstance) (newInstance *MSFT_StoragePoolToStorageTier, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StoragePoolToStorageTier{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StoragePoolToStorageTierEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StoragePoolToStorageTier, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StoragePoolToStorageTier{ + WmiInstance: tmp, + } + return +} + +// SetStoragePool sets the value of StoragePool for the instance +func (instance *MSFT_StoragePoolToStorageTier) SetPropertyStoragePool(value MSFT_StoragePool) (err error) { + return instance.SetProperty("StoragePool", (value)) +} + +// GetStoragePool gets the value of StoragePool for the instance +func (instance *MSFT_StoragePoolToStorageTier) GetPropertyStoragePool() (value MSFT_StoragePool, err error) { + retValue, err := instance.GetProperty("StoragePool") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StoragePool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StoragePool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StoragePool(valuetmp) + + return +} + +// SetStorageTier sets the value of StorageTier for the instance +func (instance *MSFT_StoragePoolToStorageTier) SetPropertyStorageTier(value MSFT_StorageTier) (err error) { + return instance.SetProperty("StorageTier", (value)) +} + +// GetStorageTier gets the value of StorageTier for the instance +func (instance *MSFT_StoragePoolToStorageTier) GetPropertyStorageTier() (value MSFT_StorageTier, err error) { + retValue, err := instance.GetProperty("StorageTier") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageTier) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageTier is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageTier(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToVirtualDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToVirtualDisk.go new file mode 100644 index 000000000..8f5e7e38c --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToVirtualDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StoragePoolToVirtualDisk struct +type MSFT_StoragePoolToVirtualDisk struct { + *cim.WmiInstance + + // + StoragePool MSFT_StoragePool + + // + VirtualDisk MSFT_VirtualDisk +} + +func NewMSFT_StoragePoolToVirtualDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_StoragePoolToVirtualDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StoragePoolToVirtualDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StoragePoolToVirtualDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StoragePoolToVirtualDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StoragePoolToVirtualDisk{ + WmiInstance: tmp, + } + return +} + +// SetStoragePool sets the value of StoragePool for the instance +func (instance *MSFT_StoragePoolToVirtualDisk) SetPropertyStoragePool(value MSFT_StoragePool) (err error) { + return instance.SetProperty("StoragePool", (value)) +} + +// GetStoragePool gets the value of StoragePool for the instance +func (instance *MSFT_StoragePoolToVirtualDisk) GetPropertyStoragePool() (value MSFT_StoragePool, err error) { + retValue, err := instance.GetProperty("StoragePool") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StoragePool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StoragePool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StoragePool(valuetmp) + + return +} + +// SetVirtualDisk sets the value of VirtualDisk for the instance +func (instance *MSFT_StoragePoolToVirtualDisk) SetPropertyVirtualDisk(value MSFT_VirtualDisk) (err error) { + return instance.SetProperty("VirtualDisk", (value)) +} + +// GetVirtualDisk gets the value of VirtualDisk for the instance +func (instance *MSFT_StoragePoolToVirtualDisk) GetPropertyVirtualDisk() (value MSFT_VirtualDisk, err error) { + retValue, err := instance.GetProperty("VirtualDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_VirtualDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_VirtualDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_VirtualDisk(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToVolume.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToVolume.go new file mode 100644 index 000000000..60a72c274 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StoragePoolToVolume.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StoragePoolToVolume struct +type MSFT_StoragePoolToVolume struct { + *cim.WmiInstance + + // + StoragePool MSFT_StoragePool + + // + Volume MSFT_Volume +} + +func NewMSFT_StoragePoolToVolumeEx1(instance *cim.WmiInstance) (newInstance *MSFT_StoragePoolToVolume, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StoragePoolToVolume{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StoragePoolToVolumeEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StoragePoolToVolume, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StoragePoolToVolume{ + WmiInstance: tmp, + } + return +} + +// SetStoragePool sets the value of StoragePool for the instance +func (instance *MSFT_StoragePoolToVolume) SetPropertyStoragePool(value MSFT_StoragePool) (err error) { + return instance.SetProperty("StoragePool", (value)) +} + +// GetStoragePool gets the value of StoragePool for the instance +func (instance *MSFT_StoragePoolToVolume) GetPropertyStoragePool() (value MSFT_StoragePool, err error) { + retValue, err := instance.GetProperty("StoragePool") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StoragePool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StoragePool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StoragePool(valuetmp) + + return +} + +// SetVolume sets the value of Volume for the instance +func (instance *MSFT_StoragePoolToVolume) SetPropertyVolume(value MSFT_Volume) (err error) { + return instance.SetProperty("Volume", (value)) +} + +// GetVolume gets the value of Volume for the instance +func (instance *MSFT_StoragePoolToVolume) GetPropertyVolume() (value MSFT_Volume, err error) { + retValue, err := instance.GetProperty("Volume") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Volume) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Volume is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Volume(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageProvider.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageProvider.go new file mode 100644 index 000000000..8b271da66 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageProvider.go @@ -0,0 +1,472 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageProvider struct +type MSFT_StorageProvider struct { + *MSFT_StorageObject + + // + CimServerName string + + // + Manufacturer string + + // + Name string + + // + RemoteSubsystemCacheMode uint16 + + // + SupportedRemoteSubsystemCacheModes []uint16 + + // + SupportsSubsystemRegistration bool + + // + Type uint16 + + // + URI string + + // + URI_IP string + + // + Version string +} + +func NewMSFT_StorageProviderEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageProvider, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageProvider{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_StorageProviderEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageProvider, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageProvider{ + MSFT_StorageObject: tmp, + } + return +} + +// SetCimServerName sets the value of CimServerName for the instance +func (instance *MSFT_StorageProvider) SetPropertyCimServerName(value string) (err error) { + return instance.SetProperty("CimServerName", (value)) +} + +// GetCimServerName gets the value of CimServerName for the instance +func (instance *MSFT_StorageProvider) GetPropertyCimServerName() (value string, err error) { + retValue, err := instance.GetProperty("CimServerName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetManufacturer sets the value of Manufacturer for the instance +func (instance *MSFT_StorageProvider) SetPropertyManufacturer(value string) (err error) { + return instance.SetProperty("Manufacturer", (value)) +} + +// GetManufacturer gets the value of Manufacturer for the instance +func (instance *MSFT_StorageProvider) GetPropertyManufacturer() (value string, err error) { + retValue, err := instance.GetProperty("Manufacturer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetName sets the value of Name for the instance +func (instance *MSFT_StorageProvider) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *MSFT_StorageProvider) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetRemoteSubsystemCacheMode sets the value of RemoteSubsystemCacheMode for the instance +func (instance *MSFT_StorageProvider) SetPropertyRemoteSubsystemCacheMode(value uint16) (err error) { + return instance.SetProperty("RemoteSubsystemCacheMode", (value)) +} + +// GetRemoteSubsystemCacheMode gets the value of RemoteSubsystemCacheMode for the instance +func (instance *MSFT_StorageProvider) GetPropertyRemoteSubsystemCacheMode() (value uint16, err error) { + retValue, err := instance.GetProperty("RemoteSubsystemCacheMode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetSupportedRemoteSubsystemCacheModes sets the value of SupportedRemoteSubsystemCacheModes for the instance +func (instance *MSFT_StorageProvider) SetPropertySupportedRemoteSubsystemCacheModes(value []uint16) (err error) { + return instance.SetProperty("SupportedRemoteSubsystemCacheModes", (value)) +} + +// GetSupportedRemoteSubsystemCacheModes gets the value of SupportedRemoteSubsystemCacheModes for the instance +func (instance *MSFT_StorageProvider) GetPropertySupportedRemoteSubsystemCacheModes() (value []uint16, err error) { + retValue, err := instance.GetProperty("SupportedRemoteSubsystemCacheModes") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSupportsSubsystemRegistration sets the value of SupportsSubsystemRegistration for the instance +func (instance *MSFT_StorageProvider) SetPropertySupportsSubsystemRegistration(value bool) (err error) { + return instance.SetProperty("SupportsSubsystemRegistration", (value)) +} + +// GetSupportsSubsystemRegistration gets the value of SupportsSubsystemRegistration for the instance +func (instance *MSFT_StorageProvider) GetPropertySupportsSubsystemRegistration() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsSubsystemRegistration") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetType sets the value of Type for the instance +func (instance *MSFT_StorageProvider) SetPropertyType(value uint16) (err error) { + return instance.SetProperty("Type", (value)) +} + +// GetType gets the value of Type for the instance +func (instance *MSFT_StorageProvider) GetPropertyType() (value uint16, err error) { + retValue, err := instance.GetProperty("Type") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetURI sets the value of URI for the instance +func (instance *MSFT_StorageProvider) SetPropertyURI(value string) (err error) { + return instance.SetProperty("URI", (value)) +} + +// GetURI gets the value of URI for the instance +func (instance *MSFT_StorageProvider) GetPropertyURI() (value string, err error) { + retValue, err := instance.GetProperty("URI") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetURI_IP sets the value of URI_IP for the instance +func (instance *MSFT_StorageProvider) SetPropertyURI_IP(value string) (err error) { + return instance.SetProperty("URI_IP", (value)) +} + +// GetURI_IP gets the value of URI_IP for the instance +func (instance *MSFT_StorageProvider) GetPropertyURI_IP() (value string, err error) { + retValue, err := instance.GetProperty("URI_IP") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetVersion sets the value of Version for the instance +func (instance *MSFT_StorageProvider) SetPropertyVersion(value string) (err error) { + return instance.SetProperty("Version", (value)) +} + +// GetVersion gets the value of Version for the instance +func (instance *MSFT_StorageProvider) GetPropertyVersion() (value string, err error) { + retValue, err := instance.GetProperty("Version") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// + +// +// +// + +// +// +// +func (instance *MSFT_StorageProvider) Discover( /* IN */ DiscoveryLevel uint16, + /* IN */ RootObject MSFT_StorageObject, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Discover", DiscoveryLevel, RootObject, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_StorageProvider) GetSecurityDescriptor( /* OUT */ SecurityDescriptor string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSecurityDescriptor") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_StorageProvider) SetSecurityDescriptor( /* IN */ SecurityDescriptor string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetSecurityDescriptor", SecurityDescriptor) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +func (instance *MSFT_StorageProvider) RegisterSubsystem( /* IN */ ComputerName string, + /* IN */ Credential string, + /* OUT */ RegisteredSubsystem MSFT_StorageSubSystem, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("RegisterSubsystem", ComputerName, Credential) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// + +// +// +func (instance *MSFT_StorageProvider) UnregisterSubsystem( /* IN */ Subsystem MSFT_StorageSubSystem, + /* IN */ StorageSubSystemUniqueId string, + /* IN */ Force bool, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("UnregisterSubsystem", Subsystem, StorageSubSystemUniqueId, Force) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_StorageProvider) SetAttributes( /* IN */ RemoteSubsystemCacheMode uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetAttributes", RemoteSubsystemCacheMode) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageProviderToStorageSubSystem.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageProviderToStorageSubSystem.go new file mode 100644 index 000000000..623a012dd --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageProviderToStorageSubSystem.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageProviderToStorageSubSystem struct +type MSFT_StorageProviderToStorageSubSystem struct { + *cim.WmiInstance + + // + StorageProvider MSFT_StorageProvider + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageProviderToStorageSubSystemEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageProviderToStorageSubSystem, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageProviderToStorageSubSystem{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageProviderToStorageSubSystemEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageProviderToStorageSubSystem, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageProviderToStorageSubSystem{ + WmiInstance: tmp, + } + return +} + +// SetStorageProvider sets the value of StorageProvider for the instance +func (instance *MSFT_StorageProviderToStorageSubSystem) SetPropertyStorageProvider(value MSFT_StorageProvider) (err error) { + return instance.SetProperty("StorageProvider", (value)) +} + +// GetStorageProvider gets the value of StorageProvider for the instance +func (instance *MSFT_StorageProviderToStorageSubSystem) GetPropertyStorageProvider() (value MSFT_StorageProvider, err error) { + retValue, err := instance.GetProperty("StorageProvider") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageProvider) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageProvider is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageProvider(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageProviderToStorageSubSystem) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageProviderToStorageSubSystem) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSFlow.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSFlow.go new file mode 100644 index 000000000..d1466afd4 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSFlow.go @@ -0,0 +1,651 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageQoSFlow struct +type MSFT_StorageQoSFlow struct { + *cim.WmiInstance + + // + BandwidthLimit uint64 + + // + FilePath string + + // + FlowId string + + // + InitiatorBandwidth uint64 + + // + InitiatorId string + + // + InitiatorIOPS uint64 + + // + InitiatorLatency uint64 + + // + InitiatorName string + + // + InitiatorNodeName string + + // + Interval uint64 + + // + Limit uint64 + + // + PolicyId string + + // + Reservation uint64 + + // + Status uint16 + + // + StorageNodeBandwidth uint64 + + // + StorageNodeIOPS uint64 + + // + StorageNodeLatency uint64 + + // + StorageNodeName string + + // + TimeStamp uint64 + + // + VolumeId string +} + +func NewMSFT_StorageQoSFlowEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageQoSFlow, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageQoSFlow{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageQoSFlowEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageQoSFlow, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageQoSFlow{ + WmiInstance: tmp, + } + return +} + +// SetBandwidthLimit sets the value of BandwidthLimit for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyBandwidthLimit(value uint64) (err error) { + return instance.SetProperty("BandwidthLimit", (value)) +} + +// GetBandwidthLimit gets the value of BandwidthLimit for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyBandwidthLimit() (value uint64, err error) { + retValue, err := instance.GetProperty("BandwidthLimit") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetFilePath sets the value of FilePath for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyFilePath(value string) (err error) { + return instance.SetProperty("FilePath", (value)) +} + +// GetFilePath gets the value of FilePath for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyFilePath() (value string, err error) { + retValue, err := instance.GetProperty("FilePath") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFlowId sets the value of FlowId for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyFlowId(value string) (err error) { + return instance.SetProperty("FlowId", (value)) +} + +// GetFlowId gets the value of FlowId for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyFlowId() (value string, err error) { + retValue, err := instance.GetProperty("FlowId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetInitiatorBandwidth sets the value of InitiatorBandwidth for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyInitiatorBandwidth(value uint64) (err error) { + return instance.SetProperty("InitiatorBandwidth", (value)) +} + +// GetInitiatorBandwidth gets the value of InitiatorBandwidth for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyInitiatorBandwidth() (value uint64, err error) { + retValue, err := instance.GetProperty("InitiatorBandwidth") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetInitiatorId sets the value of InitiatorId for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyInitiatorId(value string) (err error) { + return instance.SetProperty("InitiatorId", (value)) +} + +// GetInitiatorId gets the value of InitiatorId for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyInitiatorId() (value string, err error) { + retValue, err := instance.GetProperty("InitiatorId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetInitiatorIOPS sets the value of InitiatorIOPS for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyInitiatorIOPS(value uint64) (err error) { + return instance.SetProperty("InitiatorIOPS", (value)) +} + +// GetInitiatorIOPS gets the value of InitiatorIOPS for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyInitiatorIOPS() (value uint64, err error) { + retValue, err := instance.GetProperty("InitiatorIOPS") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetInitiatorLatency sets the value of InitiatorLatency for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyInitiatorLatency(value uint64) (err error) { + return instance.SetProperty("InitiatorLatency", (value)) +} + +// GetInitiatorLatency gets the value of InitiatorLatency for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyInitiatorLatency() (value uint64, err error) { + retValue, err := instance.GetProperty("InitiatorLatency") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetInitiatorName sets the value of InitiatorName for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyInitiatorName(value string) (err error) { + return instance.SetProperty("InitiatorName", (value)) +} + +// GetInitiatorName gets the value of InitiatorName for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyInitiatorName() (value string, err error) { + retValue, err := instance.GetProperty("InitiatorName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetInitiatorNodeName sets the value of InitiatorNodeName for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyInitiatorNodeName(value string) (err error) { + return instance.SetProperty("InitiatorNodeName", (value)) +} + +// GetInitiatorNodeName gets the value of InitiatorNodeName for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyInitiatorNodeName() (value string, err error) { + retValue, err := instance.GetProperty("InitiatorNodeName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetInterval sets the value of Interval for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyInterval(value uint64) (err error) { + return instance.SetProperty("Interval", (value)) +} + +// GetInterval gets the value of Interval for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyInterval() (value uint64, err error) { + retValue, err := instance.GetProperty("Interval") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetLimit sets the value of Limit for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyLimit(value uint64) (err error) { + return instance.SetProperty("Limit", (value)) +} + +// GetLimit gets the value of Limit for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyLimit() (value uint64, err error) { + retValue, err := instance.GetProperty("Limit") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetPolicyId sets the value of PolicyId for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyPolicyId(value string) (err error) { + return instance.SetProperty("PolicyId", (value)) +} + +// GetPolicyId gets the value of PolicyId for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyPolicyId() (value string, err error) { + retValue, err := instance.GetProperty("PolicyId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetReservation sets the value of Reservation for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyReservation(value uint64) (err error) { + return instance.SetProperty("Reservation", (value)) +} + +// GetReservation gets the value of Reservation for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyReservation() (value uint64, err error) { + retValue, err := instance.GetProperty("Reservation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetStatus sets the value of Status for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyStatus(value uint16) (err error) { + return instance.SetProperty("Status", (value)) +} + +// GetStatus gets the value of Status for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("Status") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetStorageNodeBandwidth sets the value of StorageNodeBandwidth for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyStorageNodeBandwidth(value uint64) (err error) { + return instance.SetProperty("StorageNodeBandwidth", (value)) +} + +// GetStorageNodeBandwidth gets the value of StorageNodeBandwidth for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyStorageNodeBandwidth() (value uint64, err error) { + retValue, err := instance.GetProperty("StorageNodeBandwidth") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetStorageNodeIOPS sets the value of StorageNodeIOPS for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyStorageNodeIOPS(value uint64) (err error) { + return instance.SetProperty("StorageNodeIOPS", (value)) +} + +// GetStorageNodeIOPS gets the value of StorageNodeIOPS for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyStorageNodeIOPS() (value uint64, err error) { + retValue, err := instance.GetProperty("StorageNodeIOPS") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetStorageNodeLatency sets the value of StorageNodeLatency for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyStorageNodeLatency(value uint64) (err error) { + return instance.SetProperty("StorageNodeLatency", (value)) +} + +// GetStorageNodeLatency gets the value of StorageNodeLatency for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyStorageNodeLatency() (value uint64, err error) { + retValue, err := instance.GetProperty("StorageNodeLatency") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetStorageNodeName sets the value of StorageNodeName for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyStorageNodeName(value string) (err error) { + return instance.SetProperty("StorageNodeName", (value)) +} + +// GetStorageNodeName gets the value of StorageNodeName for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyStorageNodeName() (value string, err error) { + retValue, err := instance.GetProperty("StorageNodeName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetTimeStamp sets the value of TimeStamp for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyTimeStamp(value uint64) (err error) { + return instance.SetProperty("TimeStamp", (value)) +} + +// GetTimeStamp gets the value of TimeStamp for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyTimeStamp() (value uint64, err error) { + retValue, err := instance.GetProperty("TimeStamp") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetVolumeId sets the value of VolumeId for the instance +func (instance *MSFT_StorageQoSFlow) SetPropertyVolumeId(value string) (err error) { + return instance.SetProperty("VolumeId", (value)) +} + +// GetVolumeId gets the value of VolumeId for the instance +func (instance *MSFT_StorageQoSFlow) GetPropertyVolumeId() (value string, err error) { + retValue, err := instance.GetProperty("VolumeId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSPolicy.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSPolicy.go new file mode 100644 index 000000000..bff48c2a4 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSPolicy.go @@ -0,0 +1,325 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageQoSPolicy struct +type MSFT_StorageQoSPolicy struct { + *cim.WmiInstance + + // + BandwidthLimit uint64 + + // + Name string + + // + ParentPolicy string + + // + PolicyId string + + // + PolicyType uint16 + + // + Status uint16 + + // + ThroughputLimit uint64 + + // + ThroughputReservation uint64 +} + +func NewMSFT_StorageQoSPolicyEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageQoSPolicy, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageQoSPolicy{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageQoSPolicyEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageQoSPolicy, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageQoSPolicy{ + WmiInstance: tmp, + } + return +} + +// SetBandwidthLimit sets the value of BandwidthLimit for the instance +func (instance *MSFT_StorageQoSPolicy) SetPropertyBandwidthLimit(value uint64) (err error) { + return instance.SetProperty("BandwidthLimit", (value)) +} + +// GetBandwidthLimit gets the value of BandwidthLimit for the instance +func (instance *MSFT_StorageQoSPolicy) GetPropertyBandwidthLimit() (value uint64, err error) { + retValue, err := instance.GetProperty("BandwidthLimit") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetName sets the value of Name for the instance +func (instance *MSFT_StorageQoSPolicy) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *MSFT_StorageQoSPolicy) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetParentPolicy sets the value of ParentPolicy for the instance +func (instance *MSFT_StorageQoSPolicy) SetPropertyParentPolicy(value string) (err error) { + return instance.SetProperty("ParentPolicy", (value)) +} + +// GetParentPolicy gets the value of ParentPolicy for the instance +func (instance *MSFT_StorageQoSPolicy) GetPropertyParentPolicy() (value string, err error) { + retValue, err := instance.GetProperty("ParentPolicy") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPolicyId sets the value of PolicyId for the instance +func (instance *MSFT_StorageQoSPolicy) SetPropertyPolicyId(value string) (err error) { + return instance.SetProperty("PolicyId", (value)) +} + +// GetPolicyId gets the value of PolicyId for the instance +func (instance *MSFT_StorageQoSPolicy) GetPropertyPolicyId() (value string, err error) { + retValue, err := instance.GetProperty("PolicyId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPolicyType sets the value of PolicyType for the instance +func (instance *MSFT_StorageQoSPolicy) SetPropertyPolicyType(value uint16) (err error) { + return instance.SetProperty("PolicyType", (value)) +} + +// GetPolicyType gets the value of PolicyType for the instance +func (instance *MSFT_StorageQoSPolicy) GetPropertyPolicyType() (value uint16, err error) { + retValue, err := instance.GetProperty("PolicyType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetStatus sets the value of Status for the instance +func (instance *MSFT_StorageQoSPolicy) SetPropertyStatus(value uint16) (err error) { + return instance.SetProperty("Status", (value)) +} + +// GetStatus gets the value of Status for the instance +func (instance *MSFT_StorageQoSPolicy) GetPropertyStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("Status") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetThroughputLimit sets the value of ThroughputLimit for the instance +func (instance *MSFT_StorageQoSPolicy) SetPropertyThroughputLimit(value uint64) (err error) { + return instance.SetProperty("ThroughputLimit", (value)) +} + +// GetThroughputLimit gets the value of ThroughputLimit for the instance +func (instance *MSFT_StorageQoSPolicy) GetPropertyThroughputLimit() (value uint64, err error) { + retValue, err := instance.GetProperty("ThroughputLimit") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetThroughputReservation sets the value of ThroughputReservation for the instance +func (instance *MSFT_StorageQoSPolicy) SetPropertyThroughputReservation(value uint64) (err error) { + return instance.SetProperty("ThroughputReservation", (value)) +} + +// GetThroughputReservation gets the value of ThroughputReservation for the instance +func (instance *MSFT_StorageQoSPolicy) GetPropertyThroughputReservation() (value uint64, err error) { + retValue, err := instance.GetProperty("ThroughputReservation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// + +// +// +// +// + +// +func (instance *MSFT_StorageQoSPolicy) SetAttributes( /* IN */ NewName string, + /* IN */ Limit uint64, + /* IN */ Reservation uint64, + /* IN */ BandwidthLimit uint64) (result int32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetAttributes", NewName, Limit, Reservation, BandwidthLimit) + if err != nil { + return + } + result = int32(retVal) + return + +} + +// + +// +func (instance *MSFT_StorageQoSPolicy) DeletePolicy() (result int32, err error) { + retVal, err := instance.InvokeMethodWithReturn("DeletePolicy") + if err != nil { + return + } + result = int32(retVal) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSPolicyStore.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSPolicyStore.go new file mode 100644 index 000000000..e89cc6592 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSPolicyStore.go @@ -0,0 +1,143 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageQoSPolicyStore struct +type MSFT_StorageQoSPolicyStore struct { + *cim.WmiInstance + + // + Id string + + // + IOPSNormalizationSize uint32 +} + +func NewMSFT_StorageQoSPolicyStoreEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageQoSPolicyStore, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageQoSPolicyStore{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageQoSPolicyStoreEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageQoSPolicyStore, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageQoSPolicyStore{ + WmiInstance: tmp, + } + return +} + +// SetId sets the value of Id for the instance +func (instance *MSFT_StorageQoSPolicyStore) SetPropertyId(value string) (err error) { + return instance.SetProperty("Id", (value)) +} + +// GetId gets the value of Id for the instance +func (instance *MSFT_StorageQoSPolicyStore) GetPropertyId() (value string, err error) { + retValue, err := instance.GetProperty("Id") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetIOPSNormalizationSize sets the value of IOPSNormalizationSize for the instance +func (instance *MSFT_StorageQoSPolicyStore) SetPropertyIOPSNormalizationSize(value uint32) (err error) { + return instance.SetProperty("IOPSNormalizationSize", (value)) +} + +// GetIOPSNormalizationSize gets the value of IOPSNormalizationSize for the instance +func (instance *MSFT_StorageQoSPolicyStore) GetPropertyIOPSNormalizationSize() (value uint32, err error) { + retValue, err := instance.GetProperty("IOPSNormalizationSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// + +// + +// +// +func (instance *MSFT_StorageQoSPolicyStore) CreatePolicy( /* IN/OUT */ Policy MSFT_StorageQoSPolicy) (result int32, err error) { + retVal, err := instance.InvokeMethod("CreatePolicy") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = int32(retValue) + return + +} + +// + +// + +// +func (instance *MSFT_StorageQoSPolicyStore) SetAttributes( /* IN */ IOPSNormalizationSize uint32) (result int32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetAttributes", IOPSNormalizationSize) + if err != nil { + return + } + result = int32(retVal) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSPolicyToChildPolicy.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSPolicyToChildPolicy.go new file mode 100644 index 000000000..6a69dc044 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSPolicyToChildPolicy.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageQoSPolicyToChildPolicy struct +type MSFT_StorageQoSPolicyToChildPolicy struct { + *cim.WmiInstance + + // + ChildPolicy MSFT_StorageQoSPolicy + + // + ParentPolicy MSFT_StorageQoSPolicy +} + +func NewMSFT_StorageQoSPolicyToChildPolicyEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageQoSPolicyToChildPolicy, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageQoSPolicyToChildPolicy{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageQoSPolicyToChildPolicyEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageQoSPolicyToChildPolicy, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageQoSPolicyToChildPolicy{ + WmiInstance: tmp, + } + return +} + +// SetChildPolicy sets the value of ChildPolicy for the instance +func (instance *MSFT_StorageQoSPolicyToChildPolicy) SetPropertyChildPolicy(value MSFT_StorageQoSPolicy) (err error) { + return instance.SetProperty("ChildPolicy", (value)) +} + +// GetChildPolicy gets the value of ChildPolicy for the instance +func (instance *MSFT_StorageQoSPolicyToChildPolicy) GetPropertyChildPolicy() (value MSFT_StorageQoSPolicy, err error) { + retValue, err := instance.GetProperty("ChildPolicy") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageQoSPolicy) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageQoSPolicy is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageQoSPolicy(valuetmp) + + return +} + +// SetParentPolicy sets the value of ParentPolicy for the instance +func (instance *MSFT_StorageQoSPolicyToChildPolicy) SetPropertyParentPolicy(value MSFT_StorageQoSPolicy) (err error) { + return instance.SetProperty("ParentPolicy", (value)) +} + +// GetParentPolicy gets the value of ParentPolicy for the instance +func (instance *MSFT_StorageQoSPolicyToChildPolicy) GetPropertyParentPolicy() (value MSFT_StorageQoSPolicy, err error) { + retValue, err := instance.GetProperty("ParentPolicy") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageQoSPolicy) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageQoSPolicy is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageQoSPolicy(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSPolicyToFlow.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSPolicyToFlow.go new file mode 100644 index 000000000..7c09d6445 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSPolicyToFlow.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageQoSPolicyToFlow struct +type MSFT_StorageQoSPolicyToFlow struct { + *cim.WmiInstance + + // + Flow MSFT_StorageQoSFlow + + // + Policy MSFT_StorageQoSPolicy +} + +func NewMSFT_StorageQoSPolicyToFlowEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageQoSPolicyToFlow, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageQoSPolicyToFlow{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageQoSPolicyToFlowEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageQoSPolicyToFlow, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageQoSPolicyToFlow{ + WmiInstance: tmp, + } + return +} + +// SetFlow sets the value of Flow for the instance +func (instance *MSFT_StorageQoSPolicyToFlow) SetPropertyFlow(value MSFT_StorageQoSFlow) (err error) { + return instance.SetProperty("Flow", (value)) +} + +// GetFlow gets the value of Flow for the instance +func (instance *MSFT_StorageQoSPolicyToFlow) GetPropertyFlow() (value MSFT_StorageQoSFlow, err error) { + retValue, err := instance.GetProperty("Flow") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageQoSFlow) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageQoSFlow is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageQoSFlow(valuetmp) + + return +} + +// SetPolicy sets the value of Policy for the instance +func (instance *MSFT_StorageQoSPolicyToFlow) SetPropertyPolicy(value MSFT_StorageQoSPolicy) (err error) { + return instance.SetProperty("Policy", (value)) +} + +// GetPolicy gets the value of Policy for the instance +func (instance *MSFT_StorageQoSPolicyToFlow) GetPropertyPolicy() (value MSFT_StorageQoSPolicy, err error) { + retValue, err := instance.GetProperty("Policy") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageQoSPolicy) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageQoSPolicy is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageQoSPolicy(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSVolume.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSVolume.go new file mode 100644 index 000000000..58d60c1fc --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageQoSVolume.go @@ -0,0 +1,381 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageQoSVolume struct +type MSFT_StorageQoSVolume struct { + *cim.WmiInstance + + // + Bandwidth uint64 + + // + BandwidthLimit uint64 + + // + Interval uint64 + + // + IOPS uint64 + + // + Latency uint64 + + // + Limit uint64 + + // + Mountpoint string + + // + Reservation uint64 + + // + Status uint16 + + // + TimeStamp uint64 + + // + VolumeId string +} + +func NewMSFT_StorageQoSVolumeEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageQoSVolume, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageQoSVolume{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageQoSVolumeEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageQoSVolume, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageQoSVolume{ + WmiInstance: tmp, + } + return +} + +// SetBandwidth sets the value of Bandwidth for the instance +func (instance *MSFT_StorageQoSVolume) SetPropertyBandwidth(value uint64) (err error) { + return instance.SetProperty("Bandwidth", (value)) +} + +// GetBandwidth gets the value of Bandwidth for the instance +func (instance *MSFT_StorageQoSVolume) GetPropertyBandwidth() (value uint64, err error) { + retValue, err := instance.GetProperty("Bandwidth") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetBandwidthLimit sets the value of BandwidthLimit for the instance +func (instance *MSFT_StorageQoSVolume) SetPropertyBandwidthLimit(value uint64) (err error) { + return instance.SetProperty("BandwidthLimit", (value)) +} + +// GetBandwidthLimit gets the value of BandwidthLimit for the instance +func (instance *MSFT_StorageQoSVolume) GetPropertyBandwidthLimit() (value uint64, err error) { + retValue, err := instance.GetProperty("BandwidthLimit") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetInterval sets the value of Interval for the instance +func (instance *MSFT_StorageQoSVolume) SetPropertyInterval(value uint64) (err error) { + return instance.SetProperty("Interval", (value)) +} + +// GetInterval gets the value of Interval for the instance +func (instance *MSFT_StorageQoSVolume) GetPropertyInterval() (value uint64, err error) { + retValue, err := instance.GetProperty("Interval") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetIOPS sets the value of IOPS for the instance +func (instance *MSFT_StorageQoSVolume) SetPropertyIOPS(value uint64) (err error) { + return instance.SetProperty("IOPS", (value)) +} + +// GetIOPS gets the value of IOPS for the instance +func (instance *MSFT_StorageQoSVolume) GetPropertyIOPS() (value uint64, err error) { + retValue, err := instance.GetProperty("IOPS") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetLatency sets the value of Latency for the instance +func (instance *MSFT_StorageQoSVolume) SetPropertyLatency(value uint64) (err error) { + return instance.SetProperty("Latency", (value)) +} + +// GetLatency gets the value of Latency for the instance +func (instance *MSFT_StorageQoSVolume) GetPropertyLatency() (value uint64, err error) { + retValue, err := instance.GetProperty("Latency") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetLimit sets the value of Limit for the instance +func (instance *MSFT_StorageQoSVolume) SetPropertyLimit(value uint64) (err error) { + return instance.SetProperty("Limit", (value)) +} + +// GetLimit gets the value of Limit for the instance +func (instance *MSFT_StorageQoSVolume) GetPropertyLimit() (value uint64, err error) { + retValue, err := instance.GetProperty("Limit") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetMountpoint sets the value of Mountpoint for the instance +func (instance *MSFT_StorageQoSVolume) SetPropertyMountpoint(value string) (err error) { + return instance.SetProperty("Mountpoint", (value)) +} + +// GetMountpoint gets the value of Mountpoint for the instance +func (instance *MSFT_StorageQoSVolume) GetPropertyMountpoint() (value string, err error) { + retValue, err := instance.GetProperty("Mountpoint") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetReservation sets the value of Reservation for the instance +func (instance *MSFT_StorageQoSVolume) SetPropertyReservation(value uint64) (err error) { + return instance.SetProperty("Reservation", (value)) +} + +// GetReservation gets the value of Reservation for the instance +func (instance *MSFT_StorageQoSVolume) GetPropertyReservation() (value uint64, err error) { + retValue, err := instance.GetProperty("Reservation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetStatus sets the value of Status for the instance +func (instance *MSFT_StorageQoSVolume) SetPropertyStatus(value uint16) (err error) { + return instance.SetProperty("Status", (value)) +} + +// GetStatus gets the value of Status for the instance +func (instance *MSFT_StorageQoSVolume) GetPropertyStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("Status") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetTimeStamp sets the value of TimeStamp for the instance +func (instance *MSFT_StorageQoSVolume) SetPropertyTimeStamp(value uint64) (err error) { + return instance.SetProperty("TimeStamp", (value)) +} + +// GetTimeStamp gets the value of TimeStamp for the instance +func (instance *MSFT_StorageQoSVolume) GetPropertyTimeStamp() (value uint64, err error) { + retValue, err := instance.GetProperty("TimeStamp") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetVolumeId sets the value of VolumeId for the instance +func (instance *MSFT_StorageQoSVolume) SetPropertyVolumeId(value string) (err error) { + return instance.SetProperty("VolumeId", (value)) +} + +// GetVolumeId gets the value of VolumeId for the instance +func (instance *MSFT_StorageQoSVolume) GetPropertyVolumeId() (value string, err error) { + retValue, err := instance.GetProperty("VolumeId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageRack.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageRack.go new file mode 100644 index 000000000..b5996bcb9 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageRack.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_StorageRack struct +type MSFT_StorageRack struct { + *MSFT_StorageFaultDomain +} + +func NewMSFT_StorageRackEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageRack, err error) { + tmp, err := NewMSFT_StorageFaultDomainEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageRack{ + MSFT_StorageFaultDomain: tmp, + } + return +} + +func NewMSFT_StorageRackEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageRack, err error) { + tmp, err := NewMSFT_StorageFaultDomainEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageRack{ + MSFT_StorageFaultDomain: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageReliabilityCounter.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageReliabilityCounter.go new file mode 100644 index 000000000..d2991a615 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageReliabilityCounter.go @@ -0,0 +1,633 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageReliabilityCounter struct +type MSFT_StorageReliabilityCounter struct { + *MSFT_StorageObject + + // + DeviceId string + + // + FlushLatencyMax uint64 + + // + LoadUnloadCycleCount uint32 + + // + LoadUnloadCycleCountMax uint32 + + // + ManufactureDate string + + // + PowerOnHours uint32 + + // + ReadErrorsCorrected uint64 + + // + ReadErrorsTotal uint64 + + // + ReadErrorsUncorrected uint64 + + // + ReadLatencyMax uint64 + + // + StartStopCycleCount uint32 + + // + StartStopCycleCountMax uint32 + + // + Temperature uint8 + + // + TemperatureMax uint8 + + // + Wear uint8 + + // + WriteErrorsCorrected uint64 + + // + WriteErrorsTotal uint64 + + // + WriteErrorsUncorrected uint64 + + // + WriteLatencyMax uint64 +} + +func NewMSFT_StorageReliabilityCounterEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageReliabilityCounter, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageReliabilityCounter{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_StorageReliabilityCounterEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageReliabilityCounter, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageReliabilityCounter{ + MSFT_StorageObject: tmp, + } + return +} + +// SetDeviceId sets the value of DeviceId for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyDeviceId(value string) (err error) { + return instance.SetProperty("DeviceId", (value)) +} + +// GetDeviceId gets the value of DeviceId for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyDeviceId() (value string, err error) { + retValue, err := instance.GetProperty("DeviceId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFlushLatencyMax sets the value of FlushLatencyMax for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyFlushLatencyMax(value uint64) (err error) { + return instance.SetProperty("FlushLatencyMax", (value)) +} + +// GetFlushLatencyMax gets the value of FlushLatencyMax for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyFlushLatencyMax() (value uint64, err error) { + retValue, err := instance.GetProperty("FlushLatencyMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetLoadUnloadCycleCount sets the value of LoadUnloadCycleCount for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyLoadUnloadCycleCount(value uint32) (err error) { + return instance.SetProperty("LoadUnloadCycleCount", (value)) +} + +// GetLoadUnloadCycleCount gets the value of LoadUnloadCycleCount for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyLoadUnloadCycleCount() (value uint32, err error) { + retValue, err := instance.GetProperty("LoadUnloadCycleCount") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetLoadUnloadCycleCountMax sets the value of LoadUnloadCycleCountMax for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyLoadUnloadCycleCountMax(value uint32) (err error) { + return instance.SetProperty("LoadUnloadCycleCountMax", (value)) +} + +// GetLoadUnloadCycleCountMax gets the value of LoadUnloadCycleCountMax for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyLoadUnloadCycleCountMax() (value uint32, err error) { + retValue, err := instance.GetProperty("LoadUnloadCycleCountMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetManufactureDate sets the value of ManufactureDate for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyManufactureDate(value string) (err error) { + return instance.SetProperty("ManufactureDate", (value)) +} + +// GetManufactureDate gets the value of ManufactureDate for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyManufactureDate() (value string, err error) { + retValue, err := instance.GetProperty("ManufactureDate") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPowerOnHours sets the value of PowerOnHours for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyPowerOnHours(value uint32) (err error) { + return instance.SetProperty("PowerOnHours", (value)) +} + +// GetPowerOnHours gets the value of PowerOnHours for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyPowerOnHours() (value uint32, err error) { + retValue, err := instance.GetProperty("PowerOnHours") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetReadErrorsCorrected sets the value of ReadErrorsCorrected for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyReadErrorsCorrected(value uint64) (err error) { + return instance.SetProperty("ReadErrorsCorrected", (value)) +} + +// GetReadErrorsCorrected gets the value of ReadErrorsCorrected for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyReadErrorsCorrected() (value uint64, err error) { + retValue, err := instance.GetProperty("ReadErrorsCorrected") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetReadErrorsTotal sets the value of ReadErrorsTotal for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyReadErrorsTotal(value uint64) (err error) { + return instance.SetProperty("ReadErrorsTotal", (value)) +} + +// GetReadErrorsTotal gets the value of ReadErrorsTotal for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyReadErrorsTotal() (value uint64, err error) { + retValue, err := instance.GetProperty("ReadErrorsTotal") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetReadErrorsUncorrected sets the value of ReadErrorsUncorrected for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyReadErrorsUncorrected(value uint64) (err error) { + return instance.SetProperty("ReadErrorsUncorrected", (value)) +} + +// GetReadErrorsUncorrected gets the value of ReadErrorsUncorrected for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyReadErrorsUncorrected() (value uint64, err error) { + retValue, err := instance.GetProperty("ReadErrorsUncorrected") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetReadLatencyMax sets the value of ReadLatencyMax for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyReadLatencyMax(value uint64) (err error) { + return instance.SetProperty("ReadLatencyMax", (value)) +} + +// GetReadLatencyMax gets the value of ReadLatencyMax for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyReadLatencyMax() (value uint64, err error) { + retValue, err := instance.GetProperty("ReadLatencyMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetStartStopCycleCount sets the value of StartStopCycleCount for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyStartStopCycleCount(value uint32) (err error) { + return instance.SetProperty("StartStopCycleCount", (value)) +} + +// GetStartStopCycleCount gets the value of StartStopCycleCount for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyStartStopCycleCount() (value uint32, err error) { + retValue, err := instance.GetProperty("StartStopCycleCount") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetStartStopCycleCountMax sets the value of StartStopCycleCountMax for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyStartStopCycleCountMax(value uint32) (err error) { + return instance.SetProperty("StartStopCycleCountMax", (value)) +} + +// GetStartStopCycleCountMax gets the value of StartStopCycleCountMax for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyStartStopCycleCountMax() (value uint32, err error) { + retValue, err := instance.GetProperty("StartStopCycleCountMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetTemperature sets the value of Temperature for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyTemperature(value uint8) (err error) { + return instance.SetProperty("Temperature", (value)) +} + +// GetTemperature gets the value of Temperature for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyTemperature() (value uint8, err error) { + retValue, err := instance.GetProperty("Temperature") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint8) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint8 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint8(valuetmp) + + return +} + +// SetTemperatureMax sets the value of TemperatureMax for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyTemperatureMax(value uint8) (err error) { + return instance.SetProperty("TemperatureMax", (value)) +} + +// GetTemperatureMax gets the value of TemperatureMax for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyTemperatureMax() (value uint8, err error) { + retValue, err := instance.GetProperty("TemperatureMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint8) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint8 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint8(valuetmp) + + return +} + +// SetWear sets the value of Wear for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyWear(value uint8) (err error) { + return instance.SetProperty("Wear", (value)) +} + +// GetWear gets the value of Wear for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyWear() (value uint8, err error) { + retValue, err := instance.GetProperty("Wear") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint8) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint8 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint8(valuetmp) + + return +} + +// SetWriteErrorsCorrected sets the value of WriteErrorsCorrected for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyWriteErrorsCorrected(value uint64) (err error) { + return instance.SetProperty("WriteErrorsCorrected", (value)) +} + +// GetWriteErrorsCorrected gets the value of WriteErrorsCorrected for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyWriteErrorsCorrected() (value uint64, err error) { + retValue, err := instance.GetProperty("WriteErrorsCorrected") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetWriteErrorsTotal sets the value of WriteErrorsTotal for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyWriteErrorsTotal(value uint64) (err error) { + return instance.SetProperty("WriteErrorsTotal", (value)) +} + +// GetWriteErrorsTotal gets the value of WriteErrorsTotal for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyWriteErrorsTotal() (value uint64, err error) { + retValue, err := instance.GetProperty("WriteErrorsTotal") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetWriteErrorsUncorrected sets the value of WriteErrorsUncorrected for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyWriteErrorsUncorrected(value uint64) (err error) { + return instance.SetProperty("WriteErrorsUncorrected", (value)) +} + +// GetWriteErrorsUncorrected gets the value of WriteErrorsUncorrected for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyWriteErrorsUncorrected() (value uint64, err error) { + retValue, err := instance.GetProperty("WriteErrorsUncorrected") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetWriteLatencyMax sets the value of WriteLatencyMax for the instance +func (instance *MSFT_StorageReliabilityCounter) SetPropertyWriteLatencyMax(value uint64) (err error) { + return instance.SetProperty("WriteLatencyMax", (value)) +} + +// GetWriteLatencyMax gets the value of WriteLatencyMax for the instance +func (instance *MSFT_StorageReliabilityCounter) GetPropertyWriteLatencyMax() (value uint64, err error) { + retValue, err := instance.GetProperty("WriteLatencyMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// + +// +func (instance *MSFT_StorageReliabilityCounter) Reset() (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("Reset") + if err != nil { + return + } + result = uint32(retVal) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageScaleUnit.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageScaleUnit.go new file mode 100644 index 000000000..8fc7224c1 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageScaleUnit.go @@ -0,0 +1,74 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_StorageScaleUnit struct +type MSFT_StorageScaleUnit struct { + *MSFT_StorageFaultDomain +} + +func NewMSFT_StorageScaleUnitEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageScaleUnit, err error) { + tmp, err := NewMSFT_StorageFaultDomainEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageScaleUnit{ + MSFT_StorageFaultDomain: tmp, + } + return +} + +func NewMSFT_StorageScaleUnitEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageScaleUnit, err error) { + tmp, err := NewMSFT_StorageFaultDomainEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageScaleUnit{ + MSFT_StorageFaultDomain: tmp, + } + return +} + +// + +// +// +// +// +// + +// +// +func (instance *MSFT_StorageScaleUnit) Maintenance( /* IN */ EnableMaintenanceMode bool, + /* IN */ Timeout uint32, + /* IN */ Model string, + /* IN */ Manufacturer string, + /* IN */ IgnoreDetachedVirtualDisks bool, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Maintenance", EnableMaintenanceMode, Timeout, Model, Manufacturer, IgnoreDetachedVirtualDisks) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSetting.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSetting.go new file mode 100644 index 000000000..f9ee55c14 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSetting.go @@ -0,0 +1,156 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSetting struct +type MSFT_StorageSetting struct { + *cim.WmiInstance + + // + NewDiskPolicy uint16 + + // + ScrubPolicy uint32 +} + +func NewMSFT_StorageSettingEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSetting, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSetting{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSettingEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSetting, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSetting{ + WmiInstance: tmp, + } + return +} + +// SetNewDiskPolicy sets the value of NewDiskPolicy for the instance +func (instance *MSFT_StorageSetting) SetPropertyNewDiskPolicy(value uint16) (err error) { + return instance.SetProperty("NewDiskPolicy", (value)) +} + +// GetNewDiskPolicy gets the value of NewDiskPolicy for the instance +func (instance *MSFT_StorageSetting) GetPropertyNewDiskPolicy() (value uint16, err error) { + retValue, err := instance.GetProperty("NewDiskPolicy") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetScrubPolicy sets the value of ScrubPolicy for the instance +func (instance *MSFT_StorageSetting) SetPropertyScrubPolicy(value uint32) (err error) { + return instance.SetProperty("ScrubPolicy", (value)) +} + +// GetScrubPolicy gets the value of ScrubPolicy for the instance +func (instance *MSFT_StorageSetting) GetPropertyScrubPolicy() (value uint32, err error) { + retValue, err := instance.GetProperty("ScrubPolicy") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// + +// +// +func (instance *MSFT_StorageSetting) Get( /* OUT */ StorageSetting MSFT_StorageSetting) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Get") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +func (instance *MSFT_StorageSetting) Set( /* IN */ NewDiskPolicy uint16, + /* IN */ ScrubPolicy uint32) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("Set", NewDiskPolicy, ScrubPolicy) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +func (instance *MSFT_StorageSetting) UpdateHostStorageCache() (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("UpdateHostStorageCache") + if err != nil { + return + } + result = uint32(retVal) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSite.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSite.go new file mode 100644 index 000000000..d59a3c98f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSite.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// MSFT_StorageSite struct +type MSFT_StorageSite struct { + *MSFT_StorageFaultDomain +} + +func NewMSFT_StorageSiteEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSite, err error) { + tmp, err := NewMSFT_StorageFaultDomainEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageSite{ + MSFT_StorageFaultDomain: tmp, + } + return +} + +func NewMSFT_StorageSiteEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSite, err error) { + tmp, err := NewMSFT_StorageFaultDomainEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSite{ + MSFT_StorageFaultDomain: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystem.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystem.go new file mode 100644 index 000000000..6449e9272 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystem.go @@ -0,0 +1,2530 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystem struct +type MSFT_StorageSubSystem struct { + *MSFT_StorageObject + + // + AutomaticClusteringEnabled bool + + // + CimServerName string + + // + CurrentCacheLevel uint16 + + // + DataTieringType uint16 + + // + Description string + + // + FaultDomainAwarenessDefault uint16 + + // + FirmwareVersion string + + // + FriendlyName string + + // + HealthStatus uint16 + + // + iSCSITargetCreationScheme uint16 + + // + Manufacturer string + + // + MaskingClientSelectableDeviceNumbers bool + + // + MaskingMapCountMax uint16 + + // + MaskingOneInitiatorIdPerView bool + + // + MaskingOtherValidInitiatorIdTypes []string + + // + MaskingPortsPerView uint16 + + // + MaskingValidInitiatorIdTypes []uint16 + + // + Model string + + // + Name string + + // + NameFormat uint16 + + // + NumberOfSlots uint32 + + // + OperationalStatus []uint16 + + // + OtherHostTypeDescription []string + + // + OtherIdentifyingInfo []string + + // + OtherIdentifyingInfoDescription []string + + // + OtherOperationalStatusDescription string + + // + PhysicalDisksPerStoragePoolMin uint16 + + // + ReplicasPerSourceCloneMax uint16 + + // + ReplicasPerSourceMirrorMax uint16 + + // + ReplicasPerSourceSnapshotMax uint16 + + // + SerialNumber string + + // + StorageConnectionType uint16 + + // + SupportedDeduplicationFileSystemTypes []uint16 + + // + SupportedDeduplicationObjectTypes []uint16 + + // + SupportedFileServerProtocols []uint16 + + // + SupportedFileSystems []uint16 + + // + SupportedHostType []uint16 + + // + SupportsAutomaticStoragePoolSelection bool + + // + SupportsCloneLocal bool + + // + SupportsCloneRemote bool + + // + SupportsContinuouslyAvailableFileServer bool + + // + SupportsFileServer bool + + // + SupportsFileServerCreation bool + + // + SupportsMaskingVirtualDiskToHosts bool + + // + SupportsMirrorLocal bool + + // + SupportsMirrorRemote bool + + // + SupportsMultipleResiliencySettingsPerStoragePool bool + + // + SupportsSnapshotLocal bool + + // + SupportsSnapshotRemote bool + + // + SupportsStoragePoolAddPhysicalDisk bool + + // + SupportsStoragePoolCreation bool + + // + SupportsStoragePoolDeletion bool + + // + SupportsStoragePoolFriendlyNameModification bool + + // + SupportsStoragePoolRemovePhysicalDisk bool + + // + SupportsStorageTierCreation bool + + // + SupportsStorageTierDeletion bool + + // + SupportsStorageTieredVirtualDiskCreation bool + + // + SupportsStorageTierFriendlyNameModification bool + + // + SupportsStorageTierResize bool + + // + SupportsVirtualDiskCapacityExpansion bool + + // + SupportsVirtualDiskCapacityReduction bool + + // + SupportsVirtualDiskCreation bool + + // + SupportsVirtualDiskDeletion bool + + // + SupportsVirtualDiskModification bool + + // + SupportsVirtualDiskRepair bool + + // + SupportsVolumeCreation bool + + // + Tag string +} + +func NewMSFT_StorageSubSystemEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystem, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystem{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_StorageSubSystemEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystem, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystem{ + MSFT_StorageObject: tmp, + } + return +} + +// SetAutomaticClusteringEnabled sets the value of AutomaticClusteringEnabled for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyAutomaticClusteringEnabled(value bool) (err error) { + return instance.SetProperty("AutomaticClusteringEnabled", (value)) +} + +// GetAutomaticClusteringEnabled gets the value of AutomaticClusteringEnabled for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyAutomaticClusteringEnabled() (value bool, err error) { + retValue, err := instance.GetProperty("AutomaticClusteringEnabled") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetCimServerName sets the value of CimServerName for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyCimServerName(value string) (err error) { + return instance.SetProperty("CimServerName", (value)) +} + +// GetCimServerName gets the value of CimServerName for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyCimServerName() (value string, err error) { + retValue, err := instance.GetProperty("CimServerName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetCurrentCacheLevel sets the value of CurrentCacheLevel for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyCurrentCacheLevel(value uint16) (err error) { + return instance.SetProperty("CurrentCacheLevel", (value)) +} + +// GetCurrentCacheLevel gets the value of CurrentCacheLevel for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyCurrentCacheLevel() (value uint16, err error) { + retValue, err := instance.GetProperty("CurrentCacheLevel") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetDataTieringType sets the value of DataTieringType for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyDataTieringType(value uint16) (err error) { + return instance.SetProperty("DataTieringType", (value)) +} + +// GetDataTieringType gets the value of DataTieringType for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyDataTieringType() (value uint16, err error) { + retValue, err := instance.GetProperty("DataTieringType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetDescription sets the value of Description for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyDescription(value string) (err error) { + return instance.SetProperty("Description", (value)) +} + +// GetDescription gets the value of Description for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyDescription() (value string, err error) { + retValue, err := instance.GetProperty("Description") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFaultDomainAwarenessDefault sets the value of FaultDomainAwarenessDefault for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyFaultDomainAwarenessDefault(value uint16) (err error) { + return instance.SetProperty("FaultDomainAwarenessDefault", (value)) +} + +// GetFaultDomainAwarenessDefault gets the value of FaultDomainAwarenessDefault for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyFaultDomainAwarenessDefault() (value uint16, err error) { + retValue, err := instance.GetProperty("FaultDomainAwarenessDefault") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetFirmwareVersion sets the value of FirmwareVersion for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyFirmwareVersion(value string) (err error) { + return instance.SetProperty("FirmwareVersion", (value)) +} + +// GetFirmwareVersion gets the value of FirmwareVersion for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyFirmwareVersion() (value string, err error) { + retValue, err := instance.GetProperty("FirmwareVersion") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFriendlyName sets the value of FriendlyName for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyFriendlyName(value string) (err error) { + return instance.SetProperty("FriendlyName", (value)) +} + +// GetFriendlyName gets the value of FriendlyName for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyFriendlyName() (value string, err error) { + retValue, err := instance.GetProperty("FriendlyName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetHealthStatus sets the value of HealthStatus for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyHealthStatus(value uint16) (err error) { + return instance.SetProperty("HealthStatus", (value)) +} + +// GetHealthStatus gets the value of HealthStatus for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("HealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetiSCSITargetCreationScheme sets the value of iSCSITargetCreationScheme for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyiSCSITargetCreationScheme(value uint16) (err error) { + return instance.SetProperty("iSCSITargetCreationScheme", (value)) +} + +// GetiSCSITargetCreationScheme gets the value of iSCSITargetCreationScheme for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyiSCSITargetCreationScheme() (value uint16, err error) { + retValue, err := instance.GetProperty("iSCSITargetCreationScheme") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetManufacturer sets the value of Manufacturer for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyManufacturer(value string) (err error) { + return instance.SetProperty("Manufacturer", (value)) +} + +// GetManufacturer gets the value of Manufacturer for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyManufacturer() (value string, err error) { + retValue, err := instance.GetProperty("Manufacturer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetMaskingClientSelectableDeviceNumbers sets the value of MaskingClientSelectableDeviceNumbers for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyMaskingClientSelectableDeviceNumbers(value bool) (err error) { + return instance.SetProperty("MaskingClientSelectableDeviceNumbers", (value)) +} + +// GetMaskingClientSelectableDeviceNumbers gets the value of MaskingClientSelectableDeviceNumbers for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyMaskingClientSelectableDeviceNumbers() (value bool, err error) { + retValue, err := instance.GetProperty("MaskingClientSelectableDeviceNumbers") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetMaskingMapCountMax sets the value of MaskingMapCountMax for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyMaskingMapCountMax(value uint16) (err error) { + return instance.SetProperty("MaskingMapCountMax", (value)) +} + +// GetMaskingMapCountMax gets the value of MaskingMapCountMax for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyMaskingMapCountMax() (value uint16, err error) { + retValue, err := instance.GetProperty("MaskingMapCountMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetMaskingOneInitiatorIdPerView sets the value of MaskingOneInitiatorIdPerView for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyMaskingOneInitiatorIdPerView(value bool) (err error) { + return instance.SetProperty("MaskingOneInitiatorIdPerView", (value)) +} + +// GetMaskingOneInitiatorIdPerView gets the value of MaskingOneInitiatorIdPerView for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyMaskingOneInitiatorIdPerView() (value bool, err error) { + retValue, err := instance.GetProperty("MaskingOneInitiatorIdPerView") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetMaskingOtherValidInitiatorIdTypes sets the value of MaskingOtherValidInitiatorIdTypes for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyMaskingOtherValidInitiatorIdTypes(value []string) (err error) { + return instance.SetProperty("MaskingOtherValidInitiatorIdTypes", (value)) +} + +// GetMaskingOtherValidInitiatorIdTypes gets the value of MaskingOtherValidInitiatorIdTypes for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyMaskingOtherValidInitiatorIdTypes() (value []string, err error) { + retValue, err := instance.GetProperty("MaskingOtherValidInitiatorIdTypes") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetMaskingPortsPerView sets the value of MaskingPortsPerView for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyMaskingPortsPerView(value uint16) (err error) { + return instance.SetProperty("MaskingPortsPerView", (value)) +} + +// GetMaskingPortsPerView gets the value of MaskingPortsPerView for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyMaskingPortsPerView() (value uint16, err error) { + retValue, err := instance.GetProperty("MaskingPortsPerView") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetMaskingValidInitiatorIdTypes sets the value of MaskingValidInitiatorIdTypes for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyMaskingValidInitiatorIdTypes(value []uint16) (err error) { + return instance.SetProperty("MaskingValidInitiatorIdTypes", (value)) +} + +// GetMaskingValidInitiatorIdTypes gets the value of MaskingValidInitiatorIdTypes for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyMaskingValidInitiatorIdTypes() (value []uint16, err error) { + retValue, err := instance.GetProperty("MaskingValidInitiatorIdTypes") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetModel sets the value of Model for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyModel(value string) (err error) { + return instance.SetProperty("Model", (value)) +} + +// GetModel gets the value of Model for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyModel() (value string, err error) { + retValue, err := instance.GetProperty("Model") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetName sets the value of Name for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetNameFormat sets the value of NameFormat for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyNameFormat(value uint16) (err error) { + return instance.SetProperty("NameFormat", (value)) +} + +// GetNameFormat gets the value of NameFormat for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyNameFormat() (value uint16, err error) { + retValue, err := instance.GetProperty("NameFormat") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfSlots sets the value of NumberOfSlots for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyNumberOfSlots(value uint32) (err error) { + return instance.SetProperty("NumberOfSlots", (value)) +} + +// GetNumberOfSlots gets the value of NumberOfSlots for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyNumberOfSlots() (value uint32, err error) { + retValue, err := instance.GetProperty("NumberOfSlots") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetOtherHostTypeDescription sets the value of OtherHostTypeDescription for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyOtherHostTypeDescription(value []string) (err error) { + return instance.SetProperty("OtherHostTypeDescription", (value)) +} + +// GetOtherHostTypeDescription gets the value of OtherHostTypeDescription for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyOtherHostTypeDescription() (value []string, err error) { + retValue, err := instance.GetProperty("OtherHostTypeDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetOtherIdentifyingInfo sets the value of OtherIdentifyingInfo for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyOtherIdentifyingInfo(value []string) (err error) { + return instance.SetProperty("OtherIdentifyingInfo", (value)) +} + +// GetOtherIdentifyingInfo gets the value of OtherIdentifyingInfo for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyOtherIdentifyingInfo() (value []string, err error) { + retValue, err := instance.GetProperty("OtherIdentifyingInfo") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetOtherIdentifyingInfoDescription sets the value of OtherIdentifyingInfoDescription for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyOtherIdentifyingInfoDescription(value []string) (err error) { + return instance.SetProperty("OtherIdentifyingInfoDescription", (value)) +} + +// GetOtherIdentifyingInfoDescription gets the value of OtherIdentifyingInfoDescription for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyOtherIdentifyingInfoDescription() (value []string, err error) { + retValue, err := instance.GetProperty("OtherIdentifyingInfoDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetOtherOperationalStatusDescription sets the value of OtherOperationalStatusDescription for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyOtherOperationalStatusDescription(value string) (err error) { + return instance.SetProperty("OtherOperationalStatusDescription", (value)) +} + +// GetOtherOperationalStatusDescription gets the value of OtherOperationalStatusDescription for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyOtherOperationalStatusDescription() (value string, err error) { + retValue, err := instance.GetProperty("OtherOperationalStatusDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPhysicalDisksPerStoragePoolMin sets the value of PhysicalDisksPerStoragePoolMin for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyPhysicalDisksPerStoragePoolMin(value uint16) (err error) { + return instance.SetProperty("PhysicalDisksPerStoragePoolMin", (value)) +} + +// GetPhysicalDisksPerStoragePoolMin gets the value of PhysicalDisksPerStoragePoolMin for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyPhysicalDisksPerStoragePoolMin() (value uint16, err error) { + retValue, err := instance.GetProperty("PhysicalDisksPerStoragePoolMin") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetReplicasPerSourceCloneMax sets the value of ReplicasPerSourceCloneMax for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyReplicasPerSourceCloneMax(value uint16) (err error) { + return instance.SetProperty("ReplicasPerSourceCloneMax", (value)) +} + +// GetReplicasPerSourceCloneMax gets the value of ReplicasPerSourceCloneMax for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyReplicasPerSourceCloneMax() (value uint16, err error) { + retValue, err := instance.GetProperty("ReplicasPerSourceCloneMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetReplicasPerSourceMirrorMax sets the value of ReplicasPerSourceMirrorMax for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyReplicasPerSourceMirrorMax(value uint16) (err error) { + return instance.SetProperty("ReplicasPerSourceMirrorMax", (value)) +} + +// GetReplicasPerSourceMirrorMax gets the value of ReplicasPerSourceMirrorMax for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyReplicasPerSourceMirrorMax() (value uint16, err error) { + retValue, err := instance.GetProperty("ReplicasPerSourceMirrorMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetReplicasPerSourceSnapshotMax sets the value of ReplicasPerSourceSnapshotMax for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyReplicasPerSourceSnapshotMax(value uint16) (err error) { + return instance.SetProperty("ReplicasPerSourceSnapshotMax", (value)) +} + +// GetReplicasPerSourceSnapshotMax gets the value of ReplicasPerSourceSnapshotMax for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyReplicasPerSourceSnapshotMax() (value uint16, err error) { + retValue, err := instance.GetProperty("ReplicasPerSourceSnapshotMax") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetSerialNumber sets the value of SerialNumber for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySerialNumber(value string) (err error) { + return instance.SetProperty("SerialNumber", (value)) +} + +// GetSerialNumber gets the value of SerialNumber for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySerialNumber() (value string, err error) { + retValue, err := instance.GetProperty("SerialNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetStorageConnectionType sets the value of StorageConnectionType for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyStorageConnectionType(value uint16) (err error) { + return instance.SetProperty("StorageConnectionType", (value)) +} + +// GetStorageConnectionType gets the value of StorageConnectionType for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyStorageConnectionType() (value uint16, err error) { + retValue, err := instance.GetProperty("StorageConnectionType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetSupportedDeduplicationFileSystemTypes sets the value of SupportedDeduplicationFileSystemTypes for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportedDeduplicationFileSystemTypes(value []uint16) (err error) { + return instance.SetProperty("SupportedDeduplicationFileSystemTypes", (value)) +} + +// GetSupportedDeduplicationFileSystemTypes gets the value of SupportedDeduplicationFileSystemTypes for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportedDeduplicationFileSystemTypes() (value []uint16, err error) { + retValue, err := instance.GetProperty("SupportedDeduplicationFileSystemTypes") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSupportedDeduplicationObjectTypes sets the value of SupportedDeduplicationObjectTypes for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportedDeduplicationObjectTypes(value []uint16) (err error) { + return instance.SetProperty("SupportedDeduplicationObjectTypes", (value)) +} + +// GetSupportedDeduplicationObjectTypes gets the value of SupportedDeduplicationObjectTypes for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportedDeduplicationObjectTypes() (value []uint16, err error) { + retValue, err := instance.GetProperty("SupportedDeduplicationObjectTypes") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSupportedFileServerProtocols sets the value of SupportedFileServerProtocols for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportedFileServerProtocols(value []uint16) (err error) { + return instance.SetProperty("SupportedFileServerProtocols", (value)) +} + +// GetSupportedFileServerProtocols gets the value of SupportedFileServerProtocols for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportedFileServerProtocols() (value []uint16, err error) { + retValue, err := instance.GetProperty("SupportedFileServerProtocols") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSupportedFileSystems sets the value of SupportedFileSystems for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportedFileSystems(value []uint16) (err error) { + return instance.SetProperty("SupportedFileSystems", (value)) +} + +// GetSupportedFileSystems gets the value of SupportedFileSystems for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportedFileSystems() (value []uint16, err error) { + retValue, err := instance.GetProperty("SupportedFileSystems") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSupportedHostType sets the value of SupportedHostType for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportedHostType(value []uint16) (err error) { + return instance.SetProperty("SupportedHostType", (value)) +} + +// GetSupportedHostType gets the value of SupportedHostType for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportedHostType() (value []uint16, err error) { + retValue, err := instance.GetProperty("SupportedHostType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetSupportsAutomaticStoragePoolSelection sets the value of SupportsAutomaticStoragePoolSelection for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsAutomaticStoragePoolSelection(value bool) (err error) { + return instance.SetProperty("SupportsAutomaticStoragePoolSelection", (value)) +} + +// GetSupportsAutomaticStoragePoolSelection gets the value of SupportsAutomaticStoragePoolSelection for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsAutomaticStoragePoolSelection() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsAutomaticStoragePoolSelection") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsCloneLocal sets the value of SupportsCloneLocal for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsCloneLocal(value bool) (err error) { + return instance.SetProperty("SupportsCloneLocal", (value)) +} + +// GetSupportsCloneLocal gets the value of SupportsCloneLocal for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsCloneLocal() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsCloneLocal") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsCloneRemote sets the value of SupportsCloneRemote for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsCloneRemote(value bool) (err error) { + return instance.SetProperty("SupportsCloneRemote", (value)) +} + +// GetSupportsCloneRemote gets the value of SupportsCloneRemote for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsCloneRemote() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsCloneRemote") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsContinuouslyAvailableFileServer sets the value of SupportsContinuouslyAvailableFileServer for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsContinuouslyAvailableFileServer(value bool) (err error) { + return instance.SetProperty("SupportsContinuouslyAvailableFileServer", (value)) +} + +// GetSupportsContinuouslyAvailableFileServer gets the value of SupportsContinuouslyAvailableFileServer for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsContinuouslyAvailableFileServer() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsContinuouslyAvailableFileServer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsFileServer sets the value of SupportsFileServer for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsFileServer(value bool) (err error) { + return instance.SetProperty("SupportsFileServer", (value)) +} + +// GetSupportsFileServer gets the value of SupportsFileServer for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsFileServer() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsFileServer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsFileServerCreation sets the value of SupportsFileServerCreation for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsFileServerCreation(value bool) (err error) { + return instance.SetProperty("SupportsFileServerCreation", (value)) +} + +// GetSupportsFileServerCreation gets the value of SupportsFileServerCreation for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsFileServerCreation() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsFileServerCreation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsMaskingVirtualDiskToHosts sets the value of SupportsMaskingVirtualDiskToHosts for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsMaskingVirtualDiskToHosts(value bool) (err error) { + return instance.SetProperty("SupportsMaskingVirtualDiskToHosts", (value)) +} + +// GetSupportsMaskingVirtualDiskToHosts gets the value of SupportsMaskingVirtualDiskToHosts for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsMaskingVirtualDiskToHosts() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsMaskingVirtualDiskToHosts") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsMirrorLocal sets the value of SupportsMirrorLocal for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsMirrorLocal(value bool) (err error) { + return instance.SetProperty("SupportsMirrorLocal", (value)) +} + +// GetSupportsMirrorLocal gets the value of SupportsMirrorLocal for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsMirrorLocal() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsMirrorLocal") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsMirrorRemote sets the value of SupportsMirrorRemote for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsMirrorRemote(value bool) (err error) { + return instance.SetProperty("SupportsMirrorRemote", (value)) +} + +// GetSupportsMirrorRemote gets the value of SupportsMirrorRemote for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsMirrorRemote() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsMirrorRemote") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsMultipleResiliencySettingsPerStoragePool sets the value of SupportsMultipleResiliencySettingsPerStoragePool for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsMultipleResiliencySettingsPerStoragePool(value bool) (err error) { + return instance.SetProperty("SupportsMultipleResiliencySettingsPerStoragePool", (value)) +} + +// GetSupportsMultipleResiliencySettingsPerStoragePool gets the value of SupportsMultipleResiliencySettingsPerStoragePool for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsMultipleResiliencySettingsPerStoragePool() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsMultipleResiliencySettingsPerStoragePool") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsSnapshotLocal sets the value of SupportsSnapshotLocal for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsSnapshotLocal(value bool) (err error) { + return instance.SetProperty("SupportsSnapshotLocal", (value)) +} + +// GetSupportsSnapshotLocal gets the value of SupportsSnapshotLocal for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsSnapshotLocal() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsSnapshotLocal") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsSnapshotRemote sets the value of SupportsSnapshotRemote for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsSnapshotRemote(value bool) (err error) { + return instance.SetProperty("SupportsSnapshotRemote", (value)) +} + +// GetSupportsSnapshotRemote gets the value of SupportsSnapshotRemote for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsSnapshotRemote() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsSnapshotRemote") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsStoragePoolAddPhysicalDisk sets the value of SupportsStoragePoolAddPhysicalDisk for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsStoragePoolAddPhysicalDisk(value bool) (err error) { + return instance.SetProperty("SupportsStoragePoolAddPhysicalDisk", (value)) +} + +// GetSupportsStoragePoolAddPhysicalDisk gets the value of SupportsStoragePoolAddPhysicalDisk for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsStoragePoolAddPhysicalDisk() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsStoragePoolAddPhysicalDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsStoragePoolCreation sets the value of SupportsStoragePoolCreation for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsStoragePoolCreation(value bool) (err error) { + return instance.SetProperty("SupportsStoragePoolCreation", (value)) +} + +// GetSupportsStoragePoolCreation gets the value of SupportsStoragePoolCreation for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsStoragePoolCreation() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsStoragePoolCreation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsStoragePoolDeletion sets the value of SupportsStoragePoolDeletion for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsStoragePoolDeletion(value bool) (err error) { + return instance.SetProperty("SupportsStoragePoolDeletion", (value)) +} + +// GetSupportsStoragePoolDeletion gets the value of SupportsStoragePoolDeletion for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsStoragePoolDeletion() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsStoragePoolDeletion") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsStoragePoolFriendlyNameModification sets the value of SupportsStoragePoolFriendlyNameModification for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsStoragePoolFriendlyNameModification(value bool) (err error) { + return instance.SetProperty("SupportsStoragePoolFriendlyNameModification", (value)) +} + +// GetSupportsStoragePoolFriendlyNameModification gets the value of SupportsStoragePoolFriendlyNameModification for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsStoragePoolFriendlyNameModification() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsStoragePoolFriendlyNameModification") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsStoragePoolRemovePhysicalDisk sets the value of SupportsStoragePoolRemovePhysicalDisk for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsStoragePoolRemovePhysicalDisk(value bool) (err error) { + return instance.SetProperty("SupportsStoragePoolRemovePhysicalDisk", (value)) +} + +// GetSupportsStoragePoolRemovePhysicalDisk gets the value of SupportsStoragePoolRemovePhysicalDisk for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsStoragePoolRemovePhysicalDisk() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsStoragePoolRemovePhysicalDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsStorageTierCreation sets the value of SupportsStorageTierCreation for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsStorageTierCreation(value bool) (err error) { + return instance.SetProperty("SupportsStorageTierCreation", (value)) +} + +// GetSupportsStorageTierCreation gets the value of SupportsStorageTierCreation for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsStorageTierCreation() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsStorageTierCreation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsStorageTierDeletion sets the value of SupportsStorageTierDeletion for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsStorageTierDeletion(value bool) (err error) { + return instance.SetProperty("SupportsStorageTierDeletion", (value)) +} + +// GetSupportsStorageTierDeletion gets the value of SupportsStorageTierDeletion for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsStorageTierDeletion() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsStorageTierDeletion") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsStorageTieredVirtualDiskCreation sets the value of SupportsStorageTieredVirtualDiskCreation for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsStorageTieredVirtualDiskCreation(value bool) (err error) { + return instance.SetProperty("SupportsStorageTieredVirtualDiskCreation", (value)) +} + +// GetSupportsStorageTieredVirtualDiskCreation gets the value of SupportsStorageTieredVirtualDiskCreation for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsStorageTieredVirtualDiskCreation() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsStorageTieredVirtualDiskCreation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsStorageTierFriendlyNameModification sets the value of SupportsStorageTierFriendlyNameModification for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsStorageTierFriendlyNameModification(value bool) (err error) { + return instance.SetProperty("SupportsStorageTierFriendlyNameModification", (value)) +} + +// GetSupportsStorageTierFriendlyNameModification gets the value of SupportsStorageTierFriendlyNameModification for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsStorageTierFriendlyNameModification() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsStorageTierFriendlyNameModification") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsStorageTierResize sets the value of SupportsStorageTierResize for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsStorageTierResize(value bool) (err error) { + return instance.SetProperty("SupportsStorageTierResize", (value)) +} + +// GetSupportsStorageTierResize gets the value of SupportsStorageTierResize for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsStorageTierResize() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsStorageTierResize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsVirtualDiskCapacityExpansion sets the value of SupportsVirtualDiskCapacityExpansion for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsVirtualDiskCapacityExpansion(value bool) (err error) { + return instance.SetProperty("SupportsVirtualDiskCapacityExpansion", (value)) +} + +// GetSupportsVirtualDiskCapacityExpansion gets the value of SupportsVirtualDiskCapacityExpansion for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsVirtualDiskCapacityExpansion() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsVirtualDiskCapacityExpansion") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsVirtualDiskCapacityReduction sets the value of SupportsVirtualDiskCapacityReduction for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsVirtualDiskCapacityReduction(value bool) (err error) { + return instance.SetProperty("SupportsVirtualDiskCapacityReduction", (value)) +} + +// GetSupportsVirtualDiskCapacityReduction gets the value of SupportsVirtualDiskCapacityReduction for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsVirtualDiskCapacityReduction() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsVirtualDiskCapacityReduction") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsVirtualDiskCreation sets the value of SupportsVirtualDiskCreation for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsVirtualDiskCreation(value bool) (err error) { + return instance.SetProperty("SupportsVirtualDiskCreation", (value)) +} + +// GetSupportsVirtualDiskCreation gets the value of SupportsVirtualDiskCreation for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsVirtualDiskCreation() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsVirtualDiskCreation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsVirtualDiskDeletion sets the value of SupportsVirtualDiskDeletion for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsVirtualDiskDeletion(value bool) (err error) { + return instance.SetProperty("SupportsVirtualDiskDeletion", (value)) +} + +// GetSupportsVirtualDiskDeletion gets the value of SupportsVirtualDiskDeletion for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsVirtualDiskDeletion() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsVirtualDiskDeletion") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsVirtualDiskModification sets the value of SupportsVirtualDiskModification for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsVirtualDiskModification(value bool) (err error) { + return instance.SetProperty("SupportsVirtualDiskModification", (value)) +} + +// GetSupportsVirtualDiskModification gets the value of SupportsVirtualDiskModification for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsVirtualDiskModification() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsVirtualDiskModification") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsVirtualDiskRepair sets the value of SupportsVirtualDiskRepair for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsVirtualDiskRepair(value bool) (err error) { + return instance.SetProperty("SupportsVirtualDiskRepair", (value)) +} + +// GetSupportsVirtualDiskRepair gets the value of SupportsVirtualDiskRepair for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsVirtualDiskRepair() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsVirtualDiskRepair") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsVolumeCreation sets the value of SupportsVolumeCreation for the instance +func (instance *MSFT_StorageSubSystem) SetPropertySupportsVolumeCreation(value bool) (err error) { + return instance.SetProperty("SupportsVolumeCreation", (value)) +} + +// GetSupportsVolumeCreation gets the value of SupportsVolumeCreation for the instance +func (instance *MSFT_StorageSubSystem) GetPropertySupportsVolumeCreation() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsVolumeCreation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetTag sets the value of Tag for the instance +func (instance *MSFT_StorageSubSystem) SetPropertyTag(value string) (err error) { + return instance.SetProperty("Tag", (value)) +} + +// GetTag gets the value of Tag for the instance +func (instance *MSFT_StorageSubSystem) GetPropertyTag() (value string, err error) { + retValue, err := instance.GetProperty("Tag") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// + +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +// +// +// +// +func (instance *MSFT_StorageSubSystem) CreateStoragePool( /* IN */ FriendlyName string, + /* IN */ Usage uint16, + /* IN */ OtherUsageDescription string, + /* IN */ PhysicalDisks []MSFT_PhysicalDisk, + /* IN */ ResiliencySettingNameDefault string, + /* IN */ ProvisioningTypeDefault uint16, + /* IN */ MediaTypeDefault uint16, + /* IN */ LogicalSectorSizeDefault uint64, + /* IN */ EnclosureAwareDefault bool, + /* IN */ FaultDomainAwarenessDefault uint16, + /* IN */ WriteCacheSizeDefault uint64, + /* IN */ AutoWriteCacheSize bool, + /* IN */ Version uint16, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStoragePool MSFT_StoragePool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateStoragePool", FriendlyName, Usage, OtherUsageDescription, PhysicalDisks, ResiliencySettingNameDefault, ProvisioningTypeDefault, MediaTypeDefault, LogicalSectorSizeDefault, EnclosureAwareDefault, FaultDomainAwarenessDefault, WriteCacheSizeDefault, AutoWriteCacheSize, Version, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +// +// +// +// +// +func (instance *MSFT_StorageSubSystem) CreateVirtualDisk( /* IN */ FriendlyName string, + /* IN */ Usage uint16, + /* IN */ OtherUsageDescription string, + /* IN/OUT */ Size uint64, + /* IN */ UseMaximumSize bool, + /* IN */ NumberOfDataCopies uint16, + /* IN */ PhysicalDiskRedundancy uint16, + /* IN */ NumberOfColumns uint16, + /* IN */ Interleave uint64, + /* IN */ ParityLayout uint16, + /* IN */ RequestNoSinglePointOfFailure bool, + /* IN */ IsEnclosureAware bool, + /* IN */ FaultDomainAwareness uint16, + /* IN */ ProvisioningType uint16, + /* IN */ RunAsJob bool, + /* OUT */ CreatedVirtualDisk MSFT_VirtualDisk, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateVirtualDisk", FriendlyName, Usage, OtherUsageDescription, UseMaximumSize, NumberOfDataCopies, PhysicalDiskRedundancy, NumberOfColumns, Interleave, ParityLayout, RequestNoSinglePointOfFailure, IsEnclosureAware, FaultDomainAwareness, ProvisioningType, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// +// + +// +// +// +// +func (instance *MSFT_StorageSubSystem) CreateMaskingSet( /* IN */ FriendlyName string, + /* IN */ VirtualDiskNames []string, + /* IN */ DeviceAccesses []uint16, + /* IN */ DeviceNumbers []string, + /* IN */ TargetPortAddresses []string, + /* IN */ InitiatorAddresses []string, + /* IN */ HostType uint16, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ CreatedMaskingSet MSFT_MaskingSet, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateMaskingSet", FriendlyName, VirtualDiskNames, DeviceAccesses, DeviceNumbers, TargetPortAddresses, InitiatorAddresses, HostType, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_StorageSubSystem) GetSecurityDescriptor( /* OUT */ SecurityDescriptor string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSecurityDescriptor") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_StorageSubSystem) SetSecurityDescriptor( /* IN */ SecurityDescriptor string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetSecurityDescriptor", SecurityDescriptor) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_StorageSubSystem) SetDescription( /* IN */ Description string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetDescription", Description) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +func (instance *MSFT_StorageSubSystem) SetAttributes( /* IN */ AutomaticClusteringEnabled bool, + /* IN */ FaultDomainAwarenessDefault uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetAttributes", AutomaticClusteringEnabled, FaultDomainAwarenessDefault) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +// +// +// +// +// +func (instance *MSFT_StorageSubSystem) CreateReplicationRelationship( /* IN */ FriendlyName string, + /* IN */ SyncType uint16, + /* IN */ TargetStorageSubsystem MSFT_ReplicaPeer, + /* IN */ SourceReplicationGroupFriendlyName string, + /* IN */ SourceReplicationGroupDescription string, + /* IN */ SourceStorageElements []MSFT_StorageObject, + /* IN */ SourceGroupSettings MSFT_ReplicationSettings, + /* IN */ TargetReplicationGroupFriendlyName string, + /* IN */ TargetReplicationGroupDescription string, + /* IN */ TargetStorageElements []MSFT_StorageObject, + /* IN */ TargetStoragePool MSFT_StoragePool, + /* IN */ TargetStoragePools []MSFT_StoragePool, + /* IN */ TargetGroupSettings MSFT_ReplicationSettings, + /* IN */ RecoveryPointObjective uint32, + /* IN */ RunAsJob bool, + /* IN/OUT */ SourceGroup MSFT_ReplicationGroup, + /* IN */ TargetGroup MSFT_ReplicationGroup, + /* OUT */ CreatedReplicaPeer MSFT_ReplicaPeer, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateReplicationRelationship", FriendlyName, SyncType, TargetStorageSubsystem, SourceReplicationGroupFriendlyName, SourceReplicationGroupDescription, SourceStorageElements, SourceGroupSettings, TargetReplicationGroupFriendlyName, TargetReplicationGroupDescription, TargetStorageElements, TargetStoragePool, TargetStoragePools, TargetGroupSettings, RecoveryPointObjective, RunAsJob, TargetGroup) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// + +// +// +// +func (instance *MSFT_StorageSubSystem) DeleteReplicationRelationship( /* IN */ SourceReplicationGroup MSFT_ReplicationGroup, + /* IN */ TargetGroupReplicaPeer MSFT_ReplicaPeer, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("DeleteReplicationRelationship", SourceReplicationGroup, TargetGroupReplicaPeer, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// + +// +// +// +// +func (instance *MSFT_StorageSubSystem) CreateReplicationGroup( /* IN */ FriendlyName string, + /* IN */ Description string, + /* IN */ StorageElements []MSFT_StorageObject, + /* IN */ ReplicationSettings MSFT_ReplicationSettings, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ CreatedReplicationGroup MSFT_ReplicationGroup, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateReplicationGroup", FriendlyName, Description, StorageElements, ReplicationSettings, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// + +// +// +// +// +func (instance *MSFT_StorageSubSystem) CreateFileServer( /* IN */ FriendlyName string, + /* IN */ FileSharingProtocols []uint16, + /* IN */ HostNames []string, + /* IN */ RunAsJob bool, + /* OUT */ CreatedFileServer MSFT_FileServer, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateFileServer", FriendlyName, FileSharingProtocols, HostNames, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// + +// +// +func (instance *MSFT_StorageSubSystem) GetDiagnosticInfo( /* IN */ DestinationPath string, + /* IN */ TimeSpan uint32, + /* IN */ ActivityId string, + /* IN */ ExcludeOperationalLog bool, + /* IN */ ExcludeDiagnosticLog bool, + /* IN */ IncludeLiveDump bool, + /* IN */ CopyExistingInfoOnly bool, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetDiagnosticInfo", DestinationPath, TimeSpan, ActivityId, ExcludeOperationalLog, ExcludeDiagnosticLog, IncludeLiveDump, CopyExistingInfoOnly) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *MSFT_StorageSubSystem) ClearDiagnosticInfo( /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("ClearDiagnosticInfo") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +func (instance *MSFT_StorageSubSystem) StartDiagnosticLog( /* IN */ Level uint16, + /* IN */ MaxLogSize uint64, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("StartDiagnosticLog", Level, MaxLogSize) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *MSFT_StorageSubSystem) StopDiagnosticLog( /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("StopDiagnosticLog") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_StorageSubSystem) Diagnose( /* OUT */ DiagnoseResults []MSFT_StorageDiagnoseResult, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Diagnose") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_StorageSubSystem) GetActions( /* OUT */ ActionResults []MSFT_HealthAction, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetActions") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToDisk.go new file mode 100644 index 000000000..3a5f89b78 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToDisk struct +type MSFT_StorageSubSystemToDisk struct { + *cim.WmiInstance + + // + Disk MSFT_Disk + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToDisk{ + WmiInstance: tmp, + } + return +} + +// SetDisk sets the value of Disk for the instance +func (instance *MSFT_StorageSubSystemToDisk) SetPropertyDisk(value MSFT_Disk) (err error) { + return instance.SetProperty("Disk", (value)) +} + +// GetDisk gets the value of Disk for the instance +func (instance *MSFT_StorageSubSystemToDisk) GetPropertyDisk() (value MSFT_Disk, err error) { + retValue, err := instance.GetProperty("Disk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Disk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Disk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Disk(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToDisk) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToDisk) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToFileServer.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToFileServer.go new file mode 100644 index 000000000..11a0a1321 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToFileServer.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToFileServer struct +type MSFT_StorageSubSystemToFileServer struct { + *cim.WmiInstance + + // + FileServer MSFT_FileServer + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToFileServerEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToFileServer, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToFileServer{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToFileServerEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToFileServer, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToFileServer{ + WmiInstance: tmp, + } + return +} + +// SetFileServer sets the value of FileServer for the instance +func (instance *MSFT_StorageSubSystemToFileServer) SetPropertyFileServer(value MSFT_FileServer) (err error) { + return instance.SetProperty("FileServer", (value)) +} + +// GetFileServer gets the value of FileServer for the instance +func (instance *MSFT_StorageSubSystemToFileServer) GetPropertyFileServer() (value MSFT_FileServer, err error) { + retValue, err := instance.GetProperty("FileServer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_FileServer) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_FileServer is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_FileServer(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToFileServer) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToFileServer) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToFileShare.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToFileShare.go new file mode 100644 index 000000000..9ef9ca15f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToFileShare.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToFileShare struct +type MSFT_StorageSubSystemToFileShare struct { + *cim.WmiInstance + + // + FileShare MSFT_FileShare + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToFileShareEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToFileShare, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToFileShare{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToFileShareEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToFileShare, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToFileShare{ + WmiInstance: tmp, + } + return +} + +// SetFileShare sets the value of FileShare for the instance +func (instance *MSFT_StorageSubSystemToFileShare) SetPropertyFileShare(value MSFT_FileShare) (err error) { + return instance.SetProperty("FileShare", (value)) +} + +// GetFileShare gets the value of FileShare for the instance +func (instance *MSFT_StorageSubSystemToFileShare) GetPropertyFileShare() (value MSFT_FileShare, err error) { + retValue, err := instance.GetProperty("FileShare") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_FileShare) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_FileShare is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_FileShare(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToFileShare) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToFileShare) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToInitiatorId.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToInitiatorId.go new file mode 100644 index 000000000..5ef51e2d9 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToInitiatorId.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToInitiatorId struct +type MSFT_StorageSubSystemToInitiatorId struct { + *cim.WmiInstance + + // + InitiatorId MSFT_InitiatorId + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToInitiatorIdEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToInitiatorId, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToInitiatorId{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToInitiatorIdEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToInitiatorId, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToInitiatorId{ + WmiInstance: tmp, + } + return +} + +// SetInitiatorId sets the value of InitiatorId for the instance +func (instance *MSFT_StorageSubSystemToInitiatorId) SetPropertyInitiatorId(value MSFT_InitiatorId) (err error) { + return instance.SetProperty("InitiatorId", (value)) +} + +// GetInitiatorId gets the value of InitiatorId for the instance +func (instance *MSFT_StorageSubSystemToInitiatorId) GetPropertyInitiatorId() (value MSFT_InitiatorId, err error) { + retValue, err := instance.GetProperty("InitiatorId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_InitiatorId) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_InitiatorId is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_InitiatorId(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToInitiatorId) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToInitiatorId) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToMaskingSet.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToMaskingSet.go new file mode 100644 index 000000000..135a59fb7 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToMaskingSet.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToMaskingSet struct +type MSFT_StorageSubSystemToMaskingSet struct { + *cim.WmiInstance + + // + MaskingSet MSFT_MaskingSet + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToMaskingSetEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToMaskingSet, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToMaskingSet{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToMaskingSetEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToMaskingSet, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToMaskingSet{ + WmiInstance: tmp, + } + return +} + +// SetMaskingSet sets the value of MaskingSet for the instance +func (instance *MSFT_StorageSubSystemToMaskingSet) SetPropertyMaskingSet(value MSFT_MaskingSet) (err error) { + return instance.SetProperty("MaskingSet", (value)) +} + +// GetMaskingSet gets the value of MaskingSet for the instance +func (instance *MSFT_StorageSubSystemToMaskingSet) GetPropertyMaskingSet() (value MSFT_MaskingSet, err error) { + retValue, err := instance.GetProperty("MaskingSet") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_MaskingSet) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_MaskingSet is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_MaskingSet(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToMaskingSet) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToMaskingSet) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToOffloadDataTransferSetting.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToOffloadDataTransferSetting.go new file mode 100644 index 000000000..87f5c9c39 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToOffloadDataTransferSetting.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToOffloadDataTransferSetting struct +type MSFT_StorageSubSystemToOffloadDataTransferSetting struct { + *cim.WmiInstance + + // + OffloadDataTransferSetting MSFT_OffloadDataTransferSetting + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToOffloadDataTransferSettingEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToOffloadDataTransferSetting, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToOffloadDataTransferSetting{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToOffloadDataTransferSettingEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToOffloadDataTransferSetting, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToOffloadDataTransferSetting{ + WmiInstance: tmp, + } + return +} + +// SetOffloadDataTransferSetting sets the value of OffloadDataTransferSetting for the instance +func (instance *MSFT_StorageSubSystemToOffloadDataTransferSetting) SetPropertyOffloadDataTransferSetting(value MSFT_OffloadDataTransferSetting) (err error) { + return instance.SetProperty("OffloadDataTransferSetting", (value)) +} + +// GetOffloadDataTransferSetting gets the value of OffloadDataTransferSetting for the instance +func (instance *MSFT_StorageSubSystemToOffloadDataTransferSetting) GetPropertyOffloadDataTransferSetting() (value MSFT_OffloadDataTransferSetting, err error) { + retValue, err := instance.GetProperty("OffloadDataTransferSetting") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_OffloadDataTransferSetting) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_OffloadDataTransferSetting is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_OffloadDataTransferSetting(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToOffloadDataTransferSetting) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToOffloadDataTransferSetting) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToPartition.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToPartition.go new file mode 100644 index 000000000..9e0015b93 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToPartition.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToPartition struct +type MSFT_StorageSubSystemToPartition struct { + *cim.WmiInstance + + // + Partition MSFT_Partition + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToPartitionEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToPartition, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToPartition{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToPartitionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToPartition, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToPartition{ + WmiInstance: tmp, + } + return +} + +// SetPartition sets the value of Partition for the instance +func (instance *MSFT_StorageSubSystemToPartition) SetPropertyPartition(value MSFT_Partition) (err error) { + return instance.SetProperty("Partition", (value)) +} + +// GetPartition gets the value of Partition for the instance +func (instance *MSFT_StorageSubSystemToPartition) GetPropertyPartition() (value MSFT_Partition, err error) { + retValue, err := instance.GetProperty("Partition") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Partition) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Partition is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Partition(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToPartition) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToPartition) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToPhysicalDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToPhysicalDisk.go new file mode 100644 index 000000000..3c6e8ec8d --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToPhysicalDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToPhysicalDisk struct +type MSFT_StorageSubSystemToPhysicalDisk struct { + *cim.WmiInstance + + // + PhysicalDisk MSFT_PhysicalDisk + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToPhysicalDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToPhysicalDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToPhysicalDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToPhysicalDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToPhysicalDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToPhysicalDisk{ + WmiInstance: tmp, + } + return +} + +// SetPhysicalDisk sets the value of PhysicalDisk for the instance +func (instance *MSFT_StorageSubSystemToPhysicalDisk) SetPropertyPhysicalDisk(value MSFT_PhysicalDisk) (err error) { + return instance.SetProperty("PhysicalDisk", (value)) +} + +// GetPhysicalDisk gets the value of PhysicalDisk for the instance +func (instance *MSFT_StorageSubSystemToPhysicalDisk) GetPropertyPhysicalDisk() (value MSFT_PhysicalDisk, err error) { + retValue, err := instance.GetProperty("PhysicalDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_PhysicalDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_PhysicalDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_PhysicalDisk(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToPhysicalDisk) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToPhysicalDisk) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToReplicaPeer.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToReplicaPeer.go new file mode 100644 index 000000000..07e186f33 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToReplicaPeer.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToReplicaPeer struct +type MSFT_StorageSubSystemToReplicaPeer struct { + *cim.WmiInstance + + // + ReplicaPeer MSFT_ReplicaPeer + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToReplicaPeerEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToReplicaPeer, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToReplicaPeer{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToReplicaPeerEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToReplicaPeer, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToReplicaPeer{ + WmiInstance: tmp, + } + return +} + +// SetReplicaPeer sets the value of ReplicaPeer for the instance +func (instance *MSFT_StorageSubSystemToReplicaPeer) SetPropertyReplicaPeer(value MSFT_ReplicaPeer) (err error) { + return instance.SetProperty("ReplicaPeer", (value)) +} + +// GetReplicaPeer gets the value of ReplicaPeer for the instance +func (instance *MSFT_StorageSubSystemToReplicaPeer) GetPropertyReplicaPeer() (value MSFT_ReplicaPeer, err error) { + retValue, err := instance.GetProperty("ReplicaPeer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_ReplicaPeer) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_ReplicaPeer is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_ReplicaPeer(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToReplicaPeer) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToReplicaPeer) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToReplicationCapabilities.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToReplicationCapabilities.go new file mode 100644 index 000000000..e6ee9c12f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToReplicationCapabilities.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToReplicationCapabilities struct +type MSFT_StorageSubSystemToReplicationCapabilities struct { + *cim.WmiInstance + + // + ReplicationCapabilities MSFT_ReplicationCapabilities + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToReplicationCapabilitiesEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToReplicationCapabilities, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToReplicationCapabilities{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToReplicationCapabilitiesEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToReplicationCapabilities, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToReplicationCapabilities{ + WmiInstance: tmp, + } + return +} + +// SetReplicationCapabilities sets the value of ReplicationCapabilities for the instance +func (instance *MSFT_StorageSubSystemToReplicationCapabilities) SetPropertyReplicationCapabilities(value MSFT_ReplicationCapabilities) (err error) { + return instance.SetProperty("ReplicationCapabilities", (value)) +} + +// GetReplicationCapabilities gets the value of ReplicationCapabilities for the instance +func (instance *MSFT_StorageSubSystemToReplicationCapabilities) GetPropertyReplicationCapabilities() (value MSFT_ReplicationCapabilities, err error) { + retValue, err := instance.GetProperty("ReplicationCapabilities") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_ReplicationCapabilities) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_ReplicationCapabilities is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_ReplicationCapabilities(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToReplicationCapabilities) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToReplicationCapabilities) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToReplicationGroup.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToReplicationGroup.go new file mode 100644 index 000000000..41845c593 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToReplicationGroup.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToReplicationGroup struct +type MSFT_StorageSubSystemToReplicationGroup struct { + *cim.WmiInstance + + // + ReplicationGroup MSFT_ReplicationGroup + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToReplicationGroupEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToReplicationGroup, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToReplicationGroup{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToReplicationGroupEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToReplicationGroup, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToReplicationGroup{ + WmiInstance: tmp, + } + return +} + +// SetReplicationGroup sets the value of ReplicationGroup for the instance +func (instance *MSFT_StorageSubSystemToReplicationGroup) SetPropertyReplicationGroup(value MSFT_ReplicationGroup) (err error) { + return instance.SetProperty("ReplicationGroup", (value)) +} + +// GetReplicationGroup gets the value of ReplicationGroup for the instance +func (instance *MSFT_StorageSubSystemToReplicationGroup) GetPropertyReplicationGroup() (value MSFT_ReplicationGroup, err error) { + retValue, err := instance.GetProperty("ReplicationGroup") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_ReplicationGroup) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_ReplicationGroup is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_ReplicationGroup(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToReplicationGroup) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToReplicationGroup) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStorageEnclosure.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStorageEnclosure.go new file mode 100644 index 000000000..a5aebf84c --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStorageEnclosure.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToStorageEnclosure struct +type MSFT_StorageSubSystemToStorageEnclosure struct { + *cim.WmiInstance + + // + StorageEnclosure MSFT_StorageEnclosure + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToStorageEnclosureEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToStorageEnclosure, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToStorageEnclosure{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToStorageEnclosureEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToStorageEnclosure, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToStorageEnclosure{ + WmiInstance: tmp, + } + return +} + +// SetStorageEnclosure sets the value of StorageEnclosure for the instance +func (instance *MSFT_StorageSubSystemToStorageEnclosure) SetPropertyStorageEnclosure(value MSFT_StorageEnclosure) (err error) { + return instance.SetProperty("StorageEnclosure", (value)) +} + +// GetStorageEnclosure gets the value of StorageEnclosure for the instance +func (instance *MSFT_StorageSubSystemToStorageEnclosure) GetPropertyStorageEnclosure() (value MSFT_StorageEnclosure, err error) { + retValue, err := instance.GetProperty("StorageEnclosure") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageEnclosure) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageEnclosure is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageEnclosure(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToStorageEnclosure) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToStorageEnclosure) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStorageFaultDomain.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStorageFaultDomain.go new file mode 100644 index 000000000..f1f429415 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStorageFaultDomain.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToStorageFaultDomain struct +type MSFT_StorageSubSystemToStorageFaultDomain struct { + *cim.WmiInstance + + // + StorageFaultDomain MSFT_StorageFaultDomain + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToStorageFaultDomainEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToStorageFaultDomain, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToStorageFaultDomain{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToStorageFaultDomainEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToStorageFaultDomain, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToStorageFaultDomain{ + WmiInstance: tmp, + } + return +} + +// SetStorageFaultDomain sets the value of StorageFaultDomain for the instance +func (instance *MSFT_StorageSubSystemToStorageFaultDomain) SetPropertyStorageFaultDomain(value MSFT_StorageFaultDomain) (err error) { + return instance.SetProperty("StorageFaultDomain", (value)) +} + +// GetStorageFaultDomain gets the value of StorageFaultDomain for the instance +func (instance *MSFT_StorageSubSystemToStorageFaultDomain) GetPropertyStorageFaultDomain() (value MSFT_StorageFaultDomain, err error) { + retValue, err := instance.GetProperty("StorageFaultDomain") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageFaultDomain) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageFaultDomain is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageFaultDomain(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToStorageFaultDomain) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToStorageFaultDomain) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStorageHealth.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStorageHealth.go new file mode 100644 index 000000000..e2935bb1e --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStorageHealth.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToStorageHealth struct +type MSFT_StorageSubSystemToStorageHealth struct { + *cim.WmiInstance + + // + StorageHealth MSFT_StorageHealth + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToStorageHealthEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToStorageHealth, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToStorageHealth{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToStorageHealthEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToStorageHealth, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToStorageHealth{ + WmiInstance: tmp, + } + return +} + +// SetStorageHealth sets the value of StorageHealth for the instance +func (instance *MSFT_StorageSubSystemToStorageHealth) SetPropertyStorageHealth(value MSFT_StorageHealth) (err error) { + return instance.SetProperty("StorageHealth", (value)) +} + +// GetStorageHealth gets the value of StorageHealth for the instance +func (instance *MSFT_StorageSubSystemToStorageHealth) GetPropertyStorageHealth() (value MSFT_StorageHealth, err error) { + retValue, err := instance.GetProperty("StorageHealth") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageHealth) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageHealth is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageHealth(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToStorageHealth) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToStorageHealth) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStorageNode.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStorageNode.go new file mode 100644 index 000000000..e8b225f3f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStorageNode.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToStorageNode struct +type MSFT_StorageSubSystemToStorageNode struct { + *cim.WmiInstance + + // + StorageNode MSFT_StorageNode + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToStorageNodeEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToStorageNode, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToStorageNode{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToStorageNodeEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToStorageNode, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToStorageNode{ + WmiInstance: tmp, + } + return +} + +// SetStorageNode sets the value of StorageNode for the instance +func (instance *MSFT_StorageSubSystemToStorageNode) SetPropertyStorageNode(value MSFT_StorageNode) (err error) { + return instance.SetProperty("StorageNode", (value)) +} + +// GetStorageNode gets the value of StorageNode for the instance +func (instance *MSFT_StorageSubSystemToStorageNode) GetPropertyStorageNode() (value MSFT_StorageNode, err error) { + retValue, err := instance.GetProperty("StorageNode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageNode) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageNode is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageNode(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToStorageNode) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToStorageNode) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStoragePool.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStoragePool.go new file mode 100644 index 000000000..6946f6ab3 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToStoragePool.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToStoragePool struct +type MSFT_StorageSubSystemToStoragePool struct { + *cim.WmiInstance + + // + StoragePool MSFT_StoragePool + + // + StorageSubSystem MSFT_StorageSubSystem +} + +func NewMSFT_StorageSubSystemToStoragePoolEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToStoragePool, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToStoragePool{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToStoragePoolEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToStoragePool, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToStoragePool{ + WmiInstance: tmp, + } + return +} + +// SetStoragePool sets the value of StoragePool for the instance +func (instance *MSFT_StorageSubSystemToStoragePool) SetPropertyStoragePool(value MSFT_StoragePool) (err error) { + return instance.SetProperty("StoragePool", (value)) +} + +// GetStoragePool gets the value of StoragePool for the instance +func (instance *MSFT_StorageSubSystemToStoragePool) GetPropertyStoragePool() (value MSFT_StoragePool, err error) { + retValue, err := instance.GetProperty("StoragePool") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StoragePool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StoragePool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StoragePool(valuetmp) + + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToStoragePool) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToStoragePool) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToTargetPort.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToTargetPort.go new file mode 100644 index 000000000..38f1968ab --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToTargetPort.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToTargetPort struct +type MSFT_StorageSubSystemToTargetPort struct { + *cim.WmiInstance + + // + StorageSubSystem MSFT_StorageSubSystem + + // + TargetPort MSFT_TargetPort +} + +func NewMSFT_StorageSubSystemToTargetPortEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToTargetPort, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToTargetPort{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToTargetPortEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToTargetPort, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToTargetPort{ + WmiInstance: tmp, + } + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToTargetPort) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToTargetPort) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} + +// SetTargetPort sets the value of TargetPort for the instance +func (instance *MSFT_StorageSubSystemToTargetPort) SetPropertyTargetPort(value MSFT_TargetPort) (err error) { + return instance.SetProperty("TargetPort", (value)) +} + +// GetTargetPort gets the value of TargetPort for the instance +func (instance *MSFT_StorageSubSystemToTargetPort) GetPropertyTargetPort() (value MSFT_TargetPort, err error) { + retValue, err := instance.GetProperty("TargetPort") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_TargetPort) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_TargetPort is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_TargetPort(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToTargetPortal.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToTargetPortal.go new file mode 100644 index 000000000..651b4245b --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToTargetPortal.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToTargetPortal struct +type MSFT_StorageSubSystemToTargetPortal struct { + *cim.WmiInstance + + // + StorageSubSystem MSFT_StorageSubSystem + + // + TargetPortal MSFT_TargetPortal +} + +func NewMSFT_StorageSubSystemToTargetPortalEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToTargetPortal, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToTargetPortal{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToTargetPortalEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToTargetPortal, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToTargetPortal{ + WmiInstance: tmp, + } + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToTargetPortal) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToTargetPortal) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} + +// SetTargetPortal sets the value of TargetPortal for the instance +func (instance *MSFT_StorageSubSystemToTargetPortal) SetPropertyTargetPortal(value MSFT_TargetPortal) (err error) { + return instance.SetProperty("TargetPortal", (value)) +} + +// GetTargetPortal gets the value of TargetPortal for the instance +func (instance *MSFT_StorageSubSystemToTargetPortal) GetPropertyTargetPortal() (value MSFT_TargetPortal, err error) { + retValue, err := instance.GetProperty("TargetPortal") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_TargetPortal) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_TargetPortal is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_TargetPortal(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToVirtualDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToVirtualDisk.go new file mode 100644 index 000000000..041590742 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToVirtualDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToVirtualDisk struct +type MSFT_StorageSubSystemToVirtualDisk struct { + *cim.WmiInstance + + // + StorageSubSystem MSFT_StorageSubSystem + + // + VirtualDisk MSFT_VirtualDisk +} + +func NewMSFT_StorageSubSystemToVirtualDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToVirtualDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToVirtualDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToVirtualDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToVirtualDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToVirtualDisk{ + WmiInstance: tmp, + } + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToVirtualDisk) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToVirtualDisk) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} + +// SetVirtualDisk sets the value of VirtualDisk for the instance +func (instance *MSFT_StorageSubSystemToVirtualDisk) SetPropertyVirtualDisk(value MSFT_VirtualDisk) (err error) { + return instance.SetProperty("VirtualDisk", (value)) +} + +// GetVirtualDisk gets the value of VirtualDisk for the instance +func (instance *MSFT_StorageSubSystemToVirtualDisk) GetPropertyVirtualDisk() (value MSFT_VirtualDisk, err error) { + retValue, err := instance.GetProperty("VirtualDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_VirtualDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_VirtualDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_VirtualDisk(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToVolume.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToVolume.go new file mode 100644 index 000000000..72d94be98 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageSubSystemToVolume.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageSubSystemToVolume struct +type MSFT_StorageSubSystemToVolume struct { + *cim.WmiInstance + + // + StorageSubSystem MSFT_StorageSubSystem + + // + Volume MSFT_Volume +} + +func NewMSFT_StorageSubSystemToVolumeEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageSubSystemToVolume, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToVolume{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_StorageSubSystemToVolumeEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageSubSystemToVolume, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageSubSystemToVolume{ + WmiInstance: tmp, + } + return +} + +// SetStorageSubSystem sets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToVolume) SetPropertyStorageSubSystem(value MSFT_StorageSubSystem) (err error) { + return instance.SetProperty("StorageSubSystem", (value)) +} + +// GetStorageSubSystem gets the value of StorageSubSystem for the instance +func (instance *MSFT_StorageSubSystemToVolume) GetPropertyStorageSubSystem() (value MSFT_StorageSubSystem, err error) { + retValue, err := instance.GetProperty("StorageSubSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageSubSystem) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageSubSystem is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageSubSystem(valuetmp) + + return +} + +// SetVolume sets the value of Volume for the instance +func (instance *MSFT_StorageSubSystemToVolume) SetPropertyVolume(value MSFT_Volume) (err error) { + return instance.SetProperty("Volume", (value)) +} + +// GetVolume gets the value of Volume for the instance +func (instance *MSFT_StorageSubSystemToVolume) GetPropertyVolume() (value MSFT_Volume, err error) { + retValue, err := instance.GetProperty("Volume") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Volume) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Volume is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Volume(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageTier.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageTier.go new file mode 100644 index 000000000..c5e342c86 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_StorageTier.go @@ -0,0 +1,826 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_StorageTier struct +type MSFT_StorageTier struct { + *MSFT_StorageObject + + // + AllocatedSize uint64 + + // + AllocationUnitSize uint64 + + // + ColumnIsolation uint16 + + // + Description string + + // + FaultDomainAwareness uint16 + + // + FootprintOnPool uint64 + + // + FriendlyName string + + // + Interleave uint64 + + // + MediaType uint16 + + // + NumberOfColumns uint16 + + // + NumberOfDataCopies uint16 + + // + NumberOfGroups uint16 + + // + ParityLayout uint16 + + // + PhysicalDiskRedundancy uint16 + + // + ProvisioningType uint16 + + // + ResiliencySettingName string + + // + Size uint64 + + // + TierClass uint16 + + // + Usage uint16 +} + +func NewMSFT_StorageTierEx1(instance *cim.WmiInstance) (newInstance *MSFT_StorageTier, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_StorageTier{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_StorageTierEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_StorageTier, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_StorageTier{ + MSFT_StorageObject: tmp, + } + return +} + +// SetAllocatedSize sets the value of AllocatedSize for the instance +func (instance *MSFT_StorageTier) SetPropertyAllocatedSize(value uint64) (err error) { + return instance.SetProperty("AllocatedSize", (value)) +} + +// GetAllocatedSize gets the value of AllocatedSize for the instance +func (instance *MSFT_StorageTier) GetPropertyAllocatedSize() (value uint64, err error) { + retValue, err := instance.GetProperty("AllocatedSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetAllocationUnitSize sets the value of AllocationUnitSize for the instance +func (instance *MSFT_StorageTier) SetPropertyAllocationUnitSize(value uint64) (err error) { + return instance.SetProperty("AllocationUnitSize", (value)) +} + +// GetAllocationUnitSize gets the value of AllocationUnitSize for the instance +func (instance *MSFT_StorageTier) GetPropertyAllocationUnitSize() (value uint64, err error) { + retValue, err := instance.GetProperty("AllocationUnitSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetColumnIsolation sets the value of ColumnIsolation for the instance +func (instance *MSFT_StorageTier) SetPropertyColumnIsolation(value uint16) (err error) { + return instance.SetProperty("ColumnIsolation", (value)) +} + +// GetColumnIsolation gets the value of ColumnIsolation for the instance +func (instance *MSFT_StorageTier) GetPropertyColumnIsolation() (value uint16, err error) { + retValue, err := instance.GetProperty("ColumnIsolation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetDescription sets the value of Description for the instance +func (instance *MSFT_StorageTier) SetPropertyDescription(value string) (err error) { + return instance.SetProperty("Description", (value)) +} + +// GetDescription gets the value of Description for the instance +func (instance *MSFT_StorageTier) GetPropertyDescription() (value string, err error) { + retValue, err := instance.GetProperty("Description") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFaultDomainAwareness sets the value of FaultDomainAwareness for the instance +func (instance *MSFT_StorageTier) SetPropertyFaultDomainAwareness(value uint16) (err error) { + return instance.SetProperty("FaultDomainAwareness", (value)) +} + +// GetFaultDomainAwareness gets the value of FaultDomainAwareness for the instance +func (instance *MSFT_StorageTier) GetPropertyFaultDomainAwareness() (value uint16, err error) { + retValue, err := instance.GetProperty("FaultDomainAwareness") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetFootprintOnPool sets the value of FootprintOnPool for the instance +func (instance *MSFT_StorageTier) SetPropertyFootprintOnPool(value uint64) (err error) { + return instance.SetProperty("FootprintOnPool", (value)) +} + +// GetFootprintOnPool gets the value of FootprintOnPool for the instance +func (instance *MSFT_StorageTier) GetPropertyFootprintOnPool() (value uint64, err error) { + retValue, err := instance.GetProperty("FootprintOnPool") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetFriendlyName sets the value of FriendlyName for the instance +func (instance *MSFT_StorageTier) SetPropertyFriendlyName(value string) (err error) { + return instance.SetProperty("FriendlyName", (value)) +} + +// GetFriendlyName gets the value of FriendlyName for the instance +func (instance *MSFT_StorageTier) GetPropertyFriendlyName() (value string, err error) { + retValue, err := instance.GetProperty("FriendlyName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetInterleave sets the value of Interleave for the instance +func (instance *MSFT_StorageTier) SetPropertyInterleave(value uint64) (err error) { + return instance.SetProperty("Interleave", (value)) +} + +// GetInterleave gets the value of Interleave for the instance +func (instance *MSFT_StorageTier) GetPropertyInterleave() (value uint64, err error) { + retValue, err := instance.GetProperty("Interleave") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetMediaType sets the value of MediaType for the instance +func (instance *MSFT_StorageTier) SetPropertyMediaType(value uint16) (err error) { + return instance.SetProperty("MediaType", (value)) +} + +// GetMediaType gets the value of MediaType for the instance +func (instance *MSFT_StorageTier) GetPropertyMediaType() (value uint16, err error) { + retValue, err := instance.GetProperty("MediaType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfColumns sets the value of NumberOfColumns for the instance +func (instance *MSFT_StorageTier) SetPropertyNumberOfColumns(value uint16) (err error) { + return instance.SetProperty("NumberOfColumns", (value)) +} + +// GetNumberOfColumns gets the value of NumberOfColumns for the instance +func (instance *MSFT_StorageTier) GetPropertyNumberOfColumns() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfColumns") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfDataCopies sets the value of NumberOfDataCopies for the instance +func (instance *MSFT_StorageTier) SetPropertyNumberOfDataCopies(value uint16) (err error) { + return instance.SetProperty("NumberOfDataCopies", (value)) +} + +// GetNumberOfDataCopies gets the value of NumberOfDataCopies for the instance +func (instance *MSFT_StorageTier) GetPropertyNumberOfDataCopies() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfDataCopies") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfGroups sets the value of NumberOfGroups for the instance +func (instance *MSFT_StorageTier) SetPropertyNumberOfGroups(value uint16) (err error) { + return instance.SetProperty("NumberOfGroups", (value)) +} + +// GetNumberOfGroups gets the value of NumberOfGroups for the instance +func (instance *MSFT_StorageTier) GetPropertyNumberOfGroups() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfGroups") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetParityLayout sets the value of ParityLayout for the instance +func (instance *MSFT_StorageTier) SetPropertyParityLayout(value uint16) (err error) { + return instance.SetProperty("ParityLayout", (value)) +} + +// GetParityLayout gets the value of ParityLayout for the instance +func (instance *MSFT_StorageTier) GetPropertyParityLayout() (value uint16, err error) { + retValue, err := instance.GetProperty("ParityLayout") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetPhysicalDiskRedundancy sets the value of PhysicalDiskRedundancy for the instance +func (instance *MSFT_StorageTier) SetPropertyPhysicalDiskRedundancy(value uint16) (err error) { + return instance.SetProperty("PhysicalDiskRedundancy", (value)) +} + +// GetPhysicalDiskRedundancy gets the value of PhysicalDiskRedundancy for the instance +func (instance *MSFT_StorageTier) GetPropertyPhysicalDiskRedundancy() (value uint16, err error) { + retValue, err := instance.GetProperty("PhysicalDiskRedundancy") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetProvisioningType sets the value of ProvisioningType for the instance +func (instance *MSFT_StorageTier) SetPropertyProvisioningType(value uint16) (err error) { + return instance.SetProperty("ProvisioningType", (value)) +} + +// GetProvisioningType gets the value of ProvisioningType for the instance +func (instance *MSFT_StorageTier) GetPropertyProvisioningType() (value uint16, err error) { + retValue, err := instance.GetProperty("ProvisioningType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetResiliencySettingName sets the value of ResiliencySettingName for the instance +func (instance *MSFT_StorageTier) SetPropertyResiliencySettingName(value string) (err error) { + return instance.SetProperty("ResiliencySettingName", (value)) +} + +// GetResiliencySettingName gets the value of ResiliencySettingName for the instance +func (instance *MSFT_StorageTier) GetPropertyResiliencySettingName() (value string, err error) { + retValue, err := instance.GetProperty("ResiliencySettingName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSize sets the value of Size for the instance +func (instance *MSFT_StorageTier) SetPropertySize(value uint64) (err error) { + return instance.SetProperty("Size", (value)) +} + +// GetSize gets the value of Size for the instance +func (instance *MSFT_StorageTier) GetPropertySize() (value uint64, err error) { + retValue, err := instance.GetProperty("Size") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetTierClass sets the value of TierClass for the instance +func (instance *MSFT_StorageTier) SetPropertyTierClass(value uint16) (err error) { + return instance.SetProperty("TierClass", (value)) +} + +// GetTierClass gets the value of TierClass for the instance +func (instance *MSFT_StorageTier) GetPropertyTierClass() (value uint16, err error) { + retValue, err := instance.GetProperty("TierClass") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetUsage sets the value of Usage for the instance +func (instance *MSFT_StorageTier) SetPropertyUsage(value uint16) (err error) { + return instance.SetProperty("Usage", (value)) +} + +// GetUsage gets the value of Usage for the instance +func (instance *MSFT_StorageTier) GetPropertyUsage() (value uint16, err error) { + retValue, err := instance.GetProperty("Usage") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// + +// +// +// +func (instance *MSFT_StorageTier) GetPhysicalExtent( /* OUT */ PhysicalExtents []MSFT_PhysicalExtent, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetPhysicalExtent") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_StorageTier) DeleteObject( /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("DeleteObject", RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +// +func (instance *MSFT_StorageTier) Resize( /* IN/OUT */ Size uint64, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Resize", RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_StorageTier) SetFriendlyName( /* IN */ FriendlyName string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetFriendlyName", FriendlyName) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// +// +// +// +// +// + +// +// +func (instance *MSFT_StorageTier) SetAttributes( /* IN */ ProvisioningType uint16, + /* IN */ AllocationUnitSize uint64, + /* IN */ MediaType uint16, + /* IN */ FaultDomainAwareness uint16, + /* IN */ ColumnIsolation uint16, + /* IN */ ResiliencySettingName string, + /* IN */ Usage uint16, + /* IN */ PhysicalDiskRedundancy uint16, + /* IN */ NumberOfDataCopies uint16, + /* IN */ NumberOfGroups uint16, + /* IN */ NumberOfColumns uint16, + /* IN */ Interleave uint64, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetAttributes", ProvisioningType, AllocationUnitSize, MediaType, FaultDomainAwareness, ColumnIsolation, ResiliencySettingName, Usage, PhysicalDiskRedundancy, NumberOfDataCopies, NumberOfGroups, NumberOfColumns, Interleave) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_StorageTier) SetDescription( /* IN */ Description string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetDescription", Description) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +// +// +// +func (instance *MSFT_StorageTier) GetSupportedSize( /* IN */ ResiliencySettingName string, + /* OUT */ SupportedSizes []uint64, + /* OUT */ TierSizeMin uint64, + /* OUT */ TierSizeMax uint64, + /* OUT */ TierSizeDivisor uint64, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSupportedSize", ResiliencySettingName) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +func (instance *MSFT_StorageTier) AddStorageFaultDomain( /* IN */ StorageFaultDomains []MSFT_StorageFaultDomain, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("AddStorageFaultDomain", StorageFaultDomains, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +func (instance *MSFT_StorageTier) RemoveStorageFaultDomain( /* IN */ StorageFaultDomains []MSFT_StorageFaultDomain, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("RemoveStorageFaultDomain", StorageFaultDomains, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Synchronized.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Synchronized.go new file mode 100644 index 000000000..35fc2d8fc --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Synchronized.go @@ -0,0 +1,471 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_Synchronized struct +type MSFT_Synchronized struct { + *cim.WmiInstance + + // + CopyMethodology uint16 + + // + CopyPriority uint16 + + // + CopyState uint16 + + // + CopyType uint16 + + // + PercentSynced uint16 + + // + ProgressStatus uint16 + + // + RecoveryPointObjective uint32 + + // + ReplicaType uint16 + + // + RequestedCopyState uint16 + + // + SyncMaintained bool + + // + SyncMode uint16 + + // + SyncState uint16 + + // + SyncTime string + + // + SyncType uint16 +} + +func NewMSFT_SynchronizedEx1(instance *cim.WmiInstance) (newInstance *MSFT_Synchronized, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_Synchronized{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_SynchronizedEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_Synchronized, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_Synchronized{ + WmiInstance: tmp, + } + return +} + +// SetCopyMethodology sets the value of CopyMethodology for the instance +func (instance *MSFT_Synchronized) SetPropertyCopyMethodology(value uint16) (err error) { + return instance.SetProperty("CopyMethodology", (value)) +} + +// GetCopyMethodology gets the value of CopyMethodology for the instance +func (instance *MSFT_Synchronized) GetPropertyCopyMethodology() (value uint16, err error) { + retValue, err := instance.GetProperty("CopyMethodology") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetCopyPriority sets the value of CopyPriority for the instance +func (instance *MSFT_Synchronized) SetPropertyCopyPriority(value uint16) (err error) { + return instance.SetProperty("CopyPriority", (value)) +} + +// GetCopyPriority gets the value of CopyPriority for the instance +func (instance *MSFT_Synchronized) GetPropertyCopyPriority() (value uint16, err error) { + retValue, err := instance.GetProperty("CopyPriority") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetCopyState sets the value of CopyState for the instance +func (instance *MSFT_Synchronized) SetPropertyCopyState(value uint16) (err error) { + return instance.SetProperty("CopyState", (value)) +} + +// GetCopyState gets the value of CopyState for the instance +func (instance *MSFT_Synchronized) GetPropertyCopyState() (value uint16, err error) { + retValue, err := instance.GetProperty("CopyState") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetCopyType sets the value of CopyType for the instance +func (instance *MSFT_Synchronized) SetPropertyCopyType(value uint16) (err error) { + return instance.SetProperty("CopyType", (value)) +} + +// GetCopyType gets the value of CopyType for the instance +func (instance *MSFT_Synchronized) GetPropertyCopyType() (value uint16, err error) { + retValue, err := instance.GetProperty("CopyType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetPercentSynced sets the value of PercentSynced for the instance +func (instance *MSFT_Synchronized) SetPropertyPercentSynced(value uint16) (err error) { + return instance.SetProperty("PercentSynced", (value)) +} + +// GetPercentSynced gets the value of PercentSynced for the instance +func (instance *MSFT_Synchronized) GetPropertyPercentSynced() (value uint16, err error) { + retValue, err := instance.GetProperty("PercentSynced") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetProgressStatus sets the value of ProgressStatus for the instance +func (instance *MSFT_Synchronized) SetPropertyProgressStatus(value uint16) (err error) { + return instance.SetProperty("ProgressStatus", (value)) +} + +// GetProgressStatus gets the value of ProgressStatus for the instance +func (instance *MSFT_Synchronized) GetPropertyProgressStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("ProgressStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetRecoveryPointObjective sets the value of RecoveryPointObjective for the instance +func (instance *MSFT_Synchronized) SetPropertyRecoveryPointObjective(value uint32) (err error) { + return instance.SetProperty("RecoveryPointObjective", (value)) +} + +// GetRecoveryPointObjective gets the value of RecoveryPointObjective for the instance +func (instance *MSFT_Synchronized) GetPropertyRecoveryPointObjective() (value uint32, err error) { + retValue, err := instance.GetProperty("RecoveryPointObjective") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetReplicaType sets the value of ReplicaType for the instance +func (instance *MSFT_Synchronized) SetPropertyReplicaType(value uint16) (err error) { + return instance.SetProperty("ReplicaType", (value)) +} + +// GetReplicaType gets the value of ReplicaType for the instance +func (instance *MSFT_Synchronized) GetPropertyReplicaType() (value uint16, err error) { + retValue, err := instance.GetProperty("ReplicaType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetRequestedCopyState sets the value of RequestedCopyState for the instance +func (instance *MSFT_Synchronized) SetPropertyRequestedCopyState(value uint16) (err error) { + return instance.SetProperty("RequestedCopyState", (value)) +} + +// GetRequestedCopyState gets the value of RequestedCopyState for the instance +func (instance *MSFT_Synchronized) GetPropertyRequestedCopyState() (value uint16, err error) { + retValue, err := instance.GetProperty("RequestedCopyState") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetSyncMaintained sets the value of SyncMaintained for the instance +func (instance *MSFT_Synchronized) SetPropertySyncMaintained(value bool) (err error) { + return instance.SetProperty("SyncMaintained", (value)) +} + +// GetSyncMaintained gets the value of SyncMaintained for the instance +func (instance *MSFT_Synchronized) GetPropertySyncMaintained() (value bool, err error) { + retValue, err := instance.GetProperty("SyncMaintained") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSyncMode sets the value of SyncMode for the instance +func (instance *MSFT_Synchronized) SetPropertySyncMode(value uint16) (err error) { + return instance.SetProperty("SyncMode", (value)) +} + +// GetSyncMode gets the value of SyncMode for the instance +func (instance *MSFT_Synchronized) GetPropertySyncMode() (value uint16, err error) { + retValue, err := instance.GetProperty("SyncMode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetSyncState sets the value of SyncState for the instance +func (instance *MSFT_Synchronized) SetPropertySyncState(value uint16) (err error) { + return instance.SetProperty("SyncState", (value)) +} + +// GetSyncState gets the value of SyncState for the instance +func (instance *MSFT_Synchronized) GetPropertySyncState() (value uint16, err error) { + retValue, err := instance.GetProperty("SyncState") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetSyncTime sets the value of SyncTime for the instance +func (instance *MSFT_Synchronized) SetPropertySyncTime(value string) (err error) { + return instance.SetProperty("SyncTime", (value)) +} + +// GetSyncTime gets the value of SyncTime for the instance +func (instance *MSFT_Synchronized) GetPropertySyncTime() (value string, err error) { + retValue, err := instance.GetProperty("SyncTime") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSyncType sets the value of SyncType for the instance +func (instance *MSFT_Synchronized) SetPropertySyncType(value uint16) (err error) { + return instance.SetProperty("SyncType", (value)) +} + +// GetSyncType gets the value of SyncType for the instance +func (instance *MSFT_Synchronized) GetPropertySyncType() (value uint16, err error) { + retValue, err := instance.GetProperty("SyncType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_TargetPort.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_TargetPort.go new file mode 100644 index 000000000..0abcaac55 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_TargetPort.go @@ -0,0 +1,593 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_TargetPort struct +type MSFT_TargetPort struct { + *MSFT_StorageObject + + // + ConnectionType uint16 + + // + FriendlyName string + + // + HealthStatus uint16 + + // + LinkTechnology uint16 + + // + MaxSpeed uint64 + + // + NetworkAddresses []string + + // + NodeAddress string + + // + OperationalStatus []uint16 + + // + OtherConnectionTypeDescription string + + // + OtherLinkTechnology string + + // + OtherOperationalStatusDescription string + + // + PortAddress string + + // + PortNumbers []uint16 + + // + PortType uint16 + + // + Role uint16 + + // + Speed uint64 + + // + StorageControllerId string + + // + UsageRestriction uint16 +} + +func NewMSFT_TargetPortEx1(instance *cim.WmiInstance) (newInstance *MSFT_TargetPort, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_TargetPort{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_TargetPortEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_TargetPort, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_TargetPort{ + MSFT_StorageObject: tmp, + } + return +} + +// SetConnectionType sets the value of ConnectionType for the instance +func (instance *MSFT_TargetPort) SetPropertyConnectionType(value uint16) (err error) { + return instance.SetProperty("ConnectionType", (value)) +} + +// GetConnectionType gets the value of ConnectionType for the instance +func (instance *MSFT_TargetPort) GetPropertyConnectionType() (value uint16, err error) { + retValue, err := instance.GetProperty("ConnectionType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetFriendlyName sets the value of FriendlyName for the instance +func (instance *MSFT_TargetPort) SetPropertyFriendlyName(value string) (err error) { + return instance.SetProperty("FriendlyName", (value)) +} + +// GetFriendlyName gets the value of FriendlyName for the instance +func (instance *MSFT_TargetPort) GetPropertyFriendlyName() (value string, err error) { + retValue, err := instance.GetProperty("FriendlyName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetHealthStatus sets the value of HealthStatus for the instance +func (instance *MSFT_TargetPort) SetPropertyHealthStatus(value uint16) (err error) { + return instance.SetProperty("HealthStatus", (value)) +} + +// GetHealthStatus gets the value of HealthStatus for the instance +func (instance *MSFT_TargetPort) GetPropertyHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("HealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetLinkTechnology sets the value of LinkTechnology for the instance +func (instance *MSFT_TargetPort) SetPropertyLinkTechnology(value uint16) (err error) { + return instance.SetProperty("LinkTechnology", (value)) +} + +// GetLinkTechnology gets the value of LinkTechnology for the instance +func (instance *MSFT_TargetPort) GetPropertyLinkTechnology() (value uint16, err error) { + retValue, err := instance.GetProperty("LinkTechnology") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetMaxSpeed sets the value of MaxSpeed for the instance +func (instance *MSFT_TargetPort) SetPropertyMaxSpeed(value uint64) (err error) { + return instance.SetProperty("MaxSpeed", (value)) +} + +// GetMaxSpeed gets the value of MaxSpeed for the instance +func (instance *MSFT_TargetPort) GetPropertyMaxSpeed() (value uint64, err error) { + retValue, err := instance.GetProperty("MaxSpeed") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetNetworkAddresses sets the value of NetworkAddresses for the instance +func (instance *MSFT_TargetPort) SetPropertyNetworkAddresses(value []string) (err error) { + return instance.SetProperty("NetworkAddresses", (value)) +} + +// GetNetworkAddresses gets the value of NetworkAddresses for the instance +func (instance *MSFT_TargetPort) GetPropertyNetworkAddresses() (value []string, err error) { + retValue, err := instance.GetProperty("NetworkAddresses") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetNodeAddress sets the value of NodeAddress for the instance +func (instance *MSFT_TargetPort) SetPropertyNodeAddress(value string) (err error) { + return instance.SetProperty("NodeAddress", (value)) +} + +// GetNodeAddress gets the value of NodeAddress for the instance +func (instance *MSFT_TargetPort) GetPropertyNodeAddress() (value string, err error) { + retValue, err := instance.GetProperty("NodeAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_TargetPort) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_TargetPort) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetOtherConnectionTypeDescription sets the value of OtherConnectionTypeDescription for the instance +func (instance *MSFT_TargetPort) SetPropertyOtherConnectionTypeDescription(value string) (err error) { + return instance.SetProperty("OtherConnectionTypeDescription", (value)) +} + +// GetOtherConnectionTypeDescription gets the value of OtherConnectionTypeDescription for the instance +func (instance *MSFT_TargetPort) GetPropertyOtherConnectionTypeDescription() (value string, err error) { + retValue, err := instance.GetProperty("OtherConnectionTypeDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOtherLinkTechnology sets the value of OtherLinkTechnology for the instance +func (instance *MSFT_TargetPort) SetPropertyOtherLinkTechnology(value string) (err error) { + return instance.SetProperty("OtherLinkTechnology", (value)) +} + +// GetOtherLinkTechnology gets the value of OtherLinkTechnology for the instance +func (instance *MSFT_TargetPort) GetPropertyOtherLinkTechnology() (value string, err error) { + retValue, err := instance.GetProperty("OtherLinkTechnology") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOtherOperationalStatusDescription sets the value of OtherOperationalStatusDescription for the instance +func (instance *MSFT_TargetPort) SetPropertyOtherOperationalStatusDescription(value string) (err error) { + return instance.SetProperty("OtherOperationalStatusDescription", (value)) +} + +// GetOtherOperationalStatusDescription gets the value of OtherOperationalStatusDescription for the instance +func (instance *MSFT_TargetPort) GetPropertyOtherOperationalStatusDescription() (value string, err error) { + retValue, err := instance.GetProperty("OtherOperationalStatusDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPortAddress sets the value of PortAddress for the instance +func (instance *MSFT_TargetPort) SetPropertyPortAddress(value string) (err error) { + return instance.SetProperty("PortAddress", (value)) +} + +// GetPortAddress gets the value of PortAddress for the instance +func (instance *MSFT_TargetPort) GetPropertyPortAddress() (value string, err error) { + retValue, err := instance.GetProperty("PortAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPortNumbers sets the value of PortNumbers for the instance +func (instance *MSFT_TargetPort) SetPropertyPortNumbers(value []uint16) (err error) { + return instance.SetProperty("PortNumbers", (value)) +} + +// GetPortNumbers gets the value of PortNumbers for the instance +func (instance *MSFT_TargetPort) GetPropertyPortNumbers() (value []uint16, err error) { + retValue, err := instance.GetProperty("PortNumbers") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetPortType sets the value of PortType for the instance +func (instance *MSFT_TargetPort) SetPropertyPortType(value uint16) (err error) { + return instance.SetProperty("PortType", (value)) +} + +// GetPortType gets the value of PortType for the instance +func (instance *MSFT_TargetPort) GetPropertyPortType() (value uint16, err error) { + retValue, err := instance.GetProperty("PortType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetRole sets the value of Role for the instance +func (instance *MSFT_TargetPort) SetPropertyRole(value uint16) (err error) { + return instance.SetProperty("Role", (value)) +} + +// GetRole gets the value of Role for the instance +func (instance *MSFT_TargetPort) GetPropertyRole() (value uint16, err error) { + retValue, err := instance.GetProperty("Role") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetSpeed sets the value of Speed for the instance +func (instance *MSFT_TargetPort) SetPropertySpeed(value uint64) (err error) { + return instance.SetProperty("Speed", (value)) +} + +// GetSpeed gets the value of Speed for the instance +func (instance *MSFT_TargetPort) GetPropertySpeed() (value uint64, err error) { + retValue, err := instance.GetProperty("Speed") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetStorageControllerId sets the value of StorageControllerId for the instance +func (instance *MSFT_TargetPort) SetPropertyStorageControllerId(value string) (err error) { + return instance.SetProperty("StorageControllerId", (value)) +} + +// GetStorageControllerId gets the value of StorageControllerId for the instance +func (instance *MSFT_TargetPort) GetPropertyStorageControllerId() (value string, err error) { + retValue, err := instance.GetProperty("StorageControllerId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetUsageRestriction sets the value of UsageRestriction for the instance +func (instance *MSFT_TargetPort) SetPropertyUsageRestriction(value uint16) (err error) { + return instance.SetProperty("UsageRestriction", (value)) +} + +// GetUsageRestriction gets the value of UsageRestriction for the instance +func (instance *MSFT_TargetPort) GetPropertyUsageRestriction() (value uint16, err error) { + retValue, err := instance.GetProperty("UsageRestriction") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_TargetPortToTargetPortal.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_TargetPortToTargetPortal.go new file mode 100644 index 000000000..2c954be46 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_TargetPortToTargetPortal.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_TargetPortToTargetPortal struct +type MSFT_TargetPortToTargetPortal struct { + *cim.WmiInstance + + // + TargetPort MSFT_TargetPort + + // + TargetPortal MSFT_TargetPortal +} + +func NewMSFT_TargetPortToTargetPortalEx1(instance *cim.WmiInstance) (newInstance *MSFT_TargetPortToTargetPortal, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_TargetPortToTargetPortal{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_TargetPortToTargetPortalEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_TargetPortToTargetPortal, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_TargetPortToTargetPortal{ + WmiInstance: tmp, + } + return +} + +// SetTargetPort sets the value of TargetPort for the instance +func (instance *MSFT_TargetPortToTargetPortal) SetPropertyTargetPort(value MSFT_TargetPort) (err error) { + return instance.SetProperty("TargetPort", (value)) +} + +// GetTargetPort gets the value of TargetPort for the instance +func (instance *MSFT_TargetPortToTargetPortal) GetPropertyTargetPort() (value MSFT_TargetPort, err error) { + retValue, err := instance.GetProperty("TargetPort") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_TargetPort) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_TargetPort is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_TargetPort(valuetmp) + + return +} + +// SetTargetPortal sets the value of TargetPortal for the instance +func (instance *MSFT_TargetPortToTargetPortal) SetPropertyTargetPortal(value MSFT_TargetPortal) (err error) { + return instance.SetProperty("TargetPortal", (value)) +} + +// GetTargetPortal gets the value of TargetPortal for the instance +func (instance *MSFT_TargetPortToTargetPortal) GetPropertyTargetPortal() (value MSFT_TargetPortal, err error) { + retValue, err := instance.GetProperty("TargetPortal") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_TargetPortal) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_TargetPortal is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_TargetPortal(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_TargetPortToVirtualDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_TargetPortToVirtualDisk.go new file mode 100644 index 000000000..2c6cbb640 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_TargetPortToVirtualDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_TargetPortToVirtualDisk struct +type MSFT_TargetPortToVirtualDisk struct { + *cim.WmiInstance + + // + TargetPort MSFT_TargetPort + + // + VirtualDisk MSFT_VirtualDisk +} + +func NewMSFT_TargetPortToVirtualDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_TargetPortToVirtualDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_TargetPortToVirtualDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_TargetPortToVirtualDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_TargetPortToVirtualDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_TargetPortToVirtualDisk{ + WmiInstance: tmp, + } + return +} + +// SetTargetPort sets the value of TargetPort for the instance +func (instance *MSFT_TargetPortToVirtualDisk) SetPropertyTargetPort(value MSFT_TargetPort) (err error) { + return instance.SetProperty("TargetPort", (value)) +} + +// GetTargetPort gets the value of TargetPort for the instance +func (instance *MSFT_TargetPortToVirtualDisk) GetPropertyTargetPort() (value MSFT_TargetPort, err error) { + retValue, err := instance.GetProperty("TargetPort") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_TargetPort) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_TargetPort is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_TargetPort(valuetmp) + + return +} + +// SetVirtualDisk sets the value of VirtualDisk for the instance +func (instance *MSFT_TargetPortToVirtualDisk) SetPropertyVirtualDisk(value MSFT_VirtualDisk) (err error) { + return instance.SetProperty("VirtualDisk", (value)) +} + +// GetVirtualDisk gets the value of VirtualDisk for the instance +func (instance *MSFT_TargetPortToVirtualDisk) GetPropertyVirtualDisk() (value MSFT_VirtualDisk, err error) { + retValue, err := instance.GetProperty("VirtualDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_VirtualDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_VirtualDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_VirtualDisk(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_TargetPortal.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_TargetPortal.go new file mode 100644 index 000000000..4b21c4b5b --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_TargetPortal.go @@ -0,0 +1,170 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_TargetPortal struct +type MSFT_TargetPortal struct { + *MSFT_StorageObject + + // + IPv4Address string + + // + IPv6Address string + + // + PortNumber uint32 + + // + SubnetMask string +} + +func NewMSFT_TargetPortalEx1(instance *cim.WmiInstance) (newInstance *MSFT_TargetPortal, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_TargetPortal{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_TargetPortalEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_TargetPortal, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_TargetPortal{ + MSFT_StorageObject: tmp, + } + return +} + +// SetIPv4Address sets the value of IPv4Address for the instance +func (instance *MSFT_TargetPortal) SetPropertyIPv4Address(value string) (err error) { + return instance.SetProperty("IPv4Address", (value)) +} + +// GetIPv4Address gets the value of IPv4Address for the instance +func (instance *MSFT_TargetPortal) GetPropertyIPv4Address() (value string, err error) { + retValue, err := instance.GetProperty("IPv4Address") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetIPv6Address sets the value of IPv6Address for the instance +func (instance *MSFT_TargetPortal) SetPropertyIPv6Address(value string) (err error) { + return instance.SetProperty("IPv6Address", (value)) +} + +// GetIPv6Address gets the value of IPv6Address for the instance +func (instance *MSFT_TargetPortal) GetPropertyIPv6Address() (value string, err error) { + retValue, err := instance.GetProperty("IPv6Address") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPortNumber sets the value of PortNumber for the instance +func (instance *MSFT_TargetPortal) SetPropertyPortNumber(value uint32) (err error) { + return instance.SetProperty("PortNumber", (value)) +} + +// GetPortNumber gets the value of PortNumber for the instance +func (instance *MSFT_TargetPortal) GetPropertyPortNumber() (value uint32, err error) { + retValue, err := instance.GetProperty("PortNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetSubnetMask sets the value of SubnetMask for the instance +func (instance *MSFT_TargetPortal) SetPropertySubnetMask(value string) (err error) { + return instance.SetProperty("SubnetMask", (value)) +} + +// GetSubnetMask gets the value of SubnetMask for the instance +func (instance *MSFT_TargetPortal) GetPropertySubnetMask() (value string, err error) { + retValue, err := instance.GetProperty("SubnetMask") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDisk.go new file mode 100644 index 000000000..e6514192d --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDisk.go @@ -0,0 +1,1692 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_VirtualDisk struct +type MSFT_VirtualDisk struct { + *MSFT_StorageObject + + // + Access uint16 + + // + AllocatedSize uint64 + + // + AllocationUnitSize uint64 + + // + ColumnIsolation uint16 + + // + DetachedReason uint16 + + // + FaultDomainAwareness uint16 + + // + FootprintOnPool uint64 + + // + FriendlyName string + + // + HealthStatus uint16 + + // + Interleave uint64 + + // + IsDeduplicationEnabled bool + + // + IsEnclosureAware bool + + // + IsManualAttach bool + + // + IsSnapshot bool + + // + IsTiered bool + + // + LogicalSectorSize uint64 + + // + MediaType uint16 + + // + Name string + + // + NameFormat uint16 + + // + NumberOfAvailableCopies uint16 + + // + NumberOfColumns uint16 + + // + NumberOfDataCopies uint16 + + // + NumberOfGroups uint16 + + // + OperationalStatus []uint16 + + // + OtherOperationalStatusDescription string + + // + OtherUsageDescription string + + // + ParityLayout uint16 + + // + PhysicalDiskRedundancy uint16 + + // + PhysicalSectorSize uint64 + + // + ProvisioningType uint16 + + // + ReadCacheSize uint64 + + // + RequestNoSinglePointOfFailure bool + + // + ResiliencySettingName string + + // + Size uint64 + + // + UniqueIdFormat uint16 + + // + UniqueIdFormatDescription string + + // + Usage uint16 + + // + WriteCacheSize uint64 +} + +func NewMSFT_VirtualDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_VirtualDisk, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_VirtualDisk{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_VirtualDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_VirtualDisk, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_VirtualDisk{ + MSFT_StorageObject: tmp, + } + return +} + +// SetAccess sets the value of Access for the instance +func (instance *MSFT_VirtualDisk) SetPropertyAccess(value uint16) (err error) { + return instance.SetProperty("Access", (value)) +} + +// GetAccess gets the value of Access for the instance +func (instance *MSFT_VirtualDisk) GetPropertyAccess() (value uint16, err error) { + retValue, err := instance.GetProperty("Access") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetAllocatedSize sets the value of AllocatedSize for the instance +func (instance *MSFT_VirtualDisk) SetPropertyAllocatedSize(value uint64) (err error) { + return instance.SetProperty("AllocatedSize", (value)) +} + +// GetAllocatedSize gets the value of AllocatedSize for the instance +func (instance *MSFT_VirtualDisk) GetPropertyAllocatedSize() (value uint64, err error) { + retValue, err := instance.GetProperty("AllocatedSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetAllocationUnitSize sets the value of AllocationUnitSize for the instance +func (instance *MSFT_VirtualDisk) SetPropertyAllocationUnitSize(value uint64) (err error) { + return instance.SetProperty("AllocationUnitSize", (value)) +} + +// GetAllocationUnitSize gets the value of AllocationUnitSize for the instance +func (instance *MSFT_VirtualDisk) GetPropertyAllocationUnitSize() (value uint64, err error) { + retValue, err := instance.GetProperty("AllocationUnitSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetColumnIsolation sets the value of ColumnIsolation for the instance +func (instance *MSFT_VirtualDisk) SetPropertyColumnIsolation(value uint16) (err error) { + return instance.SetProperty("ColumnIsolation", (value)) +} + +// GetColumnIsolation gets the value of ColumnIsolation for the instance +func (instance *MSFT_VirtualDisk) GetPropertyColumnIsolation() (value uint16, err error) { + retValue, err := instance.GetProperty("ColumnIsolation") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetDetachedReason sets the value of DetachedReason for the instance +func (instance *MSFT_VirtualDisk) SetPropertyDetachedReason(value uint16) (err error) { + return instance.SetProperty("DetachedReason", (value)) +} + +// GetDetachedReason gets the value of DetachedReason for the instance +func (instance *MSFT_VirtualDisk) GetPropertyDetachedReason() (value uint16, err error) { + retValue, err := instance.GetProperty("DetachedReason") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetFaultDomainAwareness sets the value of FaultDomainAwareness for the instance +func (instance *MSFT_VirtualDisk) SetPropertyFaultDomainAwareness(value uint16) (err error) { + return instance.SetProperty("FaultDomainAwareness", (value)) +} + +// GetFaultDomainAwareness gets the value of FaultDomainAwareness for the instance +func (instance *MSFT_VirtualDisk) GetPropertyFaultDomainAwareness() (value uint16, err error) { + retValue, err := instance.GetProperty("FaultDomainAwareness") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetFootprintOnPool sets the value of FootprintOnPool for the instance +func (instance *MSFT_VirtualDisk) SetPropertyFootprintOnPool(value uint64) (err error) { + return instance.SetProperty("FootprintOnPool", (value)) +} + +// GetFootprintOnPool gets the value of FootprintOnPool for the instance +func (instance *MSFT_VirtualDisk) GetPropertyFootprintOnPool() (value uint64, err error) { + retValue, err := instance.GetProperty("FootprintOnPool") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetFriendlyName sets the value of FriendlyName for the instance +func (instance *MSFT_VirtualDisk) SetPropertyFriendlyName(value string) (err error) { + return instance.SetProperty("FriendlyName", (value)) +} + +// GetFriendlyName gets the value of FriendlyName for the instance +func (instance *MSFT_VirtualDisk) GetPropertyFriendlyName() (value string, err error) { + retValue, err := instance.GetProperty("FriendlyName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetHealthStatus sets the value of HealthStatus for the instance +func (instance *MSFT_VirtualDisk) SetPropertyHealthStatus(value uint16) (err error) { + return instance.SetProperty("HealthStatus", (value)) +} + +// GetHealthStatus gets the value of HealthStatus for the instance +func (instance *MSFT_VirtualDisk) GetPropertyHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("HealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetInterleave sets the value of Interleave for the instance +func (instance *MSFT_VirtualDisk) SetPropertyInterleave(value uint64) (err error) { + return instance.SetProperty("Interleave", (value)) +} + +// GetInterleave gets the value of Interleave for the instance +func (instance *MSFT_VirtualDisk) GetPropertyInterleave() (value uint64, err error) { + retValue, err := instance.GetProperty("Interleave") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetIsDeduplicationEnabled sets the value of IsDeduplicationEnabled for the instance +func (instance *MSFT_VirtualDisk) SetPropertyIsDeduplicationEnabled(value bool) (err error) { + return instance.SetProperty("IsDeduplicationEnabled", (value)) +} + +// GetIsDeduplicationEnabled gets the value of IsDeduplicationEnabled for the instance +func (instance *MSFT_VirtualDisk) GetPropertyIsDeduplicationEnabled() (value bool, err error) { + retValue, err := instance.GetProperty("IsDeduplicationEnabled") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsEnclosureAware sets the value of IsEnclosureAware for the instance +func (instance *MSFT_VirtualDisk) SetPropertyIsEnclosureAware(value bool) (err error) { + return instance.SetProperty("IsEnclosureAware", (value)) +} + +// GetIsEnclosureAware gets the value of IsEnclosureAware for the instance +func (instance *MSFT_VirtualDisk) GetPropertyIsEnclosureAware() (value bool, err error) { + retValue, err := instance.GetProperty("IsEnclosureAware") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsManualAttach sets the value of IsManualAttach for the instance +func (instance *MSFT_VirtualDisk) SetPropertyIsManualAttach(value bool) (err error) { + return instance.SetProperty("IsManualAttach", (value)) +} + +// GetIsManualAttach gets the value of IsManualAttach for the instance +func (instance *MSFT_VirtualDisk) GetPropertyIsManualAttach() (value bool, err error) { + retValue, err := instance.GetProperty("IsManualAttach") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsSnapshot sets the value of IsSnapshot for the instance +func (instance *MSFT_VirtualDisk) SetPropertyIsSnapshot(value bool) (err error) { + return instance.SetProperty("IsSnapshot", (value)) +} + +// GetIsSnapshot gets the value of IsSnapshot for the instance +func (instance *MSFT_VirtualDisk) GetPropertyIsSnapshot() (value bool, err error) { + retValue, err := instance.GetProperty("IsSnapshot") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsTiered sets the value of IsTiered for the instance +func (instance *MSFT_VirtualDisk) SetPropertyIsTiered(value bool) (err error) { + return instance.SetProperty("IsTiered", (value)) +} + +// GetIsTiered gets the value of IsTiered for the instance +func (instance *MSFT_VirtualDisk) GetPropertyIsTiered() (value bool, err error) { + retValue, err := instance.GetProperty("IsTiered") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetLogicalSectorSize sets the value of LogicalSectorSize for the instance +func (instance *MSFT_VirtualDisk) SetPropertyLogicalSectorSize(value uint64) (err error) { + return instance.SetProperty("LogicalSectorSize", (value)) +} + +// GetLogicalSectorSize gets the value of LogicalSectorSize for the instance +func (instance *MSFT_VirtualDisk) GetPropertyLogicalSectorSize() (value uint64, err error) { + retValue, err := instance.GetProperty("LogicalSectorSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetMediaType sets the value of MediaType for the instance +func (instance *MSFT_VirtualDisk) SetPropertyMediaType(value uint16) (err error) { + return instance.SetProperty("MediaType", (value)) +} + +// GetMediaType gets the value of MediaType for the instance +func (instance *MSFT_VirtualDisk) GetPropertyMediaType() (value uint16, err error) { + retValue, err := instance.GetProperty("MediaType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetName sets the value of Name for the instance +func (instance *MSFT_VirtualDisk) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *MSFT_VirtualDisk) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetNameFormat sets the value of NameFormat for the instance +func (instance *MSFT_VirtualDisk) SetPropertyNameFormat(value uint16) (err error) { + return instance.SetProperty("NameFormat", (value)) +} + +// GetNameFormat gets the value of NameFormat for the instance +func (instance *MSFT_VirtualDisk) GetPropertyNameFormat() (value uint16, err error) { + retValue, err := instance.GetProperty("NameFormat") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfAvailableCopies sets the value of NumberOfAvailableCopies for the instance +func (instance *MSFT_VirtualDisk) SetPropertyNumberOfAvailableCopies(value uint16) (err error) { + return instance.SetProperty("NumberOfAvailableCopies", (value)) +} + +// GetNumberOfAvailableCopies gets the value of NumberOfAvailableCopies for the instance +func (instance *MSFT_VirtualDisk) GetPropertyNumberOfAvailableCopies() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfAvailableCopies") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfColumns sets the value of NumberOfColumns for the instance +func (instance *MSFT_VirtualDisk) SetPropertyNumberOfColumns(value uint16) (err error) { + return instance.SetProperty("NumberOfColumns", (value)) +} + +// GetNumberOfColumns gets the value of NumberOfColumns for the instance +func (instance *MSFT_VirtualDisk) GetPropertyNumberOfColumns() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfColumns") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfDataCopies sets the value of NumberOfDataCopies for the instance +func (instance *MSFT_VirtualDisk) SetPropertyNumberOfDataCopies(value uint16) (err error) { + return instance.SetProperty("NumberOfDataCopies", (value)) +} + +// GetNumberOfDataCopies gets the value of NumberOfDataCopies for the instance +func (instance *MSFT_VirtualDisk) GetPropertyNumberOfDataCopies() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfDataCopies") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetNumberOfGroups sets the value of NumberOfGroups for the instance +func (instance *MSFT_VirtualDisk) SetPropertyNumberOfGroups(value uint16) (err error) { + return instance.SetProperty("NumberOfGroups", (value)) +} + +// GetNumberOfGroups gets the value of NumberOfGroups for the instance +func (instance *MSFT_VirtualDisk) GetPropertyNumberOfGroups() (value uint16, err error) { + retValue, err := instance.GetProperty("NumberOfGroups") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_VirtualDisk) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_VirtualDisk) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetOtherOperationalStatusDescription sets the value of OtherOperationalStatusDescription for the instance +func (instance *MSFT_VirtualDisk) SetPropertyOtherOperationalStatusDescription(value string) (err error) { + return instance.SetProperty("OtherOperationalStatusDescription", (value)) +} + +// GetOtherOperationalStatusDescription gets the value of OtherOperationalStatusDescription for the instance +func (instance *MSFT_VirtualDisk) GetPropertyOtherOperationalStatusDescription() (value string, err error) { + retValue, err := instance.GetProperty("OtherOperationalStatusDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetOtherUsageDescription sets the value of OtherUsageDescription for the instance +func (instance *MSFT_VirtualDisk) SetPropertyOtherUsageDescription(value string) (err error) { + return instance.SetProperty("OtherUsageDescription", (value)) +} + +// GetOtherUsageDescription gets the value of OtherUsageDescription for the instance +func (instance *MSFT_VirtualDisk) GetPropertyOtherUsageDescription() (value string, err error) { + retValue, err := instance.GetProperty("OtherUsageDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetParityLayout sets the value of ParityLayout for the instance +func (instance *MSFT_VirtualDisk) SetPropertyParityLayout(value uint16) (err error) { + return instance.SetProperty("ParityLayout", (value)) +} + +// GetParityLayout gets the value of ParityLayout for the instance +func (instance *MSFT_VirtualDisk) GetPropertyParityLayout() (value uint16, err error) { + retValue, err := instance.GetProperty("ParityLayout") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetPhysicalDiskRedundancy sets the value of PhysicalDiskRedundancy for the instance +func (instance *MSFT_VirtualDisk) SetPropertyPhysicalDiskRedundancy(value uint16) (err error) { + return instance.SetProperty("PhysicalDiskRedundancy", (value)) +} + +// GetPhysicalDiskRedundancy gets the value of PhysicalDiskRedundancy for the instance +func (instance *MSFT_VirtualDisk) GetPropertyPhysicalDiskRedundancy() (value uint16, err error) { + retValue, err := instance.GetProperty("PhysicalDiskRedundancy") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetPhysicalSectorSize sets the value of PhysicalSectorSize for the instance +func (instance *MSFT_VirtualDisk) SetPropertyPhysicalSectorSize(value uint64) (err error) { + return instance.SetProperty("PhysicalSectorSize", (value)) +} + +// GetPhysicalSectorSize gets the value of PhysicalSectorSize for the instance +func (instance *MSFT_VirtualDisk) GetPropertyPhysicalSectorSize() (value uint64, err error) { + retValue, err := instance.GetProperty("PhysicalSectorSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetProvisioningType sets the value of ProvisioningType for the instance +func (instance *MSFT_VirtualDisk) SetPropertyProvisioningType(value uint16) (err error) { + return instance.SetProperty("ProvisioningType", (value)) +} + +// GetProvisioningType gets the value of ProvisioningType for the instance +func (instance *MSFT_VirtualDisk) GetPropertyProvisioningType() (value uint16, err error) { + retValue, err := instance.GetProperty("ProvisioningType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetReadCacheSize sets the value of ReadCacheSize for the instance +func (instance *MSFT_VirtualDisk) SetPropertyReadCacheSize(value uint64) (err error) { + return instance.SetProperty("ReadCacheSize", (value)) +} + +// GetReadCacheSize gets the value of ReadCacheSize for the instance +func (instance *MSFT_VirtualDisk) GetPropertyReadCacheSize() (value uint64, err error) { + retValue, err := instance.GetProperty("ReadCacheSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetRequestNoSinglePointOfFailure sets the value of RequestNoSinglePointOfFailure for the instance +func (instance *MSFT_VirtualDisk) SetPropertyRequestNoSinglePointOfFailure(value bool) (err error) { + return instance.SetProperty("RequestNoSinglePointOfFailure", (value)) +} + +// GetRequestNoSinglePointOfFailure gets the value of RequestNoSinglePointOfFailure for the instance +func (instance *MSFT_VirtualDisk) GetPropertyRequestNoSinglePointOfFailure() (value bool, err error) { + retValue, err := instance.GetProperty("RequestNoSinglePointOfFailure") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetResiliencySettingName sets the value of ResiliencySettingName for the instance +func (instance *MSFT_VirtualDisk) SetPropertyResiliencySettingName(value string) (err error) { + return instance.SetProperty("ResiliencySettingName", (value)) +} + +// GetResiliencySettingName gets the value of ResiliencySettingName for the instance +func (instance *MSFT_VirtualDisk) GetPropertyResiliencySettingName() (value string, err error) { + retValue, err := instance.GetProperty("ResiliencySettingName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSize sets the value of Size for the instance +func (instance *MSFT_VirtualDisk) SetPropertySize(value uint64) (err error) { + return instance.SetProperty("Size", (value)) +} + +// GetSize gets the value of Size for the instance +func (instance *MSFT_VirtualDisk) GetPropertySize() (value uint64, err error) { + retValue, err := instance.GetProperty("Size") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetUniqueIdFormat sets the value of UniqueIdFormat for the instance +func (instance *MSFT_VirtualDisk) SetPropertyUniqueIdFormat(value uint16) (err error) { + return instance.SetProperty("UniqueIdFormat", (value)) +} + +// GetUniqueIdFormat gets the value of UniqueIdFormat for the instance +func (instance *MSFT_VirtualDisk) GetPropertyUniqueIdFormat() (value uint16, err error) { + retValue, err := instance.GetProperty("UniqueIdFormat") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetUniqueIdFormatDescription sets the value of UniqueIdFormatDescription for the instance +func (instance *MSFT_VirtualDisk) SetPropertyUniqueIdFormatDescription(value string) (err error) { + return instance.SetProperty("UniqueIdFormatDescription", (value)) +} + +// GetUniqueIdFormatDescription gets the value of UniqueIdFormatDescription for the instance +func (instance *MSFT_VirtualDisk) GetPropertyUniqueIdFormatDescription() (value string, err error) { + retValue, err := instance.GetProperty("UniqueIdFormatDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetUsage sets the value of Usage for the instance +func (instance *MSFT_VirtualDisk) SetPropertyUsage(value uint16) (err error) { + return instance.SetProperty("Usage", (value)) +} + +// GetUsage gets the value of Usage for the instance +func (instance *MSFT_VirtualDisk) GetPropertyUsage() (value uint16, err error) { + retValue, err := instance.GetProperty("Usage") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetWriteCacheSize sets the value of WriteCacheSize for the instance +func (instance *MSFT_VirtualDisk) SetPropertyWriteCacheSize(value uint64) (err error) { + return instance.SetProperty("WriteCacheSize", (value)) +} + +// GetWriteCacheSize gets the value of WriteCacheSize for the instance +func (instance *MSFT_VirtualDisk) GetPropertyWriteCacheSize() (value uint64, err error) { + retValue, err := instance.GetProperty("WriteCacheSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// + +// +// +// +func (instance *MSFT_VirtualDisk) GetPhysicalExtent( /* OUT */ PhysicalExtents []MSFT_PhysicalExtent, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetPhysicalExtent") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_VirtualDisk) DeleteObject( /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("DeleteObject", RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// + +// +// +// +func (instance *MSFT_VirtualDisk) Show( /* IN */ TargetPortAddresses []string, + /* IN */ InitiatorAddress string, + /* IN */ HostType uint16, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Show", TargetPortAddresses, InitiatorAddress, HostType, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// + +// +// +// +func (instance *MSFT_VirtualDisk) Hide( /* IN */ TargetPortAddresses []string, + /* IN */ InitiatorAddress string, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Hide", TargetPortAddresses, InitiatorAddress, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// + +// +// +// +// +func (instance *MSFT_VirtualDisk) CreateSnapshot( /* IN */ FriendlyName string, + /* IN */ TargetStoragePoolName string, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ CreatedVirtualDisk MSFT_VirtualDisk, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateSnapshot", FriendlyName, TargetStoragePoolName, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// + +// +// +// +// +func (instance *MSFT_VirtualDisk) CreateClone( /* IN */ FriendlyName string, + /* IN */ TargetStoragePoolName string, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ CreatedVirtualDisk MSFT_VirtualDisk, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateClone", FriendlyName, TargetStoragePoolName, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +// +func (instance *MSFT_VirtualDisk) Resize( /* IN/OUT */ Size uint64, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Resize", RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_VirtualDisk) Repair( /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Repair", RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_VirtualDisk) GetSecurityDescriptor( /* OUT */ SecurityDescriptor string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSecurityDescriptor") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_VirtualDisk) SetSecurityDescriptor( /* IN */ SecurityDescriptor string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetSecurityDescriptor", SecurityDescriptor) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_VirtualDisk) SetFriendlyName( /* IN */ FriendlyName string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetFriendlyName", FriendlyName) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +func (instance *MSFT_VirtualDisk) SetUsage( /* IN */ Usage uint16, + /* IN */ OtherUsageDescription string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetUsage", Usage, OtherUsageDescription) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// + +// +// +func (instance *MSFT_VirtualDisk) SetAttributes( /* IN */ IsManualAttach bool, + /* IN */ StorageNodeName string, + /* IN */ Access uint16, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetAttributes", IsManualAttach, StorageNodeName, Access) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// +// +// +// +// + +// +// +func (instance *MSFT_VirtualDisk) SetProperties( /* IN */ ProvisioningType uint16, + /* IN */ AllocationUnitSize uint64, + /* IN */ MediaType uint16, + /* IN */ FaultDomainAwareness uint16, + /* IN */ ColumnIsolation uint16, + /* IN */ ResiliencySettingName string, + /* IN */ PhysicalDiskRedundancy uint16, + /* IN */ NumberOfDataCopies uint16, + /* IN */ NumberOfGroups uint16, + /* IN */ NumberOfColumns uint16, + /* IN */ Interleave uint64, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetProperties", ProvisioningType, AllocationUnitSize, MediaType, FaultDomainAwareness, ColumnIsolation, ResiliencySettingName, PhysicalDiskRedundancy, NumberOfDataCopies, NumberOfGroups, NumberOfColumns, Interleave) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_VirtualDisk) Attach( /* IN */ StorageNodeName string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Attach", StorageNodeName) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_VirtualDisk) Detach( /* IN */ StorageNodeName string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Detach", StorageNodeName) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// + +// +// +// +func (instance *MSFT_VirtualDisk) AddPhysicalDisk( /* IN */ PhysicalDisks []MSFT_PhysicalDisk, + /* IN */ Usage uint16, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("AddPhysicalDisk", PhysicalDisks, Usage, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +func (instance *MSFT_VirtualDisk) RemovePhysicalDisk( /* IN */ PhysicalDisks []MSFT_PhysicalDisk, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("RemovePhysicalDisk", PhysicalDisks, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +func (instance *MSFT_VirtualDisk) AddStorageFaultDomain( /* IN */ StorageFaultDomains []MSFT_StorageFaultDomain, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("AddStorageFaultDomain", StorageFaultDomains, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +// +func (instance *MSFT_VirtualDisk) RemoveStorageFaultDomain( /* IN */ StorageFaultDomains []MSFT_StorageFaultDomain, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("RemoveStorageFaultDomain", StorageFaultDomains, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// +// + +// +// +// +// +func (instance *MSFT_VirtualDisk) CreateReplica( /* IN */ FriendlyName string, + /* IN */ TargetStorageSubsystem MSFT_ReplicaPeer, + /* IN */ TargetVirtualDiskObjectId string, + /* IN */ TargetStoragePoolObjectId string, + /* IN */ RecoveryPointObjective uint16, + /* IN */ ReplicationSettings MSFT_ReplicationSettings, + /* IN */ SyncType uint16, + /* IN */ RunAsJob bool, + /* OUT */ CreatedReplicaPeer MSFT_ReplicaPeer, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateReplica", FriendlyName, TargetStorageSubsystem, TargetVirtualDiskObjectId, TargetStoragePoolObjectId, RecoveryPointObjective, ReplicationSettings, SyncType, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// + +// +// +// +func (instance *MSFT_VirtualDisk) SetReplicationRelationship( /* IN */ Operation uint16, + /* IN */ VirtualDiskReplicaPeer MSFT_ReplicaPeer, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetReplicationRelationship", Operation, VirtualDiskReplicaPeer, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToDisk.go new file mode 100644 index 000000000..b811259e9 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_VirtualDiskToDisk struct +type MSFT_VirtualDiskToDisk struct { + *cim.WmiInstance + + // + Disk MSFT_Disk + + // + VirtualDisk MSFT_VirtualDisk +} + +func NewMSFT_VirtualDiskToDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_VirtualDiskToDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_VirtualDiskToDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_VirtualDiskToDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_VirtualDiskToDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_VirtualDiskToDisk{ + WmiInstance: tmp, + } + return +} + +// SetDisk sets the value of Disk for the instance +func (instance *MSFT_VirtualDiskToDisk) SetPropertyDisk(value MSFT_Disk) (err error) { + return instance.SetProperty("Disk", (value)) +} + +// GetDisk gets the value of Disk for the instance +func (instance *MSFT_VirtualDiskToDisk) GetPropertyDisk() (value MSFT_Disk, err error) { + retValue, err := instance.GetProperty("Disk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Disk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Disk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Disk(valuetmp) + + return +} + +// SetVirtualDisk sets the value of VirtualDisk for the instance +func (instance *MSFT_VirtualDiskToDisk) SetPropertyVirtualDisk(value MSFT_VirtualDisk) (err error) { + return instance.SetProperty("VirtualDisk", (value)) +} + +// GetVirtualDisk gets the value of VirtualDisk for the instance +func (instance *MSFT_VirtualDiskToDisk) GetPropertyVirtualDisk() (value MSFT_VirtualDisk, err error) { + retValue, err := instance.GetProperty("VirtualDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_VirtualDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_VirtualDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_VirtualDisk(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToPhysicalDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToPhysicalDisk.go new file mode 100644 index 000000000..08d7193c0 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToPhysicalDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_VirtualDiskToPhysicalDisk struct +type MSFT_VirtualDiskToPhysicalDisk struct { + *cim.WmiInstance + + // + PhysicalDisk MSFT_PhysicalDisk + + // + VirtualDisk MSFT_VirtualDisk +} + +func NewMSFT_VirtualDiskToPhysicalDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_VirtualDiskToPhysicalDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_VirtualDiskToPhysicalDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_VirtualDiskToPhysicalDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_VirtualDiskToPhysicalDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_VirtualDiskToPhysicalDisk{ + WmiInstance: tmp, + } + return +} + +// SetPhysicalDisk sets the value of PhysicalDisk for the instance +func (instance *MSFT_VirtualDiskToPhysicalDisk) SetPropertyPhysicalDisk(value MSFT_PhysicalDisk) (err error) { + return instance.SetProperty("PhysicalDisk", (value)) +} + +// GetPhysicalDisk gets the value of PhysicalDisk for the instance +func (instance *MSFT_VirtualDiskToPhysicalDisk) GetPropertyPhysicalDisk() (value MSFT_PhysicalDisk, err error) { + retValue, err := instance.GetProperty("PhysicalDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_PhysicalDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_PhysicalDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_PhysicalDisk(valuetmp) + + return +} + +// SetVirtualDisk sets the value of VirtualDisk for the instance +func (instance *MSFT_VirtualDiskToPhysicalDisk) SetPropertyVirtualDisk(value MSFT_VirtualDisk) (err error) { + return instance.SetProperty("VirtualDisk", (value)) +} + +// GetVirtualDisk gets the value of VirtualDisk for the instance +func (instance *MSFT_VirtualDiskToPhysicalDisk) GetPropertyVirtualDisk() (value MSFT_VirtualDisk, err error) { + retValue, err := instance.GetProperty("VirtualDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_VirtualDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_VirtualDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_VirtualDisk(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToReplicaPeer.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToReplicaPeer.go new file mode 100644 index 000000000..21631fbab --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToReplicaPeer.go @@ -0,0 +1,110 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_VirtualDiskToReplicaPeer struct +type MSFT_VirtualDiskToReplicaPeer struct { + *MSFT_Synchronized + + // + ReplicaPeer MSFT_ReplicaPeer + + // + VirtualDisk MSFT_VirtualDisk +} + +func NewMSFT_VirtualDiskToReplicaPeerEx1(instance *cim.WmiInstance) (newInstance *MSFT_VirtualDiskToReplicaPeer, err error) { + tmp, err := NewMSFT_SynchronizedEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_VirtualDiskToReplicaPeer{ + MSFT_Synchronized: tmp, + } + return +} + +func NewMSFT_VirtualDiskToReplicaPeerEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_VirtualDiskToReplicaPeer, err error) { + tmp, err := NewMSFT_SynchronizedEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_VirtualDiskToReplicaPeer{ + MSFT_Synchronized: tmp, + } + return +} + +// SetReplicaPeer sets the value of ReplicaPeer for the instance +func (instance *MSFT_VirtualDiskToReplicaPeer) SetPropertyReplicaPeer(value MSFT_ReplicaPeer) (err error) { + return instance.SetProperty("ReplicaPeer", (value)) +} + +// GetReplicaPeer gets the value of ReplicaPeer for the instance +func (instance *MSFT_VirtualDiskToReplicaPeer) GetPropertyReplicaPeer() (value MSFT_ReplicaPeer, err error) { + retValue, err := instance.GetProperty("ReplicaPeer") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_ReplicaPeer) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_ReplicaPeer is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_ReplicaPeer(valuetmp) + + return +} + +// SetVirtualDisk sets the value of VirtualDisk for the instance +func (instance *MSFT_VirtualDiskToReplicaPeer) SetPropertyVirtualDisk(value MSFT_VirtualDisk) (err error) { + return instance.SetProperty("VirtualDisk", (value)) +} + +// GetVirtualDisk gets the value of VirtualDisk for the instance +func (instance *MSFT_VirtualDiskToReplicaPeer) GetPropertyVirtualDisk() (value MSFT_VirtualDisk, err error) { + retValue, err := instance.GetProperty("VirtualDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_VirtualDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_VirtualDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_VirtualDisk(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToStorageFaultDomain.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToStorageFaultDomain.go new file mode 100644 index 000000000..4cf7949c9 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToStorageFaultDomain.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_VirtualDiskToStorageFaultDomain struct +type MSFT_VirtualDiskToStorageFaultDomain struct { + *cim.WmiInstance + + // + StorageFaultDomain MSFT_StorageFaultDomain + + // + VirtualDisk MSFT_VirtualDisk +} + +func NewMSFT_VirtualDiskToStorageFaultDomainEx1(instance *cim.WmiInstance) (newInstance *MSFT_VirtualDiskToStorageFaultDomain, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_VirtualDiskToStorageFaultDomain{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_VirtualDiskToStorageFaultDomainEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_VirtualDiskToStorageFaultDomain, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_VirtualDiskToStorageFaultDomain{ + WmiInstance: tmp, + } + return +} + +// SetStorageFaultDomain sets the value of StorageFaultDomain for the instance +func (instance *MSFT_VirtualDiskToStorageFaultDomain) SetPropertyStorageFaultDomain(value MSFT_StorageFaultDomain) (err error) { + return instance.SetProperty("StorageFaultDomain", (value)) +} + +// GetStorageFaultDomain gets the value of StorageFaultDomain for the instance +func (instance *MSFT_VirtualDiskToStorageFaultDomain) GetPropertyStorageFaultDomain() (value MSFT_StorageFaultDomain, err error) { + retValue, err := instance.GetProperty("StorageFaultDomain") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageFaultDomain) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageFaultDomain is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageFaultDomain(valuetmp) + + return +} + +// SetVirtualDisk sets the value of VirtualDisk for the instance +func (instance *MSFT_VirtualDiskToStorageFaultDomain) SetPropertyVirtualDisk(value MSFT_VirtualDisk) (err error) { + return instance.SetProperty("VirtualDisk", (value)) +} + +// GetVirtualDisk gets the value of VirtualDisk for the instance +func (instance *MSFT_VirtualDiskToStorageFaultDomain) GetPropertyVirtualDisk() (value MSFT_VirtualDisk, err error) { + retValue, err := instance.GetProperty("VirtualDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_VirtualDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_VirtualDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_VirtualDisk(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToStorageTier.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToStorageTier.go new file mode 100644 index 000000000..82dd6f286 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToStorageTier.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_VirtualDiskToStorageTier struct +type MSFT_VirtualDiskToStorageTier struct { + *cim.WmiInstance + + // + StorageTier MSFT_StorageTier + + // + VirtualDisk MSFT_VirtualDisk +} + +func NewMSFT_VirtualDiskToStorageTierEx1(instance *cim.WmiInstance) (newInstance *MSFT_VirtualDiskToStorageTier, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_VirtualDiskToStorageTier{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_VirtualDiskToStorageTierEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_VirtualDiskToStorageTier, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_VirtualDiskToStorageTier{ + WmiInstance: tmp, + } + return +} + +// SetStorageTier sets the value of StorageTier for the instance +func (instance *MSFT_VirtualDiskToStorageTier) SetPropertyStorageTier(value MSFT_StorageTier) (err error) { + return instance.SetProperty("StorageTier", (value)) +} + +// GetStorageTier gets the value of StorageTier for the instance +func (instance *MSFT_VirtualDiskToStorageTier) GetPropertyStorageTier() (value MSFT_StorageTier, err error) { + retValue, err := instance.GetProperty("StorageTier") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_StorageTier) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_StorageTier is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_StorageTier(valuetmp) + + return +} + +// SetVirtualDisk sets the value of VirtualDisk for the instance +func (instance *MSFT_VirtualDiskToStorageTier) SetPropertyVirtualDisk(value MSFT_VirtualDisk) (err error) { + return instance.SetProperty("VirtualDisk", (value)) +} + +// GetVirtualDisk gets the value of VirtualDisk for the instance +func (instance *MSFT_VirtualDiskToStorageTier) GetPropertyVirtualDisk() (value MSFT_VirtualDisk, err error) { + retValue, err := instance.GetProperty("VirtualDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_VirtualDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_VirtualDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_VirtualDisk(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToVirtualDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToVirtualDisk.go new file mode 100644 index 000000000..92ea16470 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VirtualDiskToVirtualDisk.go @@ -0,0 +1,110 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_VirtualDiskToVirtualDisk struct +type MSFT_VirtualDiskToVirtualDisk struct { + *MSFT_Synchronized + + // + SourceVirtualDisk MSFT_VirtualDisk + + // + TargetVirtualDisk MSFT_VirtualDisk +} + +func NewMSFT_VirtualDiskToVirtualDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_VirtualDiskToVirtualDisk, err error) { + tmp, err := NewMSFT_SynchronizedEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_VirtualDiskToVirtualDisk{ + MSFT_Synchronized: tmp, + } + return +} + +func NewMSFT_VirtualDiskToVirtualDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_VirtualDiskToVirtualDisk, err error) { + tmp, err := NewMSFT_SynchronizedEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_VirtualDiskToVirtualDisk{ + MSFT_Synchronized: tmp, + } + return +} + +// SetSourceVirtualDisk sets the value of SourceVirtualDisk for the instance +func (instance *MSFT_VirtualDiskToVirtualDisk) SetPropertySourceVirtualDisk(value MSFT_VirtualDisk) (err error) { + return instance.SetProperty("SourceVirtualDisk", (value)) +} + +// GetSourceVirtualDisk gets the value of SourceVirtualDisk for the instance +func (instance *MSFT_VirtualDiskToVirtualDisk) GetPropertySourceVirtualDisk() (value MSFT_VirtualDisk, err error) { + retValue, err := instance.GetProperty("SourceVirtualDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_VirtualDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_VirtualDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_VirtualDisk(valuetmp) + + return +} + +// SetTargetVirtualDisk sets the value of TargetVirtualDisk for the instance +func (instance *MSFT_VirtualDiskToVirtualDisk) SetPropertyTargetVirtualDisk(value MSFT_VirtualDisk) (err error) { + return instance.SetProperty("TargetVirtualDisk", (value)) +} + +// GetTargetVirtualDisk gets the value of TargetVirtualDisk for the instance +func (instance *MSFT_VirtualDiskToVirtualDisk) GetPropertyTargetVirtualDisk() (value MSFT_VirtualDisk, err error) { + retValue, err := instance.GetProperty("TargetVirtualDisk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_VirtualDisk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_VirtualDisk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_VirtualDisk(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Volume.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Volume.go new file mode 100644 index 000000000..8a7d3b8b0 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Volume.go @@ -0,0 +1,744 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_Volume struct +type MSFT_Volume struct { + *MSFT_StorageObject + + // + AllocationUnitSize uint32 + + // + DedupMode uint32 + + // + DriveLetter byte + + // + DriveType uint32 + + // + FileSystem string + + // + FileSystemLabel string + + // + FileSystemType uint16 + + // + HealthStatus uint16 + + // + OperationalStatus []uint16 + + // + Path string + + // + Size uint64 + + // + SizeRemaining uint64 +} + +func NewMSFT_VolumeEx1(instance *cim.WmiInstance) (newInstance *MSFT_Volume, err error) { + tmp, err := NewMSFT_StorageObjectEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_Volume{ + MSFT_StorageObject: tmp, + } + return +} + +func NewMSFT_VolumeEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_Volume, err error) { + tmp, err := NewMSFT_StorageObjectEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_Volume{ + MSFT_StorageObject: tmp, + } + return +} + +// SetAllocationUnitSize sets the value of AllocationUnitSize for the instance +func (instance *MSFT_Volume) SetPropertyAllocationUnitSize(value uint32) (err error) { + return instance.SetProperty("AllocationUnitSize", (value)) +} + +// GetAllocationUnitSize gets the value of AllocationUnitSize for the instance +func (instance *MSFT_Volume) GetPropertyAllocationUnitSize() (value uint32, err error) { + retValue, err := instance.GetProperty("AllocationUnitSize") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetDedupMode sets the value of DedupMode for the instance +func (instance *MSFT_Volume) SetPropertyDedupMode(value uint32) (err error) { + return instance.SetProperty("DedupMode", (value)) +} + +// GetDedupMode gets the value of DedupMode for the instance +func (instance *MSFT_Volume) GetPropertyDedupMode() (value uint32, err error) { + retValue, err := instance.GetProperty("DedupMode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetDriveLetter sets the value of DriveLetter for the instance +func (instance *MSFT_Volume) SetPropertyDriveLetter(value byte) (err error) { + return instance.SetProperty("DriveLetter", (value)) +} + +// GetDriveLetter gets the value of DriveLetter for the instance +func (instance *MSFT_Volume) GetPropertyDriveLetter() (value byte, err error) { + retValue, err := instance.GetProperty("DriveLetter") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(byte) + if !ok { + err = errors.Wrapf(errors.InvalidType, " byte is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = byte(valuetmp) + + return +} + +// SetDriveType sets the value of DriveType for the instance +func (instance *MSFT_Volume) SetPropertyDriveType(value uint32) (err error) { + return instance.SetProperty("DriveType", (value)) +} + +// GetDriveType gets the value of DriveType for the instance +func (instance *MSFT_Volume) GetPropertyDriveType() (value uint32, err error) { + retValue, err := instance.GetProperty("DriveType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetFileSystem sets the value of FileSystem for the instance +func (instance *MSFT_Volume) SetPropertyFileSystem(value string) (err error) { + return instance.SetProperty("FileSystem", (value)) +} + +// GetFileSystem gets the value of FileSystem for the instance +func (instance *MSFT_Volume) GetPropertyFileSystem() (value string, err error) { + retValue, err := instance.GetProperty("FileSystem") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFileSystemLabel sets the value of FileSystemLabel for the instance +func (instance *MSFT_Volume) SetPropertyFileSystemLabel(value string) (err error) { + return instance.SetProperty("FileSystemLabel", (value)) +} + +// GetFileSystemLabel gets the value of FileSystemLabel for the instance +func (instance *MSFT_Volume) GetPropertyFileSystemLabel() (value string, err error) { + retValue, err := instance.GetProperty("FileSystemLabel") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFileSystemType sets the value of FileSystemType for the instance +func (instance *MSFT_Volume) SetPropertyFileSystemType(value uint16) (err error) { + return instance.SetProperty("FileSystemType", (value)) +} + +// GetFileSystemType gets the value of FileSystemType for the instance +func (instance *MSFT_Volume) GetPropertyFileSystemType() (value uint16, err error) { + retValue, err := instance.GetProperty("FileSystemType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetHealthStatus sets the value of HealthStatus for the instance +func (instance *MSFT_Volume) SetPropertyHealthStatus(value uint16) (err error) { + return instance.SetProperty("HealthStatus", (value)) +} + +// GetHealthStatus gets the value of HealthStatus for the instance +func (instance *MSFT_Volume) GetPropertyHealthStatus() (value uint16, err error) { + retValue, err := instance.GetProperty("HealthStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// SetOperationalStatus sets the value of OperationalStatus for the instance +func (instance *MSFT_Volume) SetPropertyOperationalStatus(value []uint16) (err error) { + return instance.SetProperty("OperationalStatus", (value)) +} + +// GetOperationalStatus gets the value of OperationalStatus for the instance +func (instance *MSFT_Volume) GetPropertyOperationalStatus() (value []uint16, err error) { + retValue, err := instance.GetProperty("OperationalStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint16(valuetmp)) + } + + return +} + +// SetPath sets the value of Path for the instance +func (instance *MSFT_Volume) SetPropertyPath(value string) (err error) { + return instance.SetProperty("Path", (value)) +} + +// GetPath gets the value of Path for the instance +func (instance *MSFT_Volume) GetPropertyPath() (value string, err error) { + retValue, err := instance.GetProperty("Path") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSize sets the value of Size for the instance +func (instance *MSFT_Volume) SetPropertySize(value uint64) (err error) { + return instance.SetProperty("Size", (value)) +} + +// GetSize gets the value of Size for the instance +func (instance *MSFT_Volume) GetPropertySize() (value uint64, err error) { + retValue, err := instance.GetProperty("Size") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// SetSizeRemaining sets the value of SizeRemaining for the instance +func (instance *MSFT_Volume) SetPropertySizeRemaining(value uint64) (err error) { + return instance.SetProperty("SizeRemaining", (value)) +} + +// GetSizeRemaining gets the value of SizeRemaining for the instance +func (instance *MSFT_Volume) GetPropertySizeRemaining() (value uint64, err error) { + retValue, err := instance.GetProperty("SizeRemaining") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} + +// + +// + +// +// +// +func (instance *MSFT_Volume) DeleteObject( /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("DeleteObject", RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// +// +// +// +// +// + +// +// +// +// +func (instance *MSFT_Volume) Format( /* IN */ FileSystem string, + /* IN */ FileSystemLabel string, + /* IN */ AllocationUnitSize uint32, + /* IN */ Full bool, + /* IN */ Force bool, + /* IN */ Compress bool, + /* IN */ ShortFileNameSupport bool, + /* IN */ SetIntegrityStreams bool, + /* IN */ UseLargeFRS bool, + /* IN */ DisableHeatGathering bool, + /* IN */ IsDAX bool, + /* IN */ RunAsJob bool, + /* OUT */ FormattedVolume MSFT_Volume, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Format", FileSystem, FileSystemLabel, AllocationUnitSize, Full, Force, Compress, ShortFileNameSupport, SetIntegrityStreams, UseLargeFRS, DisableHeatGathering, IsDAX, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// + +// +// +// +// +func (instance *MSFT_Volume) Repair( /* IN */ OfflineScanAndFix bool, + /* IN */ Scan bool, + /* IN */ SpotFix bool, + /* OUT */ Output uint32, + /* OPTIONAL IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Repair", OfflineScanAndFix, Scan, SpotFix, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// +// +// + +// +// +// +func (instance *MSFT_Volume) Optimize( /* IN */ ReTrim bool, + /* IN */ Analyze bool, + /* IN */ Defrag bool, + /* IN */ SlabConsolidate bool, + /* IN */ TierOptimize bool, + /* IN */ NormalPriority bool, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Optimize", ReTrim, Analyze, Defrag, SlabConsolidate, TierOptimize, NormalPriority, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_Volume) SetFileSystemLabel( /* IN */ FileSystemLabel string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetFileSystemLabel", FileSystemLabel) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_Volume) GetSupportedFileSystems( /* OUT */ SupportedFileSystems []string, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSupportedFileSystems") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +// +func (instance *MSFT_Volume) GetSupportedClusterSizes( /* IN */ FileSystem string, + /* OUT */ SupportedClusterSizes []uint32, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSupportedClusterSizes", FileSystem) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_Volume) GetCorruptionCount( /* OUT */ CorruptionCount uint32, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetCorruptionCount") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *MSFT_Volume) GetAttributes( /* OUT */ VolumeScrubEnabled bool) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetAttributes") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_Volume) SetAttributes( /* IN */ EnableVolumeScrub bool, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetAttributes", EnableVolumeScrub) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +func (instance *MSFT_Volume) Flush() (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("Flush") + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// + +// +// +// +func (instance *MSFT_Volume) Resize( /* IN */ Size uint64, + /* IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Resize", Size, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_Volume) Diagnose( /* OUT */ DiagnoseResults []MSFT_StorageDiagnoseResult, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Diagnose") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +// +func (instance *MSFT_Volume) SetDedupMode( /* IN */ DedupMode uint32, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("SetDedupMode", DedupMode) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_Volume) GetDedupProperties( /* OUT */ DedupProperties MSFT_DedupProperties, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetDedupProperties") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +func (instance *MSFT_Volume) GetActions( /* OUT */ ActionResults []MSFT_HealthAction, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetActions") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VolumeToFileShare.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VolumeToFileShare.go new file mode 100644 index 000000000..74c6a9f01 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_VolumeToFileShare.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_VolumeToFileShare struct +type MSFT_VolumeToFileShare struct { + *cim.WmiInstance + + // + FileShare MSFT_FileShare + + // + Volume MSFT_Volume +} + +func NewMSFT_VolumeToFileShareEx1(instance *cim.WmiInstance) (newInstance *MSFT_VolumeToFileShare, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_VolumeToFileShare{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_VolumeToFileShareEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_VolumeToFileShare, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_VolumeToFileShare{ + WmiInstance: tmp, + } + return +} + +// SetFileShare sets the value of FileShare for the instance +func (instance *MSFT_VolumeToFileShare) SetPropertyFileShare(value MSFT_FileShare) (err error) { + return instance.SetProperty("FileShare", (value)) +} + +// GetFileShare gets the value of FileShare for the instance +func (instance *MSFT_VolumeToFileShare) GetPropertyFileShare() (value MSFT_FileShare, err error) { + retValue, err := instance.GetProperty("FileShare") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_FileShare) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_FileShare is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_FileShare(valuetmp) + + return +} + +// SetVolume sets the value of Volume for the instance +func (instance *MSFT_VolumeToFileShare) SetPropertyVolume(value MSFT_Volume) (err error) { + return instance.SetProperty("Volume", (value)) +} + +// GetVolume gets the value of Volume for the instance +func (instance *MSFT_VolumeToFileShare) GetPropertyVolume() (value MSFT_Volume, err error) { + retValue, err := instance.GetProperty("Volume") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Volume) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Volume is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Volume(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Volume_Repair_AsyncOutput.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Volume_Repair_AsyncOutput.go new file mode 100644 index 000000000..e806a97eb --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_Volume_Repair_AsyncOutput.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_Volume_Repair_AsyncOutput struct +type MSFT_Volume_Repair_AsyncOutput struct { + *MSFT_StorageJobOutParams + + // + Output uint32 +} + +func NewMSFT_Volume_Repair_AsyncOutputEx1(instance *cim.WmiInstance) (newInstance *MSFT_Volume_Repair_AsyncOutput, err error) { + tmp, err := NewMSFT_StorageJobOutParamsEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_Volume_Repair_AsyncOutput{ + MSFT_StorageJobOutParams: tmp, + } + return +} + +func NewMSFT_Volume_Repair_AsyncOutputEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_Volume_Repair_AsyncOutput, err error) { + tmp, err := NewMSFT_StorageJobOutParamsEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_Volume_Repair_AsyncOutput{ + MSFT_StorageJobOutParams: tmp, + } + return +} + +// SetOutput sets the value of Output for the instance +func (instance *MSFT_Volume_Repair_AsyncOutput) SetPropertyOutput(value uint32) (err error) { + return instance.SetProperty("Output", (value)) +} + +// GetOutput gets the value of Output for the instance +func (instance *MSFT_Volume_Repair_AsyncOutput) GetPropertyOutput() (value uint32, err error) { + retValue, err := instance.GetProperty("Output") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_WmiError.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_WmiError.go new file mode 100644 index 000000000..21f077d66 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_WmiError.go @@ -0,0 +1,170 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_WmiError struct +type MSFT_WmiError struct { + *CIM_Error + + // Error Category. + error_Category uint16 + + // Error code. + error_Code uint32 + + // Error Type. + error_Type string + + // Windows error message. + error_WindowsErrorMessage string +} + +func NewMSFT_WmiErrorEx1(instance *cim.WmiInstance) (newInstance *MSFT_WmiError, err error) { + tmp, err := NewCIM_ErrorEx1(instance) + + if err != nil { + return + } + newInstance = &MSFT_WmiError{ + CIM_Error: tmp, + } + return +} + +func NewMSFT_WmiErrorEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_WmiError, err error) { + tmp, err := NewCIM_ErrorEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_WmiError{ + CIM_Error: tmp, + } + return +} + +// Seterror_Category sets the value of error_Category for the instance +func (instance *MSFT_WmiError) SetPropertyerror_Category(value uint16) (err error) { + return instance.SetProperty("error_Category", (value)) +} + +// Geterror_Category gets the value of error_Category for the instance +func (instance *MSFT_WmiError) GetPropertyerror_Category() (value uint16, err error) { + retValue, err := instance.GetProperty("error_Category") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// Seterror_Code sets the value of error_Code for the instance +func (instance *MSFT_WmiError) SetPropertyerror_Code(value uint32) (err error) { + return instance.SetProperty("error_Code", (value)) +} + +// Geterror_Code gets the value of error_Code for the instance +func (instance *MSFT_WmiError) GetPropertyerror_Code() (value uint32, err error) { + retValue, err := instance.GetProperty("error_Code") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// Seterror_Type sets the value of error_Type for the instance +func (instance *MSFT_WmiError) SetPropertyerror_Type(value string) (err error) { + return instance.SetProperty("error_Type", (value)) +} + +// Geterror_Type gets the value of error_Type for the instance +func (instance *MSFT_WmiError) GetPropertyerror_Type() (value string, err error) { + retValue, err := instance.GetProperty("error_Type") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// Seterror_WindowsErrorMessage sets the value of error_WindowsErrorMessage for the instance +func (instance *MSFT_WmiError) SetPropertyerror_WindowsErrorMessage(value string) (err error) { + return instance.SetProperty("error_WindowsErrorMessage", (value)) +} + +// Geterror_WindowsErrorMessage gets the value of error_WindowsErrorMessage for the instance +func (instance *MSFT_WmiError) GetPropertyerror_WindowsErrorMessage() (value string, err error) { + retValue, err := instance.GetProperty("error_WindowsErrorMessage") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSIConnection.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSIConnection.go new file mode 100644 index 000000000..276708c67 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSIConnection.go @@ -0,0 +1,201 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_iSCSIConnection struct +type MSFT_iSCSIConnection struct { + *cim.WmiInstance + + // + ConnectionIdentifier string + + // + InitiatorAddress string + + // + InitiatorPortNumber uint32 + + // + TargetAddress string + + // + TargetPortNumber uint32 +} + +func NewMSFT_iSCSIConnectionEx1(instance *cim.WmiInstance) (newInstance *MSFT_iSCSIConnection, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_iSCSIConnection{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_iSCSIConnectionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_iSCSIConnection, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_iSCSIConnection{ + WmiInstance: tmp, + } + return +} + +// SetConnectionIdentifier sets the value of ConnectionIdentifier for the instance +func (instance *MSFT_iSCSIConnection) SetPropertyConnectionIdentifier(value string) (err error) { + return instance.SetProperty("ConnectionIdentifier", (value)) +} + +// GetConnectionIdentifier gets the value of ConnectionIdentifier for the instance +func (instance *MSFT_iSCSIConnection) GetPropertyConnectionIdentifier() (value string, err error) { + retValue, err := instance.GetProperty("ConnectionIdentifier") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetInitiatorAddress sets the value of InitiatorAddress for the instance +func (instance *MSFT_iSCSIConnection) SetPropertyInitiatorAddress(value string) (err error) { + return instance.SetProperty("InitiatorAddress", (value)) +} + +// GetInitiatorAddress gets the value of InitiatorAddress for the instance +func (instance *MSFT_iSCSIConnection) GetPropertyInitiatorAddress() (value string, err error) { + retValue, err := instance.GetProperty("InitiatorAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetInitiatorPortNumber sets the value of InitiatorPortNumber for the instance +func (instance *MSFT_iSCSIConnection) SetPropertyInitiatorPortNumber(value uint32) (err error) { + return instance.SetProperty("InitiatorPortNumber", (value)) +} + +// GetInitiatorPortNumber gets the value of InitiatorPortNumber for the instance +func (instance *MSFT_iSCSIConnection) GetPropertyInitiatorPortNumber() (value uint32, err error) { + retValue, err := instance.GetProperty("InitiatorPortNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetTargetAddress sets the value of TargetAddress for the instance +func (instance *MSFT_iSCSIConnection) SetPropertyTargetAddress(value string) (err error) { + return instance.SetProperty("TargetAddress", (value)) +} + +// GetTargetAddress gets the value of TargetAddress for the instance +func (instance *MSFT_iSCSIConnection) GetPropertyTargetAddress() (value string, err error) { + retValue, err := instance.GetProperty("TargetAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetTargetPortNumber sets the value of TargetPortNumber for the instance +func (instance *MSFT_iSCSIConnection) SetPropertyTargetPortNumber(value uint32) (err error) { + return instance.SetProperty("TargetPortNumber", (value)) +} + +// GetTargetPortNumber gets the value of TargetPortNumber for the instance +func (instance *MSFT_iSCSIConnection) GetPropertyTargetPortNumber() (value uint32, err error) { + retValue, err := instance.GetProperty("TargetPortNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSIConnectionToDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSIConnectionToDisk.go new file mode 100644 index 000000000..2ccb384de --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSIConnectionToDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_iSCSIConnectionToDisk struct +type MSFT_iSCSIConnectionToDisk struct { + *cim.WmiInstance + + // + Disk MSFT_Disk + + // + iSCSIConnection MSFT_iSCSIConnection +} + +func NewMSFT_iSCSIConnectionToDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_iSCSIConnectionToDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_iSCSIConnectionToDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_iSCSIConnectionToDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_iSCSIConnectionToDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_iSCSIConnectionToDisk{ + WmiInstance: tmp, + } + return +} + +// SetDisk sets the value of Disk for the instance +func (instance *MSFT_iSCSIConnectionToDisk) SetPropertyDisk(value MSFT_Disk) (err error) { + return instance.SetProperty("Disk", (value)) +} + +// GetDisk gets the value of Disk for the instance +func (instance *MSFT_iSCSIConnectionToDisk) GetPropertyDisk() (value MSFT_Disk, err error) { + retValue, err := instance.GetProperty("Disk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Disk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Disk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Disk(valuetmp) + + return +} + +// SetiSCSIConnection sets the value of iSCSIConnection for the instance +func (instance *MSFT_iSCSIConnectionToDisk) SetPropertyiSCSIConnection(value MSFT_iSCSIConnection) (err error) { + return instance.SetProperty("iSCSIConnection", (value)) +} + +// GetiSCSIConnection gets the value of iSCSIConnection for the instance +func (instance *MSFT_iSCSIConnectionToDisk) GetPropertyiSCSIConnection() (value MSFT_iSCSIConnection, err error) { + retValue, err := instance.GetProperty("iSCSIConnection") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSIConnection) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSIConnection is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSIConnection(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSIConnectionToiSCSITargetPortal.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSIConnectionToiSCSITargetPortal.go new file mode 100644 index 000000000..fbc936547 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSIConnectionToiSCSITargetPortal.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_iSCSIConnectionToiSCSITargetPortal struct +type MSFT_iSCSIConnectionToiSCSITargetPortal struct { + *cim.WmiInstance + + // + iSCSIConnection MSFT_iSCSIConnection + + // + iSCSITargetPortal MSFT_iSCSITargetPortal +} + +func NewMSFT_iSCSIConnectionToiSCSITargetPortalEx1(instance *cim.WmiInstance) (newInstance *MSFT_iSCSIConnectionToiSCSITargetPortal, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_iSCSIConnectionToiSCSITargetPortal{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_iSCSIConnectionToiSCSITargetPortalEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_iSCSIConnectionToiSCSITargetPortal, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_iSCSIConnectionToiSCSITargetPortal{ + WmiInstance: tmp, + } + return +} + +// SetiSCSIConnection sets the value of iSCSIConnection for the instance +func (instance *MSFT_iSCSIConnectionToiSCSITargetPortal) SetPropertyiSCSIConnection(value MSFT_iSCSIConnection) (err error) { + return instance.SetProperty("iSCSIConnection", (value)) +} + +// GetiSCSIConnection gets the value of iSCSIConnection for the instance +func (instance *MSFT_iSCSIConnectionToiSCSITargetPortal) GetPropertyiSCSIConnection() (value MSFT_iSCSIConnection, err error) { + retValue, err := instance.GetProperty("iSCSIConnection") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSIConnection) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSIConnection is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSIConnection(valuetmp) + + return +} + +// SetiSCSITargetPortal sets the value of iSCSITargetPortal for the instance +func (instance *MSFT_iSCSIConnectionToiSCSITargetPortal) SetPropertyiSCSITargetPortal(value MSFT_iSCSITargetPortal) (err error) { + return instance.SetProperty("iSCSITargetPortal", (value)) +} + +// GetiSCSITargetPortal gets the value of iSCSITargetPortal for the instance +func (instance *MSFT_iSCSIConnectionToiSCSITargetPortal) GetPropertyiSCSITargetPortal() (value MSFT_iSCSITargetPortal, err error) { + retValue, err := instance.GetProperty("iSCSITargetPortal") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSITargetPortal) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSITargetPortal is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSITargetPortal(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSISession.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSISession.go new file mode 100644 index 000000000..75ded6ecb --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSISession.go @@ -0,0 +1,518 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_iSCSISession struct +type MSFT_iSCSISession struct { + *cim.WmiInstance + + // + AuthenticationType string + + // + InitiatorInstanceName string + + // + InitiatorNodeAddress string + + // + InitiatorPortalAddress string + + // + InitiatorSideIdentifier string + + // + IsConnected bool + + // + IsDataDigest bool + + // + IsDiscovered bool + + // + IsHeaderDigest bool + + // + IsPersistent bool + + // + NumberOfConnections uint32 + + // + SessionIdentifier string + + // + TargetNodeAddress string + + // + TargetSideIdentifier string +} + +func NewMSFT_iSCSISessionEx1(instance *cim.WmiInstance) (newInstance *MSFT_iSCSISession, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_iSCSISession{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_iSCSISessionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_iSCSISession, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_iSCSISession{ + WmiInstance: tmp, + } + return +} + +// SetAuthenticationType sets the value of AuthenticationType for the instance +func (instance *MSFT_iSCSISession) SetPropertyAuthenticationType(value string) (err error) { + return instance.SetProperty("AuthenticationType", (value)) +} + +// GetAuthenticationType gets the value of AuthenticationType for the instance +func (instance *MSFT_iSCSISession) GetPropertyAuthenticationType() (value string, err error) { + retValue, err := instance.GetProperty("AuthenticationType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetInitiatorInstanceName sets the value of InitiatorInstanceName for the instance +func (instance *MSFT_iSCSISession) SetPropertyInitiatorInstanceName(value string) (err error) { + return instance.SetProperty("InitiatorInstanceName", (value)) +} + +// GetInitiatorInstanceName gets the value of InitiatorInstanceName for the instance +func (instance *MSFT_iSCSISession) GetPropertyInitiatorInstanceName() (value string, err error) { + retValue, err := instance.GetProperty("InitiatorInstanceName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetInitiatorNodeAddress sets the value of InitiatorNodeAddress for the instance +func (instance *MSFT_iSCSISession) SetPropertyInitiatorNodeAddress(value string) (err error) { + return instance.SetProperty("InitiatorNodeAddress", (value)) +} + +// GetInitiatorNodeAddress gets the value of InitiatorNodeAddress for the instance +func (instance *MSFT_iSCSISession) GetPropertyInitiatorNodeAddress() (value string, err error) { + retValue, err := instance.GetProperty("InitiatorNodeAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetInitiatorPortalAddress sets the value of InitiatorPortalAddress for the instance +func (instance *MSFT_iSCSISession) SetPropertyInitiatorPortalAddress(value string) (err error) { + return instance.SetProperty("InitiatorPortalAddress", (value)) +} + +// GetInitiatorPortalAddress gets the value of InitiatorPortalAddress for the instance +func (instance *MSFT_iSCSISession) GetPropertyInitiatorPortalAddress() (value string, err error) { + retValue, err := instance.GetProperty("InitiatorPortalAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetInitiatorSideIdentifier sets the value of InitiatorSideIdentifier for the instance +func (instance *MSFT_iSCSISession) SetPropertyInitiatorSideIdentifier(value string) (err error) { + return instance.SetProperty("InitiatorSideIdentifier", (value)) +} + +// GetInitiatorSideIdentifier gets the value of InitiatorSideIdentifier for the instance +func (instance *MSFT_iSCSISession) GetPropertyInitiatorSideIdentifier() (value string, err error) { + retValue, err := instance.GetProperty("InitiatorSideIdentifier") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetIsConnected sets the value of IsConnected for the instance +func (instance *MSFT_iSCSISession) SetPropertyIsConnected(value bool) (err error) { + return instance.SetProperty("IsConnected", (value)) +} + +// GetIsConnected gets the value of IsConnected for the instance +func (instance *MSFT_iSCSISession) GetPropertyIsConnected() (value bool, err error) { + retValue, err := instance.GetProperty("IsConnected") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsDataDigest sets the value of IsDataDigest for the instance +func (instance *MSFT_iSCSISession) SetPropertyIsDataDigest(value bool) (err error) { + return instance.SetProperty("IsDataDigest", (value)) +} + +// GetIsDataDigest gets the value of IsDataDigest for the instance +func (instance *MSFT_iSCSISession) GetPropertyIsDataDigest() (value bool, err error) { + retValue, err := instance.GetProperty("IsDataDigest") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsDiscovered sets the value of IsDiscovered for the instance +func (instance *MSFT_iSCSISession) SetPropertyIsDiscovered(value bool) (err error) { + return instance.SetProperty("IsDiscovered", (value)) +} + +// GetIsDiscovered gets the value of IsDiscovered for the instance +func (instance *MSFT_iSCSISession) GetPropertyIsDiscovered() (value bool, err error) { + retValue, err := instance.GetProperty("IsDiscovered") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsHeaderDigest sets the value of IsHeaderDigest for the instance +func (instance *MSFT_iSCSISession) SetPropertyIsHeaderDigest(value bool) (err error) { + return instance.SetProperty("IsHeaderDigest", (value)) +} + +// GetIsHeaderDigest gets the value of IsHeaderDigest for the instance +func (instance *MSFT_iSCSISession) GetPropertyIsHeaderDigest() (value bool, err error) { + retValue, err := instance.GetProperty("IsHeaderDigest") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsPersistent sets the value of IsPersistent for the instance +func (instance *MSFT_iSCSISession) SetPropertyIsPersistent(value bool) (err error) { + return instance.SetProperty("IsPersistent", (value)) +} + +// GetIsPersistent gets the value of IsPersistent for the instance +func (instance *MSFT_iSCSISession) GetPropertyIsPersistent() (value bool, err error) { + retValue, err := instance.GetProperty("IsPersistent") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetNumberOfConnections sets the value of NumberOfConnections for the instance +func (instance *MSFT_iSCSISession) SetPropertyNumberOfConnections(value uint32) (err error) { + return instance.SetProperty("NumberOfConnections", (value)) +} + +// GetNumberOfConnections gets the value of NumberOfConnections for the instance +func (instance *MSFT_iSCSISession) GetPropertyNumberOfConnections() (value uint32, err error) { + retValue, err := instance.GetProperty("NumberOfConnections") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetSessionIdentifier sets the value of SessionIdentifier for the instance +func (instance *MSFT_iSCSISession) SetPropertySessionIdentifier(value string) (err error) { + return instance.SetProperty("SessionIdentifier", (value)) +} + +// GetSessionIdentifier gets the value of SessionIdentifier for the instance +func (instance *MSFT_iSCSISession) GetPropertySessionIdentifier() (value string, err error) { + retValue, err := instance.GetProperty("SessionIdentifier") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetTargetNodeAddress sets the value of TargetNodeAddress for the instance +func (instance *MSFT_iSCSISession) SetPropertyTargetNodeAddress(value string) (err error) { + return instance.SetProperty("TargetNodeAddress", (value)) +} + +// GetTargetNodeAddress gets the value of TargetNodeAddress for the instance +func (instance *MSFT_iSCSISession) GetPropertyTargetNodeAddress() (value string, err error) { + retValue, err := instance.GetProperty("TargetNodeAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetTargetSideIdentifier sets the value of TargetSideIdentifier for the instance +func (instance *MSFT_iSCSISession) SetPropertyTargetSideIdentifier(value string) (err error) { + return instance.SetProperty("TargetSideIdentifier", (value)) +} + +// GetTargetSideIdentifier gets the value of TargetSideIdentifier for the instance +func (instance *MSFT_iSCSISession) GetPropertyTargetSideIdentifier() (value string, err error) { + retValue, err := instance.GetProperty("TargetSideIdentifier") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// + +// +// +// + +// +func (instance *MSFT_iSCSISession) Register( /* IN */ IsMultipathEnabled bool, + /* IN */ ChapUsername string, + /* IN */ ChapSecret string) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("Register", IsMultipathEnabled, ChapUsername, ChapSecret) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +func (instance *MSFT_iSCSISession) Unregister() (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("Unregister") + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// + +// +func (instance *MSFT_iSCSISession) SetCHAPSecret( /* IN */ ChapSecret string) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetCHAPSecret", ChapSecret) + if err != nil { + return + } + result = uint32(retVal) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSISessionToDisk.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSISessionToDisk.go new file mode 100644 index 000000000..bfe584e93 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSISessionToDisk.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_iSCSISessionToDisk struct +type MSFT_iSCSISessionToDisk struct { + *cim.WmiInstance + + // + Disk MSFT_Disk + + // + iSCSISession MSFT_iSCSISession +} + +func NewMSFT_iSCSISessionToDiskEx1(instance *cim.WmiInstance) (newInstance *MSFT_iSCSISessionToDisk, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_iSCSISessionToDisk{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_iSCSISessionToDiskEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_iSCSISessionToDisk, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_iSCSISessionToDisk{ + WmiInstance: tmp, + } + return +} + +// SetDisk sets the value of Disk for the instance +func (instance *MSFT_iSCSISessionToDisk) SetPropertyDisk(value MSFT_Disk) (err error) { + return instance.SetProperty("Disk", (value)) +} + +// GetDisk gets the value of Disk for the instance +func (instance *MSFT_iSCSISessionToDisk) GetPropertyDisk() (value MSFT_Disk, err error) { + retValue, err := instance.GetProperty("Disk") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_Disk) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_Disk is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_Disk(valuetmp) + + return +} + +// SetiSCSISession sets the value of iSCSISession for the instance +func (instance *MSFT_iSCSISessionToDisk) SetPropertyiSCSISession(value MSFT_iSCSISession) (err error) { + return instance.SetProperty("iSCSISession", (value)) +} + +// GetiSCSISession gets the value of iSCSISession for the instance +func (instance *MSFT_iSCSISessionToDisk) GetPropertyiSCSISession() (value MSFT_iSCSISession, err error) { + retValue, err := instance.GetProperty("iSCSISession") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSISession) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSISession is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSISession(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSISessionToiSCSIConnection.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSISessionToiSCSIConnection.go new file mode 100644 index 000000000..029211dd5 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSISessionToiSCSIConnection.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_iSCSISessionToiSCSIConnection struct +type MSFT_iSCSISessionToiSCSIConnection struct { + *cim.WmiInstance + + // + iSCSIConnection MSFT_iSCSIConnection + + // + iSCSISession MSFT_iSCSISession +} + +func NewMSFT_iSCSISessionToiSCSIConnectionEx1(instance *cim.WmiInstance) (newInstance *MSFT_iSCSISessionToiSCSIConnection, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_iSCSISessionToiSCSIConnection{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_iSCSISessionToiSCSIConnectionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_iSCSISessionToiSCSIConnection, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_iSCSISessionToiSCSIConnection{ + WmiInstance: tmp, + } + return +} + +// SetiSCSIConnection sets the value of iSCSIConnection for the instance +func (instance *MSFT_iSCSISessionToiSCSIConnection) SetPropertyiSCSIConnection(value MSFT_iSCSIConnection) (err error) { + return instance.SetProperty("iSCSIConnection", (value)) +} + +// GetiSCSIConnection gets the value of iSCSIConnection for the instance +func (instance *MSFT_iSCSISessionToiSCSIConnection) GetPropertyiSCSIConnection() (value MSFT_iSCSIConnection, err error) { + retValue, err := instance.GetProperty("iSCSIConnection") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSIConnection) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSIConnection is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSIConnection(valuetmp) + + return +} + +// SetiSCSISession sets the value of iSCSISession for the instance +func (instance *MSFT_iSCSISessionToiSCSIConnection) SetPropertyiSCSISession(value MSFT_iSCSISession) (err error) { + return instance.SetProperty("iSCSISession", (value)) +} + +// GetiSCSISession gets the value of iSCSISession for the instance +func (instance *MSFT_iSCSISessionToiSCSIConnection) GetPropertyiSCSISession() (value MSFT_iSCSISession, err error) { + retValue, err := instance.GetProperty("iSCSISession") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSISession) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSISession is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSISession(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSISessionToiSCSITargetPortal.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSISessionToiSCSITargetPortal.go new file mode 100644 index 000000000..9f881ccf4 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSISessionToiSCSITargetPortal.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_iSCSISessionToiSCSITargetPortal struct +type MSFT_iSCSISessionToiSCSITargetPortal struct { + *cim.WmiInstance + + // + iSCSISession MSFT_iSCSISession + + // + iSCSITargetPortal MSFT_iSCSITargetPortal +} + +func NewMSFT_iSCSISessionToiSCSITargetPortalEx1(instance *cim.WmiInstance) (newInstance *MSFT_iSCSISessionToiSCSITargetPortal, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_iSCSISessionToiSCSITargetPortal{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_iSCSISessionToiSCSITargetPortalEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_iSCSISessionToiSCSITargetPortal, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_iSCSISessionToiSCSITargetPortal{ + WmiInstance: tmp, + } + return +} + +// SetiSCSISession sets the value of iSCSISession for the instance +func (instance *MSFT_iSCSISessionToiSCSITargetPortal) SetPropertyiSCSISession(value MSFT_iSCSISession) (err error) { + return instance.SetProperty("iSCSISession", (value)) +} + +// GetiSCSISession gets the value of iSCSISession for the instance +func (instance *MSFT_iSCSISessionToiSCSITargetPortal) GetPropertyiSCSISession() (value MSFT_iSCSISession, err error) { + retValue, err := instance.GetProperty("iSCSISession") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSISession) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSISession is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSISession(valuetmp) + + return +} + +// SetiSCSITargetPortal sets the value of iSCSITargetPortal for the instance +func (instance *MSFT_iSCSISessionToiSCSITargetPortal) SetPropertyiSCSITargetPortal(value MSFT_iSCSITargetPortal) (err error) { + return instance.SetProperty("iSCSITargetPortal", (value)) +} + +// GetiSCSITargetPortal gets the value of iSCSITargetPortal for the instance +func (instance *MSFT_iSCSISessionToiSCSITargetPortal) GetPropertyiSCSITargetPortal() (value MSFT_iSCSITargetPortal, err error) { + retValue, err := instance.GetProperty("iSCSITargetPortal") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSITargetPortal) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSITargetPortal is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSITargetPortal(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITarget.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITarget.go new file mode 100644 index 000000000..49090065f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITarget.go @@ -0,0 +1,181 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_iSCSITarget struct +type MSFT_iSCSITarget struct { + *cim.WmiInstance + + // + IsConnected bool + + // + NodeAddress string +} + +func NewMSFT_iSCSITargetEx1(instance *cim.WmiInstance) (newInstance *MSFT_iSCSITarget, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_iSCSITarget{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_iSCSITargetEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_iSCSITarget, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_iSCSITarget{ + WmiInstance: tmp, + } + return +} + +// SetIsConnected sets the value of IsConnected for the instance +func (instance *MSFT_iSCSITarget) SetPropertyIsConnected(value bool) (err error) { + return instance.SetProperty("IsConnected", (value)) +} + +// GetIsConnected gets the value of IsConnected for the instance +func (instance *MSFT_iSCSITarget) GetPropertyIsConnected() (value bool, err error) { + retValue, err := instance.GetProperty("IsConnected") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetNodeAddress sets the value of NodeAddress for the instance +func (instance *MSFT_iSCSITarget) SetPropertyNodeAddress(value string) (err error) { + return instance.SetProperty("NodeAddress", (value)) +} + +// GetNodeAddress gets the value of NodeAddress for the instance +func (instance *MSFT_iSCSITarget) GetPropertyNodeAddress() (value string, err error) { + retValue, err := instance.GetProperty("NodeAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// + +// + +// +func (instance *MSFT_iSCSITarget) Disconnect( /* IN */ SessionIdentifier string) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("Disconnect", SessionIdentifier) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +func (instance *MSFT_iSCSITarget) Update() (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("Update") + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +// +// +// +// +// +// +// +// +// +// +// + +// +// +func (instance *MSFT_iSCSITarget) Connect( /* IN */ NodeAddress string, + /* IN */ TargetPortalAddress string, + /* IN */ TargetPortalPortNumber uint16, + /* IN */ InitiatorPortalAddress string, + /* IN */ IsDataDigest bool, + /* IN */ IsHeaderDigest bool, + /* IN */ ReportToPnP bool, + /* IN */ AuthenticationType string, + /* IN */ ChapUsername string, + /* IN */ ChapSecret string, + /* IN */ IsMultipathEnabled bool, + /* IN */ IsPersistent bool, + /* IN */ InitiatorInstanceName string, + /* OUT */ CreatediSCSISession MSFT_iSCSISession) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Connect", NodeAddress, TargetPortalAddress, TargetPortalPortNumber, InitiatorPortalAddress, IsDataDigest, IsHeaderDigest, ReportToPnP, AuthenticationType, ChapUsername, ChapSecret, IsMultipathEnabled, IsPersistent, InitiatorInstanceName) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITargetPortal.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITargetPortal.go new file mode 100644 index 000000000..fa165bdca --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITargetPortal.go @@ -0,0 +1,307 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_iSCSITargetPortal struct +type MSFT_iSCSITargetPortal struct { + *cim.WmiInstance + + // + InitiatorInstanceName string + + // + InitiatorPortalAddress string + + // + IsDataDigest bool + + // + IsHeaderDigest bool + + // + TargetPortalAddress string + + // + TargetPortalPortNumber uint16 +} + +func NewMSFT_iSCSITargetPortalEx1(instance *cim.WmiInstance) (newInstance *MSFT_iSCSITargetPortal, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_iSCSITargetPortal{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_iSCSITargetPortalEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_iSCSITargetPortal, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_iSCSITargetPortal{ + WmiInstance: tmp, + } + return +} + +// SetInitiatorInstanceName sets the value of InitiatorInstanceName for the instance +func (instance *MSFT_iSCSITargetPortal) SetPropertyInitiatorInstanceName(value string) (err error) { + return instance.SetProperty("InitiatorInstanceName", (value)) +} + +// GetInitiatorInstanceName gets the value of InitiatorInstanceName for the instance +func (instance *MSFT_iSCSITargetPortal) GetPropertyInitiatorInstanceName() (value string, err error) { + retValue, err := instance.GetProperty("InitiatorInstanceName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetInitiatorPortalAddress sets the value of InitiatorPortalAddress for the instance +func (instance *MSFT_iSCSITargetPortal) SetPropertyInitiatorPortalAddress(value string) (err error) { + return instance.SetProperty("InitiatorPortalAddress", (value)) +} + +// GetInitiatorPortalAddress gets the value of InitiatorPortalAddress for the instance +func (instance *MSFT_iSCSITargetPortal) GetPropertyInitiatorPortalAddress() (value string, err error) { + retValue, err := instance.GetProperty("InitiatorPortalAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetIsDataDigest sets the value of IsDataDigest for the instance +func (instance *MSFT_iSCSITargetPortal) SetPropertyIsDataDigest(value bool) (err error) { + return instance.SetProperty("IsDataDigest", (value)) +} + +// GetIsDataDigest gets the value of IsDataDigest for the instance +func (instance *MSFT_iSCSITargetPortal) GetPropertyIsDataDigest() (value bool, err error) { + retValue, err := instance.GetProperty("IsDataDigest") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetIsHeaderDigest sets the value of IsHeaderDigest for the instance +func (instance *MSFT_iSCSITargetPortal) SetPropertyIsHeaderDigest(value bool) (err error) { + return instance.SetProperty("IsHeaderDigest", (value)) +} + +// GetIsHeaderDigest gets the value of IsHeaderDigest for the instance +func (instance *MSFT_iSCSITargetPortal) GetPropertyIsHeaderDigest() (value bool, err error) { + retValue, err := instance.GetProperty("IsHeaderDigest") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetTargetPortalAddress sets the value of TargetPortalAddress for the instance +func (instance *MSFT_iSCSITargetPortal) SetPropertyTargetPortalAddress(value string) (err error) { + return instance.SetProperty("TargetPortalAddress", (value)) +} + +// GetTargetPortalAddress gets the value of TargetPortalAddress for the instance +func (instance *MSFT_iSCSITargetPortal) GetPropertyTargetPortalAddress() (value string, err error) { + retValue, err := instance.GetProperty("TargetPortalAddress") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetTargetPortalPortNumber sets the value of TargetPortalPortNumber for the instance +func (instance *MSFT_iSCSITargetPortal) SetPropertyTargetPortalPortNumber(value uint16) (err error) { + return instance.SetProperty("TargetPortalPortNumber", (value)) +} + +// GetTargetPortalPortNumber gets the value of TargetPortalPortNumber for the instance +func (instance *MSFT_iSCSITargetPortal) GetPropertyTargetPortalPortNumber() (value uint16, err error) { + retValue, err := instance.GetProperty("TargetPortalPortNumber") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint16) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint16 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint16(valuetmp) + + return +} + +// + +// +// +// +// +// +// +// +// +// + +// +// +func (instance *MSFT_iSCSITargetPortal) New( /* IN */ TargetPortalAddress string, + /* IN */ TargetPortalPortNumber uint16, + /* IN */ InitiatorInstanceName string, + /* IN */ InitiatorPortalAddress string, + /* IN */ AuthenticationType string, + /* IN */ ChapUsername string, + /* IN */ ChapSecret string, + /* IN */ IsHeaderDigest bool, + /* IN */ IsDataDigest bool, + /* OUT */ CreatedTargetPortal MSFT_iSCSITargetPortal) (result uint32, err error) { + retVal, err := instance.InvokeMethod("New", TargetPortalAddress, TargetPortalPortNumber, InitiatorInstanceName, InitiatorPortalAddress, AuthenticationType, ChapUsername, ChapSecret, IsHeaderDigest, IsDataDigest) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// + +// +func (instance *MSFT_iSCSITargetPortal) Remove( /* IN */ InitiatorInstanceName string, + /* IN */ InitiatorPortalAddress string, + /* IN */ TargetPortalPortNumber uint16, + /* IN */ TargetPortalAddress string) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("Remove", InitiatorInstanceName, InitiatorPortalAddress, TargetPortalPortNumber, TargetPortalAddress) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +// +// + +// +func (instance *MSFT_iSCSITargetPortal) Update( /* IN */ InitiatorInstanceName string, + /* IN */ InitiatorPortalAddress string, + /* IN */ TargetPortalAddress string, + /* IN */ TargetPortalPortNumber uint16) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("Update", InitiatorInstanceName, InitiatorPortalAddress, TargetPortalAddress, TargetPortalPortNumber) + if err != nil { + return + } + result = uint32(retVal) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITargetToiSCSIConnection.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITargetToiSCSIConnection.go new file mode 100644 index 000000000..02e325ede --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITargetToiSCSIConnection.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_iSCSITargetToiSCSIConnection struct +type MSFT_iSCSITargetToiSCSIConnection struct { + *cim.WmiInstance + + // + iSCSIConnection MSFT_iSCSIConnection + + // + iSCSITarget MSFT_iSCSITarget +} + +func NewMSFT_iSCSITargetToiSCSIConnectionEx1(instance *cim.WmiInstance) (newInstance *MSFT_iSCSITargetToiSCSIConnection, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_iSCSITargetToiSCSIConnection{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_iSCSITargetToiSCSIConnectionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_iSCSITargetToiSCSIConnection, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_iSCSITargetToiSCSIConnection{ + WmiInstance: tmp, + } + return +} + +// SetiSCSIConnection sets the value of iSCSIConnection for the instance +func (instance *MSFT_iSCSITargetToiSCSIConnection) SetPropertyiSCSIConnection(value MSFT_iSCSIConnection) (err error) { + return instance.SetProperty("iSCSIConnection", (value)) +} + +// GetiSCSIConnection gets the value of iSCSIConnection for the instance +func (instance *MSFT_iSCSITargetToiSCSIConnection) GetPropertyiSCSIConnection() (value MSFT_iSCSIConnection, err error) { + retValue, err := instance.GetProperty("iSCSIConnection") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSIConnection) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSIConnection is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSIConnection(valuetmp) + + return +} + +// SetiSCSITarget sets the value of iSCSITarget for the instance +func (instance *MSFT_iSCSITargetToiSCSIConnection) SetPropertyiSCSITarget(value MSFT_iSCSITarget) (err error) { + return instance.SetProperty("iSCSITarget", (value)) +} + +// GetiSCSITarget gets the value of iSCSITarget for the instance +func (instance *MSFT_iSCSITargetToiSCSIConnection) GetPropertyiSCSITarget() (value MSFT_iSCSITarget, err error) { + retValue, err := instance.GetProperty("iSCSITarget") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSITarget) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSITarget is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSITarget(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITargetToiSCSISession.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITargetToiSCSISession.go new file mode 100644 index 000000000..b49e2ae47 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITargetToiSCSISession.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_iSCSITargetToiSCSISession struct +type MSFT_iSCSITargetToiSCSISession struct { + *cim.WmiInstance + + // + iSCSISession MSFT_iSCSISession + + // + iSCSITarget MSFT_iSCSITarget +} + +func NewMSFT_iSCSITargetToiSCSISessionEx1(instance *cim.WmiInstance) (newInstance *MSFT_iSCSITargetToiSCSISession, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_iSCSITargetToiSCSISession{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_iSCSITargetToiSCSISessionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_iSCSITargetToiSCSISession, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_iSCSITargetToiSCSISession{ + WmiInstance: tmp, + } + return +} + +// SetiSCSISession sets the value of iSCSISession for the instance +func (instance *MSFT_iSCSITargetToiSCSISession) SetPropertyiSCSISession(value MSFT_iSCSISession) (err error) { + return instance.SetProperty("iSCSISession", (value)) +} + +// GetiSCSISession gets the value of iSCSISession for the instance +func (instance *MSFT_iSCSITargetToiSCSISession) GetPropertyiSCSISession() (value MSFT_iSCSISession, err error) { + retValue, err := instance.GetProperty("iSCSISession") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSISession) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSISession is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSISession(valuetmp) + + return +} + +// SetiSCSITarget sets the value of iSCSITarget for the instance +func (instance *MSFT_iSCSITargetToiSCSISession) SetPropertyiSCSITarget(value MSFT_iSCSITarget) (err error) { + return instance.SetProperty("iSCSITarget", (value)) +} + +// GetiSCSITarget gets the value of iSCSITarget for the instance +func (instance *MSFT_iSCSITargetToiSCSISession) GetPropertyiSCSITarget() (value MSFT_iSCSITarget, err error) { + retValue, err := instance.GetProperty("iSCSITarget") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSITarget) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSITarget is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSITarget(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITargetToiSCSITargetPortal.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITargetToiSCSITargetPortal.go new file mode 100644 index 000000000..4746aae6e --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MSFT_iSCSITargetToiSCSITargetPortal.go @@ -0,0 +1,111 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// MSFT_iSCSITargetToiSCSITargetPortal struct +type MSFT_iSCSITargetToiSCSITargetPortal struct { + *cim.WmiInstance + + // + iSCSITarget MSFT_iSCSITarget + + // + iSCSITargetPortal MSFT_iSCSITargetPortal +} + +func NewMSFT_iSCSITargetToiSCSITargetPortalEx1(instance *cim.WmiInstance) (newInstance *MSFT_iSCSITargetToiSCSITargetPortal, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &MSFT_iSCSITargetToiSCSITargetPortal{ + WmiInstance: tmp, + } + return +} + +func NewMSFT_iSCSITargetToiSCSITargetPortalEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *MSFT_iSCSITargetToiSCSITargetPortal, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &MSFT_iSCSITargetToiSCSITargetPortal{ + WmiInstance: tmp, + } + return +} + +// SetiSCSITarget sets the value of iSCSITarget for the instance +func (instance *MSFT_iSCSITargetToiSCSITargetPortal) SetPropertyiSCSITarget(value MSFT_iSCSITarget) (err error) { + return instance.SetProperty("iSCSITarget", (value)) +} + +// GetiSCSITarget gets the value of iSCSITarget for the instance +func (instance *MSFT_iSCSITargetToiSCSITargetPortal) GetPropertyiSCSITarget() (value MSFT_iSCSITarget, err error) { + retValue, err := instance.GetProperty("iSCSITarget") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSITarget) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSITarget is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSITarget(valuetmp) + + return +} + +// SetiSCSITargetPortal sets the value of iSCSITargetPortal for the instance +func (instance *MSFT_iSCSITargetToiSCSITargetPortal) SetPropertyiSCSITargetPortal(value MSFT_iSCSITargetPortal) (err error) { + return instance.SetProperty("iSCSITargetPortal", (value)) +} + +// GetiSCSITargetPortal gets the value of iSCSITargetPortal for the instance +func (instance *MSFT_iSCSITargetToiSCSITargetPortal) GetPropertyiSCSITargetPortal() (value MSFT_iSCSITargetPortal, err error) { + retValue, err := instance.GetProperty("iSCSITargetPortal") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(MSFT_iSCSITargetPortal) + if !ok { + err = errors.Wrapf(errors.InvalidType, " MSFT_iSCSITargetPortal is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = MSFT_iSCSITargetPortal(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MethodInvocationEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MethodInvocationEvent.go new file mode 100644 index 000000000..8c5343109 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MethodInvocationEvent.go @@ -0,0 +1,140 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __MethodInvocationEvent struct +type __MethodInvocationEvent struct { + *__InstanceOperationEvent + + // + Method string + + // + Parameters interface{} + + // + PreCall bool +} + +func New__MethodInvocationEventEx1(instance *cim.WmiInstance) (newInstance *__MethodInvocationEvent, err error) { + tmp, err := New__InstanceOperationEventEx1(instance) + + if err != nil { + return + } + newInstance = &__MethodInvocationEvent{ + __InstanceOperationEvent: tmp, + } + return +} + +func New__MethodInvocationEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__MethodInvocationEvent, err error) { + tmp, err := New__InstanceOperationEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__MethodInvocationEvent{ + __InstanceOperationEvent: tmp, + } + return +} + +// SetMethod sets the value of Method for the instance +func (instance *__MethodInvocationEvent) SetPropertyMethod(value string) (err error) { + return instance.SetProperty("Method", (value)) +} + +// GetMethod gets the value of Method for the instance +func (instance *__MethodInvocationEvent) GetPropertyMethod() (value string, err error) { + retValue, err := instance.GetProperty("Method") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetParameters sets the value of Parameters for the instance +func (instance *__MethodInvocationEvent) SetPropertyParameters(value interface{}) (err error) { + return instance.SetProperty("Parameters", (value)) +} + +// GetParameters gets the value of Parameters for the instance +func (instance *__MethodInvocationEvent) GetPropertyParameters() (value interface{}, err error) { + retValue, err := instance.GetProperty("Parameters") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(interface{}) + if !ok { + err = errors.Wrapf(errors.InvalidType, " interface{} is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = interface{}(valuetmp) + + return +} + +// SetPreCall sets the value of PreCall for the instance +func (instance *__MethodInvocationEvent) SetPropertyPreCall(value bool) (err error) { + return instance.SetProperty("PreCall", (value)) +} + +// GetPreCall gets the value of PreCall for the instance +func (instance *__MethodInvocationEvent) GetPropertyPreCall() (value bool, err error) { + retValue, err := instance.GetProperty("PreCall") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MethodProviderRegistration.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MethodProviderRegistration.go new file mode 100644 index 000000000..5df05a38f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/MethodProviderRegistration.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __MethodProviderRegistration struct +type __MethodProviderRegistration struct { + *__ProviderRegistration +} + +func New__MethodProviderRegistrationEx1(instance *cim.WmiInstance) (newInstance *__MethodProviderRegistration, err error) { + tmp, err := New__ProviderRegistrationEx1(instance) + + if err != nil { + return + } + newInstance = &__MethodProviderRegistration{ + __ProviderRegistration: tmp, + } + return +} + +func New__MethodProviderRegistrationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__MethodProviderRegistration, err error) { + tmp, err := New__ProviderRegistrationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__MethodProviderRegistration{ + __ProviderRegistration: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NTLMUser9X.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NTLMUser9X.go new file mode 100644 index 000000000..7c069eb4a --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NTLMUser9X.go @@ -0,0 +1,200 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __NTLMUser9X struct +type __NTLMUser9X struct { + *__SecurityRelatedClass + + // + Authority string + + // + Flags int32 + + // + Mask int32 + + // + Name string + + // + Type int32 +} + +func New__NTLMUser9XEx1(instance *cim.WmiInstance) (newInstance *__NTLMUser9X, err error) { + tmp, err := New__SecurityRelatedClassEx1(instance) + + if err != nil { + return + } + newInstance = &__NTLMUser9X{ + __SecurityRelatedClass: tmp, + } + return +} + +func New__NTLMUser9XEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__NTLMUser9X, err error) { + tmp, err := New__SecurityRelatedClassEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__NTLMUser9X{ + __SecurityRelatedClass: tmp, + } + return +} + +// SetAuthority sets the value of Authority for the instance +func (instance *__NTLMUser9X) SetPropertyAuthority(value string) (err error) { + return instance.SetProperty("Authority", (value)) +} + +// GetAuthority gets the value of Authority for the instance +func (instance *__NTLMUser9X) GetPropertyAuthority() (value string, err error) { + retValue, err := instance.GetProperty("Authority") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetFlags sets the value of Flags for the instance +func (instance *__NTLMUser9X) SetPropertyFlags(value int32) (err error) { + return instance.SetProperty("Flags", (value)) +} + +// GetFlags gets the value of Flags for the instance +func (instance *__NTLMUser9X) GetPropertyFlags() (value int32, err error) { + retValue, err := instance.GetProperty("Flags") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(int32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " int32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = int32(valuetmp) + + return +} + +// SetMask sets the value of Mask for the instance +func (instance *__NTLMUser9X) SetPropertyMask(value int32) (err error) { + return instance.SetProperty("Mask", (value)) +} + +// GetMask gets the value of Mask for the instance +func (instance *__NTLMUser9X) GetPropertyMask() (value int32, err error) { + retValue, err := instance.GetProperty("Mask") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(int32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " int32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = int32(valuetmp) + + return +} + +// SetName sets the value of Name for the instance +func (instance *__NTLMUser9X) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *__NTLMUser9X) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetType sets the value of Type for the instance +func (instance *__NTLMUser9X) SetPropertyType(value int32) (err error) { + return instance.SetProperty("Type", (value)) +} + +// GetType gets the value of Type for the instance +func (instance *__NTLMUser9X) GetPropertyType() (value int32, err error) { + retValue, err := instance.GetProperty("Type") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(int32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " int32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = int32(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Namespace.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Namespace.go new file mode 100644 index 000000000..db90da357 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Namespace.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __Namespace struct +type __Namespace struct { + *__SystemClass + + // + Name string +} + +func New__NamespaceEx1(instance *cim.WmiInstance) (newInstance *__Namespace, err error) { + tmp, err := New__SystemClassEx1(instance) + + if err != nil { + return + } + newInstance = &__Namespace{ + __SystemClass: tmp, + } + return +} + +func New__NamespaceEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__Namespace, err error) { + tmp, err := New__SystemClassEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__Namespace{ + __SystemClass: tmp, + } + return +} + +// SetName sets the value of Name for the instance +func (instance *__Namespace) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *__Namespace) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NamespaceCreationEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NamespaceCreationEvent.go new file mode 100644 index 000000000..602c134bf --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NamespaceCreationEvent.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __NamespaceCreationEvent struct +type __NamespaceCreationEvent struct { + *__NamespaceOperationEvent +} + +func New__NamespaceCreationEventEx1(instance *cim.WmiInstance) (newInstance *__NamespaceCreationEvent, err error) { + tmp, err := New__NamespaceOperationEventEx1(instance) + + if err != nil { + return + } + newInstance = &__NamespaceCreationEvent{ + __NamespaceOperationEvent: tmp, + } + return +} + +func New__NamespaceCreationEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__NamespaceCreationEvent, err error) { + tmp, err := New__NamespaceOperationEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__NamespaceCreationEvent{ + __NamespaceOperationEvent: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NamespaceDeletionEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NamespaceDeletionEvent.go new file mode 100644 index 000000000..bb206a637 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NamespaceDeletionEvent.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __NamespaceDeletionEvent struct +type __NamespaceDeletionEvent struct { + *__NamespaceOperationEvent +} + +func New__NamespaceDeletionEventEx1(instance *cim.WmiInstance) (newInstance *__NamespaceDeletionEvent, err error) { + tmp, err := New__NamespaceOperationEventEx1(instance) + + if err != nil { + return + } + newInstance = &__NamespaceDeletionEvent{ + __NamespaceOperationEvent: tmp, + } + return +} + +func New__NamespaceDeletionEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__NamespaceDeletionEvent, err error) { + tmp, err := New__NamespaceOperationEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__NamespaceDeletionEvent{ + __NamespaceOperationEvent: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NamespaceModificationEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NamespaceModificationEvent.go new file mode 100644 index 000000000..55e09d368 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NamespaceModificationEvent.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __NamespaceModificationEvent struct +type __NamespaceModificationEvent struct { + *__NamespaceOperationEvent + + // + PreviousNamespace __Namespace +} + +func New__NamespaceModificationEventEx1(instance *cim.WmiInstance) (newInstance *__NamespaceModificationEvent, err error) { + tmp, err := New__NamespaceOperationEventEx1(instance) + + if err != nil { + return + } + newInstance = &__NamespaceModificationEvent{ + __NamespaceOperationEvent: tmp, + } + return +} + +func New__NamespaceModificationEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__NamespaceModificationEvent, err error) { + tmp, err := New__NamespaceOperationEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__NamespaceModificationEvent{ + __NamespaceOperationEvent: tmp, + } + return +} + +// SetPreviousNamespace sets the value of PreviousNamespace for the instance +func (instance *__NamespaceModificationEvent) SetPropertyPreviousNamespace(value __Namespace) (err error) { + return instance.SetProperty("PreviousNamespace", (value)) +} + +// GetPreviousNamespace gets the value of PreviousNamespace for the instance +func (instance *__NamespaceModificationEvent) GetPropertyPreviousNamespace() (value __Namespace, err error) { + retValue, err := instance.GetProperty("PreviousNamespace") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(__Namespace) + if !ok { + err = errors.Wrapf(errors.InvalidType, " __Namespace is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = __Namespace(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NamespaceOperationEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NamespaceOperationEvent.go new file mode 100644 index 000000000..291a20b3c --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NamespaceOperationEvent.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __NamespaceOperationEvent struct +type __NamespaceOperationEvent struct { + *__Event + + // + TargetNamespace __Namespace +} + +func New__NamespaceOperationEventEx1(instance *cim.WmiInstance) (newInstance *__NamespaceOperationEvent, err error) { + tmp, err := New__EventEx1(instance) + + if err != nil { + return + } + newInstance = &__NamespaceOperationEvent{ + __Event: tmp, + } + return +} + +func New__NamespaceOperationEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__NamespaceOperationEvent, err error) { + tmp, err := New__EventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__NamespaceOperationEvent{ + __Event: tmp, + } + return +} + +// SetTargetNamespace sets the value of TargetNamespace for the instance +func (instance *__NamespaceOperationEvent) SetPropertyTargetNamespace(value __Namespace) (err error) { + return instance.SetProperty("TargetNamespace", (value)) +} + +// GetTargetNamespace gets the value of TargetNamespace for the instance +func (instance *__NamespaceOperationEvent) GetPropertyTargetNamespace() (value __Namespace, err error) { + retValue, err := instance.GetProperty("TargetNamespace") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(__Namespace) + if !ok { + err = errors.Wrapf(errors.InvalidType, " __Namespace is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = __Namespace(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NotifyStatus.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NotifyStatus.go new file mode 100644 index 000000000..8d36b68ea --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/NotifyStatus.go @@ -0,0 +1,81 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __NotifyStatus struct +type __NotifyStatus struct { + *cim.WmiInstance + + // + StatusCode uint32 +} + +func New__NotifyStatusEx1(instance *cim.WmiInstance) (newInstance *__NotifyStatus, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &__NotifyStatus{ + WmiInstance: tmp, + } + return +} + +func New__NotifyStatusEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__NotifyStatus, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__NotifyStatus{ + WmiInstance: tmp, + } + return +} + +// SetStatusCode sets the value of StatusCode for the instance +func (instance *__NotifyStatus) SetPropertyStatusCode(value uint32) (err error) { + return instance.SetProperty("StatusCode", (value)) +} + +// GetStatusCode gets the value of StatusCode for the instance +func (instance *__NotifyStatus) GetPropertyStatusCode() (value uint32, err error) { + retValue, err := instance.GetProperty("StatusCode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ObjectProviderRegistration.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ObjectProviderRegistration.go new file mode 100644 index 000000000..1e2501378 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ObjectProviderRegistration.go @@ -0,0 +1,291 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __ObjectProviderRegistration struct +type __ObjectProviderRegistration struct { + *__ProviderRegistration + + // + InteractionType ObjectProviderRegistration_InteractionType + + // + QuerySupportLevels []string + + // + SupportsBatching bool + + // + SupportsDelete bool + + // + SupportsEnumeration bool + + // + SupportsGet bool + + // + SupportsPut bool + + // + SupportsTransactions bool +} + +func New__ObjectProviderRegistrationEx1(instance *cim.WmiInstance) (newInstance *__ObjectProviderRegistration, err error) { + tmp, err := New__ProviderRegistrationEx1(instance) + + if err != nil { + return + } + newInstance = &__ObjectProviderRegistration{ + __ProviderRegistration: tmp, + } + return +} + +func New__ObjectProviderRegistrationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__ObjectProviderRegistration, err error) { + tmp, err := New__ProviderRegistrationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__ObjectProviderRegistration{ + __ProviderRegistration: tmp, + } + return +} + +// SetInteractionType sets the value of InteractionType for the instance +func (instance *__ObjectProviderRegistration) SetPropertyInteractionType(value ObjectProviderRegistration_InteractionType) (err error) { + return instance.SetProperty("InteractionType", (value)) +} + +// GetInteractionType gets the value of InteractionType for the instance +func (instance *__ObjectProviderRegistration) GetPropertyInteractionType() (value ObjectProviderRegistration_InteractionType, err error) { + retValue, err := instance.GetProperty("InteractionType") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(int32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " int32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = ObjectProviderRegistration_InteractionType(valuetmp) + + return +} + +// SetQuerySupportLevels sets the value of QuerySupportLevels for the instance +func (instance *__ObjectProviderRegistration) SetPropertyQuerySupportLevels(value []string) (err error) { + return instance.SetProperty("QuerySupportLevels", (value)) +} + +// GetQuerySupportLevels gets the value of QuerySupportLevels for the instance +func (instance *__ObjectProviderRegistration) GetPropertyQuerySupportLevels() (value []string, err error) { + retValue, err := instance.GetProperty("QuerySupportLevels") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, string(valuetmp)) + } + + return +} + +// SetSupportsBatching sets the value of SupportsBatching for the instance +func (instance *__ObjectProviderRegistration) SetPropertySupportsBatching(value bool) (err error) { + return instance.SetProperty("SupportsBatching", (value)) +} + +// GetSupportsBatching gets the value of SupportsBatching for the instance +func (instance *__ObjectProviderRegistration) GetPropertySupportsBatching() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsBatching") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsDelete sets the value of SupportsDelete for the instance +func (instance *__ObjectProviderRegistration) SetPropertySupportsDelete(value bool) (err error) { + return instance.SetProperty("SupportsDelete", (value)) +} + +// GetSupportsDelete gets the value of SupportsDelete for the instance +func (instance *__ObjectProviderRegistration) GetPropertySupportsDelete() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsDelete") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsEnumeration sets the value of SupportsEnumeration for the instance +func (instance *__ObjectProviderRegistration) SetPropertySupportsEnumeration(value bool) (err error) { + return instance.SetProperty("SupportsEnumeration", (value)) +} + +// GetSupportsEnumeration gets the value of SupportsEnumeration for the instance +func (instance *__ObjectProviderRegistration) GetPropertySupportsEnumeration() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsEnumeration") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsGet sets the value of SupportsGet for the instance +func (instance *__ObjectProviderRegistration) SetPropertySupportsGet(value bool) (err error) { + return instance.SetProperty("SupportsGet", (value)) +} + +// GetSupportsGet gets the value of SupportsGet for the instance +func (instance *__ObjectProviderRegistration) GetPropertySupportsGet() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsGet") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsPut sets the value of SupportsPut for the instance +func (instance *__ObjectProviderRegistration) SetPropertySupportsPut(value bool) (err error) { + return instance.SetProperty("SupportsPut", (value)) +} + +// GetSupportsPut gets the value of SupportsPut for the instance +func (instance *__ObjectProviderRegistration) GetPropertySupportsPut() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsPut") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsTransactions sets the value of SupportsTransactions for the instance +func (instance *__ObjectProviderRegistration) SetPropertySupportsTransactions(value bool) (err error) { + return instance.SetProperty("SupportsTransactions", (value)) +} + +// GetSupportsTransactions gets the value of SupportsTransactions for the instance +func (instance *__ObjectProviderRegistration) GetPropertySupportsTransactions() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsTransactions") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ObjectProviderRegistration_InteractionType.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ObjectProviderRegistration_InteractionType.go new file mode 100644 index 000000000..8c448fe71 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ObjectProviderRegistration_InteractionType.go @@ -0,0 +1,21 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source ObjectProviderRegistration_InteractionType +////////////////////////////////////////////// +package storage + +// ObjectProviderRegistration_InteractionType +type ObjectProviderRegistration_InteractionType int + +const ( + // Pull enum + ObjectProviderRegistration_InteractionType_Pull ObjectProviderRegistration_InteractionType = 0 + // Push enum + ObjectProviderRegistration_InteractionType_Push ObjectProviderRegistration_InteractionType = 1 + // PushVerify enum + ObjectProviderRegistration_InteractionType_PushVerify ObjectProviderRegistration_InteractionType = 2 +) diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/PARAMETERS.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/PARAMETERS.go new file mode 100644 index 000000000..f83acb6c4 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/PARAMETERS.go @@ -0,0 +1,49 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __PARAMETERS struct +type __PARAMETERS struct { + *cim.WmiInstance +} + +func New__PARAMETERSEx1(instance *cim.WmiInstance) (newInstance *__PARAMETERS, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &__PARAMETERS{ + WmiInstance: tmp, + } + return +} + +func New__PARAMETERSEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__PARAMETERS, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__PARAMETERS{ + WmiInstance: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/PS_StorageCmdlets.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/PS_StorageCmdlets.go new file mode 100644 index 000000000..cf24ee2db --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/PS_StorageCmdlets.go @@ -0,0 +1,551 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// PS_StorageCmdlets struct +type PS_StorageCmdlets struct { + *cim.WmiInstance +} + +func NewPS_StorageCmdletsEx1(instance *cim.WmiInstance) (newInstance *PS_StorageCmdlets, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &PS_StorageCmdlets{ + WmiInstance: tmp, + } + return +} + +func NewPS_StorageCmdletsEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *PS_StorageCmdlets, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &PS_StorageCmdlets{ + WmiInstance: tmp, + } + return +} + +// + +// +// +// +// +// +// +// +// +// + +// +func (instance *PS_StorageCmdlets) SetDisk( /* IN */ InputObject []MSFT_Disk, + /* IN */ UniqueId string, + /* IN */ Path string, + /* IN */ Number uint32, + /* IN */ PartitionStyle uint16, + /* IN */ IsReadOnly bool, + /* IN */ IsOffline bool, + /* IN */ Signature uint32, + /* IN */ Guid string) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetDisk", InputObject, UniqueId, Path, Number, PartitionStyle, IsReadOnly, IsOffline, Signature, Guid) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +// +// +// +// +// + +// +func (instance *PS_StorageCmdlets) SetVolume( /* IN */ InputObject []MSFT_Volume, + /* IN */ UniqueId string, + /* IN */ Path string, + /* IN */ FileSystemLabel string, + /* IN */ DriveLetter byte, + /* IN */ NewFileSystemLabel string, + /* IN */ DedupMode uint32) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetVolume", InputObject, UniqueId, Path, FileSystemLabel, DriveLetter, NewFileSystemLabel, DedupMode) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +// +func (instance *PS_StorageCmdlets) SetPartition( /* IN */ InputObject []MSFT_Partition, + /* IN */ DiskId string, + /* IN */ Offset uint64, + /* IN */ DiskNumber uint32, + /* IN */ PartitionNumber uint32, + /* IN */ DriveLetter byte, + /* IN */ NewDriveLetter byte, + /* IN */ IsOffline bool, + /* IN */ IsReadOnly bool, + /* IN */ NoDefaultDriveLetter bool, + /* IN */ IsActive bool, + /* IN */ IsHidden bool, + /* IN */ IsShadowCopy bool, + /* IN */ IsDAX bool, + /* IN */ MbrType uint16, + /* IN */ GptType string) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetPartition", InputObject, DiskId, Offset, DiskNumber, PartitionNumber, DriveLetter, NewDriveLetter, IsOffline, IsReadOnly, NoDefaultDriveLetter, IsActive, IsHidden, IsShadowCopy, IsDAX, MbrType, GptType) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +// +// +// +// +// +// +// + +// +func (instance *PS_StorageCmdlets) SetPhysicalDisk( /* IN */ InputObject []MSFT_PhysicalDisk, + /* IN */ UniqueId string, + /* IN */ FriendlyName string, + /* IN */ NewFriendlyName string, + /* IN */ Description string, + /* IN */ Usage uint16, + /* IN */ MediaType uint16, + /* IN */ StorageEnclosureId string, + /* IN */ StorageScaleUnitId string) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetPhysicalDisk", InputObject, UniqueId, FriendlyName, NewFriendlyName, Description, Usage, MediaType, StorageEnclosureId, StorageScaleUnitId) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +// +func (instance *PS_StorageCmdlets) SetStoragePool( /* IN */ InputObject []MSFT_StoragePool, + /* IN */ UniqueId string, + /* IN */ Name string, + /* IN */ FriendlyName string, + /* IN */ NewFriendlyName string, + /* IN */ Usage uint16, + /* IN */ OtherUsageDescription string, + /* IN */ ProvisioningTypeDefault uint16, + /* IN */ MediaTypeDefault uint16, + /* IN */ ResiliencySettingNameDefault string, + /* IN */ EnclosureAwareDefault bool, + /* IN */ FaultDomainAwarenessDefault uint16, + /* IN */ WriteCacheSizeDefault uint64, + /* IN */ AutoWriteCacheSize bool, + /* IN */ IsReadOnly bool, + /* IN */ ClearOnDeallocate bool, + /* IN */ IsPowerProtected bool, + /* IN */ RepairPolicy uint16, + /* IN */ RetireMissingPhysicalDisks uint16, + /* IN */ ThinProvisioningAlertThresholds []uint16) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetStoragePool", InputObject, UniqueId, Name, FriendlyName, NewFriendlyName, Usage, OtherUsageDescription, ProvisioningTypeDefault, MediaTypeDefault, ResiliencySettingNameDefault, EnclosureAwareDefault, FaultDomainAwarenessDefault, WriteCacheSizeDefault, AutoWriteCacheSize, IsReadOnly, ClearOnDeallocate, IsPowerProtected, RepairPolicy, RetireMissingPhysicalDisks, ThinProvisioningAlertThresholds) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +// +func (instance *PS_StorageCmdlets) SetVirtualDisk( /* IN */ InputObject []MSFT_VirtualDisk, + /* IN */ UniqueId string, + /* IN */ Name string, + /* IN */ FriendlyName string, + /* IN */ NewFriendlyName string, + /* IN */ Usage uint16, + /* IN */ OtherUsageDescription string, + /* IN */ IsManualAttach bool, + /* IN */ StorageNodeName string, + /* IN */ Access uint16, + /* IN */ ProvisioningType uint16, + /* IN */ AllocationUnitSize uint64, + /* IN */ MediaType uint16, + /* IN */ FaultDomainAwareness uint16, + /* IN */ ColumnIsolation uint16, + /* IN */ ResiliencySettingName string, + /* IN */ PhysicalDiskRedundancy uint16, + /* IN */ NumberOfDataCopies uint16, + /* IN */ NumberOfGroups uint16, + /* IN */ NumberOfColumns uint16, + /* IN */ Interleave uint64) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetVirtualDisk", InputObject, UniqueId, Name, FriendlyName, NewFriendlyName, Usage, OtherUsageDescription, IsManualAttach, StorageNodeName, Access, ProvisioningType, AllocationUnitSize, MediaType, FaultDomainAwareness, ColumnIsolation, ResiliencySettingName, PhysicalDiskRedundancy, NumberOfDataCopies, NumberOfGroups, NumberOfColumns, Interleave) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +// +func (instance *PS_StorageCmdlets) SetStorageTier( /* IN */ InputObject []MSFT_StorageTier, + /* IN */ UniqueId string, + /* IN */ FriendlyName string, + /* IN */ NewFriendlyName string, + /* IN */ ProvisioningType uint16, + /* IN */ AllocationUnitSize uint64, + /* IN */ MediaType uint16, + /* IN */ FaultDomainAwareness uint16, + /* IN */ ColumnIsolation uint16, + /* IN */ ResiliencySettingName string, + /* IN */ Usage uint16, + /* IN */ PhysicalDiskRedundancy uint16, + /* IN */ NumberOfDataCopies uint16, + /* IN */ NumberOfGroups uint16, + /* IN */ NumberOfColumns uint16, + /* IN */ Interleave uint64, + /* IN */ Description string) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetStorageTier", InputObject, UniqueId, FriendlyName, NewFriendlyName, ProvisioningType, AllocationUnitSize, MediaType, FaultDomainAwareness, ColumnIsolation, ResiliencySettingName, Usage, PhysicalDiskRedundancy, NumberOfDataCopies, NumberOfGroups, NumberOfColumns, Interleave, Description) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +// +// +// +// +// + +// +func (instance *PS_StorageCmdlets) SetStorageSubSystem( /* IN */ InputObject []MSFT_StorageSubSystem, + /* IN */ UniqueId string, + /* IN */ Name string, + /* IN */ FriendlyName string, + /* IN */ Description string, + /* IN */ AutomaticClusteringEnabled bool, + /* IN */ FaultDomainAwarenessDefault uint16) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetStorageSubSystem", InputObject, UniqueId, Name, FriendlyName, Description, AutomaticClusteringEnabled, FaultDomainAwarenessDefault) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +// +// +// +// +// +// +// +// + +// +func (instance *PS_StorageCmdlets) AddPhysicalDisk( /* IN */ StoragePool MSFT_StoragePool, + /* IN */ StoragePoolUniqueId string, + /* IN */ StoragePoolName string, + /* IN */ StoragePoolFriendlyName string, + /* IN */ VirtualDisk MSFT_VirtualDisk, + /* IN */ VirtualDiskUniqueId string, + /* IN */ VirtualDiskName string, + /* IN */ VirtualDiskFriendlyName string, + /* IN */ PhysicalDisks []MSFT_PhysicalDisk, + /* IN */ Usage uint16) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("AddPhysicalDisk", StoragePool, StoragePoolUniqueId, StoragePoolName, StoragePoolFriendlyName, VirtualDisk, VirtualDiskUniqueId, VirtualDiskName, VirtualDiskFriendlyName, PhysicalDisks, Usage) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +// +// +// +// +// +// +// + +// +func (instance *PS_StorageCmdlets) RemovePhysicalDisk( /* IN */ StoragePool MSFT_StoragePool, + /* IN */ StoragePoolUniqueId string, + /* IN */ StoragePoolName string, + /* IN */ StoragePoolFriendlyName string, + /* IN */ VirtualDisk MSFT_VirtualDisk, + /* IN */ VirtualDiskUniqueId string, + /* IN */ VirtualDiskName string, + /* IN */ VirtualDiskFriendlyName string, + /* IN */ PhysicalDisks []MSFT_PhysicalDisk) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("RemovePhysicalDisk", StoragePool, StoragePoolUniqueId, StoragePoolName, StoragePoolFriendlyName, VirtualDisk, VirtualDiskUniqueId, VirtualDiskName, VirtualDiskFriendlyName, PhysicalDisks) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +func (instance *PS_StorageCmdlets) LaunchProviderHost( /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("LaunchProviderHost") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +// +// +// + +// +func (instance *PS_StorageCmdlets) SetFileShare( /* IN */ InputObject []MSFT_FileShare, + /* IN */ UniqueId string, + /* IN */ Name string, + /* IN */ Description string, + /* IN */ EncryptData bool) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetFileShare", InputObject, UniqueId, Name, Description, EncryptData) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +// +// +// +// +func (instance *PS_StorageCmdlets) CreateVolume( /* IN */ StoragePool MSFT_StoragePool, + /* IN */ StoragePoolUniqueId string, + /* IN */ StoragePoolName string, + /* IN */ StoragePoolFriendlyName string, + /* IN */ Disk MSFT_Disk, + /* IN */ DiskNumber uint32, + /* IN */ DiskPath string, + /* IN */ DiskUniqueId string, + /* IN */ FriendlyName string, + /* IN */ Size uint64, + /* IN */ StorageTiers []MSFT_StorageTier, + /* IN */ StorageTierSizes []uint64, + /* IN */ ProvisioningType uint16, + /* IN */ ResiliencySettingName string, + /* IN */ PhysicalDiskRedundancy uint16, + /* IN */ NumberOfColumns uint16, + /* IN */ FileSystem uint16, + /* IN */ AccessPath string, + /* IN */ AllocationUnitSize uint32, + /* IN */ ReadCacheSize uint64, + /* IN */ FileServer MSFT_FileServer, + /* OUT */ CreatedVolume []MSFT_Volume, + /* OPTIONAL IN */ RunAsJob bool, + /* OUT */ CreatedStorageJob MSFT_StorageJob, + /* OUT */ ExtendedStatus MSFT_StorageExtendedStatus) (result uint32, err error) { + retVal, err := instance.InvokeMethod("CreateVolume", StoragePool, StoragePoolUniqueId, StoragePoolName, StoragePoolFriendlyName, Disk, DiskNumber, DiskPath, DiskUniqueId, FriendlyName, Size, StorageTiers, StorageTierSizes, ProvisioningType, ResiliencySettingName, PhysicalDiskRedundancy, NumberOfColumns, FileSystem, AccessPath, AllocationUnitSize, ReadCacheSize, FileServer, RunAsJob) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// + +// +// +func (instance *PS_StorageCmdlets) GetStorageReliabilityCounter( /* IN */ PhysicalDisk MSFT_PhysicalDisk, + /* IN */ Disk MSFT_Disk, + /* OUT */ StorageReliabilityCounter MSFT_StorageReliabilityCounter) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetStorageReliabilityCounter", PhysicalDisk, Disk) + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/PropertyProviderRegistration.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/PropertyProviderRegistration.go new file mode 100644 index 000000000..0b21dbd76 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/PropertyProviderRegistration.go @@ -0,0 +1,110 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __PropertyProviderRegistration struct +type __PropertyProviderRegistration struct { + *__ProviderRegistration + + // + SupportsGet bool + + // + SupportsPut bool +} + +func New__PropertyProviderRegistrationEx1(instance *cim.WmiInstance) (newInstance *__PropertyProviderRegistration, err error) { + tmp, err := New__ProviderRegistrationEx1(instance) + + if err != nil { + return + } + newInstance = &__PropertyProviderRegistration{ + __ProviderRegistration: tmp, + } + return +} + +func New__PropertyProviderRegistrationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__PropertyProviderRegistration, err error) { + tmp, err := New__ProviderRegistrationEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__PropertyProviderRegistration{ + __ProviderRegistration: tmp, + } + return +} + +// SetSupportsGet sets the value of SupportsGet for the instance +func (instance *__PropertyProviderRegistration) SetPropertySupportsGet(value bool) (err error) { + return instance.SetProperty("SupportsGet", (value)) +} + +// GetSupportsGet gets the value of SupportsGet for the instance +func (instance *__PropertyProviderRegistration) GetPropertySupportsGet() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsGet") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsPut sets the value of SupportsPut for the instance +func (instance *__PropertyProviderRegistration) SetPropertySupportsPut(value bool) (err error) { + return instance.SetProperty("SupportsPut", (value)) +} + +// GetSupportsPut gets the value of SupportsPut for the instance +func (instance *__PropertyProviderRegistration) GetPropertySupportsPut() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsPut") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Provider.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Provider.go new file mode 100644 index 000000000..975afcb05 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Provider.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __Provider struct +type __Provider struct { + *__SystemClass + + // + Name string +} + +func New__ProviderEx1(instance *cim.WmiInstance) (newInstance *__Provider, err error) { + tmp, err := New__SystemClassEx1(instance) + + if err != nil { + return + } + newInstance = &__Provider{ + __SystemClass: tmp, + } + return +} + +func New__ProviderEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__Provider, err error) { + tmp, err := New__SystemClassEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__Provider{ + __SystemClass: tmp, + } + return +} + +// SetName sets the value of Name for the instance +func (instance *__Provider) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *__Provider) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ProviderRegistration.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ProviderRegistration.go new file mode 100644 index 000000000..342ae011f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/ProviderRegistration.go @@ -0,0 +1,80 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __ProviderRegistration struct +type __ProviderRegistration struct { + *__SystemClass + + // + provider __Provider +} + +func New__ProviderRegistrationEx1(instance *cim.WmiInstance) (newInstance *__ProviderRegistration, err error) { + tmp, err := New__SystemClassEx1(instance) + + if err != nil { + return + } + newInstance = &__ProviderRegistration{ + __SystemClass: tmp, + } + return +} + +func New__ProviderRegistrationEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__ProviderRegistration, err error) { + tmp, err := New__SystemClassEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__ProviderRegistration{ + __SystemClass: tmp, + } + return +} + +// Setprovider sets the value of provider for the instance +func (instance *__ProviderRegistration) SetPropertyprovider(value __Provider) (err error) { + return instance.SetProperty("provider", (value)) +} + +// Getprovider gets the value of provider for the instance +func (instance *__ProviderRegistration) GetPropertyprovider() (value __Provider, err error) { + retValue, err := instance.GetProperty("provider") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(__Provider) + if !ok { + err = errors.Wrapf(errors.InvalidType, " __Provider is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = __Provider(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/QOSFailureEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/QOSFailureEvent.go new file mode 100644 index 000000000..bbf232ee4 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/QOSFailureEvent.go @@ -0,0 +1,110 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __QOSFailureEvent struct +type __QOSFailureEvent struct { + *__EventDroppedEvent + + // + ErrorCode uint32 + + // + ErrorDescription string +} + +func New__QOSFailureEventEx1(instance *cim.WmiInstance) (newInstance *__QOSFailureEvent, err error) { + tmp, err := New__EventDroppedEventEx1(instance) + + if err != nil { + return + } + newInstance = &__QOSFailureEvent{ + __EventDroppedEvent: tmp, + } + return +} + +func New__QOSFailureEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__QOSFailureEvent, err error) { + tmp, err := New__EventDroppedEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__QOSFailureEvent{ + __EventDroppedEvent: tmp, + } + return +} + +// SetErrorCode sets the value of ErrorCode for the instance +func (instance *__QOSFailureEvent) SetPropertyErrorCode(value uint32) (err error) { + return instance.SetProperty("ErrorCode", (value)) +} + +// GetErrorCode gets the value of ErrorCode for the instance +func (instance *__QOSFailureEvent) GetPropertyErrorCode() (value uint32, err error) { + retValue, err := instance.GetProperty("ErrorCode") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetErrorDescription sets the value of ErrorDescription for the instance +func (instance *__QOSFailureEvent) SetPropertyErrorDescription(value string) (err error) { + return instance.SetProperty("ErrorDescription", (value)) +} + +// GetErrorDescription gets the value of ErrorDescription for the instance +func (instance *__QOSFailureEvent) GetPropertyErrorDescription() (value string, err error) { + retValue, err := instance.GetProperty("ErrorDescription") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SecurityDescriptor.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SecurityDescriptor.go new file mode 100644 index 000000000..f9cc5e5b4 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SecurityDescriptor.go @@ -0,0 +1,232 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __SecurityDescriptor struct +type __SecurityDescriptor struct { + *__SecurityRelatedClass + + // + ControlFlags uint32 + + // + DACL []__ACE + + // + Group __ACE + + // + Owner __ACE + + // + SACL []__ACE + + // + TIME_CREATED uint64 +} + +func New__SecurityDescriptorEx1(instance *cim.WmiInstance) (newInstance *__SecurityDescriptor, err error) { + tmp, err := New__SecurityRelatedClassEx1(instance) + + if err != nil { + return + } + newInstance = &__SecurityDescriptor{ + __SecurityRelatedClass: tmp, + } + return +} + +func New__SecurityDescriptorEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__SecurityDescriptor, err error) { + tmp, err := New__SecurityRelatedClassEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__SecurityDescriptor{ + __SecurityRelatedClass: tmp, + } + return +} + +// SetControlFlags sets the value of ControlFlags for the instance +func (instance *__SecurityDescriptor) SetPropertyControlFlags(value uint32) (err error) { + return instance.SetProperty("ControlFlags", (value)) +} + +// GetControlFlags gets the value of ControlFlags for the instance +func (instance *__SecurityDescriptor) GetPropertyControlFlags() (value uint32, err error) { + retValue, err := instance.GetProperty("ControlFlags") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetDACL sets the value of DACL for the instance +func (instance *__SecurityDescriptor) SetPropertyDACL(value []__ACE) (err error) { + return instance.SetProperty("DACL", (value)) +} + +// GetDACL gets the value of DACL for the instance +func (instance *__SecurityDescriptor) GetPropertyDACL() (value []__ACE, err error) { + retValue, err := instance.GetProperty("DACL") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(__ACE) + if !ok { + err = errors.Wrapf(errors.InvalidType, " __ACE is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, __ACE(valuetmp)) + } + + return +} + +// SetGroup sets the value of Group for the instance +func (instance *__SecurityDescriptor) SetPropertyGroup(value __ACE) (err error) { + return instance.SetProperty("Group", (value)) +} + +// GetGroup gets the value of Group for the instance +func (instance *__SecurityDescriptor) GetPropertyGroup() (value __ACE, err error) { + retValue, err := instance.GetProperty("Group") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(__ACE) + if !ok { + err = errors.Wrapf(errors.InvalidType, " __ACE is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = __ACE(valuetmp) + + return +} + +// SetOwner sets the value of Owner for the instance +func (instance *__SecurityDescriptor) SetPropertyOwner(value __ACE) (err error) { + return instance.SetProperty("Owner", (value)) +} + +// GetOwner gets the value of Owner for the instance +func (instance *__SecurityDescriptor) GetPropertyOwner() (value __ACE, err error) { + retValue, err := instance.GetProperty("Owner") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(__ACE) + if !ok { + err = errors.Wrapf(errors.InvalidType, " __ACE is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = __ACE(valuetmp) + + return +} + +// SetSACL sets the value of SACL for the instance +func (instance *__SecurityDescriptor) SetPropertySACL(value []__ACE) (err error) { + return instance.SetProperty("SACL", (value)) +} + +// GetSACL gets the value of SACL for the instance +func (instance *__SecurityDescriptor) GetPropertySACL() (value []__ACE, err error) { + retValue, err := instance.GetProperty("SACL") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(__ACE) + if !ok { + err = errors.Wrapf(errors.InvalidType, " __ACE is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, __ACE(valuetmp)) + } + + return +} + +// SetTIME_CREATED sets the value of TIME_CREATED for the instance +func (instance *__SecurityDescriptor) SetPropertyTIME_CREATED(value uint64) (err error) { + return instance.SetProperty("TIME_CREATED", (value)) +} + +// GetTIME_CREATED gets the value of TIME_CREATED for the instance +func (instance *__SecurityDescriptor) GetPropertyTIME_CREATED() (value uint64, err error) { + retValue, err := instance.GetProperty("TIME_CREATED") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SecurityRelatedClass.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SecurityRelatedClass.go new file mode 100644 index 000000000..d962defb3 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SecurityRelatedClass.go @@ -0,0 +1,49 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __SecurityRelatedClass struct +type __SecurityRelatedClass struct { + *cim.WmiInstance +} + +func New__SecurityRelatedClassEx1(instance *cim.WmiInstance) (newInstance *__SecurityRelatedClass, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &__SecurityRelatedClass{ + WmiInstance: tmp, + } + return +} + +func New__SecurityRelatedClassEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__SecurityRelatedClass, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__SecurityRelatedClass{ + WmiInstance: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SystemClass.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SystemClass.go new file mode 100644 index 000000000..71d35347f --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SystemClass.go @@ -0,0 +1,49 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __SystemClass struct +type __SystemClass struct { + *cim.WmiInstance +} + +func New__SystemClassEx1(instance *cim.WmiInstance) (newInstance *__SystemClass, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &__SystemClass{ + WmiInstance: tmp, + } + return +} + +func New__SystemClassEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__SystemClass, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__SystemClass{ + WmiInstance: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SystemEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SystemEvent.go new file mode 100644 index 000000000..3a287ff49 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SystemEvent.go @@ -0,0 +1,48 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __SystemEvent struct +type __SystemEvent struct { + *__ExtrinsicEvent +} + +func New__SystemEventEx1(instance *cim.WmiInstance) (newInstance *__SystemEvent, err error) { + tmp, err := New__ExtrinsicEventEx1(instance) + + if err != nil { + return + } + newInstance = &__SystemEvent{ + __ExtrinsicEvent: tmp, + } + return +} + +func New__SystemEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__SystemEvent, err error) { + tmp, err := New__ExtrinsicEventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__SystemEvent{ + __ExtrinsicEvent: tmp, + } + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SystemSecurity.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SystemSecurity.go new file mode 100644 index 000000000..ac4a7eb2b --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/SystemSecurity.go @@ -0,0 +1,154 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/instance" + "github.com/microsoft/wmi/pkg/base/query" + cim "github.com/microsoft/wmi/pkg/wmiinstance" +) + +// __SystemSecurity struct +type __SystemSecurity struct { + *cim.WmiInstance +} + +func New__SystemSecurityEx1(instance *cim.WmiInstance) (newInstance *__SystemSecurity, err error) { + tmp, err := instance, nil + + if err != nil { + return + } + newInstance = &__SystemSecurity{ + WmiInstance: tmp, + } + return +} + +func New__SystemSecurityEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__SystemSecurity, err error) { + tmp, err := instance.GetWmiInstance(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__SystemSecurity{ + WmiInstance: tmp, + } + return +} + +// + +// +// +func (instance *__SystemSecurity) GetSD( /* OUT */ SD []uint8) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSD") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *__SystemSecurity) GetSecurityDescriptor( /* OUT */ Descriptor __SecurityDescriptor) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetSecurityDescriptor") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// +// +func (instance *__SystemSecurity) Get9XUserList( /* OUT */ ul []__NTLMUser9X) (result uint32, err error) { + retVal, err := instance.InvokeMethod("Get9XUserList") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} + +// + +// + +// +func (instance *__SystemSecurity) SetSD( /* IN */ SD []uint8) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetSD", SD) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// + +// +func (instance *__SystemSecurity) SetSecurityDescriptor( /* IN */ Descriptor __SecurityDescriptor) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("SetSecurityDescriptor", Descriptor) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// + +// +func (instance *__SystemSecurity) Set9XUserList( /* IN */ ul []__NTLMUser9X) (result uint32, err error) { + retVal, err := instance.InvokeMethodWithReturn("Set9XUserList", ul) + if err != nil { + return + } + result = uint32(retVal) + return + +} + +// + +// +// +func (instance *__SystemSecurity) GetCallerAccessRights( /* OUT */ rights int32) (result uint32, err error) { + retVal, err := instance.InvokeMethod("GetCallerAccessRights") + if err != nil { + return + } + retValue := retVal[0].(int32) + result = uint32(retValue) + return + +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/TimerEvent.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/TimerEvent.go new file mode 100644 index 000000000..0727c5a71 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/TimerEvent.go @@ -0,0 +1,110 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __TimerEvent struct +type __TimerEvent struct { + *__Event + + // + NumFirings uint32 + + // + TimerId string +} + +func New__TimerEventEx1(instance *cim.WmiInstance) (newInstance *__TimerEvent, err error) { + tmp, err := New__EventEx1(instance) + + if err != nil { + return + } + newInstance = &__TimerEvent{ + __Event: tmp, + } + return +} + +func New__TimerEventEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__TimerEvent, err error) { + tmp, err := New__EventEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__TimerEvent{ + __Event: tmp, + } + return +} + +// SetNumFirings sets the value of NumFirings for the instance +func (instance *__TimerEvent) SetPropertyNumFirings(value uint32) (err error) { + return instance.SetProperty("NumFirings", (value)) +} + +// GetNumFirings gets the value of NumFirings for the instance +func (instance *__TimerEvent) GetPropertyNumFirings() (value uint32, err error) { + retValue, err := instance.GetProperty("NumFirings") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetTimerId sets the value of TimerId for the instance +func (instance *__TimerEvent) SetPropertyTimerId(value string) (err error) { + return instance.SetProperty("TimerId", (value)) +} + +// GetTimerId gets the value of TimerId for the instance +func (instance *__TimerEvent) GetPropertyTimerId() (value string, err error) { + retValue, err := instance.GetProperty("TimerId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/TimerInstruction.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/TimerInstruction.go new file mode 100644 index 000000000..8e6e47cee --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/TimerInstruction.go @@ -0,0 +1,110 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __TimerInstruction struct +type __TimerInstruction struct { + *__EventGenerator + + // + SkipIfPassed bool + + // + TimerId string +} + +func New__TimerInstructionEx1(instance *cim.WmiInstance) (newInstance *__TimerInstruction, err error) { + tmp, err := New__EventGeneratorEx1(instance) + + if err != nil { + return + } + newInstance = &__TimerInstruction{ + __EventGenerator: tmp, + } + return +} + +func New__TimerInstructionEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__TimerInstruction, err error) { + tmp, err := New__EventGeneratorEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__TimerInstruction{ + __EventGenerator: tmp, + } + return +} + +// SetSkipIfPassed sets the value of SkipIfPassed for the instance +func (instance *__TimerInstruction) SetPropertySkipIfPassed(value bool) (err error) { + return instance.SetProperty("SkipIfPassed", (value)) +} + +// GetSkipIfPassed gets the value of SkipIfPassed for the instance +func (instance *__TimerInstruction) GetPropertySkipIfPassed() (value bool, err error) { + retValue, err := instance.GetProperty("SkipIfPassed") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetTimerId sets the value of TimerId for the instance +func (instance *__TimerInstruction) SetPropertyTimerId(value string) (err error) { + return instance.SetProperty("TimerId", (value)) +} + +// GetTimerId gets the value of TimerId for the instance +func (instance *__TimerInstruction) GetPropertyTimerId() (value string, err error) { + retValue, err := instance.GetProperty("TimerId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/TimerNextFiring.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/TimerNextFiring.go new file mode 100644 index 000000000..1f797ee25 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/TimerNextFiring.go @@ -0,0 +1,110 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __TimerNextFiring struct +type __TimerNextFiring struct { + *__IndicationRelated + + // + NextEvent64BitTime int64 + + // + TimerId string +} + +func New__TimerNextFiringEx1(instance *cim.WmiInstance) (newInstance *__TimerNextFiring, err error) { + tmp, err := New__IndicationRelatedEx1(instance) + + if err != nil { + return + } + newInstance = &__TimerNextFiring{ + __IndicationRelated: tmp, + } + return +} + +func New__TimerNextFiringEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__TimerNextFiring, err error) { + tmp, err := New__IndicationRelatedEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__TimerNextFiring{ + __IndicationRelated: tmp, + } + return +} + +// SetNextEvent64BitTime sets the value of NextEvent64BitTime for the instance +func (instance *__TimerNextFiring) SetPropertyNextEvent64BitTime(value int64) (err error) { + return instance.SetProperty("NextEvent64BitTime", (value)) +} + +// GetNextEvent64BitTime gets the value of NextEvent64BitTime for the instance +func (instance *__TimerNextFiring) GetPropertyNextEvent64BitTime() (value int64, err error) { + retValue, err := instance.GetProperty("NextEvent64BitTime") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(int64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " int64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = int64(valuetmp) + + return +} + +// SetTimerId sets the value of TimerId for the instance +func (instance *__TimerNextFiring) SetPropertyTimerId(value string) (err error) { + return instance.SetProperty("TimerId", (value)) +} + +// GetTimerId gets the value of TimerId for the instance +func (instance *__TimerNextFiring) GetPropertyTimerId() (value string, err error) { + retValue, err := instance.GetProperty("TimerId") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Trustee.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Trustee.go new file mode 100644 index 000000000..092df8cf3 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Trustee.go @@ -0,0 +1,231 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __Trustee struct +type __Trustee struct { + *__SecurityRelatedClass + + // + Domain string + + // + Name string + + // + SID []uint8 + + // + SidLength uint32 + + // + SIDString string + + // + TIME_CREATED uint64 +} + +func New__TrusteeEx1(instance *cim.WmiInstance) (newInstance *__Trustee, err error) { + tmp, err := New__SecurityRelatedClassEx1(instance) + + if err != nil { + return + } + newInstance = &__Trustee{ + __SecurityRelatedClass: tmp, + } + return +} + +func New__TrusteeEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__Trustee, err error) { + tmp, err := New__SecurityRelatedClassEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__Trustee{ + __SecurityRelatedClass: tmp, + } + return +} + +// SetDomain sets the value of Domain for the instance +func (instance *__Trustee) SetPropertyDomain(value string) (err error) { + return instance.SetProperty("Domain", (value)) +} + +// GetDomain gets the value of Domain for the instance +func (instance *__Trustee) GetPropertyDomain() (value string, err error) { + retValue, err := instance.GetProperty("Domain") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetName sets the value of Name for the instance +func (instance *__Trustee) SetPropertyName(value string) (err error) { + return instance.SetProperty("Name", (value)) +} + +// GetName gets the value of Name for the instance +func (instance *__Trustee) GetPropertyName() (value string, err error) { + retValue, err := instance.GetProperty("Name") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSID sets the value of SID for the instance +func (instance *__Trustee) SetPropertySID(value []uint8) (err error) { + return instance.SetProperty("SID", (value)) +} + +// GetSID gets the value of SID for the instance +func (instance *__Trustee) GetPropertySID() (value []uint8, err error) { + retValue, err := instance.GetProperty("SID") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint8) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint8 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint8(valuetmp)) + } + + return +} + +// SetSidLength sets the value of SidLength for the instance +func (instance *__Trustee) SetPropertySidLength(value uint32) (err error) { + return instance.SetProperty("SidLength", (value)) +} + +// GetSidLength gets the value of SidLength for the instance +func (instance *__Trustee) GetPropertySidLength() (value uint32, err error) { + retValue, err := instance.GetProperty("SidLength") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} + +// SetSIDString sets the value of SIDString for the instance +func (instance *__Trustee) SetPropertySIDString(value string) (err error) { + return instance.SetProperty("SIDString", (value)) +} + +// GetSIDString gets the value of SIDString for the instance +func (instance *__Trustee) GetPropertySIDString() (value string, err error) { + retValue, err := instance.GetProperty("SIDString") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetTIME_CREATED sets the value of TIME_CREATED for the instance +func (instance *__Trustee) SetPropertyTIME_CREATED(value uint64) (err error) { + return instance.SetProperty("TIME_CREATED", (value)) +} + +// GetTIME_CREATED gets the value of TIME_CREATED for the instance +func (instance *__Trustee) GetPropertyTIME_CREATED() (value uint64, err error) { + retValue, err := instance.GetProperty("TIME_CREATED") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint64) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint64 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint64(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Win32Provider.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Win32Provider.go new file mode 100644 index 000000000..75cb93642 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Win32Provider.go @@ -0,0 +1,740 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __Win32Provider struct +type __Win32Provider struct { + *__Provider + + // + ClientLoadableCLSID string + + // + CLSID string + + // + Concurrency int32 + + // + DefaultMachineName string + + // + Enabled bool + + // + HostingModel string + + // + ImpersonationLevel Win32Provider_ImpersonationLevel + + // + InitializationReentrancy Win32Provider_InitializationReentrancy + + // + InitializationTimeoutInterval string + + // + InitializeAsAdminFirst bool + + // + OperationTimeoutInterval string + + // + PerLocaleInitialization bool + + // + PerUserInitialization bool + + // + Pure bool + + // + SecurityDescriptor string + + // + SupportsExplicitShutdown bool + + // + SupportsExtendedStatus bool + + // + SupportsQuotas bool + + // + SupportsSendStatus bool + + // + SupportsShutdown bool + + // + SupportsThrottling bool + + // + UnloadTimeout string + + // + Version uint32 +} + +func New__Win32ProviderEx1(instance *cim.WmiInstance) (newInstance *__Win32Provider, err error) { + tmp, err := New__ProviderEx1(instance) + + if err != nil { + return + } + newInstance = &__Win32Provider{ + __Provider: tmp, + } + return +} + +func New__Win32ProviderEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__Win32Provider, err error) { + tmp, err := New__ProviderEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__Win32Provider{ + __Provider: tmp, + } + return +} + +// SetClientLoadableCLSID sets the value of ClientLoadableCLSID for the instance +func (instance *__Win32Provider) SetPropertyClientLoadableCLSID(value string) (err error) { + return instance.SetProperty("ClientLoadableCLSID", (value)) +} + +// GetClientLoadableCLSID gets the value of ClientLoadableCLSID for the instance +func (instance *__Win32Provider) GetPropertyClientLoadableCLSID() (value string, err error) { + retValue, err := instance.GetProperty("ClientLoadableCLSID") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetCLSID sets the value of CLSID for the instance +func (instance *__Win32Provider) SetPropertyCLSID(value string) (err error) { + return instance.SetProperty("CLSID", (value)) +} + +// GetCLSID gets the value of CLSID for the instance +func (instance *__Win32Provider) GetPropertyCLSID() (value string, err error) { + retValue, err := instance.GetProperty("CLSID") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetConcurrency sets the value of Concurrency for the instance +func (instance *__Win32Provider) SetPropertyConcurrency(value int32) (err error) { + return instance.SetProperty("Concurrency", (value)) +} + +// GetConcurrency gets the value of Concurrency for the instance +func (instance *__Win32Provider) GetPropertyConcurrency() (value int32, err error) { + retValue, err := instance.GetProperty("Concurrency") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(int32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " int32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = int32(valuetmp) + + return +} + +// SetDefaultMachineName sets the value of DefaultMachineName for the instance +func (instance *__Win32Provider) SetPropertyDefaultMachineName(value string) (err error) { + return instance.SetProperty("DefaultMachineName", (value)) +} + +// GetDefaultMachineName gets the value of DefaultMachineName for the instance +func (instance *__Win32Provider) GetPropertyDefaultMachineName() (value string, err error) { + retValue, err := instance.GetProperty("DefaultMachineName") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetEnabled sets the value of Enabled for the instance +func (instance *__Win32Provider) SetPropertyEnabled(value bool) (err error) { + return instance.SetProperty("Enabled", (value)) +} + +// GetEnabled gets the value of Enabled for the instance +func (instance *__Win32Provider) GetPropertyEnabled() (value bool, err error) { + retValue, err := instance.GetProperty("Enabled") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetHostingModel sets the value of HostingModel for the instance +func (instance *__Win32Provider) SetPropertyHostingModel(value string) (err error) { + return instance.SetProperty("HostingModel", (value)) +} + +// GetHostingModel gets the value of HostingModel for the instance +func (instance *__Win32Provider) GetPropertyHostingModel() (value string, err error) { + retValue, err := instance.GetProperty("HostingModel") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetImpersonationLevel sets the value of ImpersonationLevel for the instance +func (instance *__Win32Provider) SetPropertyImpersonationLevel(value Win32Provider_ImpersonationLevel) (err error) { + return instance.SetProperty("ImpersonationLevel", (value)) +} + +// GetImpersonationLevel gets the value of ImpersonationLevel for the instance +func (instance *__Win32Provider) GetPropertyImpersonationLevel() (value Win32Provider_ImpersonationLevel, err error) { + retValue, err := instance.GetProperty("ImpersonationLevel") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(int32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " int32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = Win32Provider_ImpersonationLevel(valuetmp) + + return +} + +// SetInitializationReentrancy sets the value of InitializationReentrancy for the instance +func (instance *__Win32Provider) SetPropertyInitializationReentrancy(value Win32Provider_InitializationReentrancy) (err error) { + return instance.SetProperty("InitializationReentrancy", (value)) +} + +// GetInitializationReentrancy gets the value of InitializationReentrancy for the instance +func (instance *__Win32Provider) GetPropertyInitializationReentrancy() (value Win32Provider_InitializationReentrancy, err error) { + retValue, err := instance.GetProperty("InitializationReentrancy") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(int32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " int32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = Win32Provider_InitializationReentrancy(valuetmp) + + return +} + +// SetInitializationTimeoutInterval sets the value of InitializationTimeoutInterval for the instance +func (instance *__Win32Provider) SetPropertyInitializationTimeoutInterval(value string) (err error) { + return instance.SetProperty("InitializationTimeoutInterval", (value)) +} + +// GetInitializationTimeoutInterval gets the value of InitializationTimeoutInterval for the instance +func (instance *__Win32Provider) GetPropertyInitializationTimeoutInterval() (value string, err error) { + retValue, err := instance.GetProperty("InitializationTimeoutInterval") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetInitializeAsAdminFirst sets the value of InitializeAsAdminFirst for the instance +func (instance *__Win32Provider) SetPropertyInitializeAsAdminFirst(value bool) (err error) { + return instance.SetProperty("InitializeAsAdminFirst", (value)) +} + +// GetInitializeAsAdminFirst gets the value of InitializeAsAdminFirst for the instance +func (instance *__Win32Provider) GetPropertyInitializeAsAdminFirst() (value bool, err error) { + retValue, err := instance.GetProperty("InitializeAsAdminFirst") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetOperationTimeoutInterval sets the value of OperationTimeoutInterval for the instance +func (instance *__Win32Provider) SetPropertyOperationTimeoutInterval(value string) (err error) { + return instance.SetProperty("OperationTimeoutInterval", (value)) +} + +// GetOperationTimeoutInterval gets the value of OperationTimeoutInterval for the instance +func (instance *__Win32Provider) GetPropertyOperationTimeoutInterval() (value string, err error) { + retValue, err := instance.GetProperty("OperationTimeoutInterval") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetPerLocaleInitialization sets the value of PerLocaleInitialization for the instance +func (instance *__Win32Provider) SetPropertyPerLocaleInitialization(value bool) (err error) { + return instance.SetProperty("PerLocaleInitialization", (value)) +} + +// GetPerLocaleInitialization gets the value of PerLocaleInitialization for the instance +func (instance *__Win32Provider) GetPropertyPerLocaleInitialization() (value bool, err error) { + retValue, err := instance.GetProperty("PerLocaleInitialization") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetPerUserInitialization sets the value of PerUserInitialization for the instance +func (instance *__Win32Provider) SetPropertyPerUserInitialization(value bool) (err error) { + return instance.SetProperty("PerUserInitialization", (value)) +} + +// GetPerUserInitialization gets the value of PerUserInitialization for the instance +func (instance *__Win32Provider) GetPropertyPerUserInitialization() (value bool, err error) { + retValue, err := instance.GetProperty("PerUserInitialization") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetPure sets the value of Pure for the instance +func (instance *__Win32Provider) SetPropertyPure(value bool) (err error) { + return instance.SetProperty("Pure", (value)) +} + +// GetPure gets the value of Pure for the instance +func (instance *__Win32Provider) GetPropertyPure() (value bool, err error) { + retValue, err := instance.GetProperty("Pure") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSecurityDescriptor sets the value of SecurityDescriptor for the instance +func (instance *__Win32Provider) SetPropertySecurityDescriptor(value string) (err error) { + return instance.SetProperty("SecurityDescriptor", (value)) +} + +// GetSecurityDescriptor gets the value of SecurityDescriptor for the instance +func (instance *__Win32Provider) GetPropertySecurityDescriptor() (value string, err error) { + retValue, err := instance.GetProperty("SecurityDescriptor") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetSupportsExplicitShutdown sets the value of SupportsExplicitShutdown for the instance +func (instance *__Win32Provider) SetPropertySupportsExplicitShutdown(value bool) (err error) { + return instance.SetProperty("SupportsExplicitShutdown", (value)) +} + +// GetSupportsExplicitShutdown gets the value of SupportsExplicitShutdown for the instance +func (instance *__Win32Provider) GetPropertySupportsExplicitShutdown() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsExplicitShutdown") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsExtendedStatus sets the value of SupportsExtendedStatus for the instance +func (instance *__Win32Provider) SetPropertySupportsExtendedStatus(value bool) (err error) { + return instance.SetProperty("SupportsExtendedStatus", (value)) +} + +// GetSupportsExtendedStatus gets the value of SupportsExtendedStatus for the instance +func (instance *__Win32Provider) GetPropertySupportsExtendedStatus() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsExtendedStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsQuotas sets the value of SupportsQuotas for the instance +func (instance *__Win32Provider) SetPropertySupportsQuotas(value bool) (err error) { + return instance.SetProperty("SupportsQuotas", (value)) +} + +// GetSupportsQuotas gets the value of SupportsQuotas for the instance +func (instance *__Win32Provider) GetPropertySupportsQuotas() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsQuotas") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsSendStatus sets the value of SupportsSendStatus for the instance +func (instance *__Win32Provider) SetPropertySupportsSendStatus(value bool) (err error) { + return instance.SetProperty("SupportsSendStatus", (value)) +} + +// GetSupportsSendStatus gets the value of SupportsSendStatus for the instance +func (instance *__Win32Provider) GetPropertySupportsSendStatus() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsSendStatus") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsShutdown sets the value of SupportsShutdown for the instance +func (instance *__Win32Provider) SetPropertySupportsShutdown(value bool) (err error) { + return instance.SetProperty("SupportsShutdown", (value)) +} + +// GetSupportsShutdown gets the value of SupportsShutdown for the instance +func (instance *__Win32Provider) GetPropertySupportsShutdown() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsShutdown") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetSupportsThrottling sets the value of SupportsThrottling for the instance +func (instance *__Win32Provider) SetPropertySupportsThrottling(value bool) (err error) { + return instance.SetProperty("SupportsThrottling", (value)) +} + +// GetSupportsThrottling gets the value of SupportsThrottling for the instance +func (instance *__Win32Provider) GetPropertySupportsThrottling() (value bool, err error) { + retValue, err := instance.GetProperty("SupportsThrottling") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(bool) + if !ok { + err = errors.Wrapf(errors.InvalidType, " bool is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = bool(valuetmp) + + return +} + +// SetUnloadTimeout sets the value of UnloadTimeout for the instance +func (instance *__Win32Provider) SetPropertyUnloadTimeout(value string) (err error) { + return instance.SetProperty("UnloadTimeout", (value)) +} + +// GetUnloadTimeout gets the value of UnloadTimeout for the instance +func (instance *__Win32Provider) GetPropertyUnloadTimeout() (value string, err error) { + retValue, err := instance.GetProperty("UnloadTimeout") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(string) + if !ok { + err = errors.Wrapf(errors.InvalidType, " string is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = string(valuetmp) + + return +} + +// SetVersion sets the value of Version for the instance +func (instance *__Win32Provider) SetPropertyVersion(value uint32) (err error) { + return instance.SetProperty("Version", (value)) +} + +// GetVersion gets the value of Version for the instance +func (instance *__Win32Provider) GetPropertyVersion() (value uint32, err error) { + retValue, err := instance.GetProperty("Version") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + valuetmp, ok := retValue.(uint32) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint32 is Invalid. Expected %s", reflect.TypeOf(retValue)) + return + } + + value = uint32(valuetmp) + + return +} diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Win32Provider_ImpersonationLevel.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Win32Provider_ImpersonationLevel.go new file mode 100644 index 000000000..9ba78c006 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Win32Provider_ImpersonationLevel.go @@ -0,0 +1,17 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source Win32Provider_ImpersonationLevel +////////////////////////////////////////////// +package storage + +// Win32Provider_ImpersonationLevel +type Win32Provider_ImpersonationLevel int + +const ( + // None enum + Win32Provider_ImpersonationLevel_None Win32Provider_ImpersonationLevel = 0 +) diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Win32Provider_InitializationReentrancy.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Win32Provider_InitializationReentrancy.go new file mode 100644 index 000000000..a480eb22b --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/Win32Provider_InitializationReentrancy.go @@ -0,0 +1,21 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source Win32Provider_InitializationReentrancy +////////////////////////////////////////////// +package storage + +// Win32Provider_InitializationReentrancy +type Win32Provider_InitializationReentrancy int + +const ( + // CLSID enum + Win32Provider_InitializationReentrancy_CLSID Win32Provider_InitializationReentrancy = 0 + // Namespace enum + Win32Provider_InitializationReentrancy_Namespace Win32Provider_InitializationReentrancy = 1 + // COM_Object enum + Win32Provider_InitializationReentrancy_COM_Object Win32Provider_InitializationReentrancy = 2 +) diff --git a/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/thisNAMESPACE.go b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/thisNAMESPACE.go new file mode 100644 index 000000000..62e850af2 --- /dev/null +++ b/vendor/github.com/microsoft/wmi/server2019/root/microsoft/windows/storage/thisNAMESPACE.go @@ -0,0 +1,81 @@ +// Copyright 2019 (c) Microsoft Corporation. +// Licensed under the MIT license. + +// +// Author: +// Auto Generated on 9/18/2020 using wmigen +// Source root.Microsoft.Windows.Storage +////////////////////////////////////////////// +package storage + +import ( + "github.com/microsoft/wmi/pkg/base/query" + "github.com/microsoft/wmi/pkg/errors" + cim "github.com/microsoft/wmi/pkg/wmiinstance" + "reflect" +) + +// __thisNAMESPACE struct +type __thisNAMESPACE struct { + *__SystemClass + + // + SECURITY_DESCRIPTOR []uint8 +} + +func New__thisNAMESPACEEx1(instance *cim.WmiInstance) (newInstance *__thisNAMESPACE, err error) { + tmp, err := New__SystemClassEx1(instance) + + if err != nil { + return + } + newInstance = &__thisNAMESPACE{ + __SystemClass: tmp, + } + return +} + +func New__thisNAMESPACEEx6(hostName string, + wmiNamespace string, + userName string, + password string, + domainName string, + query *query.WmiQuery) (newInstance *__thisNAMESPACE, err error) { + tmp, err := New__SystemClassEx6(hostName, wmiNamespace, userName, password, domainName, query) + + if err != nil { + return + } + newInstance = &__thisNAMESPACE{ + __SystemClass: tmp, + } + return +} + +// SetSECURITY_DESCRIPTOR sets the value of SECURITY_DESCRIPTOR for the instance +func (instance *__thisNAMESPACE) SetPropertySECURITY_DESCRIPTOR(value []uint8) (err error) { + return instance.SetProperty("SECURITY_DESCRIPTOR", (value)) +} + +// GetSECURITY_DESCRIPTOR gets the value of SECURITY_DESCRIPTOR for the instance +func (instance *__thisNAMESPACE) GetPropertySECURITY_DESCRIPTOR() (value []uint8, err error) { + retValue, err := instance.GetProperty("SECURITY_DESCRIPTOR") + if err != nil { + return + } + if retValue == nil { + // Doesn't have any value. Return empty + return + } + + for _, interfaceValue := range retValue.([]interface{}) { + valuetmp, ok := interfaceValue.(uint8) + if !ok { + err = errors.Wrapf(errors.InvalidType, " uint8 is Invalid. Expected %s", reflect.TypeOf(interfaceValue)) + return + } + value = append(value, uint8(valuetmp)) + } + + return +} diff --git a/vendor/github.com/pkg/errors/.gitignore b/vendor/github.com/pkg/errors/.gitignore new file mode 100644 index 000000000..daf913b1b --- /dev/null +++ b/vendor/github.com/pkg/errors/.gitignore @@ -0,0 +1,24 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test +*.prof diff --git a/vendor/github.com/pkg/errors/.travis.yml b/vendor/github.com/pkg/errors/.travis.yml new file mode 100644 index 000000000..9159de03e --- /dev/null +++ b/vendor/github.com/pkg/errors/.travis.yml @@ -0,0 +1,10 @@ +language: go +go_import_path: github.com/pkg/errors +go: + - 1.11.x + - 1.12.x + - 1.13.x + - tip + +script: + - make check diff --git a/vendor/github.com/pkg/errors/LICENSE b/vendor/github.com/pkg/errors/LICENSE new file mode 100644 index 000000000..835ba3e75 --- /dev/null +++ b/vendor/github.com/pkg/errors/LICENSE @@ -0,0 +1,23 @@ +Copyright (c) 2015, Dave Cheney +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/pkg/errors/Makefile b/vendor/github.com/pkg/errors/Makefile new file mode 100644 index 000000000..ce9d7cded --- /dev/null +++ b/vendor/github.com/pkg/errors/Makefile @@ -0,0 +1,44 @@ +PKGS := github.com/pkg/errors +SRCDIRS := $(shell go list -f '{{.Dir}}' $(PKGS)) +GO := go + +check: test vet gofmt misspell unconvert staticcheck ineffassign unparam + +test: + $(GO) test $(PKGS) + +vet: | test + $(GO) vet $(PKGS) + +staticcheck: + $(GO) get honnef.co/go/tools/cmd/staticcheck + staticcheck -checks all $(PKGS) + +misspell: + $(GO) get github.com/client9/misspell/cmd/misspell + misspell \ + -locale GB \ + -error \ + *.md *.go + +unconvert: + $(GO) get github.com/mdempsky/unconvert + unconvert -v $(PKGS) + +ineffassign: + $(GO) get github.com/gordonklaus/ineffassign + find $(SRCDIRS) -name '*.go' | xargs ineffassign + +pedantic: check errcheck + +unparam: + $(GO) get mvdan.cc/unparam + unparam ./... + +errcheck: + $(GO) get github.com/kisielk/errcheck + errcheck $(PKGS) + +gofmt: + @echo Checking code is gofmted + @test -z "$(shell gofmt -s -l -d -e $(SRCDIRS) | tee /dev/stderr)" diff --git a/vendor/github.com/pkg/errors/README.md b/vendor/github.com/pkg/errors/README.md new file mode 100644 index 000000000..54dfdcb12 --- /dev/null +++ b/vendor/github.com/pkg/errors/README.md @@ -0,0 +1,59 @@ +# errors [![Travis-CI](https://travis-ci.org/pkg/errors.svg)](https://travis-ci.org/pkg/errors) [![AppVeyor](https://ci.appveyor.com/api/projects/status/b98mptawhudj53ep/branch/master?svg=true)](https://ci.appveyor.com/project/davecheney/errors/branch/master) [![GoDoc](https://godoc.org/github.com/pkg/errors?status.svg)](http://godoc.org/github.com/pkg/errors) [![Report card](https://goreportcard.com/badge/github.com/pkg/errors)](https://goreportcard.com/report/github.com/pkg/errors) [![Sourcegraph](https://sourcegraph.com/github.com/pkg/errors/-/badge.svg)](https://sourcegraph.com/github.com/pkg/errors?badge) + +Package errors provides simple error handling primitives. + +`go get github.com/pkg/errors` + +The traditional error handling idiom in Go is roughly akin to +```go +if err != nil { + return err +} +``` +which applied recursively up the call stack results in error reports without context or debugging information. The errors package allows programmers to add context to the failure path in their code in a way that does not destroy the original value of the error. + +## Adding context to an error + +The errors.Wrap function returns a new error that adds context to the original error. For example +```go +_, err := ioutil.ReadAll(r) +if err != nil { + return errors.Wrap(err, "read failed") +} +``` +## Retrieving the cause of an error + +Using `errors.Wrap` constructs a stack of errors, adding context to the preceding error. Depending on the nature of the error it may be necessary to reverse the operation of errors.Wrap to retrieve the original error for inspection. Any error value which implements this interface can be inspected by `errors.Cause`. +```go +type causer interface { + Cause() error +} +``` +`errors.Cause` will recursively retrieve the topmost error which does not implement `causer`, which is assumed to be the original cause. For example: +```go +switch err := errors.Cause(err).(type) { +case *MyError: + // handle specifically +default: + // unknown error +} +``` + +[Read the package documentation for more information](https://godoc.org/github.com/pkg/errors). + +## Roadmap + +With the upcoming [Go2 error proposals](https://go.googlesource.com/proposal/+/master/design/go2draft.md) this package is moving into maintenance mode. The roadmap for a 1.0 release is as follows: + +- 0.9. Remove pre Go 1.9 and Go 1.10 support, address outstanding pull requests (if possible) +- 1.0. Final release. + +## Contributing + +Because of the Go2 errors changes, this package is not accepting proposals for new functionality. With that said, we welcome pull requests, bug fixes and issue reports. + +Before sending a PR, please discuss your change by raising an issue. + +## License + +BSD-2-Clause diff --git a/vendor/github.com/pkg/errors/appveyor.yml b/vendor/github.com/pkg/errors/appveyor.yml new file mode 100644 index 000000000..a932eade0 --- /dev/null +++ b/vendor/github.com/pkg/errors/appveyor.yml @@ -0,0 +1,32 @@ +version: build-{build}.{branch} + +clone_folder: C:\gopath\src\github.com\pkg\errors +shallow_clone: true # for startup speed + +environment: + GOPATH: C:\gopath + +platform: + - x64 + +# http://www.appveyor.com/docs/installed-software +install: + # some helpful output for debugging builds + - go version + - go env + # pre-installed MinGW at C:\MinGW is 32bit only + # but MSYS2 at C:\msys64 has mingw64 + - set PATH=C:\msys64\mingw64\bin;%PATH% + - gcc --version + - g++ --version + +build_script: + - go install -v ./... + +test_script: + - set PATH=C:\gopath\bin;%PATH% + - go test -v ./... + +#artifacts: +# - path: '%GOPATH%\bin\*.exe' +deploy: off diff --git a/vendor/github.com/pkg/errors/errors.go b/vendor/github.com/pkg/errors/errors.go new file mode 100644 index 000000000..161aea258 --- /dev/null +++ b/vendor/github.com/pkg/errors/errors.go @@ -0,0 +1,288 @@ +// Package errors provides simple error handling primitives. +// +// The traditional error handling idiom in Go is roughly akin to +// +// if err != nil { +// return err +// } +// +// which when applied recursively up the call stack results in error reports +// without context or debugging information. The errors package allows +// programmers to add context to the failure path in their code in a way +// that does not destroy the original value of the error. +// +// Adding context to an error +// +// The errors.Wrap function returns a new error that adds context to the +// original error by recording a stack trace at the point Wrap is called, +// together with the supplied message. For example +// +// _, err := ioutil.ReadAll(r) +// if err != nil { +// return errors.Wrap(err, "read failed") +// } +// +// If additional control is required, the errors.WithStack and +// errors.WithMessage functions destructure errors.Wrap into its component +// operations: annotating an error with a stack trace and with a message, +// respectively. +// +// Retrieving the cause of an error +// +// Using errors.Wrap constructs a stack of errors, adding context to the +// preceding error. Depending on the nature of the error it may be necessary +// to reverse the operation of errors.Wrap to retrieve the original error +// for inspection. Any error value which implements this interface +// +// type causer interface { +// Cause() error +// } +// +// can be inspected by errors.Cause. errors.Cause will recursively retrieve +// the topmost error that does not implement causer, which is assumed to be +// the original cause. For example: +// +// switch err := errors.Cause(err).(type) { +// case *MyError: +// // handle specifically +// default: +// // unknown error +// } +// +// Although the causer interface is not exported by this package, it is +// considered a part of its stable public interface. +// +// Formatted printing of errors +// +// All error values returned from this package implement fmt.Formatter and can +// be formatted by the fmt package. The following verbs are supported: +// +// %s print the error. If the error has a Cause it will be +// printed recursively. +// %v see %s +// %+v extended format. Each Frame of the error's StackTrace will +// be printed in detail. +// +// Retrieving the stack trace of an error or wrapper +// +// New, Errorf, Wrap, and Wrapf record a stack trace at the point they are +// invoked. This information can be retrieved with the following interface: +// +// type stackTracer interface { +// StackTrace() errors.StackTrace +// } +// +// The returned errors.StackTrace type is defined as +// +// type StackTrace []Frame +// +// The Frame type represents a call site in the stack trace. Frame supports +// the fmt.Formatter interface that can be used for printing information about +// the stack trace of this error. For example: +// +// if err, ok := err.(stackTracer); ok { +// for _, f := range err.StackTrace() { +// fmt.Printf("%+s:%d\n", f, f) +// } +// } +// +// Although the stackTracer interface is not exported by this package, it is +// considered a part of its stable public interface. +// +// See the documentation for Frame.Format for more details. +package errors + +import ( + "fmt" + "io" +) + +// New returns an error with the supplied message. +// New also records the stack trace at the point it was called. +func New(message string) error { + return &fundamental{ + msg: message, + stack: callers(), + } +} + +// Errorf formats according to a format specifier and returns the string +// as a value that satisfies error. +// Errorf also records the stack trace at the point it was called. +func Errorf(format string, args ...interface{}) error { + return &fundamental{ + msg: fmt.Sprintf(format, args...), + stack: callers(), + } +} + +// fundamental is an error that has a message and a stack, but no caller. +type fundamental struct { + msg string + *stack +} + +func (f *fundamental) Error() string { return f.msg } + +func (f *fundamental) Format(s fmt.State, verb rune) { + switch verb { + case 'v': + if s.Flag('+') { + io.WriteString(s, f.msg) + f.stack.Format(s, verb) + return + } + fallthrough + case 's': + io.WriteString(s, f.msg) + case 'q': + fmt.Fprintf(s, "%q", f.msg) + } +} + +// WithStack annotates err with a stack trace at the point WithStack was called. +// If err is nil, WithStack returns nil. +func WithStack(err error) error { + if err == nil { + return nil + } + return &withStack{ + err, + callers(), + } +} + +type withStack struct { + error + *stack +} + +func (w *withStack) Cause() error { return w.error } + +// Unwrap provides compatibility for Go 1.13 error chains. +func (w *withStack) Unwrap() error { return w.error } + +func (w *withStack) Format(s fmt.State, verb rune) { + switch verb { + case 'v': + if s.Flag('+') { + fmt.Fprintf(s, "%+v", w.Cause()) + w.stack.Format(s, verb) + return + } + fallthrough + case 's': + io.WriteString(s, w.Error()) + case 'q': + fmt.Fprintf(s, "%q", w.Error()) + } +} + +// Wrap returns an error annotating err with a stack trace +// at the point Wrap is called, and the supplied message. +// If err is nil, Wrap returns nil. +func Wrap(err error, message string) error { + if err == nil { + return nil + } + err = &withMessage{ + cause: err, + msg: message, + } + return &withStack{ + err, + callers(), + } +} + +// Wrapf returns an error annotating err with a stack trace +// at the point Wrapf is called, and the format specifier. +// If err is nil, Wrapf returns nil. +func Wrapf(err error, format string, args ...interface{}) error { + if err == nil { + return nil + } + err = &withMessage{ + cause: err, + msg: fmt.Sprintf(format, args...), + } + return &withStack{ + err, + callers(), + } +} + +// WithMessage annotates err with a new message. +// If err is nil, WithMessage returns nil. +func WithMessage(err error, message string) error { + if err == nil { + return nil + } + return &withMessage{ + cause: err, + msg: message, + } +} + +// WithMessagef annotates err with the format specifier. +// If err is nil, WithMessagef returns nil. +func WithMessagef(err error, format string, args ...interface{}) error { + if err == nil { + return nil + } + return &withMessage{ + cause: err, + msg: fmt.Sprintf(format, args...), + } +} + +type withMessage struct { + cause error + msg string +} + +func (w *withMessage) Error() string { return w.msg + ": " + w.cause.Error() } +func (w *withMessage) Cause() error { return w.cause } + +// Unwrap provides compatibility for Go 1.13 error chains. +func (w *withMessage) Unwrap() error { return w.cause } + +func (w *withMessage) Format(s fmt.State, verb rune) { + switch verb { + case 'v': + if s.Flag('+') { + fmt.Fprintf(s, "%+v\n", w.Cause()) + io.WriteString(s, w.msg) + return + } + fallthrough + case 's', 'q': + io.WriteString(s, w.Error()) + } +} + +// Cause returns the underlying cause of the error, if possible. +// An error value has a cause if it implements the following +// interface: +// +// type causer interface { +// Cause() error +// } +// +// If the error does not implement Cause, the original error will +// be returned. If the error is nil, nil will be returned without further +// investigation. +func Cause(err error) error { + type causer interface { + Cause() error + } + + for err != nil { + cause, ok := err.(causer) + if !ok { + break + } + err = cause.Cause() + } + return err +} diff --git a/vendor/github.com/pkg/errors/go113.go b/vendor/github.com/pkg/errors/go113.go new file mode 100644 index 000000000..be0d10d0c --- /dev/null +++ b/vendor/github.com/pkg/errors/go113.go @@ -0,0 +1,38 @@ +// +build go1.13 + +package errors + +import ( + stderrors "errors" +) + +// Is reports whether any error in err's chain matches target. +// +// The chain consists of err itself followed by the sequence of errors obtained by +// repeatedly calling Unwrap. +// +// An error is considered to match a target if it is equal to that target or if +// it implements a method Is(error) bool such that Is(target) returns true. +func Is(err, target error) bool { return stderrors.Is(err, target) } + +// As finds the first error in err's chain that matches target, and if so, sets +// target to that error value and returns true. +// +// The chain consists of err itself followed by the sequence of errors obtained by +// repeatedly calling Unwrap. +// +// An error matches target if the error's concrete value is assignable to the value +// pointed to by target, or if the error has a method As(interface{}) bool such that +// As(target) returns true. In the latter case, the As method is responsible for +// setting target. +// +// As will panic if target is not a non-nil pointer to either a type that implements +// error, or to any interface type. As returns false if err is nil. +func As(err error, target interface{}) bool { return stderrors.As(err, target) } + +// Unwrap returns the result of calling the Unwrap method on err, if err's +// type contains an Unwrap method returning error. +// Otherwise, Unwrap returns nil. +func Unwrap(err error) error { + return stderrors.Unwrap(err) +} diff --git a/vendor/github.com/pkg/errors/stack.go b/vendor/github.com/pkg/errors/stack.go new file mode 100644 index 000000000..779a8348f --- /dev/null +++ b/vendor/github.com/pkg/errors/stack.go @@ -0,0 +1,177 @@ +package errors + +import ( + "fmt" + "io" + "path" + "runtime" + "strconv" + "strings" +) + +// Frame represents a program counter inside a stack frame. +// For historical reasons if Frame is interpreted as a uintptr +// its value represents the program counter + 1. +type Frame uintptr + +// pc returns the program counter for this frame; +// multiple frames may have the same PC value. +func (f Frame) pc() uintptr { return uintptr(f) - 1 } + +// file returns the full path to the file that contains the +// function for this Frame's pc. +func (f Frame) file() string { + fn := runtime.FuncForPC(f.pc()) + if fn == nil { + return "unknown" + } + file, _ := fn.FileLine(f.pc()) + return file +} + +// line returns the line number of source code of the +// function for this Frame's pc. +func (f Frame) line() int { + fn := runtime.FuncForPC(f.pc()) + if fn == nil { + return 0 + } + _, line := fn.FileLine(f.pc()) + return line +} + +// name returns the name of this function, if known. +func (f Frame) name() string { + fn := runtime.FuncForPC(f.pc()) + if fn == nil { + return "unknown" + } + return fn.Name() +} + +// Format formats the frame according to the fmt.Formatter interface. +// +// %s source file +// %d source line +// %n function name +// %v equivalent to %s:%d +// +// Format accepts flags that alter the printing of some verbs, as follows: +// +// %+s function name and path of source file relative to the compile time +// GOPATH separated by \n\t (\n\t) +// %+v equivalent to %+s:%d +func (f Frame) Format(s fmt.State, verb rune) { + switch verb { + case 's': + switch { + case s.Flag('+'): + io.WriteString(s, f.name()) + io.WriteString(s, "\n\t") + io.WriteString(s, f.file()) + default: + io.WriteString(s, path.Base(f.file())) + } + case 'd': + io.WriteString(s, strconv.Itoa(f.line())) + case 'n': + io.WriteString(s, funcname(f.name())) + case 'v': + f.Format(s, 's') + io.WriteString(s, ":") + f.Format(s, 'd') + } +} + +// MarshalText formats a stacktrace Frame as a text string. The output is the +// same as that of fmt.Sprintf("%+v", f), but without newlines or tabs. +func (f Frame) MarshalText() ([]byte, error) { + name := f.name() + if name == "unknown" { + return []byte(name), nil + } + return []byte(fmt.Sprintf("%s %s:%d", name, f.file(), f.line())), nil +} + +// StackTrace is stack of Frames from innermost (newest) to outermost (oldest). +type StackTrace []Frame + +// Format formats the stack of Frames according to the fmt.Formatter interface. +// +// %s lists source files for each Frame in the stack +// %v lists the source file and line number for each Frame in the stack +// +// Format accepts flags that alter the printing of some verbs, as follows: +// +// %+v Prints filename, function, and line number for each Frame in the stack. +func (st StackTrace) Format(s fmt.State, verb rune) { + switch verb { + case 'v': + switch { + case s.Flag('+'): + for _, f := range st { + io.WriteString(s, "\n") + f.Format(s, verb) + } + case s.Flag('#'): + fmt.Fprintf(s, "%#v", []Frame(st)) + default: + st.formatSlice(s, verb) + } + case 's': + st.formatSlice(s, verb) + } +} + +// formatSlice will format this StackTrace into the given buffer as a slice of +// Frame, only valid when called with '%s' or '%v'. +func (st StackTrace) formatSlice(s fmt.State, verb rune) { + io.WriteString(s, "[") + for i, f := range st { + if i > 0 { + io.WriteString(s, " ") + } + f.Format(s, verb) + } + io.WriteString(s, "]") +} + +// stack represents a stack of program counters. +type stack []uintptr + +func (s *stack) Format(st fmt.State, verb rune) { + switch verb { + case 'v': + switch { + case st.Flag('+'): + for _, pc := range *s { + f := Frame(pc) + fmt.Fprintf(st, "\n%+v", f) + } + } + } +} + +func (s *stack) StackTrace() StackTrace { + f := make([]Frame, len(*s)) + for i := 0; i < len(f); i++ { + f[i] = Frame((*s)[i]) + } + return f +} + +func callers() *stack { + const depth = 32 + var pcs [depth]uintptr + n := runtime.Callers(3, pcs[:]) + var st stack = pcs[0:n] + return &st +} + +// funcname removes the path prefix component of a function's name reported by func.Name(). +func funcname(name string) string { + i := strings.LastIndex(name, "/") + name = name[i+1:] + i = strings.Index(name, ".") + return name[i+1:] +} diff --git a/vendor/github.com/stretchr/testify/LICENSE b/vendor/github.com/stretchr/testify/LICENSE index f38ec5956..4b0421cf9 100644 --- a/vendor/github.com/stretchr/testify/LICENSE +++ b/vendor/github.com/stretchr/testify/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2012-2018 Mat Ryer and Tyler Bunnell +Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/github.com/stretchr/testify/assert/assertion_compare.go b/vendor/github.com/stretchr/testify/assert/assertion_compare.go new file mode 100644 index 000000000..41649d267 --- /dev/null +++ b/vendor/github.com/stretchr/testify/assert/assertion_compare.go @@ -0,0 +1,394 @@ +package assert + +import ( + "fmt" + "reflect" +) + +type CompareType int + +const ( + compareLess CompareType = iota - 1 + compareEqual + compareGreater +) + +var ( + intType = reflect.TypeOf(int(1)) + int8Type = reflect.TypeOf(int8(1)) + int16Type = reflect.TypeOf(int16(1)) + int32Type = reflect.TypeOf(int32(1)) + int64Type = reflect.TypeOf(int64(1)) + + uintType = reflect.TypeOf(uint(1)) + uint8Type = reflect.TypeOf(uint8(1)) + uint16Type = reflect.TypeOf(uint16(1)) + uint32Type = reflect.TypeOf(uint32(1)) + uint64Type = reflect.TypeOf(uint64(1)) + + float32Type = reflect.TypeOf(float32(1)) + float64Type = reflect.TypeOf(float64(1)) + + stringType = reflect.TypeOf("") +) + +func compare(obj1, obj2 interface{}, kind reflect.Kind) (CompareType, bool) { + obj1Value := reflect.ValueOf(obj1) + obj2Value := reflect.ValueOf(obj2) + + // throughout this switch we try and avoid calling .Convert() if possible, + // as this has a pretty big performance impact + switch kind { + case reflect.Int: + { + intobj1, ok := obj1.(int) + if !ok { + intobj1 = obj1Value.Convert(intType).Interface().(int) + } + intobj2, ok := obj2.(int) + if !ok { + intobj2 = obj2Value.Convert(intType).Interface().(int) + } + if intobj1 > intobj2 { + return compareGreater, true + } + if intobj1 == intobj2 { + return compareEqual, true + } + if intobj1 < intobj2 { + return compareLess, true + } + } + case reflect.Int8: + { + int8obj1, ok := obj1.(int8) + if !ok { + int8obj1 = obj1Value.Convert(int8Type).Interface().(int8) + } + int8obj2, ok := obj2.(int8) + if !ok { + int8obj2 = obj2Value.Convert(int8Type).Interface().(int8) + } + if int8obj1 > int8obj2 { + return compareGreater, true + } + if int8obj1 == int8obj2 { + return compareEqual, true + } + if int8obj1 < int8obj2 { + return compareLess, true + } + } + case reflect.Int16: + { + int16obj1, ok := obj1.(int16) + if !ok { + int16obj1 = obj1Value.Convert(int16Type).Interface().(int16) + } + int16obj2, ok := obj2.(int16) + if !ok { + int16obj2 = obj2Value.Convert(int16Type).Interface().(int16) + } + if int16obj1 > int16obj2 { + return compareGreater, true + } + if int16obj1 == int16obj2 { + return compareEqual, true + } + if int16obj1 < int16obj2 { + return compareLess, true + } + } + case reflect.Int32: + { + int32obj1, ok := obj1.(int32) + if !ok { + int32obj1 = obj1Value.Convert(int32Type).Interface().(int32) + } + int32obj2, ok := obj2.(int32) + if !ok { + int32obj2 = obj2Value.Convert(int32Type).Interface().(int32) + } + if int32obj1 > int32obj2 { + return compareGreater, true + } + if int32obj1 == int32obj2 { + return compareEqual, true + } + if int32obj1 < int32obj2 { + return compareLess, true + } + } + case reflect.Int64: + { + int64obj1, ok := obj1.(int64) + if !ok { + int64obj1 = obj1Value.Convert(int64Type).Interface().(int64) + } + int64obj2, ok := obj2.(int64) + if !ok { + int64obj2 = obj2Value.Convert(int64Type).Interface().(int64) + } + if int64obj1 > int64obj2 { + return compareGreater, true + } + if int64obj1 == int64obj2 { + return compareEqual, true + } + if int64obj1 < int64obj2 { + return compareLess, true + } + } + case reflect.Uint: + { + uintobj1, ok := obj1.(uint) + if !ok { + uintobj1 = obj1Value.Convert(uintType).Interface().(uint) + } + uintobj2, ok := obj2.(uint) + if !ok { + uintobj2 = obj2Value.Convert(uintType).Interface().(uint) + } + if uintobj1 > uintobj2 { + return compareGreater, true + } + if uintobj1 == uintobj2 { + return compareEqual, true + } + if uintobj1 < uintobj2 { + return compareLess, true + } + } + case reflect.Uint8: + { + uint8obj1, ok := obj1.(uint8) + if !ok { + uint8obj1 = obj1Value.Convert(uint8Type).Interface().(uint8) + } + uint8obj2, ok := obj2.(uint8) + if !ok { + uint8obj2 = obj2Value.Convert(uint8Type).Interface().(uint8) + } + if uint8obj1 > uint8obj2 { + return compareGreater, true + } + if uint8obj1 == uint8obj2 { + return compareEqual, true + } + if uint8obj1 < uint8obj2 { + return compareLess, true + } + } + case reflect.Uint16: + { + uint16obj1, ok := obj1.(uint16) + if !ok { + uint16obj1 = obj1Value.Convert(uint16Type).Interface().(uint16) + } + uint16obj2, ok := obj2.(uint16) + if !ok { + uint16obj2 = obj2Value.Convert(uint16Type).Interface().(uint16) + } + if uint16obj1 > uint16obj2 { + return compareGreater, true + } + if uint16obj1 == uint16obj2 { + return compareEqual, true + } + if uint16obj1 < uint16obj2 { + return compareLess, true + } + } + case reflect.Uint32: + { + uint32obj1, ok := obj1.(uint32) + if !ok { + uint32obj1 = obj1Value.Convert(uint32Type).Interface().(uint32) + } + uint32obj2, ok := obj2.(uint32) + if !ok { + uint32obj2 = obj2Value.Convert(uint32Type).Interface().(uint32) + } + if uint32obj1 > uint32obj2 { + return compareGreater, true + } + if uint32obj1 == uint32obj2 { + return compareEqual, true + } + if uint32obj1 < uint32obj2 { + return compareLess, true + } + } + case reflect.Uint64: + { + uint64obj1, ok := obj1.(uint64) + if !ok { + uint64obj1 = obj1Value.Convert(uint64Type).Interface().(uint64) + } + uint64obj2, ok := obj2.(uint64) + if !ok { + uint64obj2 = obj2Value.Convert(uint64Type).Interface().(uint64) + } + if uint64obj1 > uint64obj2 { + return compareGreater, true + } + if uint64obj1 == uint64obj2 { + return compareEqual, true + } + if uint64obj1 < uint64obj2 { + return compareLess, true + } + } + case reflect.Float32: + { + float32obj1, ok := obj1.(float32) + if !ok { + float32obj1 = obj1Value.Convert(float32Type).Interface().(float32) + } + float32obj2, ok := obj2.(float32) + if !ok { + float32obj2 = obj2Value.Convert(float32Type).Interface().(float32) + } + if float32obj1 > float32obj2 { + return compareGreater, true + } + if float32obj1 == float32obj2 { + return compareEqual, true + } + if float32obj1 < float32obj2 { + return compareLess, true + } + } + case reflect.Float64: + { + float64obj1, ok := obj1.(float64) + if !ok { + float64obj1 = obj1Value.Convert(float64Type).Interface().(float64) + } + float64obj2, ok := obj2.(float64) + if !ok { + float64obj2 = obj2Value.Convert(float64Type).Interface().(float64) + } + if float64obj1 > float64obj2 { + return compareGreater, true + } + if float64obj1 == float64obj2 { + return compareEqual, true + } + if float64obj1 < float64obj2 { + return compareLess, true + } + } + case reflect.String: + { + stringobj1, ok := obj1.(string) + if !ok { + stringobj1 = obj1Value.Convert(stringType).Interface().(string) + } + stringobj2, ok := obj2.(string) + if !ok { + stringobj2 = obj2Value.Convert(stringType).Interface().(string) + } + if stringobj1 > stringobj2 { + return compareGreater, true + } + if stringobj1 == stringobj2 { + return compareEqual, true + } + if stringobj1 < stringobj2 { + return compareLess, true + } + } + } + + return compareEqual, false +} + +// Greater asserts that the first element is greater than the second +// +// assert.Greater(t, 2, 1) +// assert.Greater(t, float64(2), float64(1)) +// assert.Greater(t, "b", "a") +func Greater(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { + return compareTwoValues(t, e1, e2, []CompareType{compareGreater}, "\"%v\" is not greater than \"%v\"", msgAndArgs) +} + +// GreaterOrEqual asserts that the first element is greater than or equal to the second +// +// assert.GreaterOrEqual(t, 2, 1) +// assert.GreaterOrEqual(t, 2, 2) +// assert.GreaterOrEqual(t, "b", "a") +// assert.GreaterOrEqual(t, "b", "b") +func GreaterOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { + return compareTwoValues(t, e1, e2, []CompareType{compareGreater, compareEqual}, "\"%v\" is not greater than or equal to \"%v\"", msgAndArgs) +} + +// Less asserts that the first element is less than the second +// +// assert.Less(t, 1, 2) +// assert.Less(t, float64(1), float64(2)) +// assert.Less(t, "a", "b") +func Less(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { + return compareTwoValues(t, e1, e2, []CompareType{compareLess}, "\"%v\" is not less than \"%v\"", msgAndArgs) +} + +// LessOrEqual asserts that the first element is less than or equal to the second +// +// assert.LessOrEqual(t, 1, 2) +// assert.LessOrEqual(t, 2, 2) +// assert.LessOrEqual(t, "a", "b") +// assert.LessOrEqual(t, "b", "b") +func LessOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { + return compareTwoValues(t, e1, e2, []CompareType{compareLess, compareEqual}, "\"%v\" is not less than or equal to \"%v\"", msgAndArgs) +} + +// Positive asserts that the specified element is positive +// +// assert.Positive(t, 1) +// assert.Positive(t, 1.23) +func Positive(t TestingT, e interface{}, msgAndArgs ...interface{}) bool { + zero := reflect.Zero(reflect.TypeOf(e)) + return compareTwoValues(t, e, zero.Interface(), []CompareType{compareGreater}, "\"%v\" is not positive", msgAndArgs) +} + +// Negative asserts that the specified element is negative +// +// assert.Negative(t, -1) +// assert.Negative(t, -1.23) +func Negative(t TestingT, e interface{}, msgAndArgs ...interface{}) bool { + zero := reflect.Zero(reflect.TypeOf(e)) + return compareTwoValues(t, e, zero.Interface(), []CompareType{compareLess}, "\"%v\" is not negative", msgAndArgs) +} + +func compareTwoValues(t TestingT, e1 interface{}, e2 interface{}, allowedComparesResults []CompareType, failMessage string, msgAndArgs ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + + e1Kind := reflect.ValueOf(e1).Kind() + e2Kind := reflect.ValueOf(e2).Kind() + if e1Kind != e2Kind { + return Fail(t, "Elements should be the same type", msgAndArgs...) + } + + compareResult, isComparable := compare(e1, e2, e1Kind) + if !isComparable { + return Fail(t, fmt.Sprintf("Can not compare type \"%s\"", reflect.TypeOf(e1)), msgAndArgs...) + } + + if !containsValue(allowedComparesResults, compareResult) { + return Fail(t, fmt.Sprintf(failMessage, e1, e2), msgAndArgs...) + } + + return true +} + +func containsValue(values []CompareType, value CompareType) bool { + for _, v := range values { + if v == value { + return true + } + } + + return false +} diff --git a/vendor/github.com/stretchr/testify/assert/assertion_format.go b/vendor/github.com/stretchr/testify/assert/assertion_format.go index bf89ecd21..4dfd1229a 100644 --- a/vendor/github.com/stretchr/testify/assert/assertion_format.go +++ b/vendor/github.com/stretchr/testify/assert/assertion_format.go @@ -93,7 +93,7 @@ func EqualErrorf(t TestingT, theError error, errString string, msg string, args // EqualValuesf asserts that two objects are equal or convertable to the same types // and equal. // -// assert.EqualValuesf(t, uint32(123, "error message %s", "formatted"), int32(123)) +// assert.EqualValuesf(t, uint32(123), int32(123), "error message %s", "formatted") func EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -114,6 +114,24 @@ func Errorf(t TestingT, err error, msg string, args ...interface{}) bool { return Error(t, err, append([]interface{}{msg}, args...)...) } +// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. +// This is a wrapper for errors.As. +func ErrorAsf(t TestingT, err error, target interface{}, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return ErrorAs(t, err, target, append([]interface{}{msg}, args...)...) +} + +// ErrorIsf asserts that at least one of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func ErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return ErrorIs(t, err, target, append([]interface{}{msg}, args...)...) +} + // Eventuallyf asserts that given condition will be met in waitFor time, // periodically checking target function each tick. // @@ -127,7 +145,7 @@ func Eventuallyf(t TestingT, condition func() bool, waitFor time.Duration, tick // Exactlyf asserts that two objects are equal in value and type. // -// assert.Exactlyf(t, int32(123, "error message %s", "formatted"), int64(123)) +// assert.Exactlyf(t, int32(123), int64(123), "error message %s", "formatted") func Exactlyf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -173,7 +191,7 @@ func FileExistsf(t TestingT, path string, msg string, args ...interface{}) bool // Greaterf asserts that the first element is greater than the second // // assert.Greaterf(t, 2, 1, "error message %s", "formatted") -// assert.Greaterf(t, float64(2, "error message %s", "formatted"), float64(1)) +// assert.Greaterf(t, float64(2), float64(1), "error message %s", "formatted") // assert.Greaterf(t, "b", "a", "error message %s", "formatted") func Greaterf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { @@ -225,7 +243,7 @@ func HTTPBodyNotContainsf(t TestingT, handler http.HandlerFunc, method string, u // // assert.HTTPErrorf(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} // -// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false). +// Returns whether the assertion was successful (true) or not (false). func HTTPErrorf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -237,7 +255,7 @@ func HTTPErrorf(t TestingT, handler http.HandlerFunc, method string, url string, // // assert.HTTPRedirectf(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} // -// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false). +// Returns whether the assertion was successful (true) or not (false). func HTTPRedirectf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -245,6 +263,18 @@ func HTTPRedirectf(t TestingT, handler http.HandlerFunc, method string, url stri return HTTPRedirect(t, handler, method, url, values, append([]interface{}{msg}, args...)...) } +// HTTPStatusCodef asserts that a specified handler returns a specified status code. +// +// assert.HTTPStatusCodef(t, myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted") +// +// Returns whether the assertion was successful (true) or not (false). +func HTTPStatusCodef(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return HTTPStatusCode(t, handler, method, url, values, statuscode, append([]interface{}{msg}, args...)...) +} + // HTTPSuccessf asserts that a specified handler returns a success status code. // // assert.HTTPSuccessf(t, myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted") @@ -259,7 +289,7 @@ func HTTPSuccessf(t TestingT, handler http.HandlerFunc, method string, url strin // Implementsf asserts that an object is implemented by the specified interface. // -// assert.Implementsf(t, (*MyInterface, "error message %s", "formatted")(nil), new(MyObject)) +// assert.Implementsf(t, (*MyInterface)(nil), new(MyObject), "error message %s", "formatted") func Implementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -309,6 +339,54 @@ func InEpsilonSlicef(t TestingT, expected interface{}, actual interface{}, epsil return InEpsilonSlice(t, expected, actual, epsilon, append([]interface{}{msg}, args...)...) } +// IsDecreasingf asserts that the collection is decreasing +// +// assert.IsDecreasingf(t, []int{2, 1, 0}, "error message %s", "formatted") +// assert.IsDecreasingf(t, []float{2, 1}, "error message %s", "formatted") +// assert.IsDecreasingf(t, []string{"b", "a"}, "error message %s", "formatted") +func IsDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return IsDecreasing(t, object, append([]interface{}{msg}, args...)...) +} + +// IsIncreasingf asserts that the collection is increasing +// +// assert.IsIncreasingf(t, []int{1, 2, 3}, "error message %s", "formatted") +// assert.IsIncreasingf(t, []float{1, 2}, "error message %s", "formatted") +// assert.IsIncreasingf(t, []string{"a", "b"}, "error message %s", "formatted") +func IsIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return IsIncreasing(t, object, append([]interface{}{msg}, args...)...) +} + +// IsNonDecreasingf asserts that the collection is not decreasing +// +// assert.IsNonDecreasingf(t, []int{1, 1, 2}, "error message %s", "formatted") +// assert.IsNonDecreasingf(t, []float{1, 2}, "error message %s", "formatted") +// assert.IsNonDecreasingf(t, []string{"a", "b"}, "error message %s", "formatted") +func IsNonDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return IsNonDecreasing(t, object, append([]interface{}{msg}, args...)...) +} + +// IsNonIncreasingf asserts that the collection is not increasing +// +// assert.IsNonIncreasingf(t, []int{2, 1, 1}, "error message %s", "formatted") +// assert.IsNonIncreasingf(t, []float{2, 1}, "error message %s", "formatted") +// assert.IsNonIncreasingf(t, []string{"b", "a"}, "error message %s", "formatted") +func IsNonIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return IsNonIncreasing(t, object, append([]interface{}{msg}, args...)...) +} + // IsTypef asserts that the specified objects are of the same type. func IsTypef(t TestingT, expectedType interface{}, object interface{}, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { @@ -341,7 +419,7 @@ func Lenf(t TestingT, object interface{}, length int, msg string, args ...interf // Lessf asserts that the first element is less than the second // // assert.Lessf(t, 1, 2, "error message %s", "formatted") -// assert.Lessf(t, float64(1, "error message %s", "formatted"), float64(2)) +// assert.Lessf(t, float64(1), float64(2), "error message %s", "formatted") // assert.Lessf(t, "a", "b", "error message %s", "formatted") func Lessf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { @@ -363,6 +441,17 @@ func LessOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args . return LessOrEqual(t, e1, e2, append([]interface{}{msg}, args...)...) } +// Negativef asserts that the specified element is negative +// +// assert.Negativef(t, -1, "error message %s", "formatted") +// assert.Negativef(t, -1.23, "error message %s", "formatted") +func Negativef(t TestingT, e interface{}, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return Negative(t, e, append([]interface{}{msg}, args...)...) +} + // Neverf asserts that the given condition doesn't satisfy in waitFor time, // periodically checking the target function each tick. // @@ -454,6 +543,25 @@ func NotEqualf(t TestingT, expected interface{}, actual interface{}, msg string, return NotEqual(t, expected, actual, append([]interface{}{msg}, args...)...) } +// NotEqualValuesf asserts that two objects are not equal even when converted to the same type +// +// assert.NotEqualValuesf(t, obj1, obj2, "error message %s", "formatted") +func NotEqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return NotEqualValues(t, expected, actual, append([]interface{}{msg}, args...)...) +} + +// NotErrorIsf asserts that at none of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func NotErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return NotErrorIs(t, err, target, append([]interface{}{msg}, args...)...) +} + // NotNilf asserts that the specified object is not nil. // // assert.NotNilf(t, err, "error message %s", "formatted") @@ -476,7 +584,7 @@ func NotPanicsf(t TestingT, f PanicTestFunc, msg string, args ...interface{}) bo // NotRegexpf asserts that a specified regexp does not match a string. // -// assert.NotRegexpf(t, regexp.MustCompile("starts", "error message %s", "formatted"), "it's starting") +// assert.NotRegexpf(t, regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted") // assert.NotRegexpf(t, "^start", "it's not starting", "error message %s", "formatted") func NotRegexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { @@ -550,9 +658,20 @@ func PanicsWithValuef(t TestingT, expected interface{}, f PanicTestFunc, msg str return PanicsWithValue(t, expected, f, append([]interface{}{msg}, args...)...) } +// Positivef asserts that the specified element is positive +// +// assert.Positivef(t, 1, "error message %s", "formatted") +// assert.Positivef(t, 1.23, "error message %s", "formatted") +func Positivef(t TestingT, e interface{}, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return Positive(t, e, append([]interface{}{msg}, args...)...) +} + // Regexpf asserts that a specified regexp matches a string. // -// assert.Regexpf(t, regexp.MustCompile("start", "error message %s", "formatted"), "it's starting") +// assert.Regexpf(t, regexp.MustCompile("start"), "it's starting", "error message %s", "formatted") // assert.Regexpf(t, "start...$", "it's not starting", "error message %s", "formatted") func Regexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { diff --git a/vendor/github.com/stretchr/testify/assert/assertion_forward.go b/vendor/github.com/stretchr/testify/assert/assertion_forward.go index 75ecdcaa2..25337a6f0 100644 --- a/vendor/github.com/stretchr/testify/assert/assertion_forward.go +++ b/vendor/github.com/stretchr/testify/assert/assertion_forward.go @@ -169,7 +169,7 @@ func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAn // EqualValuesf asserts that two objects are equal or convertable to the same types // and equal. // -// a.EqualValuesf(uint32(123, "error message %s", "formatted"), int32(123)) +// a.EqualValuesf(uint32(123), int32(123), "error message %s", "formatted") func (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -204,6 +204,42 @@ func (a *Assertions) Error(err error, msgAndArgs ...interface{}) bool { return Error(a.t, err, msgAndArgs...) } +// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. +// This is a wrapper for errors.As. +func (a *Assertions) ErrorAs(err error, target interface{}, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return ErrorAs(a.t, err, target, msgAndArgs...) +} + +// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. +// This is a wrapper for errors.As. +func (a *Assertions) ErrorAsf(err error, target interface{}, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return ErrorAsf(a.t, err, target, msg, args...) +} + +// ErrorIs asserts that at least one of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func (a *Assertions) ErrorIs(err error, target error, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return ErrorIs(a.t, err, target, msgAndArgs...) +} + +// ErrorIsf asserts that at least one of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func (a *Assertions) ErrorIsf(err error, target error, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return ErrorIsf(a.t, err, target, msg, args...) +} + // Errorf asserts that a function returned an error (i.e. not `nil`). // // actualObj, err := SomeFunction() @@ -251,7 +287,7 @@ func (a *Assertions) Exactly(expected interface{}, actual interface{}, msgAndArg // Exactlyf asserts that two objects are equal in value and type. // -// a.Exactlyf(int32(123, "error message %s", "formatted"), int64(123)) +// a.Exactlyf(int32(123), int64(123), "error message %s", "formatted") func (a *Assertions) Exactlyf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -370,7 +406,7 @@ func (a *Assertions) GreaterOrEqualf(e1 interface{}, e2 interface{}, msg string, // Greaterf asserts that the first element is greater than the second // // a.Greaterf(2, 1, "error message %s", "formatted") -// a.Greaterf(float64(2, "error message %s", "formatted"), float64(1)) +// a.Greaterf(float64(2), float64(1), "error message %s", "formatted") // a.Greaterf("b", "a", "error message %s", "formatted") func (a *Assertions) Greaterf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { @@ -447,7 +483,7 @@ func (a *Assertions) HTTPError(handler http.HandlerFunc, method string, url stri // // a.HTTPErrorf(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} // -// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false). +// Returns whether the assertion was successful (true) or not (false). func (a *Assertions) HTTPErrorf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -471,7 +507,7 @@ func (a *Assertions) HTTPRedirect(handler http.HandlerFunc, method string, url s // // a.HTTPRedirectf(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} // -// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false). +// Returns whether the assertion was successful (true) or not (false). func (a *Assertions) HTTPRedirectf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -479,6 +515,30 @@ func (a *Assertions) HTTPRedirectf(handler http.HandlerFunc, method string, url return HTTPRedirectf(a.t, handler, method, url, values, msg, args...) } +// HTTPStatusCode asserts that a specified handler returns a specified status code. +// +// a.HTTPStatusCode(myHandler, "GET", "/notImplemented", nil, 501) +// +// Returns whether the assertion was successful (true) or not (false). +func (a *Assertions) HTTPStatusCode(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return HTTPStatusCode(a.t, handler, method, url, values, statuscode, msgAndArgs...) +} + +// HTTPStatusCodef asserts that a specified handler returns a specified status code. +// +// a.HTTPStatusCodef(myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted") +// +// Returns whether the assertion was successful (true) or not (false). +func (a *Assertions) HTTPStatusCodef(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return HTTPStatusCodef(a.t, handler, method, url, values, statuscode, msg, args...) +} + // HTTPSuccess asserts that a specified handler returns a success status code. // // a.HTTPSuccess(myHandler, "POST", "http://www.google.com", nil) @@ -515,7 +575,7 @@ func (a *Assertions) Implements(interfaceObject interface{}, object interface{}, // Implementsf asserts that an object is implemented by the specified interface. // -// a.Implementsf((*MyInterface, "error message %s", "formatted")(nil), new(MyObject)) +// a.Implementsf((*MyInterface)(nil), new(MyObject), "error message %s", "formatted") func (a *Assertions) Implementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -607,6 +667,102 @@ func (a *Assertions) InEpsilonf(expected interface{}, actual interface{}, epsilo return InEpsilonf(a.t, expected, actual, epsilon, msg, args...) } +// IsDecreasing asserts that the collection is decreasing +// +// a.IsDecreasing([]int{2, 1, 0}) +// a.IsDecreasing([]float{2, 1}) +// a.IsDecreasing([]string{"b", "a"}) +func (a *Assertions) IsDecreasing(object interface{}, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return IsDecreasing(a.t, object, msgAndArgs...) +} + +// IsDecreasingf asserts that the collection is decreasing +// +// a.IsDecreasingf([]int{2, 1, 0}, "error message %s", "formatted") +// a.IsDecreasingf([]float{2, 1}, "error message %s", "formatted") +// a.IsDecreasingf([]string{"b", "a"}, "error message %s", "formatted") +func (a *Assertions) IsDecreasingf(object interface{}, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return IsDecreasingf(a.t, object, msg, args...) +} + +// IsIncreasing asserts that the collection is increasing +// +// a.IsIncreasing([]int{1, 2, 3}) +// a.IsIncreasing([]float{1, 2}) +// a.IsIncreasing([]string{"a", "b"}) +func (a *Assertions) IsIncreasing(object interface{}, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return IsIncreasing(a.t, object, msgAndArgs...) +} + +// IsIncreasingf asserts that the collection is increasing +// +// a.IsIncreasingf([]int{1, 2, 3}, "error message %s", "formatted") +// a.IsIncreasingf([]float{1, 2}, "error message %s", "formatted") +// a.IsIncreasingf([]string{"a", "b"}, "error message %s", "formatted") +func (a *Assertions) IsIncreasingf(object interface{}, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return IsIncreasingf(a.t, object, msg, args...) +} + +// IsNonDecreasing asserts that the collection is not decreasing +// +// a.IsNonDecreasing([]int{1, 1, 2}) +// a.IsNonDecreasing([]float{1, 2}) +// a.IsNonDecreasing([]string{"a", "b"}) +func (a *Assertions) IsNonDecreasing(object interface{}, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return IsNonDecreasing(a.t, object, msgAndArgs...) +} + +// IsNonDecreasingf asserts that the collection is not decreasing +// +// a.IsNonDecreasingf([]int{1, 1, 2}, "error message %s", "formatted") +// a.IsNonDecreasingf([]float{1, 2}, "error message %s", "formatted") +// a.IsNonDecreasingf([]string{"a", "b"}, "error message %s", "formatted") +func (a *Assertions) IsNonDecreasingf(object interface{}, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return IsNonDecreasingf(a.t, object, msg, args...) +} + +// IsNonIncreasing asserts that the collection is not increasing +// +// a.IsNonIncreasing([]int{2, 1, 1}) +// a.IsNonIncreasing([]float{2, 1}) +// a.IsNonIncreasing([]string{"b", "a"}) +func (a *Assertions) IsNonIncreasing(object interface{}, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return IsNonIncreasing(a.t, object, msgAndArgs...) +} + +// IsNonIncreasingf asserts that the collection is not increasing +// +// a.IsNonIncreasingf([]int{2, 1, 1}, "error message %s", "formatted") +// a.IsNonIncreasingf([]float{2, 1}, "error message %s", "formatted") +// a.IsNonIncreasingf([]string{"b", "a"}, "error message %s", "formatted") +func (a *Assertions) IsNonIncreasingf(object interface{}, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return IsNonIncreasingf(a.t, object, msg, args...) +} + // IsType asserts that the specified objects are of the same type. func (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAndArgs ...interface{}) bool { if h, ok := a.t.(tHelper); ok { @@ -706,7 +862,7 @@ func (a *Assertions) LessOrEqualf(e1 interface{}, e2 interface{}, msg string, ar // Lessf asserts that the first element is less than the second // // a.Lessf(1, 2, "error message %s", "formatted") -// a.Lessf(float64(1, "error message %s", "formatted"), float64(2)) +// a.Lessf(float64(1), float64(2), "error message %s", "formatted") // a.Lessf("a", "b", "error message %s", "formatted") func (a *Assertions) Lessf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { @@ -715,6 +871,28 @@ func (a *Assertions) Lessf(e1 interface{}, e2 interface{}, msg string, args ...i return Lessf(a.t, e1, e2, msg, args...) } +// Negative asserts that the specified element is negative +// +// a.Negative(-1) +// a.Negative(-1.23) +func (a *Assertions) Negative(e interface{}, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return Negative(a.t, e, msgAndArgs...) +} + +// Negativef asserts that the specified element is negative +// +// a.Negativef(-1, "error message %s", "formatted") +// a.Negativef(-1.23, "error message %s", "formatted") +func (a *Assertions) Negativef(e interface{}, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return Negativef(a.t, e, msg, args...) +} + // Never asserts that the given condition doesn't satisfy in waitFor time, // periodically checking the target function each tick. // @@ -884,6 +1062,26 @@ func (a *Assertions) NotEqual(expected interface{}, actual interface{}, msgAndAr return NotEqual(a.t, expected, actual, msgAndArgs...) } +// NotEqualValues asserts that two objects are not equal even when converted to the same type +// +// a.NotEqualValues(obj1, obj2) +func (a *Assertions) NotEqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return NotEqualValues(a.t, expected, actual, msgAndArgs...) +} + +// NotEqualValuesf asserts that two objects are not equal even when converted to the same type +// +// a.NotEqualValuesf(obj1, obj2, "error message %s", "formatted") +func (a *Assertions) NotEqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return NotEqualValuesf(a.t, expected, actual, msg, args...) +} + // NotEqualf asserts that the specified values are NOT equal. // // a.NotEqualf(obj1, obj2, "error message %s", "formatted") @@ -897,6 +1095,24 @@ func (a *Assertions) NotEqualf(expected interface{}, actual interface{}, msg str return NotEqualf(a.t, expected, actual, msg, args...) } +// NotErrorIs asserts that at none of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return NotErrorIs(a.t, err, target, msgAndArgs...) +} + +// NotErrorIsf asserts that at none of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func (a *Assertions) NotErrorIsf(err error, target error, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return NotErrorIsf(a.t, err, target, msg, args...) +} + // NotNil asserts that the specified object is not nil. // // a.NotNil(err) @@ -950,7 +1166,7 @@ func (a *Assertions) NotRegexp(rx interface{}, str interface{}, msgAndArgs ...in // NotRegexpf asserts that a specified regexp does not match a string. // -// a.NotRegexpf(regexp.MustCompile("starts", "error message %s", "formatted"), "it's starting") +// a.NotRegexpf(regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted") // a.NotRegexpf("^start", "it's not starting", "error message %s", "formatted") func (a *Assertions) NotRegexpf(rx interface{}, str interface{}, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { @@ -1089,6 +1305,28 @@ func (a *Assertions) Panicsf(f PanicTestFunc, msg string, args ...interface{}) b return Panicsf(a.t, f, msg, args...) } +// Positive asserts that the specified element is positive +// +// a.Positive(1) +// a.Positive(1.23) +func (a *Assertions) Positive(e interface{}, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return Positive(a.t, e, msgAndArgs...) +} + +// Positivef asserts that the specified element is positive +// +// a.Positivef(1, "error message %s", "formatted") +// a.Positivef(1.23, "error message %s", "formatted") +func (a *Assertions) Positivef(e interface{}, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return Positivef(a.t, e, msg, args...) +} + // Regexp asserts that a specified regexp matches a string. // // a.Regexp(regexp.MustCompile("start"), "it's starting") @@ -1102,7 +1340,7 @@ func (a *Assertions) Regexp(rx interface{}, str interface{}, msgAndArgs ...inter // Regexpf asserts that a specified regexp matches a string. // -// a.Regexpf(regexp.MustCompile("start", "error message %s", "formatted"), "it's starting") +// a.Regexpf(regexp.MustCompile("start"), "it's starting", "error message %s", "formatted") // a.Regexpf("start...$", "it's not starting", "error message %s", "formatted") func (a *Assertions) Regexpf(rx interface{}, str interface{}, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { diff --git a/vendor/github.com/stretchr/testify/assert/assertion_order.go b/vendor/github.com/stretchr/testify/assert/assertion_order.go index 15a486ca6..1c3b47182 100644 --- a/vendor/github.com/stretchr/testify/assert/assertion_order.go +++ b/vendor/github.com/stretchr/testify/assert/assertion_order.go @@ -5,305 +5,77 @@ import ( "reflect" ) -func compare(obj1, obj2 interface{}, kind reflect.Kind) (int, bool) { - switch kind { - case reflect.Int: - { - intobj1 := obj1.(int) - intobj2 := obj2.(int) - if intobj1 > intobj2 { - return -1, true - } - if intobj1 == intobj2 { - return 0, true - } - if intobj1 < intobj2 { - return 1, true - } - } - case reflect.Int8: - { - int8obj1 := obj1.(int8) - int8obj2 := obj2.(int8) - if int8obj1 > int8obj2 { - return -1, true - } - if int8obj1 == int8obj2 { - return 0, true - } - if int8obj1 < int8obj2 { - return 1, true - } - } - case reflect.Int16: - { - int16obj1 := obj1.(int16) - int16obj2 := obj2.(int16) - if int16obj1 > int16obj2 { - return -1, true - } - if int16obj1 == int16obj2 { - return 0, true - } - if int16obj1 < int16obj2 { - return 1, true - } - } - case reflect.Int32: - { - int32obj1 := obj1.(int32) - int32obj2 := obj2.(int32) - if int32obj1 > int32obj2 { - return -1, true - } - if int32obj1 == int32obj2 { - return 0, true - } - if int32obj1 < int32obj2 { - return 1, true - } - } - case reflect.Int64: - { - int64obj1 := obj1.(int64) - int64obj2 := obj2.(int64) - if int64obj1 > int64obj2 { - return -1, true - } - if int64obj1 == int64obj2 { - return 0, true - } - if int64obj1 < int64obj2 { - return 1, true - } - } - case reflect.Uint: - { - uintobj1 := obj1.(uint) - uintobj2 := obj2.(uint) - if uintobj1 > uintobj2 { - return -1, true - } - if uintobj1 == uintobj2 { - return 0, true - } - if uintobj1 < uintobj2 { - return 1, true - } - } - case reflect.Uint8: - { - uint8obj1 := obj1.(uint8) - uint8obj2 := obj2.(uint8) - if uint8obj1 > uint8obj2 { - return -1, true - } - if uint8obj1 == uint8obj2 { - return 0, true - } - if uint8obj1 < uint8obj2 { - return 1, true - } - } - case reflect.Uint16: - { - uint16obj1 := obj1.(uint16) - uint16obj2 := obj2.(uint16) - if uint16obj1 > uint16obj2 { - return -1, true - } - if uint16obj1 == uint16obj2 { - return 0, true - } - if uint16obj1 < uint16obj2 { - return 1, true - } - } - case reflect.Uint32: - { - uint32obj1 := obj1.(uint32) - uint32obj2 := obj2.(uint32) - if uint32obj1 > uint32obj2 { - return -1, true - } - if uint32obj1 == uint32obj2 { - return 0, true - } - if uint32obj1 < uint32obj2 { - return 1, true - } - } - case reflect.Uint64: - { - uint64obj1 := obj1.(uint64) - uint64obj2 := obj2.(uint64) - if uint64obj1 > uint64obj2 { - return -1, true - } - if uint64obj1 == uint64obj2 { - return 0, true - } - if uint64obj1 < uint64obj2 { - return 1, true - } - } - case reflect.Float32: - { - float32obj1 := obj1.(float32) - float32obj2 := obj2.(float32) - if float32obj1 > float32obj2 { - return -1, true - } - if float32obj1 == float32obj2 { - return 0, true - } - if float32obj1 < float32obj2 { - return 1, true - } - } - case reflect.Float64: - { - float64obj1 := obj1.(float64) - float64obj2 := obj2.(float64) - if float64obj1 > float64obj2 { - return -1, true - } - if float64obj1 == float64obj2 { - return 0, true - } - if float64obj1 < float64obj2 { - return 1, true - } - } - case reflect.String: - { - stringobj1 := obj1.(string) - stringobj2 := obj2.(string) - if stringobj1 > stringobj2 { - return -1, true - } - if stringobj1 == stringobj2 { - return 0, true - } - if stringobj1 < stringobj2 { - return 1, true - } - } - } - - return 0, false -} - -// Greater asserts that the first element is greater than the second -// -// assert.Greater(t, 2, 1) -// assert.Greater(t, float64(2), float64(1)) -// assert.Greater(t, "b", "a") -func Greater(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() +// isOrdered checks that collection contains orderable elements. +func isOrdered(t TestingT, object interface{}, allowedComparesResults []CompareType, failMessage string, msgAndArgs ...interface{}) bool { + objKind := reflect.TypeOf(object).Kind() + if objKind != reflect.Slice && objKind != reflect.Array { + return false } - e1Kind := reflect.ValueOf(e1).Kind() - e2Kind := reflect.ValueOf(e2).Kind() - if e1Kind != e2Kind { - return Fail(t, "Elements should be the same type", msgAndArgs...) - } + objValue := reflect.ValueOf(object) + objLen := objValue.Len() - res, isComparable := compare(e1, e2, e1Kind) - if !isComparable { - return Fail(t, fmt.Sprintf("Can not compare type \"%s\"", reflect.TypeOf(e1)), msgAndArgs...) + if objLen <= 1 { + return true } - if res != -1 { - return Fail(t, fmt.Sprintf("\"%v\" is not greater than \"%v\"", e1, e2), msgAndArgs...) - } + value := objValue.Index(0) + valueInterface := value.Interface() + firstValueKind := value.Kind() - return true -} + for i := 1; i < objLen; i++ { + prevValue := value + prevValueInterface := valueInterface -// GreaterOrEqual asserts that the first element is greater than or equal to the second -// -// assert.GreaterOrEqual(t, 2, 1) -// assert.GreaterOrEqual(t, 2, 2) -// assert.GreaterOrEqual(t, "b", "a") -// assert.GreaterOrEqual(t, "b", "b") -func GreaterOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } + value = objValue.Index(i) + valueInterface = value.Interface() - e1Kind := reflect.ValueOf(e1).Kind() - e2Kind := reflect.ValueOf(e2).Kind() - if e1Kind != e2Kind { - return Fail(t, "Elements should be the same type", msgAndArgs...) - } + compareResult, isComparable := compare(prevValueInterface, valueInterface, firstValueKind) - res, isComparable := compare(e1, e2, e1Kind) - if !isComparable { - return Fail(t, fmt.Sprintf("Can not compare type \"%s\"", reflect.TypeOf(e1)), msgAndArgs...) - } + if !isComparable { + return Fail(t, fmt.Sprintf("Can not compare type \"%s\" and \"%s\"", reflect.TypeOf(value), reflect.TypeOf(prevValue)), msgAndArgs...) + } - if res != -1 && res != 0 { - return Fail(t, fmt.Sprintf("\"%v\" is not greater than or equal to \"%v\"", e1, e2), msgAndArgs...) + if !containsValue(allowedComparesResults, compareResult) { + return Fail(t, fmt.Sprintf(failMessage, prevValue, value), msgAndArgs...) + } } return true } -// Less asserts that the first element is less than the second +// IsIncreasing asserts that the collection is increasing // -// assert.Less(t, 1, 2) -// assert.Less(t, float64(1), float64(2)) -// assert.Less(t, "a", "b") -func Less(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - e1Kind := reflect.ValueOf(e1).Kind() - e2Kind := reflect.ValueOf(e2).Kind() - if e1Kind != e2Kind { - return Fail(t, "Elements should be the same type", msgAndArgs...) - } - - res, isComparable := compare(e1, e2, e1Kind) - if !isComparable { - return Fail(t, fmt.Sprintf("Can not compare type \"%s\"", reflect.TypeOf(e1)), msgAndArgs...) - } - - if res != 1 { - return Fail(t, fmt.Sprintf("\"%v\" is not less than \"%v\"", e1, e2), msgAndArgs...) - } - - return true +// assert.IsIncreasing(t, []int{1, 2, 3}) +// assert.IsIncreasing(t, []float{1, 2}) +// assert.IsIncreasing(t, []string{"a", "b"}) +func IsIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { + return isOrdered(t, object, []CompareType{compareLess}, "\"%v\" is not less than \"%v\"", msgAndArgs) } -// LessOrEqual asserts that the first element is less than or equal to the second +// IsNonIncreasing asserts that the collection is not increasing // -// assert.LessOrEqual(t, 1, 2) -// assert.LessOrEqual(t, 2, 2) -// assert.LessOrEqual(t, "a", "b") -// assert.LessOrEqual(t, "b", "b") -func LessOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - e1Kind := reflect.ValueOf(e1).Kind() - e2Kind := reflect.ValueOf(e2).Kind() - if e1Kind != e2Kind { - return Fail(t, "Elements should be the same type", msgAndArgs...) - } - - res, isComparable := compare(e1, e2, e1Kind) - if !isComparable { - return Fail(t, fmt.Sprintf("Can not compare type \"%s\"", reflect.TypeOf(e1)), msgAndArgs...) - } +// assert.IsNonIncreasing(t, []int{2, 1, 1}) +// assert.IsNonIncreasing(t, []float{2, 1}) +// assert.IsNonIncreasing(t, []string{"b", "a"}) +func IsNonIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { + return isOrdered(t, object, []CompareType{compareEqual, compareGreater}, "\"%v\" is not greater than or equal to \"%v\"", msgAndArgs) +} - if res != 1 && res != 0 { - return Fail(t, fmt.Sprintf("\"%v\" is not less than or equal to \"%v\"", e1, e2), msgAndArgs...) - } +// IsDecreasing asserts that the collection is decreasing +// +// assert.IsDecreasing(t, []int{2, 1, 0}) +// assert.IsDecreasing(t, []float{2, 1}) +// assert.IsDecreasing(t, []string{"b", "a"}) +func IsDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { + return isOrdered(t, object, []CompareType{compareGreater}, "\"%v\" is not greater than \"%v\"", msgAndArgs) +} - return true +// IsNonDecreasing asserts that the collection is not decreasing +// +// assert.IsNonDecreasing(t, []int{1, 1, 2}) +// assert.IsNonDecreasing(t, []float{1, 2}) +// assert.IsNonDecreasing(t, []string{"a", "b"}) +func IsNonDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { + return isOrdered(t, object, []CompareType{compareLess, compareEqual}, "\"%v\" is not less than or equal to \"%v\"", msgAndArgs) } diff --git a/vendor/github.com/stretchr/testify/assert/assertions.go b/vendor/github.com/stretchr/testify/assert/assertions.go index bdd81389a..bcac4401f 100644 --- a/vendor/github.com/stretchr/testify/assert/assertions.go +++ b/vendor/github.com/stretchr/testify/assert/assertions.go @@ -19,7 +19,7 @@ import ( "github.com/davecgh/go-spew/spew" "github.com/pmezard/go-difflib/difflib" - yaml "gopkg.in/yaml.v2" + yaml "gopkg.in/yaml.v3" ) //go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_format.go.tmpl" @@ -45,7 +45,7 @@ type BoolAssertionFunc func(TestingT, bool, ...interface{}) bool // for table driven tests. type ErrorAssertionFunc func(TestingT, error, ...interface{}) bool -// Comparison a custom function that returns true on success and false on failure +// Comparison is a custom function that returns true on success and false on failure type Comparison func() (success bool) /* @@ -104,11 +104,11 @@ the problem actually occurred in calling code.*/ // failed. func CallerInfo() []string { - pc := uintptr(0) - file := "" - line := 0 - ok := false - name := "" + var pc uintptr + var ok bool + var file string + var line int + var name string callers := []string{} for i := 0; ; i++ { @@ -172,8 +172,8 @@ func isTest(name, prefix string) bool { if len(name) == len(prefix) { // "Test" is ok return true } - rune, _ := utf8.DecodeRuneInString(name[len(prefix):]) - return !unicode.IsLower(rune) + r, _ := utf8.DecodeRuneInString(name[len(prefix):]) + return !unicode.IsLower(r) } func messageFromMsgAndArgs(msgAndArgs ...interface{}) string { @@ -429,14 +429,27 @@ func samePointers(first, second interface{}) bool { // to a type conversion in the Go grammar. func formatUnequalValues(expected, actual interface{}) (e string, a string) { if reflect.TypeOf(expected) != reflect.TypeOf(actual) { - return fmt.Sprintf("%T(%#v)", expected, expected), - fmt.Sprintf("%T(%#v)", actual, actual) + return fmt.Sprintf("%T(%s)", expected, truncatingFormat(expected)), + fmt.Sprintf("%T(%s)", actual, truncatingFormat(actual)) } switch expected.(type) { case time.Duration: return fmt.Sprintf("%v", expected), fmt.Sprintf("%v", actual) } - return fmt.Sprintf("%#v", expected), fmt.Sprintf("%#v", actual) + return truncatingFormat(expected), truncatingFormat(actual) +} + +// truncatingFormat formats the data and truncates it if it's too long. +// +// This helps keep formatted error messages lines from exceeding the +// bufio.MaxScanTokenSize max line length that the go testing framework imposes. +func truncatingFormat(data interface{}) string { + value := fmt.Sprintf("%#v", data) + max := bufio.MaxScanTokenSize - 100 // Give us some space the type info too if needed. + if len(value) > max { + value = value[0:max] + "<... truncated>" + } + return value } // EqualValues asserts that two objects are equal or convertable to the same types @@ -483,12 +496,12 @@ func Exactly(t TestingT, expected, actual interface{}, msgAndArgs ...interface{} // // assert.NotNil(t, err) func NotNil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } if !isNil(object) { return true } + if h, ok := t.(tHelper); ok { + h.Helper() + } return Fail(t, "Expected value not to be nil.", msgAndArgs...) } @@ -529,12 +542,12 @@ func isNil(object interface{}) bool { // // assert.Nil(t, err) func Nil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } if isNil(object) { return true } + if h, ok := t.(tHelper); ok { + h.Helper() + } return Fail(t, fmt.Sprintf("Expected nil, but got: %#v", object), msgAndArgs...) } @@ -571,12 +584,11 @@ func isEmpty(object interface{}) bool { // // assert.Empty(t, obj) func Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - pass := isEmpty(object) if !pass { + if h, ok := t.(tHelper); ok { + h.Helper() + } Fail(t, fmt.Sprintf("Should be empty, but was %v", object), msgAndArgs...) } @@ -591,12 +603,11 @@ func Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { // assert.Equal(t, "two", obj[1]) // } func NotEmpty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - pass := !isEmpty(object) if !pass { + if h, ok := t.(tHelper); ok { + h.Helper() + } Fail(t, fmt.Sprintf("Should NOT be empty, but was %v", object), msgAndArgs...) } @@ -639,16 +650,10 @@ func Len(t TestingT, object interface{}, length int, msgAndArgs ...interface{}) // // assert.True(t, myBool) func True(t TestingT, value bool, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if h, ok := t.(interface { - Helper() - }); ok { - h.Helper() - } - - if value != true { + if !value { + if h, ok := t.(tHelper); ok { + h.Helper() + } return Fail(t, "Should be true", msgAndArgs...) } @@ -660,11 +665,10 @@ func True(t TestingT, value bool, msgAndArgs ...interface{}) bool { // // assert.False(t, myBool) func False(t TestingT, value bool, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if value != false { + if value { + if h, ok := t.(tHelper); ok { + h.Helper() + } return Fail(t, "Should be false", msgAndArgs...) } @@ -695,6 +699,21 @@ func NotEqual(t TestingT, expected, actual interface{}, msgAndArgs ...interface{ } +// NotEqualValues asserts that two objects are not equal even when converted to the same type +// +// assert.NotEqualValues(t, obj1, obj2) +func NotEqualValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + + if ObjectsAreEqualValues(expected, actual) { + return Fail(t, fmt.Sprintf("Should not be: %#v\n", actual), msgAndArgs...) + } + + return true +} + // containsElement try loop over the list check if the list includes the element. // return (false, false) if impossible. // return (true, false) if element was not found. @@ -747,10 +766,10 @@ func Contains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bo ok, found := includeElement(s, contains) if !ok { - return Fail(t, fmt.Sprintf("\"%s\" could not be applied builtin len()", s), msgAndArgs...) + return Fail(t, fmt.Sprintf("%#v could not be applied builtin len()", s), msgAndArgs...) } if !found { - return Fail(t, fmt.Sprintf("\"%s\" does not contain \"%s\"", s, contains), msgAndArgs...) + return Fail(t, fmt.Sprintf("%#v does not contain %#v", s, contains), msgAndArgs...) } return true @@ -881,27 +900,39 @@ func ElementsMatch(t TestingT, listA, listB interface{}, msgAndArgs ...interface return true } - aKind := reflect.TypeOf(listA).Kind() - bKind := reflect.TypeOf(listB).Kind() + if !isList(t, listA, msgAndArgs...) || !isList(t, listB, msgAndArgs...) { + return false + } + + extraA, extraB := diffLists(listA, listB) - if aKind != reflect.Array && aKind != reflect.Slice { - return Fail(t, fmt.Sprintf("%q has an unsupported type %s", listA, aKind), msgAndArgs...) + if len(extraA) == 0 && len(extraB) == 0 { + return true } - if bKind != reflect.Array && bKind != reflect.Slice { - return Fail(t, fmt.Sprintf("%q has an unsupported type %s", listB, bKind), msgAndArgs...) + return Fail(t, formatListDiff(listA, listB, extraA, extraB), msgAndArgs...) +} + +// isList checks that the provided value is array or slice. +func isList(t TestingT, list interface{}, msgAndArgs ...interface{}) (ok bool) { + kind := reflect.TypeOf(list).Kind() + if kind != reflect.Array && kind != reflect.Slice { + return Fail(t, fmt.Sprintf("%q has an unsupported type %s, expecting array or slice", list, kind), + msgAndArgs...) } + return true +} +// diffLists diffs two arrays/slices and returns slices of elements that are only in A and only in B. +// If some element is present multiple times, each instance is counted separately (e.g. if something is 2x in A and +// 5x in B, it will be 0x in extraA and 3x in extraB). The order of items in both lists is ignored. +func diffLists(listA, listB interface{}) (extraA, extraB []interface{}) { aValue := reflect.ValueOf(listA) bValue := reflect.ValueOf(listB) aLen := aValue.Len() bLen := bValue.Len() - if aLen != bLen { - return Fail(t, fmt.Sprintf("lengths don't match: %d != %d", aLen, bLen), msgAndArgs...) - } - // Mark indexes in bValue that we already used visited := make([]bool, bLen) for i := 0; i < aLen; i++ { @@ -918,11 +949,38 @@ func ElementsMatch(t TestingT, listA, listB interface{}, msgAndArgs ...interface } } if !found { - return Fail(t, fmt.Sprintf("element %s appears more times in %s than in %s", element, aValue, bValue), msgAndArgs...) + extraA = append(extraA, element) } } - return true + for j := 0; j < bLen; j++ { + if visited[j] { + continue + } + extraB = append(extraB, bValue.Index(j).Interface()) + } + + return +} + +func formatListDiff(listA, listB interface{}, extraA, extraB []interface{}) string { + var msg bytes.Buffer + + msg.WriteString("elements differ") + if len(extraA) > 0 { + msg.WriteString("\n\nextra elements in list A:\n") + msg.WriteString(spewConfig.Sdump(extraA)) + } + if len(extraB) > 0 { + msg.WriteString("\n\nextra elements in list B:\n") + msg.WriteString(spewConfig.Sdump(extraB)) + } + msg.WriteString("\n\nlistA:\n") + msg.WriteString(spewConfig.Sdump(listA)) + msg.WriteString("\n\nlistB:\n") + msg.WriteString(spewConfig.Sdump(listB)) + + return msg.String() } // Condition uses a Comparison to assert a complex condition. @@ -1058,6 +1116,8 @@ func toFloat(x interface{}) (float64, bool) { xok := true switch xn := x.(type) { + case uint: + xf = float64(xn) case uint8: xf = float64(xn) case uint16: @@ -1079,7 +1139,7 @@ func toFloat(x interface{}) (float64, bool) { case float32: xf = float64(xn) case float64: - xf = float64(xn) + xf = xn case time.Duration: xf = float64(xn) default: @@ -1193,6 +1253,9 @@ func calcRelativeError(expected, actual interface{}) (float64, error) { if !aok { return 0, fmt.Errorf("expected value %q cannot be converted to float", expected) } + if math.IsNaN(af) { + return 0, errors.New("expected value must not be NaN") + } if af == 0 { return 0, fmt.Errorf("expected value must have a value other than zero to calculate the relative error") } @@ -1200,6 +1263,9 @@ func calcRelativeError(expected, actual interface{}) (float64, error) { if !bok { return 0, fmt.Errorf("actual value %q cannot be converted to float", actual) } + if math.IsNaN(bf) { + return 0, errors.New("actual value must not be NaN") + } return math.Abs(af-bf) / math.Abs(af), nil } @@ -1209,6 +1275,9 @@ func InEpsilon(t TestingT, expected, actual interface{}, epsilon float64, msgAnd if h, ok := t.(tHelper); ok { h.Helper() } + if math.IsNaN(epsilon) { + return Fail(t, "epsilon must not be NaN") + } actualEpsilon, err := calcRelativeError(expected, actual) if err != nil { return Fail(t, err.Error(), msgAndArgs...) @@ -1256,10 +1325,10 @@ func InEpsilonSlice(t TestingT, expected, actual interface{}, epsilon float64, m // assert.Equal(t, expectedObj, actualObj) // } func NoError(t TestingT, err error, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } if err != nil { + if h, ok := t.(tHelper); ok { + h.Helper() + } return Fail(t, fmt.Sprintf("Received unexpected error:\n%+v", err), msgAndArgs...) } @@ -1273,11 +1342,10 @@ func NoError(t TestingT, err error, msgAndArgs ...interface{}) bool { // assert.Equal(t, expectedError, err) // } func Error(t TestingT, err error, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if err == nil { + if h, ok := t.(tHelper); ok { + h.Helper() + } return Fail(t, "An error is expected but got nil.", msgAndArgs...) } @@ -1553,6 +1621,8 @@ var spewConfig = spew.ConfigState{ DisablePointerAddresses: true, DisableCapacities: true, SortKeys: true, + DisableMethods: true, + MaxDepth: 10, } type tHelper interface { @@ -1624,3 +1694,81 @@ func Never(t TestingT, condition func() bool, waitFor time.Duration, tick time.D } } } + +// ErrorIs asserts that at least one of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func ErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if errors.Is(err, target) { + return true + } + + var expectedText string + if target != nil { + expectedText = target.Error() + } + + chain := buildErrorChainString(err) + + return Fail(t, fmt.Sprintf("Target error should be in err chain:\n"+ + "expected: %q\n"+ + "in chain: %s", expectedText, chain, + ), msgAndArgs...) +} + +// NotErrorIs asserts that at none of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func NotErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if !errors.Is(err, target) { + return true + } + + var expectedText string + if target != nil { + expectedText = target.Error() + } + + chain := buildErrorChainString(err) + + return Fail(t, fmt.Sprintf("Target error should not be in err chain:\n"+ + "found: %q\n"+ + "in chain: %s", expectedText, chain, + ), msgAndArgs...) +} + +// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. +// This is a wrapper for errors.As. +func ErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if errors.As(err, target) { + return true + } + + chain := buildErrorChainString(err) + + return Fail(t, fmt.Sprintf("Should be in error chain:\n"+ + "expected: %q\n"+ + "in chain: %s", target, chain, + ), msgAndArgs...) +} + +func buildErrorChainString(err error) string { + if err == nil { + return "" + } + + e := errors.Unwrap(err) + chain := fmt.Sprintf("%q", err.Error()) + for e != nil { + chain += fmt.Sprintf("\n\t%q", e.Error()) + e = errors.Unwrap(e) + } + return chain +} diff --git a/vendor/github.com/stretchr/testify/assert/http_assertions.go b/vendor/github.com/stretchr/testify/assert/http_assertions.go index df46fa777..4ed341dd2 100644 --- a/vendor/github.com/stretchr/testify/assert/http_assertions.go +++ b/vendor/github.com/stretchr/testify/assert/http_assertions.go @@ -33,7 +33,6 @@ func HTTPSuccess(t TestingT, handler http.HandlerFunc, method, url string, value code, err := httpCode(handler, method, url, values) if err != nil { Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err)) - return false } isSuccessCode := code >= http.StatusOK && code <= http.StatusPartialContent @@ -56,7 +55,6 @@ func HTTPRedirect(t TestingT, handler http.HandlerFunc, method, url string, valu code, err := httpCode(handler, method, url, values) if err != nil { Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err)) - return false } isRedirectCode := code >= http.StatusMultipleChoices && code <= http.StatusTemporaryRedirect @@ -79,7 +77,6 @@ func HTTPError(t TestingT, handler http.HandlerFunc, method, url string, values code, err := httpCode(handler, method, url, values) if err != nil { Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err)) - return false } isErrorCode := code >= http.StatusBadRequest @@ -90,6 +87,28 @@ func HTTPError(t TestingT, handler http.HandlerFunc, method, url string, values return isErrorCode } +// HTTPStatusCode asserts that a specified handler returns a specified status code. +// +// assert.HTTPStatusCode(t, myHandler, "GET", "/notImplemented", nil, 501) +// +// Returns whether the assertion was successful (true) or not (false). +func HTTPStatusCode(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + code, err := httpCode(handler, method, url, values) + if err != nil { + Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err)) + } + + successful := code == statuscode + if !successful { + Fail(t, fmt.Sprintf("Expected HTTP status code %d for %q but received %d", statuscode, url+"?"+values.Encode(), code)) + } + + return successful +} + // HTTPBody is a helper that returns HTTP body of the response. It returns // empty string if building a new request fails. func HTTPBody(handler http.HandlerFunc, method, url string, values url.Values) string { diff --git a/vendor/github.com/stretchr/testify/require/require.go b/vendor/github.com/stretchr/testify/require/require.go index cf6c7b566..51820df2e 100644 --- a/vendor/github.com/stretchr/testify/require/require.go +++ b/vendor/github.com/stretchr/testify/require/require.go @@ -212,7 +212,7 @@ func EqualValues(t TestingT, expected interface{}, actual interface{}, msgAndArg // EqualValuesf asserts that two objects are equal or convertable to the same types // and equal. // -// assert.EqualValuesf(t, uint32(123, "error message %s", "formatted"), int32(123)) +// assert.EqualValuesf(t, uint32(123), int32(123), "error message %s", "formatted") func EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -256,6 +256,54 @@ func Error(t TestingT, err error, msgAndArgs ...interface{}) { t.FailNow() } +// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. +// This is a wrapper for errors.As. +func ErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.ErrorAs(t, err, target, msgAndArgs...) { + return + } + t.FailNow() +} + +// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. +// This is a wrapper for errors.As. +func ErrorAsf(t TestingT, err error, target interface{}, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.ErrorAsf(t, err, target, msg, args...) { + return + } + t.FailNow() +} + +// ErrorIs asserts that at least one of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func ErrorIs(t TestingT, err error, target error, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.ErrorIs(t, err, target, msgAndArgs...) { + return + } + t.FailNow() +} + +// ErrorIsf asserts that at least one of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func ErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.ErrorIsf(t, err, target, msg, args...) { + return + } + t.FailNow() +} + // Errorf asserts that a function returned an error (i.e. not `nil`). // // actualObj, err := SomeFunction() @@ -315,7 +363,7 @@ func Exactly(t TestingT, expected interface{}, actual interface{}, msgAndArgs .. // Exactlyf asserts that two objects are equal in value and type. // -// assert.Exactlyf(t, int32(123, "error message %s", "formatted"), int64(123)) +// assert.Exactlyf(t, int32(123), int64(123), "error message %s", "formatted") func Exactlyf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -470,7 +518,7 @@ func GreaterOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, arg // Greaterf asserts that the first element is greater than the second // // assert.Greaterf(t, 2, 1, "error message %s", "formatted") -// assert.Greaterf(t, float64(2, "error message %s", "formatted"), float64(1)) +// assert.Greaterf(t, float64(2), float64(1), "error message %s", "formatted") // assert.Greaterf(t, "b", "a", "error message %s", "formatted") func Greaterf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { @@ -565,7 +613,7 @@ func HTTPError(t TestingT, handler http.HandlerFunc, method string, url string, // // assert.HTTPErrorf(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} // -// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false). +// Returns whether the assertion was successful (true) or not (false). func HTTPErrorf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -595,7 +643,7 @@ func HTTPRedirect(t TestingT, handler http.HandlerFunc, method string, url strin // // assert.HTTPRedirectf(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} // -// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false). +// Returns whether the assertion was successful (true) or not (false). func HTTPRedirectf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -606,6 +654,36 @@ func HTTPRedirectf(t TestingT, handler http.HandlerFunc, method string, url stri t.FailNow() } +// HTTPStatusCode asserts that a specified handler returns a specified status code. +// +// assert.HTTPStatusCode(t, myHandler, "GET", "/notImplemented", nil, 501) +// +// Returns whether the assertion was successful (true) or not (false). +func HTTPStatusCode(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.HTTPStatusCode(t, handler, method, url, values, statuscode, msgAndArgs...) { + return + } + t.FailNow() +} + +// HTTPStatusCodef asserts that a specified handler returns a specified status code. +// +// assert.HTTPStatusCodef(t, myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted") +// +// Returns whether the assertion was successful (true) or not (false). +func HTTPStatusCodef(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.HTTPStatusCodef(t, handler, method, url, values, statuscode, msg, args...) { + return + } + t.FailNow() +} + // HTTPSuccess asserts that a specified handler returns a success status code. // // assert.HTTPSuccess(t, myHandler, "POST", "http://www.google.com", nil) @@ -651,7 +729,7 @@ func Implements(t TestingT, interfaceObject interface{}, object interface{}, msg // Implementsf asserts that an object is implemented by the specified interface. // -// assert.Implementsf(t, (*MyInterface, "error message %s", "formatted")(nil), new(MyObject)) +// assert.Implementsf(t, (*MyInterface)(nil), new(MyObject), "error message %s", "formatted") func Implementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -776,6 +854,126 @@ func InEpsilonf(t TestingT, expected interface{}, actual interface{}, epsilon fl t.FailNow() } +// IsDecreasing asserts that the collection is decreasing +// +// assert.IsDecreasing(t, []int{2, 1, 0}) +// assert.IsDecreasing(t, []float{2, 1}) +// assert.IsDecreasing(t, []string{"b", "a"}) +func IsDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.IsDecreasing(t, object, msgAndArgs...) { + return + } + t.FailNow() +} + +// IsDecreasingf asserts that the collection is decreasing +// +// assert.IsDecreasingf(t, []int{2, 1, 0}, "error message %s", "formatted") +// assert.IsDecreasingf(t, []float{2, 1}, "error message %s", "formatted") +// assert.IsDecreasingf(t, []string{"b", "a"}, "error message %s", "formatted") +func IsDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.IsDecreasingf(t, object, msg, args...) { + return + } + t.FailNow() +} + +// IsIncreasing asserts that the collection is increasing +// +// assert.IsIncreasing(t, []int{1, 2, 3}) +// assert.IsIncreasing(t, []float{1, 2}) +// assert.IsIncreasing(t, []string{"a", "b"}) +func IsIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.IsIncreasing(t, object, msgAndArgs...) { + return + } + t.FailNow() +} + +// IsIncreasingf asserts that the collection is increasing +// +// assert.IsIncreasingf(t, []int{1, 2, 3}, "error message %s", "formatted") +// assert.IsIncreasingf(t, []float{1, 2}, "error message %s", "formatted") +// assert.IsIncreasingf(t, []string{"a", "b"}, "error message %s", "formatted") +func IsIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.IsIncreasingf(t, object, msg, args...) { + return + } + t.FailNow() +} + +// IsNonDecreasing asserts that the collection is not decreasing +// +// assert.IsNonDecreasing(t, []int{1, 1, 2}) +// assert.IsNonDecreasing(t, []float{1, 2}) +// assert.IsNonDecreasing(t, []string{"a", "b"}) +func IsNonDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.IsNonDecreasing(t, object, msgAndArgs...) { + return + } + t.FailNow() +} + +// IsNonDecreasingf asserts that the collection is not decreasing +// +// assert.IsNonDecreasingf(t, []int{1, 1, 2}, "error message %s", "formatted") +// assert.IsNonDecreasingf(t, []float{1, 2}, "error message %s", "formatted") +// assert.IsNonDecreasingf(t, []string{"a", "b"}, "error message %s", "formatted") +func IsNonDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.IsNonDecreasingf(t, object, msg, args...) { + return + } + t.FailNow() +} + +// IsNonIncreasing asserts that the collection is not increasing +// +// assert.IsNonIncreasing(t, []int{2, 1, 1}) +// assert.IsNonIncreasing(t, []float{2, 1}) +// assert.IsNonIncreasing(t, []string{"b", "a"}) +func IsNonIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.IsNonIncreasing(t, object, msgAndArgs...) { + return + } + t.FailNow() +} + +// IsNonIncreasingf asserts that the collection is not increasing +// +// assert.IsNonIncreasingf(t, []int{2, 1, 1}, "error message %s", "formatted") +// assert.IsNonIncreasingf(t, []float{2, 1}, "error message %s", "formatted") +// assert.IsNonIncreasingf(t, []string{"b", "a"}, "error message %s", "formatted") +func IsNonIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.IsNonIncreasingf(t, object, msg, args...) { + return + } + t.FailNow() +} + // IsType asserts that the specified objects are of the same type. func IsType(t TestingT, expectedType interface{}, object interface{}, msgAndArgs ...interface{}) { if h, ok := t.(tHelper); ok { @@ -902,7 +1100,7 @@ func LessOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args . // Lessf asserts that the first element is less than the second // // assert.Lessf(t, 1, 2, "error message %s", "formatted") -// assert.Lessf(t, float64(1, "error message %s", "formatted"), float64(2)) +// assert.Lessf(t, float64(1), float64(2), "error message %s", "formatted") // assert.Lessf(t, "a", "b", "error message %s", "formatted") func Lessf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { @@ -914,6 +1112,34 @@ func Lessf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...inter t.FailNow() } +// Negative asserts that the specified element is negative +// +// assert.Negative(t, -1) +// assert.Negative(t, -1.23) +func Negative(t TestingT, e interface{}, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.Negative(t, e, msgAndArgs...) { + return + } + t.FailNow() +} + +// Negativef asserts that the specified element is negative +// +// assert.Negativef(t, -1, "error message %s", "formatted") +// assert.Negativef(t, -1.23, "error message %s", "formatted") +func Negativef(t TestingT, e interface{}, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.Negativef(t, e, msg, args...) { + return + } + t.FailNow() +} + // Never asserts that the given condition doesn't satisfy in waitFor time, // periodically checking the target function each tick. // @@ -1128,6 +1354,32 @@ func NotEqual(t TestingT, expected interface{}, actual interface{}, msgAndArgs . t.FailNow() } +// NotEqualValues asserts that two objects are not equal even when converted to the same type +// +// assert.NotEqualValues(t, obj1, obj2) +func NotEqualValues(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.NotEqualValues(t, expected, actual, msgAndArgs...) { + return + } + t.FailNow() +} + +// NotEqualValuesf asserts that two objects are not equal even when converted to the same type +// +// assert.NotEqualValuesf(t, obj1, obj2, "error message %s", "formatted") +func NotEqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.NotEqualValuesf(t, expected, actual, msg, args...) { + return + } + t.FailNow() +} + // NotEqualf asserts that the specified values are NOT equal. // // assert.NotEqualf(t, obj1, obj2, "error message %s", "formatted") @@ -1144,6 +1396,30 @@ func NotEqualf(t TestingT, expected interface{}, actual interface{}, msg string, t.FailNow() } +// NotErrorIs asserts that at none of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func NotErrorIs(t TestingT, err error, target error, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.NotErrorIs(t, err, target, msgAndArgs...) { + return + } + t.FailNow() +} + +// NotErrorIsf asserts that at none of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func NotErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.NotErrorIsf(t, err, target, msg, args...) { + return + } + t.FailNow() +} + // NotNil asserts that the specified object is not nil. // // assert.NotNil(t, err) @@ -1212,7 +1488,7 @@ func NotRegexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interf // NotRegexpf asserts that a specified regexp does not match a string. // -// assert.NotRegexpf(t, regexp.MustCompile("starts", "error message %s", "formatted"), "it's starting") +// assert.NotRegexpf(t, regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted") // assert.NotRegexpf(t, "^start", "it's not starting", "error message %s", "formatted") func NotRegexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { @@ -1390,6 +1666,34 @@ func Panicsf(t TestingT, f assert.PanicTestFunc, msg string, args ...interface{} t.FailNow() } +// Positive asserts that the specified element is positive +// +// assert.Positive(t, 1) +// assert.Positive(t, 1.23) +func Positive(t TestingT, e interface{}, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.Positive(t, e, msgAndArgs...) { + return + } + t.FailNow() +} + +// Positivef asserts that the specified element is positive +// +// assert.Positivef(t, 1, "error message %s", "formatted") +// assert.Positivef(t, 1.23, "error message %s", "formatted") +func Positivef(t TestingT, e interface{}, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.Positivef(t, e, msg, args...) { + return + } + t.FailNow() +} + // Regexp asserts that a specified regexp matches a string. // // assert.Regexp(t, regexp.MustCompile("start"), "it's starting") @@ -1406,7 +1710,7 @@ func Regexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface // Regexpf asserts that a specified regexp matches a string. // -// assert.Regexpf(t, regexp.MustCompile("start", "error message %s", "formatted"), "it's starting") +// assert.Regexpf(t, regexp.MustCompile("start"), "it's starting", "error message %s", "formatted") // assert.Regexpf(t, "start...$", "it's not starting", "error message %s", "formatted") func Regexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { diff --git a/vendor/github.com/stretchr/testify/require/require_forward.go b/vendor/github.com/stretchr/testify/require/require_forward.go index 5aac226df..ed54a9d83 100644 --- a/vendor/github.com/stretchr/testify/require/require_forward.go +++ b/vendor/github.com/stretchr/testify/require/require_forward.go @@ -170,7 +170,7 @@ func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAn // EqualValuesf asserts that two objects are equal or convertable to the same types // and equal. // -// a.EqualValuesf(uint32(123, "error message %s", "formatted"), int32(123)) +// a.EqualValuesf(uint32(123), int32(123), "error message %s", "formatted") func (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -205,6 +205,42 @@ func (a *Assertions) Error(err error, msgAndArgs ...interface{}) { Error(a.t, err, msgAndArgs...) } +// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. +// This is a wrapper for errors.As. +func (a *Assertions) ErrorAs(err error, target interface{}, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + ErrorAs(a.t, err, target, msgAndArgs...) +} + +// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. +// This is a wrapper for errors.As. +func (a *Assertions) ErrorAsf(err error, target interface{}, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + ErrorAsf(a.t, err, target, msg, args...) +} + +// ErrorIs asserts that at least one of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func (a *Assertions) ErrorIs(err error, target error, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + ErrorIs(a.t, err, target, msgAndArgs...) +} + +// ErrorIsf asserts that at least one of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func (a *Assertions) ErrorIsf(err error, target error, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + ErrorIsf(a.t, err, target, msg, args...) +} + // Errorf asserts that a function returned an error (i.e. not `nil`). // // actualObj, err := SomeFunction() @@ -252,7 +288,7 @@ func (a *Assertions) Exactly(expected interface{}, actual interface{}, msgAndArg // Exactlyf asserts that two objects are equal in value and type. // -// a.Exactlyf(int32(123, "error message %s", "formatted"), int64(123)) +// a.Exactlyf(int32(123), int64(123), "error message %s", "formatted") func (a *Assertions) Exactlyf(expected interface{}, actual interface{}, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -371,7 +407,7 @@ func (a *Assertions) GreaterOrEqualf(e1 interface{}, e2 interface{}, msg string, // Greaterf asserts that the first element is greater than the second // // a.Greaterf(2, 1, "error message %s", "formatted") -// a.Greaterf(float64(2, "error message %s", "formatted"), float64(1)) +// a.Greaterf(float64(2), float64(1), "error message %s", "formatted") // a.Greaterf("b", "a", "error message %s", "formatted") func (a *Assertions) Greaterf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { @@ -448,7 +484,7 @@ func (a *Assertions) HTTPError(handler http.HandlerFunc, method string, url stri // // a.HTTPErrorf(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} // -// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false). +// Returns whether the assertion was successful (true) or not (false). func (a *Assertions) HTTPErrorf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -472,7 +508,7 @@ func (a *Assertions) HTTPRedirect(handler http.HandlerFunc, method string, url s // // a.HTTPRedirectf(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} // -// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false). +// Returns whether the assertion was successful (true) or not (false). func (a *Assertions) HTTPRedirectf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -480,6 +516,30 @@ func (a *Assertions) HTTPRedirectf(handler http.HandlerFunc, method string, url HTTPRedirectf(a.t, handler, method, url, values, msg, args...) } +// HTTPStatusCode asserts that a specified handler returns a specified status code. +// +// a.HTTPStatusCode(myHandler, "GET", "/notImplemented", nil, 501) +// +// Returns whether the assertion was successful (true) or not (false). +func (a *Assertions) HTTPStatusCode(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + HTTPStatusCode(a.t, handler, method, url, values, statuscode, msgAndArgs...) +} + +// HTTPStatusCodef asserts that a specified handler returns a specified status code. +// +// a.HTTPStatusCodef(myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted") +// +// Returns whether the assertion was successful (true) or not (false). +func (a *Assertions) HTTPStatusCodef(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + HTTPStatusCodef(a.t, handler, method, url, values, statuscode, msg, args...) +} + // HTTPSuccess asserts that a specified handler returns a success status code. // // a.HTTPSuccess(myHandler, "POST", "http://www.google.com", nil) @@ -516,7 +576,7 @@ func (a *Assertions) Implements(interfaceObject interface{}, object interface{}, // Implementsf asserts that an object is implemented by the specified interface. // -// a.Implementsf((*MyInterface, "error message %s", "formatted")(nil), new(MyObject)) +// a.Implementsf((*MyInterface)(nil), new(MyObject), "error message %s", "formatted") func (a *Assertions) Implementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -608,6 +668,102 @@ func (a *Assertions) InEpsilonf(expected interface{}, actual interface{}, epsilo InEpsilonf(a.t, expected, actual, epsilon, msg, args...) } +// IsDecreasing asserts that the collection is decreasing +// +// a.IsDecreasing([]int{2, 1, 0}) +// a.IsDecreasing([]float{2, 1}) +// a.IsDecreasing([]string{"b", "a"}) +func (a *Assertions) IsDecreasing(object interface{}, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + IsDecreasing(a.t, object, msgAndArgs...) +} + +// IsDecreasingf asserts that the collection is decreasing +// +// a.IsDecreasingf([]int{2, 1, 0}, "error message %s", "formatted") +// a.IsDecreasingf([]float{2, 1}, "error message %s", "formatted") +// a.IsDecreasingf([]string{"b", "a"}, "error message %s", "formatted") +func (a *Assertions) IsDecreasingf(object interface{}, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + IsDecreasingf(a.t, object, msg, args...) +} + +// IsIncreasing asserts that the collection is increasing +// +// a.IsIncreasing([]int{1, 2, 3}) +// a.IsIncreasing([]float{1, 2}) +// a.IsIncreasing([]string{"a", "b"}) +func (a *Assertions) IsIncreasing(object interface{}, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + IsIncreasing(a.t, object, msgAndArgs...) +} + +// IsIncreasingf asserts that the collection is increasing +// +// a.IsIncreasingf([]int{1, 2, 3}, "error message %s", "formatted") +// a.IsIncreasingf([]float{1, 2}, "error message %s", "formatted") +// a.IsIncreasingf([]string{"a", "b"}, "error message %s", "formatted") +func (a *Assertions) IsIncreasingf(object interface{}, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + IsIncreasingf(a.t, object, msg, args...) +} + +// IsNonDecreasing asserts that the collection is not decreasing +// +// a.IsNonDecreasing([]int{1, 1, 2}) +// a.IsNonDecreasing([]float{1, 2}) +// a.IsNonDecreasing([]string{"a", "b"}) +func (a *Assertions) IsNonDecreasing(object interface{}, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + IsNonDecreasing(a.t, object, msgAndArgs...) +} + +// IsNonDecreasingf asserts that the collection is not decreasing +// +// a.IsNonDecreasingf([]int{1, 1, 2}, "error message %s", "formatted") +// a.IsNonDecreasingf([]float{1, 2}, "error message %s", "formatted") +// a.IsNonDecreasingf([]string{"a", "b"}, "error message %s", "formatted") +func (a *Assertions) IsNonDecreasingf(object interface{}, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + IsNonDecreasingf(a.t, object, msg, args...) +} + +// IsNonIncreasing asserts that the collection is not increasing +// +// a.IsNonIncreasing([]int{2, 1, 1}) +// a.IsNonIncreasing([]float{2, 1}) +// a.IsNonIncreasing([]string{"b", "a"}) +func (a *Assertions) IsNonIncreasing(object interface{}, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + IsNonIncreasing(a.t, object, msgAndArgs...) +} + +// IsNonIncreasingf asserts that the collection is not increasing +// +// a.IsNonIncreasingf([]int{2, 1, 1}, "error message %s", "formatted") +// a.IsNonIncreasingf([]float{2, 1}, "error message %s", "formatted") +// a.IsNonIncreasingf([]string{"b", "a"}, "error message %s", "formatted") +func (a *Assertions) IsNonIncreasingf(object interface{}, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + IsNonIncreasingf(a.t, object, msg, args...) +} + // IsType asserts that the specified objects are of the same type. func (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAndArgs ...interface{}) { if h, ok := a.t.(tHelper); ok { @@ -707,7 +863,7 @@ func (a *Assertions) LessOrEqualf(e1 interface{}, e2 interface{}, msg string, ar // Lessf asserts that the first element is less than the second // // a.Lessf(1, 2, "error message %s", "formatted") -// a.Lessf(float64(1, "error message %s", "formatted"), float64(2)) +// a.Lessf(float64(1), float64(2), "error message %s", "formatted") // a.Lessf("a", "b", "error message %s", "formatted") func (a *Assertions) Lessf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { @@ -716,6 +872,28 @@ func (a *Assertions) Lessf(e1 interface{}, e2 interface{}, msg string, args ...i Lessf(a.t, e1, e2, msg, args...) } +// Negative asserts that the specified element is negative +// +// a.Negative(-1) +// a.Negative(-1.23) +func (a *Assertions) Negative(e interface{}, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + Negative(a.t, e, msgAndArgs...) +} + +// Negativef asserts that the specified element is negative +// +// a.Negativef(-1, "error message %s", "formatted") +// a.Negativef(-1.23, "error message %s", "formatted") +func (a *Assertions) Negativef(e interface{}, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + Negativef(a.t, e, msg, args...) +} + // Never asserts that the given condition doesn't satisfy in waitFor time, // periodically checking the target function each tick. // @@ -885,6 +1063,26 @@ func (a *Assertions) NotEqual(expected interface{}, actual interface{}, msgAndAr NotEqual(a.t, expected, actual, msgAndArgs...) } +// NotEqualValues asserts that two objects are not equal even when converted to the same type +// +// a.NotEqualValues(obj1, obj2) +func (a *Assertions) NotEqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + NotEqualValues(a.t, expected, actual, msgAndArgs...) +} + +// NotEqualValuesf asserts that two objects are not equal even when converted to the same type +// +// a.NotEqualValuesf(obj1, obj2, "error message %s", "formatted") +func (a *Assertions) NotEqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + NotEqualValuesf(a.t, expected, actual, msg, args...) +} + // NotEqualf asserts that the specified values are NOT equal. // // a.NotEqualf(obj1, obj2, "error message %s", "formatted") @@ -898,6 +1096,24 @@ func (a *Assertions) NotEqualf(expected interface{}, actual interface{}, msg str NotEqualf(a.t, expected, actual, msg, args...) } +// NotErrorIs asserts that at none of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + NotErrorIs(a.t, err, target, msgAndArgs...) +} + +// NotErrorIsf asserts that at none of the errors in err's chain matches target. +// This is a wrapper for errors.Is. +func (a *Assertions) NotErrorIsf(err error, target error, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + NotErrorIsf(a.t, err, target, msg, args...) +} + // NotNil asserts that the specified object is not nil. // // a.NotNil(err) @@ -951,7 +1167,7 @@ func (a *Assertions) NotRegexp(rx interface{}, str interface{}, msgAndArgs ...in // NotRegexpf asserts that a specified regexp does not match a string. // -// a.NotRegexpf(regexp.MustCompile("starts", "error message %s", "formatted"), "it's starting") +// a.NotRegexpf(regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted") // a.NotRegexpf("^start", "it's not starting", "error message %s", "formatted") func (a *Assertions) NotRegexpf(rx interface{}, str interface{}, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { @@ -1090,6 +1306,28 @@ func (a *Assertions) Panicsf(f assert.PanicTestFunc, msg string, args ...interfa Panicsf(a.t, f, msg, args...) } +// Positive asserts that the specified element is positive +// +// a.Positive(1) +// a.Positive(1.23) +func (a *Assertions) Positive(e interface{}, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + Positive(a.t, e, msgAndArgs...) +} + +// Positivef asserts that the specified element is positive +// +// a.Positivef(1, "error message %s", "formatted") +// a.Positivef(1.23, "error message %s", "formatted") +func (a *Assertions) Positivef(e interface{}, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + Positivef(a.t, e, msg, args...) +} + // Regexp asserts that a specified regexp matches a string. // // a.Regexp(regexp.MustCompile("start"), "it's starting") @@ -1103,7 +1341,7 @@ func (a *Assertions) Regexp(rx interface{}, str interface{}, msgAndArgs ...inter // Regexpf asserts that a specified regexp matches a string. // -// a.Regexpf(regexp.MustCompile("start", "error message %s", "formatted"), "it's starting") +// a.Regexpf(regexp.MustCompile("start"), "it's starting", "error message %s", "formatted") // a.Regexpf("start...$", "it's not starting", "error message %s", "formatted") func (a *Assertions) Regexpf(rx interface{}, str interface{}, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { diff --git a/vendor/golang.org/x/sys/LICENSE b/vendor/golang.org/x/sys/LICENSE new file mode 100644 index 000000000..2a7cf70da --- /dev/null +++ b/vendor/golang.org/x/sys/LICENSE @@ -0,0 +1,27 @@ +Copyright 2009 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/sys/PATENTS b/vendor/golang.org/x/sys/PATENTS new file mode 100644 index 000000000..733099041 --- /dev/null +++ b/vendor/golang.org/x/sys/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/sys/windows/aliases.go b/vendor/golang.org/x/sys/windows/aliases.go new file mode 100644 index 000000000..16f90560a --- /dev/null +++ b/vendor/golang.org/x/sys/windows/aliases.go @@ -0,0 +1,12 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build windows + +package windows + +import "syscall" + +type Errno = syscall.Errno +type SysProcAttr = syscall.SysProcAttr diff --git a/vendor/golang.org/x/sys/windows/dll_windows.go b/vendor/golang.org/x/sys/windows/dll_windows.go new file mode 100644 index 000000000..115341fba --- /dev/null +++ b/vendor/golang.org/x/sys/windows/dll_windows.go @@ -0,0 +1,416 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +import ( + "sync" + "sync/atomic" + "syscall" + "unsafe" +) + +// We need to use LoadLibrary and GetProcAddress from the Go runtime, because +// the these symbols are loaded by the system linker and are required to +// dynamically load additional symbols. Note that in the Go runtime, these +// return syscall.Handle and syscall.Errno, but these are the same, in fact, +// as windows.Handle and windows.Errno, and we intend to keep these the same. + +//go:linkname syscall_loadlibrary syscall.loadlibrary +func syscall_loadlibrary(filename *uint16) (handle Handle, err Errno) + +//go:linkname syscall_getprocaddress syscall.getprocaddress +func syscall_getprocaddress(handle Handle, procname *uint8) (proc uintptr, err Errno) + +// DLLError describes reasons for DLL load failures. +type DLLError struct { + Err error + ObjName string + Msg string +} + +func (e *DLLError) Error() string { return e.Msg } + +func (e *DLLError) Unwrap() error { return e.Err } + +// A DLL implements access to a single DLL. +type DLL struct { + Name string + Handle Handle +} + +// LoadDLL loads DLL file into memory. +// +// Warning: using LoadDLL without an absolute path name is subject to +// DLL preloading attacks. To safely load a system DLL, use LazyDLL +// with System set to true, or use LoadLibraryEx directly. +func LoadDLL(name string) (dll *DLL, err error) { + namep, err := UTF16PtrFromString(name) + if err != nil { + return nil, err + } + h, e := syscall_loadlibrary(namep) + if e != 0 { + return nil, &DLLError{ + Err: e, + ObjName: name, + Msg: "Failed to load " + name + ": " + e.Error(), + } + } + d := &DLL{ + Name: name, + Handle: h, + } + return d, nil +} + +// MustLoadDLL is like LoadDLL but panics if load operation failes. +func MustLoadDLL(name string) *DLL { + d, e := LoadDLL(name) + if e != nil { + panic(e) + } + return d +} + +// FindProc searches DLL d for procedure named name and returns *Proc +// if found. It returns an error if search fails. +func (d *DLL) FindProc(name string) (proc *Proc, err error) { + namep, err := BytePtrFromString(name) + if err != nil { + return nil, err + } + a, e := syscall_getprocaddress(d.Handle, namep) + if e != 0 { + return nil, &DLLError{ + Err: e, + ObjName: name, + Msg: "Failed to find " + name + " procedure in " + d.Name + ": " + e.Error(), + } + } + p := &Proc{ + Dll: d, + Name: name, + addr: a, + } + return p, nil +} + +// MustFindProc is like FindProc but panics if search fails. +func (d *DLL) MustFindProc(name string) *Proc { + p, e := d.FindProc(name) + if e != nil { + panic(e) + } + return p +} + +// FindProcByOrdinal searches DLL d for procedure by ordinal and returns *Proc +// if found. It returns an error if search fails. +func (d *DLL) FindProcByOrdinal(ordinal uintptr) (proc *Proc, err error) { + a, e := GetProcAddressByOrdinal(d.Handle, ordinal) + name := "#" + itoa(int(ordinal)) + if e != nil { + return nil, &DLLError{ + Err: e, + ObjName: name, + Msg: "Failed to find " + name + " procedure in " + d.Name + ": " + e.Error(), + } + } + p := &Proc{ + Dll: d, + Name: name, + addr: a, + } + return p, nil +} + +// MustFindProcByOrdinal is like FindProcByOrdinal but panics if search fails. +func (d *DLL) MustFindProcByOrdinal(ordinal uintptr) *Proc { + p, e := d.FindProcByOrdinal(ordinal) + if e != nil { + panic(e) + } + return p +} + +// Release unloads DLL d from memory. +func (d *DLL) Release() (err error) { + return FreeLibrary(d.Handle) +} + +// A Proc implements access to a procedure inside a DLL. +type Proc struct { + Dll *DLL + Name string + addr uintptr +} + +// Addr returns the address of the procedure represented by p. +// The return value can be passed to Syscall to run the procedure. +func (p *Proc) Addr() uintptr { + return p.addr +} + +//go:uintptrescapes + +// Call executes procedure p with arguments a. It will panic, if more than 15 arguments +// are supplied. +// +// The returned error is always non-nil, constructed from the result of GetLastError. +// Callers must inspect the primary return value to decide whether an error occurred +// (according to the semantics of the specific function being called) before consulting +// the error. The error will be guaranteed to contain windows.Errno. +func (p *Proc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { + switch len(a) { + case 0: + return syscall.Syscall(p.Addr(), uintptr(len(a)), 0, 0, 0) + case 1: + return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], 0, 0) + case 2: + return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], 0) + case 3: + return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], a[2]) + case 4: + return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], 0, 0) + case 5: + return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], 0) + case 6: + return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5]) + case 7: + return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], 0, 0) + case 8: + return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], 0) + case 9: + return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]) + case 10: + return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], 0, 0) + case 11: + return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], 0) + case 12: + return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]) + case 13: + return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], 0, 0) + case 14: + return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], 0) + case 15: + return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]) + default: + panic("Call " + p.Name + " with too many arguments " + itoa(len(a)) + ".") + } +} + +// A LazyDLL implements access to a single DLL. +// It will delay the load of the DLL until the first +// call to its Handle method or to one of its +// LazyProc's Addr method. +type LazyDLL struct { + Name string + + // System determines whether the DLL must be loaded from the + // Windows System directory, bypassing the normal DLL search + // path. + System bool + + mu sync.Mutex + dll *DLL // non nil once DLL is loaded +} + +// Load loads DLL file d.Name into memory. It returns an error if fails. +// Load will not try to load DLL, if it is already loaded into memory. +func (d *LazyDLL) Load() error { + // Non-racy version of: + // if d.dll != nil { + if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll))) != nil { + return nil + } + d.mu.Lock() + defer d.mu.Unlock() + if d.dll != nil { + return nil + } + + // kernel32.dll is special, since it's where LoadLibraryEx comes from. + // The kernel already special-cases its name, so it's always + // loaded from system32. + var dll *DLL + var err error + if d.Name == "kernel32.dll" { + dll, err = LoadDLL(d.Name) + } else { + dll, err = loadLibraryEx(d.Name, d.System) + } + if err != nil { + return err + } + + // Non-racy version of: + // d.dll = dll + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll)), unsafe.Pointer(dll)) + return nil +} + +// mustLoad is like Load but panics if search fails. +func (d *LazyDLL) mustLoad() { + e := d.Load() + if e != nil { + panic(e) + } +} + +// Handle returns d's module handle. +func (d *LazyDLL) Handle() uintptr { + d.mustLoad() + return uintptr(d.dll.Handle) +} + +// NewProc returns a LazyProc for accessing the named procedure in the DLL d. +func (d *LazyDLL) NewProc(name string) *LazyProc { + return &LazyProc{l: d, Name: name} +} + +// NewLazyDLL creates new LazyDLL associated with DLL file. +func NewLazyDLL(name string) *LazyDLL { + return &LazyDLL{Name: name} +} + +// NewLazySystemDLL is like NewLazyDLL, but will only +// search Windows System directory for the DLL if name is +// a base name (like "advapi32.dll"). +func NewLazySystemDLL(name string) *LazyDLL { + return &LazyDLL{Name: name, System: true} +} + +// A LazyProc implements access to a procedure inside a LazyDLL. +// It delays the lookup until the Addr method is called. +type LazyProc struct { + Name string + + mu sync.Mutex + l *LazyDLL + proc *Proc +} + +// Find searches DLL for procedure named p.Name. It returns +// an error if search fails. Find will not search procedure, +// if it is already found and loaded into memory. +func (p *LazyProc) Find() error { + // Non-racy version of: + // if p.proc == nil { + if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc))) == nil { + p.mu.Lock() + defer p.mu.Unlock() + if p.proc == nil { + e := p.l.Load() + if e != nil { + return e + } + proc, e := p.l.dll.FindProc(p.Name) + if e != nil { + return e + } + // Non-racy version of: + // p.proc = proc + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc)), unsafe.Pointer(proc)) + } + } + return nil +} + +// mustFind is like Find but panics if search fails. +func (p *LazyProc) mustFind() { + e := p.Find() + if e != nil { + panic(e) + } +} + +// Addr returns the address of the procedure represented by p. +// The return value can be passed to Syscall to run the procedure. +// It will panic if the procedure cannot be found. +func (p *LazyProc) Addr() uintptr { + p.mustFind() + return p.proc.Addr() +} + +//go:uintptrescapes + +// Call executes procedure p with arguments a. It will panic, if more than 15 arguments +// are supplied. It will also panic if the procedure cannot be found. +// +// The returned error is always non-nil, constructed from the result of GetLastError. +// Callers must inspect the primary return value to decide whether an error occurred +// (according to the semantics of the specific function being called) before consulting +// the error. The error will be guaranteed to contain windows.Errno. +func (p *LazyProc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { + p.mustFind() + return p.proc.Call(a...) +} + +var canDoSearchSystem32Once struct { + sync.Once + v bool +} + +func initCanDoSearchSystem32() { + // https://msdn.microsoft.com/en-us/library/ms684179(v=vs.85).aspx says: + // "Windows 7, Windows Server 2008 R2, Windows Vista, and Windows + // Server 2008: The LOAD_LIBRARY_SEARCH_* flags are available on + // systems that have KB2533623 installed. To determine whether the + // flags are available, use GetProcAddress to get the address of the + // AddDllDirectory, RemoveDllDirectory, or SetDefaultDllDirectories + // function. If GetProcAddress succeeds, the LOAD_LIBRARY_SEARCH_* + // flags can be used with LoadLibraryEx." + canDoSearchSystem32Once.v = (modkernel32.NewProc("AddDllDirectory").Find() == nil) +} + +func canDoSearchSystem32() bool { + canDoSearchSystem32Once.Do(initCanDoSearchSystem32) + return canDoSearchSystem32Once.v +} + +func isBaseName(name string) bool { + for _, c := range name { + if c == ':' || c == '/' || c == '\\' { + return false + } + } + return true +} + +// loadLibraryEx wraps the Windows LoadLibraryEx function. +// +// See https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx +// +// If name is not an absolute path, LoadLibraryEx searches for the DLL +// in a variety of automatic locations unless constrained by flags. +// See: https://msdn.microsoft.com/en-us/library/ff919712%28VS.85%29.aspx +func loadLibraryEx(name string, system bool) (*DLL, error) { + loadDLL := name + var flags uintptr + if system { + if canDoSearchSystem32() { + flags = LOAD_LIBRARY_SEARCH_SYSTEM32 + } else if isBaseName(name) { + // WindowsXP or unpatched Windows machine + // trying to load "foo.dll" out of the system + // folder, but LoadLibraryEx doesn't support + // that yet on their system, so emulate it. + systemdir, err := GetSystemDirectory() + if err != nil { + return nil, err + } + loadDLL = systemdir + "\\" + name + } + } + h, err := LoadLibraryEx(loadDLL, 0, flags) + if err != nil { + return nil, err + } + return &DLL{Name: name, Handle: h}, nil +} + +type errString string + +func (s errString) Error() string { return string(s) } diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go new file mode 100644 index 000000000..d4577a423 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/env_windows.go @@ -0,0 +1,57 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Windows environment variables. + +package windows + +import ( + "syscall" + "unsafe" +) + +func Getenv(key string) (value string, found bool) { + return syscall.Getenv(key) +} + +func Setenv(key, value string) error { + return syscall.Setenv(key, value) +} + +func Clearenv() { + syscall.Clearenv() +} + +func Environ() []string { + return syscall.Environ() +} + +// Returns a default environment associated with the token, rather than the current +// process. If inheritExisting is true, then this environment also inherits the +// environment of the current process. +func (token Token) Environ(inheritExisting bool) (env []string, err error) { + var block *uint16 + err = CreateEnvironmentBlock(&block, token, inheritExisting) + if err != nil { + return nil, err + } + defer DestroyEnvironmentBlock(block) + size := unsafe.Sizeof(*block) + for *block != 0 { + // find NUL terminator + end := unsafe.Pointer(block) + for *(*uint16)(end) != 0 { + end = unsafe.Add(end, size) + } + + entry := unsafe.Slice(block, (uintptr(end)-uintptr(unsafe.Pointer(block)))/size) + env = append(env, UTF16ToString(entry)) + block = (*uint16)(unsafe.Add(end, size)) + } + return env, nil +} + +func Unsetenv(key string) error { + return syscall.Unsetenv(key) +} diff --git a/vendor/golang.org/x/sys/windows/eventlog.go b/vendor/golang.org/x/sys/windows/eventlog.go new file mode 100644 index 000000000..6c366955d --- /dev/null +++ b/vendor/golang.org/x/sys/windows/eventlog.go @@ -0,0 +1,20 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build windows + +package windows + +const ( + EVENTLOG_SUCCESS = 0 + EVENTLOG_ERROR_TYPE = 1 + EVENTLOG_WARNING_TYPE = 2 + EVENTLOG_INFORMATION_TYPE = 4 + EVENTLOG_AUDIT_SUCCESS = 8 + EVENTLOG_AUDIT_FAILURE = 16 +) + +//sys RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW +//sys DeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource +//sys ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW diff --git a/vendor/golang.org/x/sys/windows/exec_windows.go b/vendor/golang.org/x/sys/windows/exec_windows.go new file mode 100644 index 000000000..9cabbb694 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/exec_windows.go @@ -0,0 +1,248 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Fork, exec, wait, etc. + +package windows + +import ( + errorspkg "errors" + "unsafe" +) + +// EscapeArg rewrites command line argument s as prescribed +// in http://msdn.microsoft.com/en-us/library/ms880421. +// This function returns "" (2 double quotes) if s is empty. +// Alternatively, these transformations are done: +// - every back slash (\) is doubled, but only if immediately +// followed by double quote ("); +// - every double quote (") is escaped by back slash (\); +// - finally, s is wrapped with double quotes (arg -> "arg"), +// but only if there is space or tab inside s. +func EscapeArg(s string) string { + if len(s) == 0 { + return `""` + } + n := len(s) + hasSpace := false + for i := 0; i < len(s); i++ { + switch s[i] { + case '"', '\\': + n++ + case ' ', '\t': + hasSpace = true + } + } + if hasSpace { + n += 2 // Reserve space for quotes. + } + if n == len(s) { + return s + } + + qs := make([]byte, n) + j := 0 + if hasSpace { + qs[j] = '"' + j++ + } + slashes := 0 + for i := 0; i < len(s); i++ { + switch s[i] { + default: + slashes = 0 + qs[j] = s[i] + case '\\': + slashes++ + qs[j] = s[i] + case '"': + for ; slashes > 0; slashes-- { + qs[j] = '\\' + j++ + } + qs[j] = '\\' + j++ + qs[j] = s[i] + } + j++ + } + if hasSpace { + for ; slashes > 0; slashes-- { + qs[j] = '\\' + j++ + } + qs[j] = '"' + j++ + } + return string(qs[:j]) +} + +// ComposeCommandLine escapes and joins the given arguments suitable for use as a Windows command line, +// in CreateProcess's CommandLine argument, CreateService/ChangeServiceConfig's BinaryPathName argument, +// or any program that uses CommandLineToArgv. +func ComposeCommandLine(args []string) string { + if len(args) == 0 { + return "" + } + + // Per https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw: + // “This function accepts command lines that contain a program name; the + // program name can be enclosed in quotation marks or not.” + // + // Unfortunately, it provides no means of escaping interior quotation marks + // within that program name, and we have no way to report them here. + prog := args[0] + mustQuote := len(prog) == 0 + for i := 0; i < len(prog); i++ { + c := prog[i] + if c <= ' ' || (c == '"' && i == 0) { + // Force quotes for not only the ASCII space and tab as described in the + // MSDN article, but also ASCII control characters. + // The documentation for CommandLineToArgvW doesn't say what happens when + // the first argument is not a valid program name, but it empirically + // seems to drop unquoted control characters. + mustQuote = true + break + } + } + var commandLine []byte + if mustQuote { + commandLine = make([]byte, 0, len(prog)+2) + commandLine = append(commandLine, '"') + for i := 0; i < len(prog); i++ { + c := prog[i] + if c == '"' { + // This quote would interfere with our surrounding quotes. + // We have no way to report an error, so just strip out + // the offending character instead. + continue + } + commandLine = append(commandLine, c) + } + commandLine = append(commandLine, '"') + } else { + if len(args) == 1 { + // args[0] is a valid command line representing itself. + // No need to allocate a new slice or string for it. + return prog + } + commandLine = []byte(prog) + } + + for _, arg := range args[1:] { + commandLine = append(commandLine, ' ') + // TODO(bcmills): since we're already appending to a slice, it would be nice + // to avoid the intermediate allocations of EscapeArg. + // Perhaps we can factor out an appendEscapedArg function. + commandLine = append(commandLine, EscapeArg(arg)...) + } + return string(commandLine) +} + +// DecomposeCommandLine breaks apart its argument command line into unescaped parts using CommandLineToArgv, +// as gathered from GetCommandLine, QUERY_SERVICE_CONFIG's BinaryPathName argument, or elsewhere that +// command lines are passed around. +// DecomposeCommandLine returns an error if commandLine contains NUL. +func DecomposeCommandLine(commandLine string) ([]string, error) { + if len(commandLine) == 0 { + return []string{}, nil + } + utf16CommandLine, err := UTF16FromString(commandLine) + if err != nil { + return nil, errorspkg.New("string with NUL passed to DecomposeCommandLine") + } + var argc int32 + argv, err := commandLineToArgv(&utf16CommandLine[0], &argc) + if err != nil { + return nil, err + } + defer LocalFree(Handle(unsafe.Pointer(argv))) + + var args []string + for _, p := range unsafe.Slice(argv, argc) { + args = append(args, UTF16PtrToString(p)) + } + return args, nil +} + +// CommandLineToArgv parses a Unicode command line string and sets +// argc to the number of parsed arguments. +// +// The returned memory should be freed using a single call to LocalFree. +// +// Note that although the return type of CommandLineToArgv indicates 8192 +// entries of up to 8192 characters each, the actual count of parsed arguments +// may exceed 8192, and the documentation for CommandLineToArgvW does not mention +// any bound on the lengths of the individual argument strings. +// (See https://go.dev/issue/63236.) +func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { + argp, err := commandLineToArgv(cmd, argc) + argv = (*[8192]*[8192]uint16)(unsafe.Pointer(argp)) + return argv, err +} + +func CloseOnExec(fd Handle) { + SetHandleInformation(Handle(fd), HANDLE_FLAG_INHERIT, 0) +} + +// FullPath retrieves the full path of the specified file. +func FullPath(name string) (path string, err error) { + p, err := UTF16PtrFromString(name) + if err != nil { + return "", err + } + n := uint32(100) + for { + buf := make([]uint16, n) + n, err = GetFullPathName(p, uint32(len(buf)), &buf[0], nil) + if err != nil { + return "", err + } + if n <= uint32(len(buf)) { + return UTF16ToString(buf[:n]), nil + } + } +} + +// NewProcThreadAttributeList allocates a new ProcThreadAttributeListContainer, with the requested maximum number of attributes. +func NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeListContainer, error) { + var size uintptr + err := initializeProcThreadAttributeList(nil, maxAttrCount, 0, &size) + if err != ERROR_INSUFFICIENT_BUFFER { + if err == nil { + return nil, errorspkg.New("unable to query buffer size from InitializeProcThreadAttributeList") + } + return nil, err + } + alloc, err := LocalAlloc(LMEM_FIXED, uint32(size)) + if err != nil { + return nil, err + } + // size is guaranteed to be ≥1 by InitializeProcThreadAttributeList. + al := &ProcThreadAttributeListContainer{data: (*ProcThreadAttributeList)(unsafe.Pointer(alloc))} + err = initializeProcThreadAttributeList(al.data, maxAttrCount, 0, &size) + if err != nil { + return nil, err + } + return al, err +} + +// Update modifies the ProcThreadAttributeList using UpdateProcThreadAttribute. +func (al *ProcThreadAttributeListContainer) Update(attribute uintptr, value unsafe.Pointer, size uintptr) error { + al.pointers = append(al.pointers, value) + return updateProcThreadAttribute(al.data, 0, attribute, value, size, nil, nil) +} + +// Delete frees ProcThreadAttributeList's resources. +func (al *ProcThreadAttributeListContainer) Delete() { + deleteProcThreadAttributeList(al.data) + LocalFree(Handle(unsafe.Pointer(al.data))) + al.data = nil + al.pointers = nil +} + +// List returns the actual ProcThreadAttributeList to be passed to StartupInfoEx. +func (al *ProcThreadAttributeListContainer) List() *ProcThreadAttributeList { + return al.data +} diff --git a/vendor/golang.org/x/sys/windows/memory_windows.go b/vendor/golang.org/x/sys/windows/memory_windows.go new file mode 100644 index 000000000..6dc0920a8 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/memory_windows.go @@ -0,0 +1,48 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +const ( + MEM_COMMIT = 0x00001000 + MEM_RESERVE = 0x00002000 + MEM_DECOMMIT = 0x00004000 + MEM_RELEASE = 0x00008000 + MEM_RESET = 0x00080000 + MEM_TOP_DOWN = 0x00100000 + MEM_WRITE_WATCH = 0x00200000 + MEM_PHYSICAL = 0x00400000 + MEM_RESET_UNDO = 0x01000000 + MEM_LARGE_PAGES = 0x20000000 + + PAGE_NOACCESS = 0x00000001 + PAGE_READONLY = 0x00000002 + PAGE_READWRITE = 0x00000004 + PAGE_WRITECOPY = 0x00000008 + PAGE_EXECUTE = 0x00000010 + PAGE_EXECUTE_READ = 0x00000020 + PAGE_EXECUTE_READWRITE = 0x00000040 + PAGE_EXECUTE_WRITECOPY = 0x00000080 + PAGE_GUARD = 0x00000100 + PAGE_NOCACHE = 0x00000200 + PAGE_WRITECOMBINE = 0x00000400 + PAGE_TARGETS_INVALID = 0x40000000 + PAGE_TARGETS_NO_UPDATE = 0x40000000 + + QUOTA_LIMITS_HARDWS_MIN_DISABLE = 0x00000002 + QUOTA_LIMITS_HARDWS_MIN_ENABLE = 0x00000001 + QUOTA_LIMITS_HARDWS_MAX_DISABLE = 0x00000008 + QUOTA_LIMITS_HARDWS_MAX_ENABLE = 0x00000004 +) + +type MemoryBasicInformation struct { + BaseAddress uintptr + AllocationBase uintptr + AllocationProtect uint32 + PartitionId uint16 + RegionSize uintptr + State uint32 + Protect uint32 + Type uint32 +} diff --git a/vendor/golang.org/x/sys/windows/mkerrors.bash b/vendor/golang.org/x/sys/windows/mkerrors.bash new file mode 100644 index 000000000..58e0188fb --- /dev/null +++ b/vendor/golang.org/x/sys/windows/mkerrors.bash @@ -0,0 +1,70 @@ +#!/bin/bash + +# Copyright 2019 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +set -e +shopt -s nullglob + +winerror="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/shared/winerror.h | sort -Vr | head -n 1)" +[[ -n $winerror ]] || { echo "Unable to find winerror.h" >&2; exit 1; } +ntstatus="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/shared/ntstatus.h | sort -Vr | head -n 1)" +[[ -n $ntstatus ]] || { echo "Unable to find ntstatus.h" >&2; exit 1; } + +declare -A errors + +{ + echo "// Code generated by 'mkerrors.bash'; DO NOT EDIT." + echo + echo "package windows" + echo "import \"syscall\"" + echo "const (" + + while read -r line; do + unset vtype + if [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?([A-Z][A-Z0-9_]+k?)\)? ]]; then + key="${BASH_REMATCH[1]}" + value="${BASH_REMATCH[3]}" + elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?((0x)?[0-9A-Fa-f]+)L?\)? ]]; then + key="${BASH_REMATCH[1]}" + value="${BASH_REMATCH[3]}" + vtype="${BASH_REMATCH[2]}" + elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +\(\(([A-Z]+)\)((0x)?[0-9A-Fa-f]+)L?\) ]]; then + key="${BASH_REMATCH[1]}" + value="${BASH_REMATCH[3]}" + vtype="${BASH_REMATCH[2]}" + else + continue + fi + [[ -n $key && -n $value ]] || continue + [[ -z ${errors["$key"]} ]] || continue + errors["$key"]="$value" + if [[ -v vtype ]]; then + if [[ $key == FACILITY_* || $key == NO_ERROR ]]; then + vtype="" + elif [[ $vtype == *HANDLE* || $vtype == *HRESULT* ]]; then + vtype="Handle" + else + vtype="syscall.Errno" + fi + last_vtype="$vtype" + else + vtype="" + if [[ $last_vtype == Handle && $value == NO_ERROR ]]; then + value="S_OK" + elif [[ $last_vtype == syscall.Errno && $value == NO_ERROR ]]; then + value="ERROR_SUCCESS" + fi + fi + + echo "$key $vtype = $value" + done < "$winerror" + + while read -r line; do + [[ $line =~ ^#define\ (STATUS_[^\s]+)\ +\(\(NTSTATUS\)((0x)?[0-9a-fA-F]+)L?\) ]] || continue + echo "${BASH_REMATCH[1]} NTStatus = ${BASH_REMATCH[2]}" + done < "$ntstatus" + + echo ")" +} | gofmt > "zerrors_windows.go" diff --git a/vendor/golang.org/x/sys/windows/mkknownfolderids.bash b/vendor/golang.org/x/sys/windows/mkknownfolderids.bash new file mode 100644 index 000000000..ab8924e93 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/mkknownfolderids.bash @@ -0,0 +1,27 @@ +#!/bin/bash + +# Copyright 2019 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +set -e +shopt -s nullglob + +knownfolders="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/um/KnownFolders.h | sort -Vr | head -n 1)" +[[ -n $knownfolders ]] || { echo "Unable to find KnownFolders.h" >&2; exit 1; } + +{ + echo "// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT." + echo + echo "package windows" + echo "type KNOWNFOLDERID GUID" + echo "var (" + while read -r line; do + [[ $line =~ DEFINE_KNOWN_FOLDER\((FOLDERID_[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+)\) ]] || continue + printf "%s = &KNOWNFOLDERID{0x%08x, 0x%04x, 0x%04x, [8]byte{0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x}}\n" \ + "${BASH_REMATCH[1]}" $(( "${BASH_REMATCH[2]}" )) $(( "${BASH_REMATCH[3]}" )) $(( "${BASH_REMATCH[4]}" )) \ + $(( "${BASH_REMATCH[5]}" )) $(( "${BASH_REMATCH[6]}" )) $(( "${BASH_REMATCH[7]}" )) $(( "${BASH_REMATCH[8]}" )) \ + $(( "${BASH_REMATCH[9]}" )) $(( "${BASH_REMATCH[10]}" )) $(( "${BASH_REMATCH[11]}" )) $(( "${BASH_REMATCH[12]}" )) + done < "$knownfolders" + echo ")" +} | gofmt > "zknownfolderids_windows.go" diff --git a/vendor/golang.org/x/sys/windows/mksyscall.go b/vendor/golang.org/x/sys/windows/mksyscall.go new file mode 100644 index 000000000..dbcdb090c --- /dev/null +++ b/vendor/golang.org/x/sys/windows/mksyscall.go @@ -0,0 +1,9 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build generate + +package windows + +//go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go setupapi_windows.go diff --git a/vendor/golang.org/x/sys/windows/race.go b/vendor/golang.org/x/sys/windows/race.go new file mode 100644 index 000000000..0f1bdc386 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/race.go @@ -0,0 +1,30 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build windows && race + +package windows + +import ( + "runtime" + "unsafe" +) + +const raceenabled = true + +func raceAcquire(addr unsafe.Pointer) { + runtime.RaceAcquire(addr) +} + +func raceReleaseMerge(addr unsafe.Pointer) { + runtime.RaceReleaseMerge(addr) +} + +func raceReadRange(addr unsafe.Pointer, len int) { + runtime.RaceReadRange(addr, len) +} + +func raceWriteRange(addr unsafe.Pointer, len int) { + runtime.RaceWriteRange(addr, len) +} diff --git a/vendor/golang.org/x/sys/windows/race0.go b/vendor/golang.org/x/sys/windows/race0.go new file mode 100644 index 000000000..0c78da78b --- /dev/null +++ b/vendor/golang.org/x/sys/windows/race0.go @@ -0,0 +1,25 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build windows && !race + +package windows + +import ( + "unsafe" +) + +const raceenabled = false + +func raceAcquire(addr unsafe.Pointer) { +} + +func raceReleaseMerge(addr unsafe.Pointer) { +} + +func raceReadRange(addr unsafe.Pointer, len int) { +} + +func raceWriteRange(addr unsafe.Pointer, len int) { +} diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go new file mode 100644 index 000000000..b6e1ab76f --- /dev/null +++ b/vendor/golang.org/x/sys/windows/security_windows.go @@ -0,0 +1,1458 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +import ( + "syscall" + "unsafe" +) + +const ( + NameUnknown = 0 + NameFullyQualifiedDN = 1 + NameSamCompatible = 2 + NameDisplay = 3 + NameUniqueId = 6 + NameCanonical = 7 + NameUserPrincipal = 8 + NameCanonicalEx = 9 + NameServicePrincipal = 10 + NameDnsDomain = 12 +) + +// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. +// http://blogs.msdn.com/b/drnick/archive/2007/12/19/windows-and-upn-format-credentials.aspx +//sys TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.TranslateNameW +//sys GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.GetUserNameExW + +// TranslateAccountName converts a directory service +// object name from one format to another. +func TranslateAccountName(username string, from, to uint32, initSize int) (string, error) { + u, e := UTF16PtrFromString(username) + if e != nil { + return "", e + } + n := uint32(50) + for { + b := make([]uint16, n) + e = TranslateName(u, from, to, &b[0], &n) + if e == nil { + return UTF16ToString(b[:n]), nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return "", e + } + if n <= uint32(len(b)) { + return "", e + } + } +} + +const ( + // do not reorder + NetSetupUnknownStatus = iota + NetSetupUnjoined + NetSetupWorkgroupName + NetSetupDomainName +) + +type UserInfo10 struct { + Name *uint16 + Comment *uint16 + UsrComment *uint16 + FullName *uint16 +} + +//sys NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo +//sys NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation +//sys NetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree +//sys NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) = netapi32.NetUserEnum + +const ( + // do not reorder + SidTypeUser = 1 + iota + SidTypeGroup + SidTypeDomain + SidTypeAlias + SidTypeWellKnownGroup + SidTypeDeletedAccount + SidTypeInvalid + SidTypeUnknown + SidTypeComputer + SidTypeLabel +) + +type SidIdentifierAuthority struct { + Value [6]byte +} + +var ( + SECURITY_NULL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 0}} + SECURITY_WORLD_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 1}} + SECURITY_LOCAL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 2}} + SECURITY_CREATOR_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 3}} + SECURITY_NON_UNIQUE_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 4}} + SECURITY_NT_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 5}} + SECURITY_MANDATORY_LABEL_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 16}} +) + +const ( + SECURITY_NULL_RID = 0 + SECURITY_WORLD_RID = 0 + SECURITY_LOCAL_RID = 0 + SECURITY_CREATOR_OWNER_RID = 0 + SECURITY_CREATOR_GROUP_RID = 1 + SECURITY_DIALUP_RID = 1 + SECURITY_NETWORK_RID = 2 + SECURITY_BATCH_RID = 3 + SECURITY_INTERACTIVE_RID = 4 + SECURITY_LOGON_IDS_RID = 5 + SECURITY_SERVICE_RID = 6 + SECURITY_LOCAL_SYSTEM_RID = 18 + SECURITY_BUILTIN_DOMAIN_RID = 32 + SECURITY_PRINCIPAL_SELF_RID = 10 + SECURITY_CREATOR_OWNER_SERVER_RID = 0x2 + SECURITY_CREATOR_GROUP_SERVER_RID = 0x3 + SECURITY_LOGON_IDS_RID_COUNT = 0x3 + SECURITY_ANONYMOUS_LOGON_RID = 0x7 + SECURITY_PROXY_RID = 0x8 + SECURITY_ENTERPRISE_CONTROLLERS_RID = 0x9 + SECURITY_SERVER_LOGON_RID = SECURITY_ENTERPRISE_CONTROLLERS_RID + SECURITY_AUTHENTICATED_USER_RID = 0xb + SECURITY_RESTRICTED_CODE_RID = 0xc + SECURITY_NT_NON_UNIQUE_RID = 0x15 +) + +// Predefined domain-relative RIDs for local groups. +// See https://msdn.microsoft.com/en-us/library/windows/desktop/aa379649(v=vs.85).aspx +const ( + DOMAIN_ALIAS_RID_ADMINS = 0x220 + DOMAIN_ALIAS_RID_USERS = 0x221 + DOMAIN_ALIAS_RID_GUESTS = 0x222 + DOMAIN_ALIAS_RID_POWER_USERS = 0x223 + DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x224 + DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x225 + DOMAIN_ALIAS_RID_PRINT_OPS = 0x226 + DOMAIN_ALIAS_RID_BACKUP_OPS = 0x227 + DOMAIN_ALIAS_RID_REPLICATOR = 0x228 + DOMAIN_ALIAS_RID_RAS_SERVERS = 0x229 + DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 0x22a + DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x22b + DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x22c + DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 0x22d + DOMAIN_ALIAS_RID_MONITORING_USERS = 0x22e + DOMAIN_ALIAS_RID_LOGGING_USERS = 0x22f + DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS = 0x230 + DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS = 0x231 + DOMAIN_ALIAS_RID_DCOM_USERS = 0x232 + DOMAIN_ALIAS_RID_IUSERS = 0x238 + DOMAIN_ALIAS_RID_CRYPTO_OPERATORS = 0x239 + DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP = 0x23b + DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP = 0x23c + DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP = 0x23d + DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP = 0x23e +) + +//sys LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountSidW +//sys LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountNameW +//sys ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) = advapi32.ConvertSidToStringSidW +//sys ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) = advapi32.ConvertStringSidToSidW +//sys GetLengthSid(sid *SID) (len uint32) = advapi32.GetLengthSid +//sys CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) = advapi32.CopySid +//sys AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) = advapi32.AllocateAndInitializeSid +//sys createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) = advapi32.CreateWellKnownSid +//sys isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) = advapi32.IsWellKnownSid +//sys FreeSid(sid *SID) (err error) [failretval!=0] = advapi32.FreeSid +//sys EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) = advapi32.EqualSid +//sys getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) = advapi32.GetSidIdentifierAuthority +//sys getSidSubAuthorityCount(sid *SID) (count *uint8) = advapi32.GetSidSubAuthorityCount +//sys getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) = advapi32.GetSidSubAuthority +//sys isValidSid(sid *SID) (isValid bool) = advapi32.IsValidSid + +// The security identifier (SID) structure is a variable-length +// structure used to uniquely identify users or groups. +type SID struct{} + +// StringToSid converts a string-format security identifier +// SID into a valid, functional SID. +func StringToSid(s string) (*SID, error) { + var sid *SID + p, e := UTF16PtrFromString(s) + if e != nil { + return nil, e + } + e = ConvertStringSidToSid(p, &sid) + if e != nil { + return nil, e + } + defer LocalFree((Handle)(unsafe.Pointer(sid))) + return sid.Copy() +} + +// LookupSID retrieves a security identifier SID for the account +// and the name of the domain on which the account was found. +// System specify target computer to search. +func LookupSID(system, account string) (sid *SID, domain string, accType uint32, err error) { + if len(account) == 0 { + return nil, "", 0, syscall.EINVAL + } + acc, e := UTF16PtrFromString(account) + if e != nil { + return nil, "", 0, e + } + var sys *uint16 + if len(system) > 0 { + sys, e = UTF16PtrFromString(system) + if e != nil { + return nil, "", 0, e + } + } + n := uint32(50) + dn := uint32(50) + for { + b := make([]byte, n) + db := make([]uint16, dn) + sid = (*SID)(unsafe.Pointer(&b[0])) + e = LookupAccountName(sys, acc, sid, &n, &db[0], &dn, &accType) + if e == nil { + return sid, UTF16ToString(db), accType, nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return nil, "", 0, e + } + if n <= uint32(len(b)) { + return nil, "", 0, e + } + } +} + +// String converts SID to a string format suitable for display, storage, or transmission. +func (sid *SID) String() string { + var s *uint16 + e := ConvertSidToStringSid(sid, &s) + if e != nil { + return "" + } + defer LocalFree((Handle)(unsafe.Pointer(s))) + return UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:]) +} + +// Len returns the length, in bytes, of a valid security identifier SID. +func (sid *SID) Len() int { + return int(GetLengthSid(sid)) +} + +// Copy creates a duplicate of security identifier SID. +func (sid *SID) Copy() (*SID, error) { + b := make([]byte, sid.Len()) + sid2 := (*SID)(unsafe.Pointer(&b[0])) + e := CopySid(uint32(len(b)), sid2, sid) + if e != nil { + return nil, e + } + return sid2, nil +} + +// IdentifierAuthority returns the identifier authority of the SID. +func (sid *SID) IdentifierAuthority() SidIdentifierAuthority { + return *getSidIdentifierAuthority(sid) +} + +// SubAuthorityCount returns the number of sub-authorities in the SID. +func (sid *SID) SubAuthorityCount() uint8 { + return *getSidSubAuthorityCount(sid) +} + +// SubAuthority returns the sub-authority of the SID as specified by +// the index, which must be less than sid.SubAuthorityCount(). +func (sid *SID) SubAuthority(idx uint32) uint32 { + if idx >= uint32(sid.SubAuthorityCount()) { + panic("sub-authority index out of range") + } + return *getSidSubAuthority(sid, idx) +} + +// IsValid returns whether the SID has a valid revision and length. +func (sid *SID) IsValid() bool { + return isValidSid(sid) +} + +// Equals compares two SIDs for equality. +func (sid *SID) Equals(sid2 *SID) bool { + return EqualSid(sid, sid2) +} + +// IsWellKnown determines whether the SID matches the well-known sidType. +func (sid *SID) IsWellKnown(sidType WELL_KNOWN_SID_TYPE) bool { + return isWellKnownSid(sid, sidType) +} + +// LookupAccount retrieves the name of the account for this SID +// and the name of the first domain on which this SID is found. +// System specify target computer to search for. +func (sid *SID) LookupAccount(system string) (account, domain string, accType uint32, err error) { + var sys *uint16 + if len(system) > 0 { + sys, err = UTF16PtrFromString(system) + if err != nil { + return "", "", 0, err + } + } + n := uint32(50) + dn := uint32(50) + for { + b := make([]uint16, n) + db := make([]uint16, dn) + e := LookupAccountSid(sys, sid, &b[0], &n, &db[0], &dn, &accType) + if e == nil { + return UTF16ToString(b), UTF16ToString(db), accType, nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return "", "", 0, e + } + if n <= uint32(len(b)) { + return "", "", 0, e + } + } +} + +// Various types of pre-specified SIDs that can be synthesized and compared at runtime. +type WELL_KNOWN_SID_TYPE uint32 + +const ( + WinNullSid = 0 + WinWorldSid = 1 + WinLocalSid = 2 + WinCreatorOwnerSid = 3 + WinCreatorGroupSid = 4 + WinCreatorOwnerServerSid = 5 + WinCreatorGroupServerSid = 6 + WinNtAuthoritySid = 7 + WinDialupSid = 8 + WinNetworkSid = 9 + WinBatchSid = 10 + WinInteractiveSid = 11 + WinServiceSid = 12 + WinAnonymousSid = 13 + WinProxySid = 14 + WinEnterpriseControllersSid = 15 + WinSelfSid = 16 + WinAuthenticatedUserSid = 17 + WinRestrictedCodeSid = 18 + WinTerminalServerSid = 19 + WinRemoteLogonIdSid = 20 + WinLogonIdsSid = 21 + WinLocalSystemSid = 22 + WinLocalServiceSid = 23 + WinNetworkServiceSid = 24 + WinBuiltinDomainSid = 25 + WinBuiltinAdministratorsSid = 26 + WinBuiltinUsersSid = 27 + WinBuiltinGuestsSid = 28 + WinBuiltinPowerUsersSid = 29 + WinBuiltinAccountOperatorsSid = 30 + WinBuiltinSystemOperatorsSid = 31 + WinBuiltinPrintOperatorsSid = 32 + WinBuiltinBackupOperatorsSid = 33 + WinBuiltinReplicatorSid = 34 + WinBuiltinPreWindows2000CompatibleAccessSid = 35 + WinBuiltinRemoteDesktopUsersSid = 36 + WinBuiltinNetworkConfigurationOperatorsSid = 37 + WinAccountAdministratorSid = 38 + WinAccountGuestSid = 39 + WinAccountKrbtgtSid = 40 + WinAccountDomainAdminsSid = 41 + WinAccountDomainUsersSid = 42 + WinAccountDomainGuestsSid = 43 + WinAccountComputersSid = 44 + WinAccountControllersSid = 45 + WinAccountCertAdminsSid = 46 + WinAccountSchemaAdminsSid = 47 + WinAccountEnterpriseAdminsSid = 48 + WinAccountPolicyAdminsSid = 49 + WinAccountRasAndIasServersSid = 50 + WinNTLMAuthenticationSid = 51 + WinDigestAuthenticationSid = 52 + WinSChannelAuthenticationSid = 53 + WinThisOrganizationSid = 54 + WinOtherOrganizationSid = 55 + WinBuiltinIncomingForestTrustBuildersSid = 56 + WinBuiltinPerfMonitoringUsersSid = 57 + WinBuiltinPerfLoggingUsersSid = 58 + WinBuiltinAuthorizationAccessSid = 59 + WinBuiltinTerminalServerLicenseServersSid = 60 + WinBuiltinDCOMUsersSid = 61 + WinBuiltinIUsersSid = 62 + WinIUserSid = 63 + WinBuiltinCryptoOperatorsSid = 64 + WinUntrustedLabelSid = 65 + WinLowLabelSid = 66 + WinMediumLabelSid = 67 + WinHighLabelSid = 68 + WinSystemLabelSid = 69 + WinWriteRestrictedCodeSid = 70 + WinCreatorOwnerRightsSid = 71 + WinCacheablePrincipalsGroupSid = 72 + WinNonCacheablePrincipalsGroupSid = 73 + WinEnterpriseReadonlyControllersSid = 74 + WinAccountReadonlyControllersSid = 75 + WinBuiltinEventLogReadersGroup = 76 + WinNewEnterpriseReadonlyControllersSid = 77 + WinBuiltinCertSvcDComAccessGroup = 78 + WinMediumPlusLabelSid = 79 + WinLocalLogonSid = 80 + WinConsoleLogonSid = 81 + WinThisOrganizationCertificateSid = 82 + WinApplicationPackageAuthoritySid = 83 + WinBuiltinAnyPackageSid = 84 + WinCapabilityInternetClientSid = 85 + WinCapabilityInternetClientServerSid = 86 + WinCapabilityPrivateNetworkClientServerSid = 87 + WinCapabilityPicturesLibrarySid = 88 + WinCapabilityVideosLibrarySid = 89 + WinCapabilityMusicLibrarySid = 90 + WinCapabilityDocumentsLibrarySid = 91 + WinCapabilitySharedUserCertificatesSid = 92 + WinCapabilityEnterpriseAuthenticationSid = 93 + WinCapabilityRemovableStorageSid = 94 + WinBuiltinRDSRemoteAccessServersSid = 95 + WinBuiltinRDSEndpointServersSid = 96 + WinBuiltinRDSManagementServersSid = 97 + WinUserModeDriversSid = 98 + WinBuiltinHyperVAdminsSid = 99 + WinAccountCloneableControllersSid = 100 + WinBuiltinAccessControlAssistanceOperatorsSid = 101 + WinBuiltinRemoteManagementUsersSid = 102 + WinAuthenticationAuthorityAssertedSid = 103 + WinAuthenticationServiceAssertedSid = 104 + WinLocalAccountSid = 105 + WinLocalAccountAndAdministratorSid = 106 + WinAccountProtectedUsersSid = 107 + WinCapabilityAppointmentsSid = 108 + WinCapabilityContactsSid = 109 + WinAccountDefaultSystemManagedSid = 110 + WinBuiltinDefaultSystemManagedGroupSid = 111 + WinBuiltinStorageReplicaAdminsSid = 112 + WinAccountKeyAdminsSid = 113 + WinAccountEnterpriseKeyAdminsSid = 114 + WinAuthenticationKeyTrustSid = 115 + WinAuthenticationKeyPropertyMFASid = 116 + WinAuthenticationKeyPropertyAttestationSid = 117 + WinAuthenticationFreshKeyAuthSid = 118 + WinBuiltinDeviceOwnersSid = 119 +) + +// Creates a SID for a well-known predefined alias, generally using the constants of the form +// Win*Sid, for the local machine. +func CreateWellKnownSid(sidType WELL_KNOWN_SID_TYPE) (*SID, error) { + return CreateWellKnownDomainSid(sidType, nil) +} + +// Creates a SID for a well-known predefined alias, generally using the constants of the form +// Win*Sid, for the domain specified by the domainSid parameter. +func CreateWellKnownDomainSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID) (*SID, error) { + n := uint32(50) + for { + b := make([]byte, n) + sid := (*SID)(unsafe.Pointer(&b[0])) + err := createWellKnownSid(sidType, domainSid, sid, &n) + if err == nil { + return sid, nil + } + if err != ERROR_INSUFFICIENT_BUFFER { + return nil, err + } + if n <= uint32(len(b)) { + return nil, err + } + } +} + +const ( + // do not reorder + TOKEN_ASSIGN_PRIMARY = 1 << iota + TOKEN_DUPLICATE + TOKEN_IMPERSONATE + TOKEN_QUERY + TOKEN_QUERY_SOURCE + TOKEN_ADJUST_PRIVILEGES + TOKEN_ADJUST_GROUPS + TOKEN_ADJUST_DEFAULT + TOKEN_ADJUST_SESSIONID + + TOKEN_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | + TOKEN_ASSIGN_PRIMARY | + TOKEN_DUPLICATE | + TOKEN_IMPERSONATE | + TOKEN_QUERY | + TOKEN_QUERY_SOURCE | + TOKEN_ADJUST_PRIVILEGES | + TOKEN_ADJUST_GROUPS | + TOKEN_ADJUST_DEFAULT | + TOKEN_ADJUST_SESSIONID + TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY + TOKEN_WRITE = STANDARD_RIGHTS_WRITE | + TOKEN_ADJUST_PRIVILEGES | + TOKEN_ADJUST_GROUPS | + TOKEN_ADJUST_DEFAULT + TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE +) + +const ( + // do not reorder + TokenUser = 1 + iota + TokenGroups + TokenPrivileges + TokenOwner + TokenPrimaryGroup + TokenDefaultDacl + TokenSource + TokenType + TokenImpersonationLevel + TokenStatistics + TokenRestrictedSids + TokenSessionId + TokenGroupsAndPrivileges + TokenSessionReference + TokenSandBoxInert + TokenAuditPolicy + TokenOrigin + TokenElevationType + TokenLinkedToken + TokenElevation + TokenHasRestrictions + TokenAccessInformation + TokenVirtualizationAllowed + TokenVirtualizationEnabled + TokenIntegrityLevel + TokenUIAccess + TokenMandatoryPolicy + TokenLogonSid + MaxTokenInfoClass +) + +// Group attributes inside of Tokengroups.Groups[i].Attributes +const ( + SE_GROUP_MANDATORY = 0x00000001 + SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002 + SE_GROUP_ENABLED = 0x00000004 + SE_GROUP_OWNER = 0x00000008 + SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010 + SE_GROUP_INTEGRITY = 0x00000020 + SE_GROUP_INTEGRITY_ENABLED = 0x00000040 + SE_GROUP_LOGON_ID = 0xC0000000 + SE_GROUP_RESOURCE = 0x20000000 + SE_GROUP_VALID_ATTRIBUTES = SE_GROUP_MANDATORY | SE_GROUP_ENABLED_BY_DEFAULT | SE_GROUP_ENABLED | SE_GROUP_OWNER | SE_GROUP_USE_FOR_DENY_ONLY | SE_GROUP_LOGON_ID | SE_GROUP_RESOURCE | SE_GROUP_INTEGRITY | SE_GROUP_INTEGRITY_ENABLED +) + +// Privilege attributes +const ( + SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001 + SE_PRIVILEGE_ENABLED = 0x00000002 + SE_PRIVILEGE_REMOVED = 0x00000004 + SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000 + SE_PRIVILEGE_VALID_ATTRIBUTES = SE_PRIVILEGE_ENABLED_BY_DEFAULT | SE_PRIVILEGE_ENABLED | SE_PRIVILEGE_REMOVED | SE_PRIVILEGE_USED_FOR_ACCESS +) + +// Token types +const ( + TokenPrimary = 1 + TokenImpersonation = 2 +) + +// Impersonation levels +const ( + SecurityAnonymous = 0 + SecurityIdentification = 1 + SecurityImpersonation = 2 + SecurityDelegation = 3 +) + +type LUID struct { + LowPart uint32 + HighPart int32 +} + +type LUIDAndAttributes struct { + Luid LUID + Attributes uint32 +} + +type SIDAndAttributes struct { + Sid *SID + Attributes uint32 +} + +type Tokenuser struct { + User SIDAndAttributes +} + +type Tokenprimarygroup struct { + PrimaryGroup *SID +} + +type Tokengroups struct { + GroupCount uint32 + Groups [1]SIDAndAttributes // Use AllGroups() for iterating. +} + +// AllGroups returns a slice that can be used to iterate over the groups in g. +func (g *Tokengroups) AllGroups() []SIDAndAttributes { + return (*[(1 << 28) - 1]SIDAndAttributes)(unsafe.Pointer(&g.Groups[0]))[:g.GroupCount:g.GroupCount] +} + +type Tokenprivileges struct { + PrivilegeCount uint32 + Privileges [1]LUIDAndAttributes // Use AllPrivileges() for iterating. +} + +// AllPrivileges returns a slice that can be used to iterate over the privileges in p. +func (p *Tokenprivileges) AllPrivileges() []LUIDAndAttributes { + return (*[(1 << 27) - 1]LUIDAndAttributes)(unsafe.Pointer(&p.Privileges[0]))[:p.PrivilegeCount:p.PrivilegeCount] +} + +type Tokenmandatorylabel struct { + Label SIDAndAttributes +} + +func (tml *Tokenmandatorylabel) Size() uint32 { + return uint32(unsafe.Sizeof(Tokenmandatorylabel{})) + GetLengthSid(tml.Label.Sid) +} + +// Authorization Functions +//sys checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) = advapi32.CheckTokenMembership +//sys isTokenRestricted(tokenHandle Token) (ret bool, err error) [!failretval] = advapi32.IsTokenRestricted +//sys OpenProcessToken(process Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken +//sys OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) = advapi32.OpenThreadToken +//sys ImpersonateSelf(impersonationlevel uint32) (err error) = advapi32.ImpersonateSelf +//sys RevertToSelf() (err error) = advapi32.RevertToSelf +//sys SetThreadToken(thread *Handle, token Token) (err error) = advapi32.SetThreadToken +//sys LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) = advapi32.LookupPrivilegeValueW +//sys AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) = advapi32.AdjustTokenPrivileges +//sys AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) = advapi32.AdjustTokenGroups +//sys GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) = advapi32.GetTokenInformation +//sys SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) = advapi32.SetTokenInformation +//sys DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) = advapi32.DuplicateTokenEx +//sys GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) = userenv.GetUserProfileDirectoryW +//sys getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemDirectoryW +//sys getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetWindowsDirectoryW +//sys getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemWindowsDirectoryW + +// An access token contains the security information for a logon session. +// The system creates an access token when a user logs on, and every +// process executed on behalf of the user has a copy of the token. +// The token identifies the user, the user's groups, and the user's +// privileges. The system uses the token to control access to securable +// objects and to control the ability of the user to perform various +// system-related operations on the local computer. +type Token Handle + +// OpenCurrentProcessToken opens an access token associated with current +// process with TOKEN_QUERY access. It is a real token that needs to be closed. +// +// Deprecated: Explicitly call OpenProcessToken(CurrentProcess(), ...) +// with the desired access instead, or use GetCurrentProcessToken for a +// TOKEN_QUERY token. +func OpenCurrentProcessToken() (Token, error) { + var token Token + err := OpenProcessToken(CurrentProcess(), TOKEN_QUERY, &token) + return token, err +} + +// GetCurrentProcessToken returns the access token associated with +// the current process. It is a pseudo token that does not need +// to be closed. +func GetCurrentProcessToken() Token { + return Token(^uintptr(4 - 1)) +} + +// GetCurrentThreadToken return the access token associated with +// the current thread. It is a pseudo token that does not need +// to be closed. +func GetCurrentThreadToken() Token { + return Token(^uintptr(5 - 1)) +} + +// GetCurrentThreadEffectiveToken returns the effective access token +// associated with the current thread. It is a pseudo token that does +// not need to be closed. +func GetCurrentThreadEffectiveToken() Token { + return Token(^uintptr(6 - 1)) +} + +// Close releases access to access token. +func (t Token) Close() error { + return CloseHandle(Handle(t)) +} + +// getInfo retrieves a specified type of information about an access token. +func (t Token) getInfo(class uint32, initSize int) (unsafe.Pointer, error) { + n := uint32(initSize) + for { + b := make([]byte, n) + e := GetTokenInformation(t, class, &b[0], uint32(len(b)), &n) + if e == nil { + return unsafe.Pointer(&b[0]), nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return nil, e + } + if n <= uint32(len(b)) { + return nil, e + } + } +} + +// GetTokenUser retrieves access token t user account information. +func (t Token) GetTokenUser() (*Tokenuser, error) { + i, e := t.getInfo(TokenUser, 50) + if e != nil { + return nil, e + } + return (*Tokenuser)(i), nil +} + +// GetTokenGroups retrieves group accounts associated with access token t. +func (t Token) GetTokenGroups() (*Tokengroups, error) { + i, e := t.getInfo(TokenGroups, 50) + if e != nil { + return nil, e + } + return (*Tokengroups)(i), nil +} + +// GetTokenPrimaryGroup retrieves access token t primary group information. +// A pointer to a SID structure representing a group that will become +// the primary group of any objects created by a process using this access token. +func (t Token) GetTokenPrimaryGroup() (*Tokenprimarygroup, error) { + i, e := t.getInfo(TokenPrimaryGroup, 50) + if e != nil { + return nil, e + } + return (*Tokenprimarygroup)(i), nil +} + +// GetUserProfileDirectory retrieves path to the +// root directory of the access token t user's profile. +func (t Token) GetUserProfileDirectory() (string, error) { + n := uint32(100) + for { + b := make([]uint16, n) + e := GetUserProfileDirectory(t, &b[0], &n) + if e == nil { + return UTF16ToString(b), nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return "", e + } + if n <= uint32(len(b)) { + return "", e + } + } +} + +// IsElevated returns whether the current token is elevated from a UAC perspective. +func (token Token) IsElevated() bool { + var isElevated uint32 + var outLen uint32 + err := GetTokenInformation(token, TokenElevation, (*byte)(unsafe.Pointer(&isElevated)), uint32(unsafe.Sizeof(isElevated)), &outLen) + if err != nil { + return false + } + return outLen == uint32(unsafe.Sizeof(isElevated)) && isElevated != 0 +} + +// GetLinkedToken returns the linked token, which may be an elevated UAC token. +func (token Token) GetLinkedToken() (Token, error) { + var linkedToken Token + var outLen uint32 + err := GetTokenInformation(token, TokenLinkedToken, (*byte)(unsafe.Pointer(&linkedToken)), uint32(unsafe.Sizeof(linkedToken)), &outLen) + if err != nil { + return Token(0), err + } + return linkedToken, nil +} + +// GetSystemDirectory retrieves the path to current location of the system +// directory, which is typically, though not always, `C:\Windows\System32`. +func GetSystemDirectory() (string, error) { + n := uint32(MAX_PATH) + for { + b := make([]uint16, n) + l, e := getSystemDirectory(&b[0], n) + if e != nil { + return "", e + } + if l <= n { + return UTF16ToString(b[:l]), nil + } + n = l + } +} + +// GetWindowsDirectory retrieves the path to current location of the Windows +// directory, which is typically, though not always, `C:\Windows`. This may +// be a private user directory in the case that the application is running +// under a terminal server. +func GetWindowsDirectory() (string, error) { + n := uint32(MAX_PATH) + for { + b := make([]uint16, n) + l, e := getWindowsDirectory(&b[0], n) + if e != nil { + return "", e + } + if l <= n { + return UTF16ToString(b[:l]), nil + } + n = l + } +} + +// GetSystemWindowsDirectory retrieves the path to current location of the +// Windows directory, which is typically, though not always, `C:\Windows`. +func GetSystemWindowsDirectory() (string, error) { + n := uint32(MAX_PATH) + for { + b := make([]uint16, n) + l, e := getSystemWindowsDirectory(&b[0], n) + if e != nil { + return "", e + } + if l <= n { + return UTF16ToString(b[:l]), nil + } + n = l + } +} + +// IsMember reports whether the access token t is a member of the provided SID. +func (t Token) IsMember(sid *SID) (bool, error) { + var b int32 + if e := checkTokenMembership(t, sid, &b); e != nil { + return false, e + } + return b != 0, nil +} + +// IsRestricted reports whether the access token t is a restricted token. +func (t Token) IsRestricted() (isRestricted bool, err error) { + isRestricted, err = isTokenRestricted(t) + if !isRestricted && err == syscall.EINVAL { + // If err is EINVAL, this returned ERROR_SUCCESS indicating a non-restricted token. + err = nil + } + return +} + +const ( + WTS_CONSOLE_CONNECT = 0x1 + WTS_CONSOLE_DISCONNECT = 0x2 + WTS_REMOTE_CONNECT = 0x3 + WTS_REMOTE_DISCONNECT = 0x4 + WTS_SESSION_LOGON = 0x5 + WTS_SESSION_LOGOFF = 0x6 + WTS_SESSION_LOCK = 0x7 + WTS_SESSION_UNLOCK = 0x8 + WTS_SESSION_REMOTE_CONTROL = 0x9 + WTS_SESSION_CREATE = 0xa + WTS_SESSION_TERMINATE = 0xb +) + +const ( + WTSActive = 0 + WTSConnected = 1 + WTSConnectQuery = 2 + WTSShadow = 3 + WTSDisconnected = 4 + WTSIdle = 5 + WTSListen = 6 + WTSReset = 7 + WTSDown = 8 + WTSInit = 9 +) + +type WTSSESSION_NOTIFICATION struct { + Size uint32 + SessionID uint32 +} + +type WTS_SESSION_INFO struct { + SessionID uint32 + WindowStationName *uint16 + State uint32 +} + +//sys WTSQueryUserToken(session uint32, token *Token) (err error) = wtsapi32.WTSQueryUserToken +//sys WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) = wtsapi32.WTSEnumerateSessionsW +//sys WTSFreeMemory(ptr uintptr) = wtsapi32.WTSFreeMemory +//sys WTSGetActiveConsoleSessionId() (sessionID uint32) + +type ACL struct { + aclRevision byte + sbz1 byte + aclSize uint16 + AceCount uint16 + sbz2 uint16 +} + +type SECURITY_DESCRIPTOR struct { + revision byte + sbz1 byte + control SECURITY_DESCRIPTOR_CONTROL + owner *SID + group *SID + sacl *ACL + dacl *ACL +} + +type SECURITY_QUALITY_OF_SERVICE struct { + Length uint32 + ImpersonationLevel uint32 + ContextTrackingMode byte + EffectiveOnly byte +} + +// Constants for the ContextTrackingMode field of SECURITY_QUALITY_OF_SERVICE. +const ( + SECURITY_STATIC_TRACKING = 0 + SECURITY_DYNAMIC_TRACKING = 1 +) + +type SecurityAttributes struct { + Length uint32 + SecurityDescriptor *SECURITY_DESCRIPTOR + InheritHandle uint32 +} + +type SE_OBJECT_TYPE uint32 + +// Constants for type SE_OBJECT_TYPE +const ( + SE_UNKNOWN_OBJECT_TYPE = 0 + SE_FILE_OBJECT = 1 + SE_SERVICE = 2 + SE_PRINTER = 3 + SE_REGISTRY_KEY = 4 + SE_LMSHARE = 5 + SE_KERNEL_OBJECT = 6 + SE_WINDOW_OBJECT = 7 + SE_DS_OBJECT = 8 + SE_DS_OBJECT_ALL = 9 + SE_PROVIDER_DEFINED_OBJECT = 10 + SE_WMIGUID_OBJECT = 11 + SE_REGISTRY_WOW64_32KEY = 12 + SE_REGISTRY_WOW64_64KEY = 13 +) + +type SECURITY_INFORMATION uint32 + +// Constants for type SECURITY_INFORMATION +const ( + OWNER_SECURITY_INFORMATION = 0x00000001 + GROUP_SECURITY_INFORMATION = 0x00000002 + DACL_SECURITY_INFORMATION = 0x00000004 + SACL_SECURITY_INFORMATION = 0x00000008 + LABEL_SECURITY_INFORMATION = 0x00000010 + ATTRIBUTE_SECURITY_INFORMATION = 0x00000020 + SCOPE_SECURITY_INFORMATION = 0x00000040 + BACKUP_SECURITY_INFORMATION = 0x00010000 + PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000 + PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000 + UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000 + UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000 +) + +type SECURITY_DESCRIPTOR_CONTROL uint16 + +// Constants for type SECURITY_DESCRIPTOR_CONTROL +const ( + SE_OWNER_DEFAULTED = 0x0001 + SE_GROUP_DEFAULTED = 0x0002 + SE_DACL_PRESENT = 0x0004 + SE_DACL_DEFAULTED = 0x0008 + SE_SACL_PRESENT = 0x0010 + SE_SACL_DEFAULTED = 0x0020 + SE_DACL_AUTO_INHERIT_REQ = 0x0100 + SE_SACL_AUTO_INHERIT_REQ = 0x0200 + SE_DACL_AUTO_INHERITED = 0x0400 + SE_SACL_AUTO_INHERITED = 0x0800 + SE_DACL_PROTECTED = 0x1000 + SE_SACL_PROTECTED = 0x2000 + SE_RM_CONTROL_VALID = 0x4000 + SE_SELF_RELATIVE = 0x8000 +) + +type ACCESS_MASK uint32 + +// Constants for type ACCESS_MASK +const ( + DELETE = 0x00010000 + READ_CONTROL = 0x00020000 + WRITE_DAC = 0x00040000 + WRITE_OWNER = 0x00080000 + SYNCHRONIZE = 0x00100000 + STANDARD_RIGHTS_REQUIRED = 0x000F0000 + STANDARD_RIGHTS_READ = READ_CONTROL + STANDARD_RIGHTS_WRITE = READ_CONTROL + STANDARD_RIGHTS_EXECUTE = READ_CONTROL + STANDARD_RIGHTS_ALL = 0x001F0000 + SPECIFIC_RIGHTS_ALL = 0x0000FFFF + ACCESS_SYSTEM_SECURITY = 0x01000000 + MAXIMUM_ALLOWED = 0x02000000 + GENERIC_READ = 0x80000000 + GENERIC_WRITE = 0x40000000 + GENERIC_EXECUTE = 0x20000000 + GENERIC_ALL = 0x10000000 +) + +type ACCESS_MODE uint32 + +// Constants for type ACCESS_MODE +const ( + NOT_USED_ACCESS = 0 + GRANT_ACCESS = 1 + SET_ACCESS = 2 + DENY_ACCESS = 3 + REVOKE_ACCESS = 4 + SET_AUDIT_SUCCESS = 5 + SET_AUDIT_FAILURE = 6 +) + +// Constants for AceFlags and Inheritance fields +const ( + NO_INHERITANCE = 0x0 + SUB_OBJECTS_ONLY_INHERIT = 0x1 + SUB_CONTAINERS_ONLY_INHERIT = 0x2 + SUB_CONTAINERS_AND_OBJECTS_INHERIT = 0x3 + INHERIT_NO_PROPAGATE = 0x4 + INHERIT_ONLY = 0x8 + INHERITED_ACCESS_ENTRY = 0x10 + INHERITED_PARENT = 0x10000000 + INHERITED_GRANDPARENT = 0x20000000 + OBJECT_INHERIT_ACE = 0x1 + CONTAINER_INHERIT_ACE = 0x2 + NO_PROPAGATE_INHERIT_ACE = 0x4 + INHERIT_ONLY_ACE = 0x8 + INHERITED_ACE = 0x10 + VALID_INHERIT_FLAGS = 0x1F +) + +type MULTIPLE_TRUSTEE_OPERATION uint32 + +// Constants for MULTIPLE_TRUSTEE_OPERATION +const ( + NO_MULTIPLE_TRUSTEE = 0 + TRUSTEE_IS_IMPERSONATE = 1 +) + +type TRUSTEE_FORM uint32 + +// Constants for TRUSTEE_FORM +const ( + TRUSTEE_IS_SID = 0 + TRUSTEE_IS_NAME = 1 + TRUSTEE_BAD_FORM = 2 + TRUSTEE_IS_OBJECTS_AND_SID = 3 + TRUSTEE_IS_OBJECTS_AND_NAME = 4 +) + +type TRUSTEE_TYPE uint32 + +// Constants for TRUSTEE_TYPE +const ( + TRUSTEE_IS_UNKNOWN = 0 + TRUSTEE_IS_USER = 1 + TRUSTEE_IS_GROUP = 2 + TRUSTEE_IS_DOMAIN = 3 + TRUSTEE_IS_ALIAS = 4 + TRUSTEE_IS_WELL_KNOWN_GROUP = 5 + TRUSTEE_IS_DELETED = 6 + TRUSTEE_IS_INVALID = 7 + TRUSTEE_IS_COMPUTER = 8 +) + +// Constants for ObjectsPresent field +const ( + ACE_OBJECT_TYPE_PRESENT = 0x1 + ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2 +) + +type EXPLICIT_ACCESS struct { + AccessPermissions ACCESS_MASK + AccessMode ACCESS_MODE + Inheritance uint32 + Trustee TRUSTEE +} + +// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header +type ACE_HEADER struct { + AceType uint8 + AceFlags uint8 + AceSize uint16 +} + +// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-access_allowed_ace +type ACCESS_ALLOWED_ACE struct { + Header ACE_HEADER + Mask ACCESS_MASK + SidStart uint32 +} + +const ( + // Constants for AceType + // https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header + ACCESS_ALLOWED_ACE_TYPE = 0 + ACCESS_DENIED_ACE_TYPE = 1 +) + +// This type is the union inside of TRUSTEE and must be created using one of the TrusteeValueFrom* functions. +type TrusteeValue uintptr + +func TrusteeValueFromString(str string) TrusteeValue { + return TrusteeValue(unsafe.Pointer(StringToUTF16Ptr(str))) +} +func TrusteeValueFromSID(sid *SID) TrusteeValue { + return TrusteeValue(unsafe.Pointer(sid)) +} +func TrusteeValueFromObjectsAndSid(objectsAndSid *OBJECTS_AND_SID) TrusteeValue { + return TrusteeValue(unsafe.Pointer(objectsAndSid)) +} +func TrusteeValueFromObjectsAndName(objectsAndName *OBJECTS_AND_NAME) TrusteeValue { + return TrusteeValue(unsafe.Pointer(objectsAndName)) +} + +type TRUSTEE struct { + MultipleTrustee *TRUSTEE + MultipleTrusteeOperation MULTIPLE_TRUSTEE_OPERATION + TrusteeForm TRUSTEE_FORM + TrusteeType TRUSTEE_TYPE + TrusteeValue TrusteeValue +} + +type OBJECTS_AND_SID struct { + ObjectsPresent uint32 + ObjectTypeGuid GUID + InheritedObjectTypeGuid GUID + Sid *SID +} + +type OBJECTS_AND_NAME struct { + ObjectsPresent uint32 + ObjectType SE_OBJECT_TYPE + ObjectTypeName *uint16 + InheritedObjectTypeName *uint16 + Name *uint16 +} + +//sys getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetSecurityInfo +//sys SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetSecurityInfo +//sys getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetNamedSecurityInfoW +//sys SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetNamedSecurityInfoW +//sys SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) = advapi32.SetKernelObjectSecurity + +//sys buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) = advapi32.BuildSecurityDescriptorW +//sys initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) = advapi32.InitializeSecurityDescriptor + +//sys getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) = advapi32.GetSecurityDescriptorControl +//sys getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorDacl +//sys getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorSacl +//sys getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorOwner +//sys getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorGroup +//sys getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) = advapi32.GetSecurityDescriptorLength +//sys getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) [failretval!=0] = advapi32.GetSecurityDescriptorRMControl +//sys isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) = advapi32.IsValidSecurityDescriptor + +//sys setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) = advapi32.SetSecurityDescriptorControl +//sys setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorDacl +//sys setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorSacl +//sys setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) = advapi32.SetSecurityDescriptorOwner +//sys setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) = advapi32.SetSecurityDescriptorGroup +//sys setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) = advapi32.SetSecurityDescriptorRMControl + +//sys convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) = advapi32.ConvertStringSecurityDescriptorToSecurityDescriptorW +//sys convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) = advapi32.ConvertSecurityDescriptorToStringSecurityDescriptorW + +//sys makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) = advapi32.MakeAbsoluteSD +//sys makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) = advapi32.MakeSelfRelativeSD + +//sys setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) = advapi32.SetEntriesInAclW +//sys GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) = advapi32.GetAce + +// Control returns the security descriptor control bits. +func (sd *SECURITY_DESCRIPTOR) Control() (control SECURITY_DESCRIPTOR_CONTROL, revision uint32, err error) { + err = getSecurityDescriptorControl(sd, &control, &revision) + return +} + +// SetControl sets the security descriptor control bits. +func (sd *SECURITY_DESCRIPTOR) SetControl(controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) error { + return setSecurityDescriptorControl(sd, controlBitsOfInterest, controlBitsToSet) +} + +// RMControl returns the security descriptor resource manager control bits. +func (sd *SECURITY_DESCRIPTOR) RMControl() (control uint8, err error) { + err = getSecurityDescriptorRMControl(sd, &control) + return +} + +// SetRMControl sets the security descriptor resource manager control bits. +func (sd *SECURITY_DESCRIPTOR) SetRMControl(rmControl uint8) { + setSecurityDescriptorRMControl(sd, &rmControl) +} + +// DACL returns the security descriptor DACL and whether it was defaulted. The dacl return value may be nil +// if a DACL exists but is an "empty DACL", meaning fully permissive. If the DACL does not exist, err returns +// ERROR_OBJECT_NOT_FOUND. +func (sd *SECURITY_DESCRIPTOR) DACL() (dacl *ACL, defaulted bool, err error) { + var present bool + err = getSecurityDescriptorDacl(sd, &present, &dacl, &defaulted) + if !present { + err = ERROR_OBJECT_NOT_FOUND + } + return +} + +// SetDACL sets the absolute security descriptor DACL. +func (absoluteSD *SECURITY_DESCRIPTOR) SetDACL(dacl *ACL, present, defaulted bool) error { + return setSecurityDescriptorDacl(absoluteSD, present, dacl, defaulted) +} + +// SACL returns the security descriptor SACL and whether it was defaulted. The sacl return value may be nil +// if a SACL exists but is an "empty SACL", meaning fully permissive. If the SACL does not exist, err returns +// ERROR_OBJECT_NOT_FOUND. +func (sd *SECURITY_DESCRIPTOR) SACL() (sacl *ACL, defaulted bool, err error) { + var present bool + err = getSecurityDescriptorSacl(sd, &present, &sacl, &defaulted) + if !present { + err = ERROR_OBJECT_NOT_FOUND + } + return +} + +// SetSACL sets the absolute security descriptor SACL. +func (absoluteSD *SECURITY_DESCRIPTOR) SetSACL(sacl *ACL, present, defaulted bool) error { + return setSecurityDescriptorSacl(absoluteSD, present, sacl, defaulted) +} + +// Owner returns the security descriptor owner and whether it was defaulted. +func (sd *SECURITY_DESCRIPTOR) Owner() (owner *SID, defaulted bool, err error) { + err = getSecurityDescriptorOwner(sd, &owner, &defaulted) + return +} + +// SetOwner sets the absolute security descriptor owner. +func (absoluteSD *SECURITY_DESCRIPTOR) SetOwner(owner *SID, defaulted bool) error { + return setSecurityDescriptorOwner(absoluteSD, owner, defaulted) +} + +// Group returns the security descriptor group and whether it was defaulted. +func (sd *SECURITY_DESCRIPTOR) Group() (group *SID, defaulted bool, err error) { + err = getSecurityDescriptorGroup(sd, &group, &defaulted) + return +} + +// SetGroup sets the absolute security descriptor owner. +func (absoluteSD *SECURITY_DESCRIPTOR) SetGroup(group *SID, defaulted bool) error { + return setSecurityDescriptorGroup(absoluteSD, group, defaulted) +} + +// Length returns the length of the security descriptor. +func (sd *SECURITY_DESCRIPTOR) Length() uint32 { + return getSecurityDescriptorLength(sd) +} + +// IsValid returns whether the security descriptor is valid. +func (sd *SECURITY_DESCRIPTOR) IsValid() bool { + return isValidSecurityDescriptor(sd) +} + +// String returns the SDDL form of the security descriptor, with a function signature that can be +// used with %v formatting directives. +func (sd *SECURITY_DESCRIPTOR) String() string { + var sddl *uint16 + err := convertSecurityDescriptorToStringSecurityDescriptor(sd, 1, 0xff, &sddl, nil) + if err != nil { + return "" + } + defer LocalFree(Handle(unsafe.Pointer(sddl))) + return UTF16PtrToString(sddl) +} + +// ToAbsolute converts a self-relative security descriptor into an absolute one. +func (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DESCRIPTOR, err error) { + control, _, err := selfRelativeSD.Control() + if err != nil { + return + } + if control&SE_SELF_RELATIVE == 0 { + err = ERROR_INVALID_PARAMETER + return + } + var absoluteSDSize, daclSize, saclSize, ownerSize, groupSize uint32 + err = makeAbsoluteSD(selfRelativeSD, nil, &absoluteSDSize, + nil, &daclSize, nil, &saclSize, nil, &ownerSize, nil, &groupSize) + switch err { + case ERROR_INSUFFICIENT_BUFFER: + case nil: + // makeAbsoluteSD is expected to fail, but it succeeds. + return nil, ERROR_INTERNAL_ERROR + default: + return nil, err + } + if absoluteSDSize > 0 { + absoluteSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, absoluteSDSize)[0])) + } + var ( + dacl *ACL + sacl *ACL + owner *SID + group *SID + ) + if daclSize > 0 { + dacl = (*ACL)(unsafe.Pointer(&make([]byte, daclSize)[0])) + } + if saclSize > 0 { + sacl = (*ACL)(unsafe.Pointer(&make([]byte, saclSize)[0])) + } + if ownerSize > 0 { + owner = (*SID)(unsafe.Pointer(&make([]byte, ownerSize)[0])) + } + if groupSize > 0 { + group = (*SID)(unsafe.Pointer(&make([]byte, groupSize)[0])) + } + err = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize, + dacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize) + return +} + +// ToSelfRelative converts an absolute security descriptor into a self-relative one. +func (absoluteSD *SECURITY_DESCRIPTOR) ToSelfRelative() (selfRelativeSD *SECURITY_DESCRIPTOR, err error) { + control, _, err := absoluteSD.Control() + if err != nil { + return + } + if control&SE_SELF_RELATIVE != 0 { + err = ERROR_INVALID_PARAMETER + return + } + var selfRelativeSDSize uint32 + err = makeSelfRelativeSD(absoluteSD, nil, &selfRelativeSDSize) + switch err { + case ERROR_INSUFFICIENT_BUFFER: + case nil: + // makeSelfRelativeSD is expected to fail, but it succeeds. + return nil, ERROR_INTERNAL_ERROR + default: + return nil, err + } + if selfRelativeSDSize > 0 { + selfRelativeSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, selfRelativeSDSize)[0])) + } + err = makeSelfRelativeSD(absoluteSD, selfRelativeSD, &selfRelativeSDSize) + return +} + +func (selfRelativeSD *SECURITY_DESCRIPTOR) copySelfRelativeSecurityDescriptor() *SECURITY_DESCRIPTOR { + sdLen := int(selfRelativeSD.Length()) + const min = int(unsafe.Sizeof(SECURITY_DESCRIPTOR{})) + if sdLen < min { + sdLen = min + } + + src := unsafe.Slice((*byte)(unsafe.Pointer(selfRelativeSD)), sdLen) + // SECURITY_DESCRIPTOR has pointers in it, which means checkptr expects for it to + // be aligned properly. When we're copying a Windows-allocated struct to a + // Go-allocated one, make sure that the Go allocation is aligned to the + // pointer size. + const psize = int(unsafe.Sizeof(uintptr(0))) + alloc := make([]uintptr, (sdLen+psize-1)/psize) + dst := unsafe.Slice((*byte)(unsafe.Pointer(&alloc[0])), sdLen) + copy(dst, src) + return (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&dst[0])) +} + +// SecurityDescriptorFromString converts an SDDL string describing a security descriptor into a +// self-relative security descriptor object allocated on the Go heap. +func SecurityDescriptorFromString(sddl string) (sd *SECURITY_DESCRIPTOR, err error) { + var winHeapSD *SECURITY_DESCRIPTOR + err = convertStringSecurityDescriptorToSecurityDescriptor(sddl, 1, &winHeapSD, nil) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) + return winHeapSD.copySelfRelativeSecurityDescriptor(), nil +} + +// GetSecurityInfo queries the security information for a given handle and returns the self-relative security +// descriptor result on the Go heap. +func GetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) { + var winHeapSD *SECURITY_DESCRIPTOR + err = getSecurityInfo(handle, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) + return winHeapSD.copySelfRelativeSecurityDescriptor(), nil +} + +// GetNamedSecurityInfo queries the security information for a given named object and returns the self-relative security +// descriptor result on the Go heap. +func GetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) { + var winHeapSD *SECURITY_DESCRIPTOR + err = getNamedSecurityInfo(objectName, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) + return winHeapSD.copySelfRelativeSecurityDescriptor(), nil +} + +// BuildSecurityDescriptor makes a new security descriptor using the input trustees, explicit access lists, and +// prior security descriptor to be merged, any of which can be nil, returning the self-relative security descriptor +// result on the Go heap. +func BuildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, accessEntries []EXPLICIT_ACCESS, auditEntries []EXPLICIT_ACCESS, mergedSecurityDescriptor *SECURITY_DESCRIPTOR) (sd *SECURITY_DESCRIPTOR, err error) { + var winHeapSD *SECURITY_DESCRIPTOR + var winHeapSDSize uint32 + var firstAccessEntry *EXPLICIT_ACCESS + if len(accessEntries) > 0 { + firstAccessEntry = &accessEntries[0] + } + var firstAuditEntry *EXPLICIT_ACCESS + if len(auditEntries) > 0 { + firstAuditEntry = &auditEntries[0] + } + err = buildSecurityDescriptor(owner, group, uint32(len(accessEntries)), firstAccessEntry, uint32(len(auditEntries)), firstAuditEntry, mergedSecurityDescriptor, &winHeapSDSize, &winHeapSD) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) + return winHeapSD.copySelfRelativeSecurityDescriptor(), nil +} + +// NewSecurityDescriptor creates and initializes a new absolute security descriptor. +func NewSecurityDescriptor() (absoluteSD *SECURITY_DESCRIPTOR, err error) { + absoluteSD = &SECURITY_DESCRIPTOR{} + err = initializeSecurityDescriptor(absoluteSD, 1) + return +} + +// ACLFromEntries returns a new ACL on the Go heap containing a list of explicit entries as well as those of another ACL. +// Both explicitEntries and mergedACL are optional and can be nil. +func ACLFromEntries(explicitEntries []EXPLICIT_ACCESS, mergedACL *ACL) (acl *ACL, err error) { + var firstExplicitEntry *EXPLICIT_ACCESS + if len(explicitEntries) > 0 { + firstExplicitEntry = &explicitEntries[0] + } + var winHeapACL *ACL + err = setEntriesInAcl(uint32(len(explicitEntries)), firstExplicitEntry, mergedACL, &winHeapACL) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapACL))) + aclBytes := make([]byte, winHeapACL.aclSize) + copy(aclBytes, (*[(1 << 31) - 1]byte)(unsafe.Pointer(winHeapACL))[:len(aclBytes):len(aclBytes)]) + return (*ACL)(unsafe.Pointer(&aclBytes[0])), nil +} diff --git a/vendor/golang.org/x/sys/windows/service.go b/vendor/golang.org/x/sys/windows/service.go new file mode 100644 index 000000000..a9dc6308d --- /dev/null +++ b/vendor/golang.org/x/sys/windows/service.go @@ -0,0 +1,257 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build windows + +package windows + +const ( + SC_MANAGER_CONNECT = 1 + SC_MANAGER_CREATE_SERVICE = 2 + SC_MANAGER_ENUMERATE_SERVICE = 4 + SC_MANAGER_LOCK = 8 + SC_MANAGER_QUERY_LOCK_STATUS = 16 + SC_MANAGER_MODIFY_BOOT_CONFIG = 32 + SC_MANAGER_ALL_ACCESS = 0xf003f +) + +const ( + SERVICE_KERNEL_DRIVER = 1 + SERVICE_FILE_SYSTEM_DRIVER = 2 + SERVICE_ADAPTER = 4 + SERVICE_RECOGNIZER_DRIVER = 8 + SERVICE_WIN32_OWN_PROCESS = 16 + SERVICE_WIN32_SHARE_PROCESS = 32 + SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS + SERVICE_INTERACTIVE_PROCESS = 256 + SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER + SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS + + SERVICE_BOOT_START = 0 + SERVICE_SYSTEM_START = 1 + SERVICE_AUTO_START = 2 + SERVICE_DEMAND_START = 3 + SERVICE_DISABLED = 4 + + SERVICE_ERROR_IGNORE = 0 + SERVICE_ERROR_NORMAL = 1 + SERVICE_ERROR_SEVERE = 2 + SERVICE_ERROR_CRITICAL = 3 + + SC_STATUS_PROCESS_INFO = 0 + + SC_ACTION_NONE = 0 + SC_ACTION_RESTART = 1 + SC_ACTION_REBOOT = 2 + SC_ACTION_RUN_COMMAND = 3 + + SERVICE_STOPPED = 1 + SERVICE_START_PENDING = 2 + SERVICE_STOP_PENDING = 3 + SERVICE_RUNNING = 4 + SERVICE_CONTINUE_PENDING = 5 + SERVICE_PAUSE_PENDING = 6 + SERVICE_PAUSED = 7 + SERVICE_NO_CHANGE = 0xffffffff + + SERVICE_ACCEPT_STOP = 1 + SERVICE_ACCEPT_PAUSE_CONTINUE = 2 + SERVICE_ACCEPT_SHUTDOWN = 4 + SERVICE_ACCEPT_PARAMCHANGE = 8 + SERVICE_ACCEPT_NETBINDCHANGE = 16 + SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32 + SERVICE_ACCEPT_POWEREVENT = 64 + SERVICE_ACCEPT_SESSIONCHANGE = 128 + SERVICE_ACCEPT_PRESHUTDOWN = 256 + + SERVICE_CONTROL_STOP = 1 + SERVICE_CONTROL_PAUSE = 2 + SERVICE_CONTROL_CONTINUE = 3 + SERVICE_CONTROL_INTERROGATE = 4 + SERVICE_CONTROL_SHUTDOWN = 5 + SERVICE_CONTROL_PARAMCHANGE = 6 + SERVICE_CONTROL_NETBINDADD = 7 + SERVICE_CONTROL_NETBINDREMOVE = 8 + SERVICE_CONTROL_NETBINDENABLE = 9 + SERVICE_CONTROL_NETBINDDISABLE = 10 + SERVICE_CONTROL_DEVICEEVENT = 11 + SERVICE_CONTROL_HARDWAREPROFILECHANGE = 12 + SERVICE_CONTROL_POWEREVENT = 13 + SERVICE_CONTROL_SESSIONCHANGE = 14 + SERVICE_CONTROL_PRESHUTDOWN = 15 + + SERVICE_ACTIVE = 1 + SERVICE_INACTIVE = 2 + SERVICE_STATE_ALL = 3 + + SERVICE_QUERY_CONFIG = 1 + SERVICE_CHANGE_CONFIG = 2 + SERVICE_QUERY_STATUS = 4 + SERVICE_ENUMERATE_DEPENDENTS = 8 + SERVICE_START = 16 + SERVICE_STOP = 32 + SERVICE_PAUSE_CONTINUE = 64 + SERVICE_INTERROGATE = 128 + SERVICE_USER_DEFINED_CONTROL = 256 + SERVICE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL + + SERVICE_RUNS_IN_SYSTEM_PROCESS = 1 + + SERVICE_CONFIG_DESCRIPTION = 1 + SERVICE_CONFIG_FAILURE_ACTIONS = 2 + SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 3 + SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = 4 + SERVICE_CONFIG_SERVICE_SID_INFO = 5 + SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6 + SERVICE_CONFIG_PRESHUTDOWN_INFO = 7 + SERVICE_CONFIG_TRIGGER_INFO = 8 + SERVICE_CONFIG_PREFERRED_NODE = 9 + SERVICE_CONFIG_LAUNCH_PROTECTED = 12 + + SERVICE_SID_TYPE_NONE = 0 + SERVICE_SID_TYPE_UNRESTRICTED = 1 + SERVICE_SID_TYPE_RESTRICTED = 2 | SERVICE_SID_TYPE_UNRESTRICTED + + SC_ENUM_PROCESS_INFO = 0 + + SERVICE_NOTIFY_STATUS_CHANGE = 2 + SERVICE_NOTIFY_STOPPED = 0x00000001 + SERVICE_NOTIFY_START_PENDING = 0x00000002 + SERVICE_NOTIFY_STOP_PENDING = 0x00000004 + SERVICE_NOTIFY_RUNNING = 0x00000008 + SERVICE_NOTIFY_CONTINUE_PENDING = 0x00000010 + SERVICE_NOTIFY_PAUSE_PENDING = 0x00000020 + SERVICE_NOTIFY_PAUSED = 0x00000040 + SERVICE_NOTIFY_CREATED = 0x00000080 + SERVICE_NOTIFY_DELETED = 0x00000100 + SERVICE_NOTIFY_DELETE_PENDING = 0x00000200 + + SC_EVENT_DATABASE_CHANGE = 0 + SC_EVENT_PROPERTY_CHANGE = 1 + SC_EVENT_STATUS_CHANGE = 2 + + SERVICE_START_REASON_DEMAND = 0x00000001 + SERVICE_START_REASON_AUTO = 0x00000002 + SERVICE_START_REASON_TRIGGER = 0x00000004 + SERVICE_START_REASON_RESTART_ON_FAILURE = 0x00000008 + SERVICE_START_REASON_DELAYEDAUTO = 0x00000010 + + SERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON = 1 +) + +type ENUM_SERVICE_STATUS struct { + ServiceName *uint16 + DisplayName *uint16 + ServiceStatus SERVICE_STATUS +} + +type SERVICE_STATUS struct { + ServiceType uint32 + CurrentState uint32 + ControlsAccepted uint32 + Win32ExitCode uint32 + ServiceSpecificExitCode uint32 + CheckPoint uint32 + WaitHint uint32 +} + +type SERVICE_TABLE_ENTRY struct { + ServiceName *uint16 + ServiceProc uintptr +} + +type QUERY_SERVICE_CONFIG struct { + ServiceType uint32 + StartType uint32 + ErrorControl uint32 + BinaryPathName *uint16 + LoadOrderGroup *uint16 + TagId uint32 + Dependencies *uint16 + ServiceStartName *uint16 + DisplayName *uint16 +} + +type SERVICE_DESCRIPTION struct { + Description *uint16 +} + +type SERVICE_DELAYED_AUTO_START_INFO struct { + IsDelayedAutoStartUp uint32 +} + +type SERVICE_STATUS_PROCESS struct { + ServiceType uint32 + CurrentState uint32 + ControlsAccepted uint32 + Win32ExitCode uint32 + ServiceSpecificExitCode uint32 + CheckPoint uint32 + WaitHint uint32 + ProcessId uint32 + ServiceFlags uint32 +} + +type ENUM_SERVICE_STATUS_PROCESS struct { + ServiceName *uint16 + DisplayName *uint16 + ServiceStatusProcess SERVICE_STATUS_PROCESS +} + +type SERVICE_NOTIFY struct { + Version uint32 + NotifyCallback uintptr + Context uintptr + NotificationStatus uint32 + ServiceStatus SERVICE_STATUS_PROCESS + NotificationTriggered uint32 + ServiceNames *uint16 +} + +type SERVICE_FAILURE_ACTIONS struct { + ResetPeriod uint32 + RebootMsg *uint16 + Command *uint16 + ActionsCount uint32 + Actions *SC_ACTION +} + +type SERVICE_FAILURE_ACTIONS_FLAG struct { + FailureActionsOnNonCrashFailures int32 +} + +type SC_ACTION struct { + Type uint32 + Delay uint32 +} + +type QUERY_SERVICE_LOCK_STATUS struct { + IsLocked uint32 + LockOwner *uint16 + LockDuration uint32 +} + +//sys OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenSCManagerW +//sys CloseServiceHandle(handle Handle) (err error) = advapi32.CloseServiceHandle +//sys CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) [failretval==0] = advapi32.CreateServiceW +//sys OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenServiceW +//sys DeleteService(service Handle) (err error) = advapi32.DeleteService +//sys StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) = advapi32.StartServiceW +//sys QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) = advapi32.QueryServiceStatus +//sys QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceLockStatusW +//sys ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) = advapi32.ControlService +//sys StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) = advapi32.StartServiceCtrlDispatcherW +//sys SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) = advapi32.SetServiceStatus +//sys ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) = advapi32.ChangeServiceConfigW +//sys QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfigW +//sys ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) = advapi32.ChangeServiceConfig2W +//sys QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfig2W +//sys EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) = advapi32.EnumServicesStatusExW +//sys QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceStatusEx +//sys NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) = advapi32.NotifyServiceStatusChangeW +//sys SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) = sechost.SubscribeServiceChangeNotifications? +//sys UnsubscribeServiceChangeNotifications(subscription uintptr) = sechost.UnsubscribeServiceChangeNotifications? +//sys RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) = advapi32.RegisterServiceCtrlHandlerExW +//sys QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) = advapi32.QueryServiceDynamicInformation? +//sys EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) = advapi32.EnumDependentServicesW diff --git a/vendor/golang.org/x/sys/windows/setupapi_windows.go b/vendor/golang.org/x/sys/windows/setupapi_windows.go new file mode 100644 index 000000000..f8126482f --- /dev/null +++ b/vendor/golang.org/x/sys/windows/setupapi_windows.go @@ -0,0 +1,1425 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +import ( + "encoding/binary" + "errors" + "fmt" + "runtime" + "strings" + "syscall" + "unsafe" +) + +// This file contains functions that wrap SetupAPI.dll and CfgMgr32.dll, +// core system functions for managing hardware devices, drivers, and the PnP tree. +// Information about these APIs can be found at: +// https://docs.microsoft.com/en-us/windows-hardware/drivers/install/setupapi +// https://docs.microsoft.com/en-us/windows/win32/devinst/cfgmgr32- + +const ( + ERROR_EXPECTED_SECTION_NAME Errno = 0x20000000 | 0xC0000000 | 0 + ERROR_BAD_SECTION_NAME_LINE Errno = 0x20000000 | 0xC0000000 | 1 + ERROR_SECTION_NAME_TOO_LONG Errno = 0x20000000 | 0xC0000000 | 2 + ERROR_GENERAL_SYNTAX Errno = 0x20000000 | 0xC0000000 | 3 + ERROR_WRONG_INF_STYLE Errno = 0x20000000 | 0xC0000000 | 0x100 + ERROR_SECTION_NOT_FOUND Errno = 0x20000000 | 0xC0000000 | 0x101 + ERROR_LINE_NOT_FOUND Errno = 0x20000000 | 0xC0000000 | 0x102 + ERROR_NO_BACKUP Errno = 0x20000000 | 0xC0000000 | 0x103 + ERROR_NO_ASSOCIATED_CLASS Errno = 0x20000000 | 0xC0000000 | 0x200 + ERROR_CLASS_MISMATCH Errno = 0x20000000 | 0xC0000000 | 0x201 + ERROR_DUPLICATE_FOUND Errno = 0x20000000 | 0xC0000000 | 0x202 + ERROR_NO_DRIVER_SELECTED Errno = 0x20000000 | 0xC0000000 | 0x203 + ERROR_KEY_DOES_NOT_EXIST Errno = 0x20000000 | 0xC0000000 | 0x204 + ERROR_INVALID_DEVINST_NAME Errno = 0x20000000 | 0xC0000000 | 0x205 + ERROR_INVALID_CLASS Errno = 0x20000000 | 0xC0000000 | 0x206 + ERROR_DEVINST_ALREADY_EXISTS Errno = 0x20000000 | 0xC0000000 | 0x207 + ERROR_DEVINFO_NOT_REGISTERED Errno = 0x20000000 | 0xC0000000 | 0x208 + ERROR_INVALID_REG_PROPERTY Errno = 0x20000000 | 0xC0000000 | 0x209 + ERROR_NO_INF Errno = 0x20000000 | 0xC0000000 | 0x20A + ERROR_NO_SUCH_DEVINST Errno = 0x20000000 | 0xC0000000 | 0x20B + ERROR_CANT_LOAD_CLASS_ICON Errno = 0x20000000 | 0xC0000000 | 0x20C + ERROR_INVALID_CLASS_INSTALLER Errno = 0x20000000 | 0xC0000000 | 0x20D + ERROR_DI_DO_DEFAULT Errno = 0x20000000 | 0xC0000000 | 0x20E + ERROR_DI_NOFILECOPY Errno = 0x20000000 | 0xC0000000 | 0x20F + ERROR_INVALID_HWPROFILE Errno = 0x20000000 | 0xC0000000 | 0x210 + ERROR_NO_DEVICE_SELECTED Errno = 0x20000000 | 0xC0000000 | 0x211 + ERROR_DEVINFO_LIST_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x212 + ERROR_DEVINFO_DATA_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x213 + ERROR_DI_BAD_PATH Errno = 0x20000000 | 0xC0000000 | 0x214 + ERROR_NO_CLASSINSTALL_PARAMS Errno = 0x20000000 | 0xC0000000 | 0x215 + ERROR_FILEQUEUE_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x216 + ERROR_BAD_SERVICE_INSTALLSECT Errno = 0x20000000 | 0xC0000000 | 0x217 + ERROR_NO_CLASS_DRIVER_LIST Errno = 0x20000000 | 0xC0000000 | 0x218 + ERROR_NO_ASSOCIATED_SERVICE Errno = 0x20000000 | 0xC0000000 | 0x219 + ERROR_NO_DEFAULT_DEVICE_INTERFACE Errno = 0x20000000 | 0xC0000000 | 0x21A + ERROR_DEVICE_INTERFACE_ACTIVE Errno = 0x20000000 | 0xC0000000 | 0x21B + ERROR_DEVICE_INTERFACE_REMOVED Errno = 0x20000000 | 0xC0000000 | 0x21C + ERROR_BAD_INTERFACE_INSTALLSECT Errno = 0x20000000 | 0xC0000000 | 0x21D + ERROR_NO_SUCH_INTERFACE_CLASS Errno = 0x20000000 | 0xC0000000 | 0x21E + ERROR_INVALID_REFERENCE_STRING Errno = 0x20000000 | 0xC0000000 | 0x21F + ERROR_INVALID_MACHINENAME Errno = 0x20000000 | 0xC0000000 | 0x220 + ERROR_REMOTE_COMM_FAILURE Errno = 0x20000000 | 0xC0000000 | 0x221 + ERROR_MACHINE_UNAVAILABLE Errno = 0x20000000 | 0xC0000000 | 0x222 + ERROR_NO_CONFIGMGR_SERVICES Errno = 0x20000000 | 0xC0000000 | 0x223 + ERROR_INVALID_PROPPAGE_PROVIDER Errno = 0x20000000 | 0xC0000000 | 0x224 + ERROR_NO_SUCH_DEVICE_INTERFACE Errno = 0x20000000 | 0xC0000000 | 0x225 + ERROR_DI_POSTPROCESSING_REQUIRED Errno = 0x20000000 | 0xC0000000 | 0x226 + ERROR_INVALID_COINSTALLER Errno = 0x20000000 | 0xC0000000 | 0x227 + ERROR_NO_COMPAT_DRIVERS Errno = 0x20000000 | 0xC0000000 | 0x228 + ERROR_NO_DEVICE_ICON Errno = 0x20000000 | 0xC0000000 | 0x229 + ERROR_INVALID_INF_LOGCONFIG Errno = 0x20000000 | 0xC0000000 | 0x22A + ERROR_DI_DONT_INSTALL Errno = 0x20000000 | 0xC0000000 | 0x22B + ERROR_INVALID_FILTER_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22C + ERROR_NON_WINDOWS_NT_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22D + ERROR_NON_WINDOWS_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22E + ERROR_NO_CATALOG_FOR_OEM_INF Errno = 0x20000000 | 0xC0000000 | 0x22F + ERROR_DEVINSTALL_QUEUE_NONNATIVE Errno = 0x20000000 | 0xC0000000 | 0x230 + ERROR_NOT_DISABLEABLE Errno = 0x20000000 | 0xC0000000 | 0x231 + ERROR_CANT_REMOVE_DEVINST Errno = 0x20000000 | 0xC0000000 | 0x232 + ERROR_INVALID_TARGET Errno = 0x20000000 | 0xC0000000 | 0x233 + ERROR_DRIVER_NONNATIVE Errno = 0x20000000 | 0xC0000000 | 0x234 + ERROR_IN_WOW64 Errno = 0x20000000 | 0xC0000000 | 0x235 + ERROR_SET_SYSTEM_RESTORE_POINT Errno = 0x20000000 | 0xC0000000 | 0x236 + ERROR_SCE_DISABLED Errno = 0x20000000 | 0xC0000000 | 0x238 + ERROR_UNKNOWN_EXCEPTION Errno = 0x20000000 | 0xC0000000 | 0x239 + ERROR_PNP_REGISTRY_ERROR Errno = 0x20000000 | 0xC0000000 | 0x23A + ERROR_REMOTE_REQUEST_UNSUPPORTED Errno = 0x20000000 | 0xC0000000 | 0x23B + ERROR_NOT_AN_INSTALLED_OEM_INF Errno = 0x20000000 | 0xC0000000 | 0x23C + ERROR_INF_IN_USE_BY_DEVICES Errno = 0x20000000 | 0xC0000000 | 0x23D + ERROR_DI_FUNCTION_OBSOLETE Errno = 0x20000000 | 0xC0000000 | 0x23E + ERROR_NO_AUTHENTICODE_CATALOG Errno = 0x20000000 | 0xC0000000 | 0x23F + ERROR_AUTHENTICODE_DISALLOWED Errno = 0x20000000 | 0xC0000000 | 0x240 + ERROR_AUTHENTICODE_TRUSTED_PUBLISHER Errno = 0x20000000 | 0xC0000000 | 0x241 + ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED Errno = 0x20000000 | 0xC0000000 | 0x242 + ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED Errno = 0x20000000 | 0xC0000000 | 0x243 + ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH Errno = 0x20000000 | 0xC0000000 | 0x244 + ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE Errno = 0x20000000 | 0xC0000000 | 0x245 + ERROR_DEVICE_INSTALLER_NOT_READY Errno = 0x20000000 | 0xC0000000 | 0x246 + ERROR_DRIVER_STORE_ADD_FAILED Errno = 0x20000000 | 0xC0000000 | 0x247 + ERROR_DEVICE_INSTALL_BLOCKED Errno = 0x20000000 | 0xC0000000 | 0x248 + ERROR_DRIVER_INSTALL_BLOCKED Errno = 0x20000000 | 0xC0000000 | 0x249 + ERROR_WRONG_INF_TYPE Errno = 0x20000000 | 0xC0000000 | 0x24A + ERROR_FILE_HASH_NOT_IN_CATALOG Errno = 0x20000000 | 0xC0000000 | 0x24B + ERROR_DRIVER_STORE_DELETE_FAILED Errno = 0x20000000 | 0xC0000000 | 0x24C + ERROR_UNRECOVERABLE_STACK_OVERFLOW Errno = 0x20000000 | 0xC0000000 | 0x300 + EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW Errno = ERROR_UNRECOVERABLE_STACK_OVERFLOW + ERROR_NO_DEFAULT_INTERFACE_DEVICE Errno = ERROR_NO_DEFAULT_DEVICE_INTERFACE + ERROR_INTERFACE_DEVICE_ACTIVE Errno = ERROR_DEVICE_INTERFACE_ACTIVE + ERROR_INTERFACE_DEVICE_REMOVED Errno = ERROR_DEVICE_INTERFACE_REMOVED + ERROR_NO_SUCH_INTERFACE_DEVICE Errno = ERROR_NO_SUCH_DEVICE_INTERFACE +) + +const ( + MAX_DEVICE_ID_LEN = 200 + MAX_DEVNODE_ID_LEN = MAX_DEVICE_ID_LEN + MAX_GUID_STRING_LEN = 39 // 38 chars + terminator null + MAX_CLASS_NAME_LEN = 32 + MAX_PROFILE_LEN = 80 + MAX_CONFIG_VALUE = 9999 + MAX_INSTANCE_VALUE = 9999 + CONFIGMG_VERSION = 0x0400 +) + +// Maximum string length constants +const ( + LINE_LEN = 256 // Windows 9x-compatible maximum for displayable strings coming from a device INF. + MAX_INF_STRING_LENGTH = 4096 // Actual maximum size of an INF string (including string substitutions). + MAX_INF_SECTION_NAME_LENGTH = 255 // For Windows 9x compatibility, INF section names should be constrained to 32 characters. + MAX_TITLE_LEN = 60 + MAX_INSTRUCTION_LEN = 256 + MAX_LABEL_LEN = 30 + MAX_SERVICE_NAME_LEN = 256 + MAX_SUBTITLE_LEN = 256 +) + +const ( + // SP_MAX_MACHINENAME_LENGTH defines maximum length of a machine name in the format expected by ConfigMgr32 CM_Connect_Machine (i.e., "\\\\MachineName\0"). + SP_MAX_MACHINENAME_LENGTH = MAX_PATH + 3 +) + +// HSPFILEQ is type for setup file queue +type HSPFILEQ uintptr + +// DevInfo holds reference to device information set +type DevInfo Handle + +// DEVINST is a handle usually recognized by cfgmgr32 APIs +type DEVINST uint32 + +// DevInfoData is a device information structure (references a device instance that is a member of a device information set) +type DevInfoData struct { + size uint32 + ClassGUID GUID + DevInst DEVINST + _ uintptr +} + +// DevInfoListDetailData is a structure for detailed information on a device information set (used for SetupDiGetDeviceInfoListDetail which supersedes the functionality of SetupDiGetDeviceInfoListClass). +type DevInfoListDetailData struct { + size uint32 // Use unsafeSizeOf method + ClassGUID GUID + RemoteMachineHandle Handle + remoteMachineName [SP_MAX_MACHINENAME_LENGTH]uint16 +} + +func (*DevInfoListDetailData) unsafeSizeOf() uint32 { + if unsafe.Sizeof(uintptr(0)) == 4 { + // Windows declares this with pshpack1.h + return uint32(unsafe.Offsetof(DevInfoListDetailData{}.remoteMachineName) + unsafe.Sizeof(DevInfoListDetailData{}.remoteMachineName)) + } + return uint32(unsafe.Sizeof(DevInfoListDetailData{})) +} + +func (data *DevInfoListDetailData) RemoteMachineName() string { + return UTF16ToString(data.remoteMachineName[:]) +} + +func (data *DevInfoListDetailData) SetRemoteMachineName(remoteMachineName string) error { + str, err := UTF16FromString(remoteMachineName) + if err != nil { + return err + } + copy(data.remoteMachineName[:], str) + return nil +} + +// DI_FUNCTION is function type for device installer +type DI_FUNCTION uint32 + +const ( + DIF_SELECTDEVICE DI_FUNCTION = 0x00000001 + DIF_INSTALLDEVICE DI_FUNCTION = 0x00000002 + DIF_ASSIGNRESOURCES DI_FUNCTION = 0x00000003 + DIF_PROPERTIES DI_FUNCTION = 0x00000004 + DIF_REMOVE DI_FUNCTION = 0x00000005 + DIF_FIRSTTIMESETUP DI_FUNCTION = 0x00000006 + DIF_FOUNDDEVICE DI_FUNCTION = 0x00000007 + DIF_SELECTCLASSDRIVERS DI_FUNCTION = 0x00000008 + DIF_VALIDATECLASSDRIVERS DI_FUNCTION = 0x00000009 + DIF_INSTALLCLASSDRIVERS DI_FUNCTION = 0x0000000A + DIF_CALCDISKSPACE DI_FUNCTION = 0x0000000B + DIF_DESTROYPRIVATEDATA DI_FUNCTION = 0x0000000C + DIF_VALIDATEDRIVER DI_FUNCTION = 0x0000000D + DIF_DETECT DI_FUNCTION = 0x0000000F + DIF_INSTALLWIZARD DI_FUNCTION = 0x00000010 + DIF_DESTROYWIZARDDATA DI_FUNCTION = 0x00000011 + DIF_PROPERTYCHANGE DI_FUNCTION = 0x00000012 + DIF_ENABLECLASS DI_FUNCTION = 0x00000013 + DIF_DETECTVERIFY DI_FUNCTION = 0x00000014 + DIF_INSTALLDEVICEFILES DI_FUNCTION = 0x00000015 + DIF_UNREMOVE DI_FUNCTION = 0x00000016 + DIF_SELECTBESTCOMPATDRV DI_FUNCTION = 0x00000017 + DIF_ALLOW_INSTALL DI_FUNCTION = 0x00000018 + DIF_REGISTERDEVICE DI_FUNCTION = 0x00000019 + DIF_NEWDEVICEWIZARD_PRESELECT DI_FUNCTION = 0x0000001A + DIF_NEWDEVICEWIZARD_SELECT DI_FUNCTION = 0x0000001B + DIF_NEWDEVICEWIZARD_PREANALYZE DI_FUNCTION = 0x0000001C + DIF_NEWDEVICEWIZARD_POSTANALYZE DI_FUNCTION = 0x0000001D + DIF_NEWDEVICEWIZARD_FINISHINSTALL DI_FUNCTION = 0x0000001E + DIF_INSTALLINTERFACES DI_FUNCTION = 0x00000020 + DIF_DETECTCANCEL DI_FUNCTION = 0x00000021 + DIF_REGISTER_COINSTALLERS DI_FUNCTION = 0x00000022 + DIF_ADDPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000023 + DIF_ADDPROPERTYPAGE_BASIC DI_FUNCTION = 0x00000024 + DIF_TROUBLESHOOTER DI_FUNCTION = 0x00000026 + DIF_POWERMESSAGEWAKE DI_FUNCTION = 0x00000027 + DIF_ADDREMOTEPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000028 + DIF_UPDATEDRIVER_UI DI_FUNCTION = 0x00000029 + DIF_FINISHINSTALL_ACTION DI_FUNCTION = 0x0000002A +) + +// DevInstallParams is device installation parameters structure (associated with a particular device information element, or globally with a device information set) +type DevInstallParams struct { + size uint32 + Flags DI_FLAGS + FlagsEx DI_FLAGSEX + hwndParent uintptr + InstallMsgHandler uintptr + InstallMsgHandlerContext uintptr + FileQueue HSPFILEQ + _ uintptr + _ uint32 + driverPath [MAX_PATH]uint16 +} + +func (params *DevInstallParams) DriverPath() string { + return UTF16ToString(params.driverPath[:]) +} + +func (params *DevInstallParams) SetDriverPath(driverPath string) error { + str, err := UTF16FromString(driverPath) + if err != nil { + return err + } + copy(params.driverPath[:], str) + return nil +} + +// DI_FLAGS is SP_DEVINSTALL_PARAMS.Flags values +type DI_FLAGS uint32 + +const ( + // Flags for choosing a device + DI_SHOWOEM DI_FLAGS = 0x00000001 // support Other... button + DI_SHOWCOMPAT DI_FLAGS = 0x00000002 // show compatibility list + DI_SHOWCLASS DI_FLAGS = 0x00000004 // show class list + DI_SHOWALL DI_FLAGS = 0x00000007 // both class & compat list shown + DI_NOVCP DI_FLAGS = 0x00000008 // don't create a new copy queue--use caller-supplied FileQueue + DI_DIDCOMPAT DI_FLAGS = 0x00000010 // Searched for compatible devices + DI_DIDCLASS DI_FLAGS = 0x00000020 // Searched for class devices + DI_AUTOASSIGNRES DI_FLAGS = 0x00000040 // No UI for resources if possible + + // Flags returned by DiInstallDevice to indicate need to reboot/restart + DI_NEEDRESTART DI_FLAGS = 0x00000080 // Reboot required to take effect + DI_NEEDREBOOT DI_FLAGS = 0x00000100 // "" + + // Flags for device installation + DI_NOBROWSE DI_FLAGS = 0x00000200 // no Browse... in InsertDisk + + // Flags set by DiBuildDriverInfoList + DI_MULTMFGS DI_FLAGS = 0x00000400 // Set if multiple manufacturers in class driver list + + // Flag indicates that device is disabled + DI_DISABLED DI_FLAGS = 0x00000800 // Set if device disabled + + // Flags for Device/Class Properties + DI_GENERALPAGE_ADDED DI_FLAGS = 0x00001000 + DI_RESOURCEPAGE_ADDED DI_FLAGS = 0x00002000 + + // Flag to indicate the setting properties for this Device (or class) caused a change so the Dev Mgr UI probably needs to be updated. + DI_PROPERTIES_CHANGE DI_FLAGS = 0x00004000 + + // Flag to indicate that the sorting from the INF file should be used. + DI_INF_IS_SORTED DI_FLAGS = 0x00008000 + + // Flag to indicate that only the INF specified by SP_DEVINSTALL_PARAMS.DriverPath should be searched. + DI_ENUMSINGLEINF DI_FLAGS = 0x00010000 + + // Flag that prevents ConfigMgr from removing/re-enumerating devices during device + // registration, installation, and deletion. + DI_DONOTCALLCONFIGMG DI_FLAGS = 0x00020000 + + // The following flag can be used to install a device disabled + DI_INSTALLDISABLED DI_FLAGS = 0x00040000 + + // Flag that causes SetupDiBuildDriverInfoList to build a device's compatible driver + // list from its existing class driver list, instead of the normal INF search. + DI_COMPAT_FROM_CLASS DI_FLAGS = 0x00080000 + + // This flag is set if the Class Install params should be used. + DI_CLASSINSTALLPARAMS DI_FLAGS = 0x00100000 + + // This flag is set if the caller of DiCallClassInstaller does NOT want the internal default action performed if the Class installer returns ERROR_DI_DO_DEFAULT. + DI_NODI_DEFAULTACTION DI_FLAGS = 0x00200000 + + // Flags for device installation + DI_QUIETINSTALL DI_FLAGS = 0x00800000 // don't confuse the user with questions or excess info + DI_NOFILECOPY DI_FLAGS = 0x01000000 // No file Copy necessary + DI_FORCECOPY DI_FLAGS = 0x02000000 // Force files to be copied from install path + DI_DRIVERPAGE_ADDED DI_FLAGS = 0x04000000 // Prop provider added Driver page. + DI_USECI_SELECTSTRINGS DI_FLAGS = 0x08000000 // Use Class Installer Provided strings in the Select Device Dlg + DI_OVERRIDE_INFFLAGS DI_FLAGS = 0x10000000 // Override INF flags + DI_PROPS_NOCHANGEUSAGE DI_FLAGS = 0x20000000 // No Enable/Disable in General Props + + DI_NOSELECTICONS DI_FLAGS = 0x40000000 // No small icons in select device dialogs + + DI_NOWRITE_IDS DI_FLAGS = 0x80000000 // Don't write HW & Compat IDs on install +) + +// DI_FLAGSEX is SP_DEVINSTALL_PARAMS.FlagsEx values +type DI_FLAGSEX uint32 + +const ( + DI_FLAGSEX_CI_FAILED DI_FLAGSEX = 0x00000004 // Failed to Load/Call class installer + DI_FLAGSEX_FINISHINSTALL_ACTION DI_FLAGSEX = 0x00000008 // Class/co-installer wants to get a DIF_FINISH_INSTALL action in client context. + DI_FLAGSEX_DIDINFOLIST DI_FLAGSEX = 0x00000010 // Did the Class Info List + DI_FLAGSEX_DIDCOMPATINFO DI_FLAGSEX = 0x00000020 // Did the Compat Info List + DI_FLAGSEX_FILTERCLASSES DI_FLAGSEX = 0x00000040 + DI_FLAGSEX_SETFAILEDINSTALL DI_FLAGSEX = 0x00000080 + DI_FLAGSEX_DEVICECHANGE DI_FLAGSEX = 0x00000100 + DI_FLAGSEX_ALWAYSWRITEIDS DI_FLAGSEX = 0x00000200 + DI_FLAGSEX_PROPCHANGE_PENDING DI_FLAGSEX = 0x00000400 // One or more device property sheets have had changes made to them, and need to have a DIF_PROPERTYCHANGE occur. + DI_FLAGSEX_ALLOWEXCLUDEDDRVS DI_FLAGSEX = 0x00000800 + DI_FLAGSEX_NOUIONQUERYREMOVE DI_FLAGSEX = 0x00001000 + DI_FLAGSEX_USECLASSFORCOMPAT DI_FLAGSEX = 0x00002000 // Use the device's class when building compat drv list. (Ignored if DI_COMPAT_FROM_CLASS flag is specified.) + DI_FLAGSEX_NO_DRVREG_MODIFY DI_FLAGSEX = 0x00008000 // Don't run AddReg and DelReg for device's software (driver) key. + DI_FLAGSEX_IN_SYSTEM_SETUP DI_FLAGSEX = 0x00010000 // Installation is occurring during initial system setup. + DI_FLAGSEX_INET_DRIVER DI_FLAGSEX = 0x00020000 // Driver came from Windows Update + DI_FLAGSEX_APPENDDRIVERLIST DI_FLAGSEX = 0x00040000 // Cause SetupDiBuildDriverInfoList to append a new driver list to an existing list. + DI_FLAGSEX_PREINSTALLBACKUP DI_FLAGSEX = 0x00080000 // not used + DI_FLAGSEX_BACKUPONREPLACE DI_FLAGSEX = 0x00100000 // not used + DI_FLAGSEX_DRIVERLIST_FROM_URL DI_FLAGSEX = 0x00200000 // build driver list from INF(s) retrieved from URL specified in SP_DEVINSTALL_PARAMS.DriverPath (empty string means Windows Update website) + DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS DI_FLAGSEX = 0x00800000 // Don't include old Internet drivers when building a driver list. Ignored on Windows Vista and later. + DI_FLAGSEX_POWERPAGE_ADDED DI_FLAGSEX = 0x01000000 // class installer added their own power page + DI_FLAGSEX_FILTERSIMILARDRIVERS DI_FLAGSEX = 0x02000000 // only include similar drivers in class list + DI_FLAGSEX_INSTALLEDDRIVER DI_FLAGSEX = 0x04000000 // only add the installed driver to the class or compat driver list. Used in calls to SetupDiBuildDriverInfoList + DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE DI_FLAGSEX = 0x08000000 // Don't remove identical driver nodes from the class list + DI_FLAGSEX_ALTPLATFORM_DRVSEARCH DI_FLAGSEX = 0x10000000 // Build driver list based on alternate platform information specified in associated file queue + DI_FLAGSEX_RESTART_DEVICE_ONLY DI_FLAGSEX = 0x20000000 // only restart the device drivers are being installed on as opposed to restarting all devices using those drivers. + DI_FLAGSEX_RECURSIVESEARCH DI_FLAGSEX = 0x40000000 // Tell SetupDiBuildDriverInfoList to do a recursive search + DI_FLAGSEX_SEARCH_PUBLISHED_INFS DI_FLAGSEX = 0x80000000 // Tell SetupDiBuildDriverInfoList to do a "published INF" search +) + +// ClassInstallHeader is the first member of any class install parameters structure. It contains the device installation request code that defines the format of the rest of the install parameters structure. +type ClassInstallHeader struct { + size uint32 + InstallFunction DI_FUNCTION +} + +func MakeClassInstallHeader(installFunction DI_FUNCTION) *ClassInstallHeader { + hdr := &ClassInstallHeader{InstallFunction: installFunction} + hdr.size = uint32(unsafe.Sizeof(*hdr)) + return hdr +} + +// DICS_STATE specifies values indicating a change in a device's state +type DICS_STATE uint32 + +const ( + DICS_ENABLE DICS_STATE = 0x00000001 // The device is being enabled. + DICS_DISABLE DICS_STATE = 0x00000002 // The device is being disabled. + DICS_PROPCHANGE DICS_STATE = 0x00000003 // The properties of the device have changed. + DICS_START DICS_STATE = 0x00000004 // The device is being started (if the request is for the currently active hardware profile). + DICS_STOP DICS_STATE = 0x00000005 // The device is being stopped. The driver stack will be unloaded and the CSCONFIGFLAG_DO_NOT_START flag will be set for the device. +) + +// DICS_FLAG specifies the scope of a device property change +type DICS_FLAG uint32 + +const ( + DICS_FLAG_GLOBAL DICS_FLAG = 0x00000001 // make change in all hardware profiles + DICS_FLAG_CONFIGSPECIFIC DICS_FLAG = 0x00000002 // make change in specified profile only + DICS_FLAG_CONFIGGENERAL DICS_FLAG = 0x00000004 // 1 or more hardware profile-specific changes to follow (obsolete) +) + +// PropChangeParams is a structure corresponding to a DIF_PROPERTYCHANGE install function. +type PropChangeParams struct { + ClassInstallHeader ClassInstallHeader + StateChange DICS_STATE + Scope DICS_FLAG + HwProfile uint32 +} + +// DI_REMOVEDEVICE specifies the scope of the device removal +type DI_REMOVEDEVICE uint32 + +const ( + DI_REMOVEDEVICE_GLOBAL DI_REMOVEDEVICE = 0x00000001 // Make this change in all hardware profiles. Remove information about the device from the registry. + DI_REMOVEDEVICE_CONFIGSPECIFIC DI_REMOVEDEVICE = 0x00000002 // Make this change to only the hardware profile specified by HwProfile. this flag only applies to root-enumerated devices. When Windows removes the device from the last hardware profile in which it was configured, Windows performs a global removal. +) + +// RemoveDeviceParams is a structure corresponding to a DIF_REMOVE install function. +type RemoveDeviceParams struct { + ClassInstallHeader ClassInstallHeader + Scope DI_REMOVEDEVICE + HwProfile uint32 +} + +// DrvInfoData is driver information structure (member of a driver info list that may be associated with a particular device instance, or (globally) with a device information set) +type DrvInfoData struct { + size uint32 + DriverType uint32 + _ uintptr + description [LINE_LEN]uint16 + mfgName [LINE_LEN]uint16 + providerName [LINE_LEN]uint16 + DriverDate Filetime + DriverVersion uint64 +} + +func (data *DrvInfoData) Description() string { + return UTF16ToString(data.description[:]) +} + +func (data *DrvInfoData) SetDescription(description string) error { + str, err := UTF16FromString(description) + if err != nil { + return err + } + copy(data.description[:], str) + return nil +} + +func (data *DrvInfoData) MfgName() string { + return UTF16ToString(data.mfgName[:]) +} + +func (data *DrvInfoData) SetMfgName(mfgName string) error { + str, err := UTF16FromString(mfgName) + if err != nil { + return err + } + copy(data.mfgName[:], str) + return nil +} + +func (data *DrvInfoData) ProviderName() string { + return UTF16ToString(data.providerName[:]) +} + +func (data *DrvInfoData) SetProviderName(providerName string) error { + str, err := UTF16FromString(providerName) + if err != nil { + return err + } + copy(data.providerName[:], str) + return nil +} + +// IsNewer method returns true if DrvInfoData date and version is newer than supplied parameters. +func (data *DrvInfoData) IsNewer(driverDate Filetime, driverVersion uint64) bool { + if data.DriverDate.HighDateTime > driverDate.HighDateTime { + return true + } + if data.DriverDate.HighDateTime < driverDate.HighDateTime { + return false + } + + if data.DriverDate.LowDateTime > driverDate.LowDateTime { + return true + } + if data.DriverDate.LowDateTime < driverDate.LowDateTime { + return false + } + + if data.DriverVersion > driverVersion { + return true + } + if data.DriverVersion < driverVersion { + return false + } + + return false +} + +// DrvInfoDetailData is driver information details structure (provides detailed information about a particular driver information structure) +type DrvInfoDetailData struct { + size uint32 // Use unsafeSizeOf method + InfDate Filetime + compatIDsOffset uint32 + compatIDsLength uint32 + _ uintptr + sectionName [LINE_LEN]uint16 + infFileName [MAX_PATH]uint16 + drvDescription [LINE_LEN]uint16 + hardwareID [1]uint16 +} + +func (*DrvInfoDetailData) unsafeSizeOf() uint32 { + if unsafe.Sizeof(uintptr(0)) == 4 { + // Windows declares this with pshpack1.h + return uint32(unsafe.Offsetof(DrvInfoDetailData{}.hardwareID) + unsafe.Sizeof(DrvInfoDetailData{}.hardwareID)) + } + return uint32(unsafe.Sizeof(DrvInfoDetailData{})) +} + +func (data *DrvInfoDetailData) SectionName() string { + return UTF16ToString(data.sectionName[:]) +} + +func (data *DrvInfoDetailData) InfFileName() string { + return UTF16ToString(data.infFileName[:]) +} + +func (data *DrvInfoDetailData) DrvDescription() string { + return UTF16ToString(data.drvDescription[:]) +} + +func (data *DrvInfoDetailData) HardwareID() string { + if data.compatIDsOffset > 1 { + bufW := data.getBuf() + return UTF16ToString(bufW[:wcslen(bufW)]) + } + + return "" +} + +func (data *DrvInfoDetailData) CompatIDs() []string { + a := make([]string, 0) + + if data.compatIDsLength > 0 { + bufW := data.getBuf() + bufW = bufW[data.compatIDsOffset : data.compatIDsOffset+data.compatIDsLength] + for i := 0; i < len(bufW); { + j := i + wcslen(bufW[i:]) + if i < j { + a = append(a, UTF16ToString(bufW[i:j])) + } + i = j + 1 + } + } + + return a +} + +func (data *DrvInfoDetailData) getBuf() []uint16 { + len := (data.size - uint32(unsafe.Offsetof(data.hardwareID))) / 2 + sl := struct { + addr *uint16 + len int + cap int + }{&data.hardwareID[0], int(len), int(len)} + return *(*[]uint16)(unsafe.Pointer(&sl)) +} + +// IsCompatible method tests if given hardware ID matches the driver or is listed on the compatible ID list. +func (data *DrvInfoDetailData) IsCompatible(hwid string) bool { + hwidLC := strings.ToLower(hwid) + if strings.ToLower(data.HardwareID()) == hwidLC { + return true + } + a := data.CompatIDs() + for i := range a { + if strings.ToLower(a[i]) == hwidLC { + return true + } + } + + return false +} + +// DICD flags control SetupDiCreateDeviceInfo +type DICD uint32 + +const ( + DICD_GENERATE_ID DICD = 0x00000001 + DICD_INHERIT_CLASSDRVS DICD = 0x00000002 +) + +// SUOI flags control SetupUninstallOEMInf +type SUOI uint32 + +const ( + SUOI_FORCEDELETE SUOI = 0x0001 +) + +// SPDIT flags to distinguish between class drivers and +// device drivers. (Passed in 'DriverType' parameter of +// driver information list APIs) +type SPDIT uint32 + +const ( + SPDIT_NODRIVER SPDIT = 0x00000000 + SPDIT_CLASSDRIVER SPDIT = 0x00000001 + SPDIT_COMPATDRIVER SPDIT = 0x00000002 +) + +// DIGCF flags control what is included in the device information set built by SetupDiGetClassDevs +type DIGCF uint32 + +const ( + DIGCF_DEFAULT DIGCF = 0x00000001 // only valid with DIGCF_DEVICEINTERFACE + DIGCF_PRESENT DIGCF = 0x00000002 + DIGCF_ALLCLASSES DIGCF = 0x00000004 + DIGCF_PROFILE DIGCF = 0x00000008 + DIGCF_DEVICEINTERFACE DIGCF = 0x00000010 +) + +// DIREG specifies values for SetupDiCreateDevRegKey, SetupDiOpenDevRegKey, and SetupDiDeleteDevRegKey. +type DIREG uint32 + +const ( + DIREG_DEV DIREG = 0x00000001 // Open/Create/Delete device key + DIREG_DRV DIREG = 0x00000002 // Open/Create/Delete driver key + DIREG_BOTH DIREG = 0x00000004 // Delete both driver and Device key +) + +// SPDRP specifies device registry property codes +// (Codes marked as read-only (R) may only be used for +// SetupDiGetDeviceRegistryProperty) +// +// These values should cover the same set of registry properties +// as defined by the CM_DRP codes in cfgmgr32.h. +// +// Note that SPDRP codes are zero based while CM_DRP codes are one based! +type SPDRP uint32 + +const ( + SPDRP_DEVICEDESC SPDRP = 0x00000000 // DeviceDesc (R/W) + SPDRP_HARDWAREID SPDRP = 0x00000001 // HardwareID (R/W) + SPDRP_COMPATIBLEIDS SPDRP = 0x00000002 // CompatibleIDs (R/W) + SPDRP_SERVICE SPDRP = 0x00000004 // Service (R/W) + SPDRP_CLASS SPDRP = 0x00000007 // Class (R--tied to ClassGUID) + SPDRP_CLASSGUID SPDRP = 0x00000008 // ClassGUID (R/W) + SPDRP_DRIVER SPDRP = 0x00000009 // Driver (R/W) + SPDRP_CONFIGFLAGS SPDRP = 0x0000000A // ConfigFlags (R/W) + SPDRP_MFG SPDRP = 0x0000000B // Mfg (R/W) + SPDRP_FRIENDLYNAME SPDRP = 0x0000000C // FriendlyName (R/W) + SPDRP_LOCATION_INFORMATION SPDRP = 0x0000000D // LocationInformation (R/W) + SPDRP_PHYSICAL_DEVICE_OBJECT_NAME SPDRP = 0x0000000E // PhysicalDeviceObjectName (R) + SPDRP_CAPABILITIES SPDRP = 0x0000000F // Capabilities (R) + SPDRP_UI_NUMBER SPDRP = 0x00000010 // UiNumber (R) + SPDRP_UPPERFILTERS SPDRP = 0x00000011 // UpperFilters (R/W) + SPDRP_LOWERFILTERS SPDRP = 0x00000012 // LowerFilters (R/W) + SPDRP_BUSTYPEGUID SPDRP = 0x00000013 // BusTypeGUID (R) + SPDRP_LEGACYBUSTYPE SPDRP = 0x00000014 // LegacyBusType (R) + SPDRP_BUSNUMBER SPDRP = 0x00000015 // BusNumber (R) + SPDRP_ENUMERATOR_NAME SPDRP = 0x00000016 // Enumerator Name (R) + SPDRP_SECURITY SPDRP = 0x00000017 // Security (R/W, binary form) + SPDRP_SECURITY_SDS SPDRP = 0x00000018 // Security (W, SDS form) + SPDRP_DEVTYPE SPDRP = 0x00000019 // Device Type (R/W) + SPDRP_EXCLUSIVE SPDRP = 0x0000001A // Device is exclusive-access (R/W) + SPDRP_CHARACTERISTICS SPDRP = 0x0000001B // Device Characteristics (R/W) + SPDRP_ADDRESS SPDRP = 0x0000001C // Device Address (R) + SPDRP_UI_NUMBER_DESC_FORMAT SPDRP = 0x0000001D // UiNumberDescFormat (R/W) + SPDRP_DEVICE_POWER_DATA SPDRP = 0x0000001E // Device Power Data (R) + SPDRP_REMOVAL_POLICY SPDRP = 0x0000001F // Removal Policy (R) + SPDRP_REMOVAL_POLICY_HW_DEFAULT SPDRP = 0x00000020 // Hardware Removal Policy (R) + SPDRP_REMOVAL_POLICY_OVERRIDE SPDRP = 0x00000021 // Removal Policy Override (RW) + SPDRP_INSTALL_STATE SPDRP = 0x00000022 // Device Install State (R) + SPDRP_LOCATION_PATHS SPDRP = 0x00000023 // Device Location Paths (R) + SPDRP_BASE_CONTAINERID SPDRP = 0x00000024 // Base ContainerID (R) + + SPDRP_MAXIMUM_PROPERTY SPDRP = 0x00000025 // Upper bound on ordinals +) + +// DEVPROPTYPE represents the property-data-type identifier that specifies the +// data type of a device property value in the unified device property model. +type DEVPROPTYPE uint32 + +const ( + DEVPROP_TYPEMOD_ARRAY DEVPROPTYPE = 0x00001000 + DEVPROP_TYPEMOD_LIST DEVPROPTYPE = 0x00002000 + + DEVPROP_TYPE_EMPTY DEVPROPTYPE = 0x00000000 + DEVPROP_TYPE_NULL DEVPROPTYPE = 0x00000001 + DEVPROP_TYPE_SBYTE DEVPROPTYPE = 0x00000002 + DEVPROP_TYPE_BYTE DEVPROPTYPE = 0x00000003 + DEVPROP_TYPE_INT16 DEVPROPTYPE = 0x00000004 + DEVPROP_TYPE_UINT16 DEVPROPTYPE = 0x00000005 + DEVPROP_TYPE_INT32 DEVPROPTYPE = 0x00000006 + DEVPROP_TYPE_UINT32 DEVPROPTYPE = 0x00000007 + DEVPROP_TYPE_INT64 DEVPROPTYPE = 0x00000008 + DEVPROP_TYPE_UINT64 DEVPROPTYPE = 0x00000009 + DEVPROP_TYPE_FLOAT DEVPROPTYPE = 0x0000000A + DEVPROP_TYPE_DOUBLE DEVPROPTYPE = 0x0000000B + DEVPROP_TYPE_DECIMAL DEVPROPTYPE = 0x0000000C + DEVPROP_TYPE_GUID DEVPROPTYPE = 0x0000000D + DEVPROP_TYPE_CURRENCY DEVPROPTYPE = 0x0000000E + DEVPROP_TYPE_DATE DEVPROPTYPE = 0x0000000F + DEVPROP_TYPE_FILETIME DEVPROPTYPE = 0x00000010 + DEVPROP_TYPE_BOOLEAN DEVPROPTYPE = 0x00000011 + DEVPROP_TYPE_STRING DEVPROPTYPE = 0x00000012 + DEVPROP_TYPE_STRING_LIST DEVPROPTYPE = DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST + DEVPROP_TYPE_SECURITY_DESCRIPTOR DEVPROPTYPE = 0x00000013 + DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING DEVPROPTYPE = 0x00000014 + DEVPROP_TYPE_DEVPROPKEY DEVPROPTYPE = 0x00000015 + DEVPROP_TYPE_DEVPROPTYPE DEVPROPTYPE = 0x00000016 + DEVPROP_TYPE_BINARY DEVPROPTYPE = DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY + DEVPROP_TYPE_ERROR DEVPROPTYPE = 0x00000017 + DEVPROP_TYPE_NTSTATUS DEVPROPTYPE = 0x00000018 + DEVPROP_TYPE_STRING_INDIRECT DEVPROPTYPE = 0x00000019 + + MAX_DEVPROP_TYPE DEVPROPTYPE = 0x00000019 + MAX_DEVPROP_TYPEMOD DEVPROPTYPE = 0x00002000 + + DEVPROP_MASK_TYPE DEVPROPTYPE = 0x00000FFF + DEVPROP_MASK_TYPEMOD DEVPROPTYPE = 0x0000F000 +) + +// DEVPROPGUID specifies a property category. +type DEVPROPGUID GUID + +// DEVPROPID uniquely identifies the property within the property category. +type DEVPROPID uint32 + +const DEVPROPID_FIRST_USABLE DEVPROPID = 2 + +// DEVPROPKEY represents a device property key for a device property in the +// unified device property model. +type DEVPROPKEY struct { + FmtID DEVPROPGUID + PID DEVPROPID +} + +// CONFIGRET is a return value or error code from cfgmgr32 APIs +type CONFIGRET uint32 + +func (ret CONFIGRET) Error() string { + if win32Error, ok := ret.Unwrap().(Errno); ok { + return fmt.Sprintf("%s (CfgMgr error: 0x%08x)", win32Error.Error(), uint32(ret)) + } + return fmt.Sprintf("CfgMgr error: 0x%08x", uint32(ret)) +} + +func (ret CONFIGRET) Win32Error(defaultError Errno) Errno { + return cm_MapCrToWin32Err(ret, defaultError) +} + +func (ret CONFIGRET) Unwrap() error { + const noMatch = Errno(^uintptr(0)) + win32Error := ret.Win32Error(noMatch) + if win32Error == noMatch { + return nil + } + return win32Error +} + +const ( + CR_SUCCESS CONFIGRET = 0x00000000 + CR_DEFAULT CONFIGRET = 0x00000001 + CR_OUT_OF_MEMORY CONFIGRET = 0x00000002 + CR_INVALID_POINTER CONFIGRET = 0x00000003 + CR_INVALID_FLAG CONFIGRET = 0x00000004 + CR_INVALID_DEVNODE CONFIGRET = 0x00000005 + CR_INVALID_DEVINST = CR_INVALID_DEVNODE + CR_INVALID_RES_DES CONFIGRET = 0x00000006 + CR_INVALID_LOG_CONF CONFIGRET = 0x00000007 + CR_INVALID_ARBITRATOR CONFIGRET = 0x00000008 + CR_INVALID_NODELIST CONFIGRET = 0x00000009 + CR_DEVNODE_HAS_REQS CONFIGRET = 0x0000000A + CR_DEVINST_HAS_REQS = CR_DEVNODE_HAS_REQS + CR_INVALID_RESOURCEID CONFIGRET = 0x0000000B + CR_DLVXD_NOT_FOUND CONFIGRET = 0x0000000C + CR_NO_SUCH_DEVNODE CONFIGRET = 0x0000000D + CR_NO_SUCH_DEVINST = CR_NO_SUCH_DEVNODE + CR_NO_MORE_LOG_CONF CONFIGRET = 0x0000000E + CR_NO_MORE_RES_DES CONFIGRET = 0x0000000F + CR_ALREADY_SUCH_DEVNODE CONFIGRET = 0x00000010 + CR_ALREADY_SUCH_DEVINST = CR_ALREADY_SUCH_DEVNODE + CR_INVALID_RANGE_LIST CONFIGRET = 0x00000011 + CR_INVALID_RANGE CONFIGRET = 0x00000012 + CR_FAILURE CONFIGRET = 0x00000013 + CR_NO_SUCH_LOGICAL_DEV CONFIGRET = 0x00000014 + CR_CREATE_BLOCKED CONFIGRET = 0x00000015 + CR_NOT_SYSTEM_VM CONFIGRET = 0x00000016 + CR_REMOVE_VETOED CONFIGRET = 0x00000017 + CR_APM_VETOED CONFIGRET = 0x00000018 + CR_INVALID_LOAD_TYPE CONFIGRET = 0x00000019 + CR_BUFFER_SMALL CONFIGRET = 0x0000001A + CR_NO_ARBITRATOR CONFIGRET = 0x0000001B + CR_NO_REGISTRY_HANDLE CONFIGRET = 0x0000001C + CR_REGISTRY_ERROR CONFIGRET = 0x0000001D + CR_INVALID_DEVICE_ID CONFIGRET = 0x0000001E + CR_INVALID_DATA CONFIGRET = 0x0000001F + CR_INVALID_API CONFIGRET = 0x00000020 + CR_DEVLOADER_NOT_READY CONFIGRET = 0x00000021 + CR_NEED_RESTART CONFIGRET = 0x00000022 + CR_NO_MORE_HW_PROFILES CONFIGRET = 0x00000023 + CR_DEVICE_NOT_THERE CONFIGRET = 0x00000024 + CR_NO_SUCH_VALUE CONFIGRET = 0x00000025 + CR_WRONG_TYPE CONFIGRET = 0x00000026 + CR_INVALID_PRIORITY CONFIGRET = 0x00000027 + CR_NOT_DISABLEABLE CONFIGRET = 0x00000028 + CR_FREE_RESOURCES CONFIGRET = 0x00000029 + CR_QUERY_VETOED CONFIGRET = 0x0000002A + CR_CANT_SHARE_IRQ CONFIGRET = 0x0000002B + CR_NO_DEPENDENT CONFIGRET = 0x0000002C + CR_SAME_RESOURCES CONFIGRET = 0x0000002D + CR_NO_SUCH_REGISTRY_KEY CONFIGRET = 0x0000002E + CR_INVALID_MACHINENAME CONFIGRET = 0x0000002F + CR_REMOTE_COMM_FAILURE CONFIGRET = 0x00000030 + CR_MACHINE_UNAVAILABLE CONFIGRET = 0x00000031 + CR_NO_CM_SERVICES CONFIGRET = 0x00000032 + CR_ACCESS_DENIED CONFIGRET = 0x00000033 + CR_CALL_NOT_IMPLEMENTED CONFIGRET = 0x00000034 + CR_INVALID_PROPERTY CONFIGRET = 0x00000035 + CR_DEVICE_INTERFACE_ACTIVE CONFIGRET = 0x00000036 + CR_NO_SUCH_DEVICE_INTERFACE CONFIGRET = 0x00000037 + CR_INVALID_REFERENCE_STRING CONFIGRET = 0x00000038 + CR_INVALID_CONFLICT_LIST CONFIGRET = 0x00000039 + CR_INVALID_INDEX CONFIGRET = 0x0000003A + CR_INVALID_STRUCTURE_SIZE CONFIGRET = 0x0000003B + NUM_CR_RESULTS CONFIGRET = 0x0000003C +) + +const ( + CM_GET_DEVICE_INTERFACE_LIST_PRESENT = 0 // only currently 'live' device interfaces + CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES = 1 // all registered device interfaces, live or not +) + +const ( + DN_ROOT_ENUMERATED = 0x00000001 // Was enumerated by ROOT + DN_DRIVER_LOADED = 0x00000002 // Has Register_Device_Driver + DN_ENUM_LOADED = 0x00000004 // Has Register_Enumerator + DN_STARTED = 0x00000008 // Is currently configured + DN_MANUAL = 0x00000010 // Manually installed + DN_NEED_TO_ENUM = 0x00000020 // May need reenumeration + DN_NOT_FIRST_TIME = 0x00000040 // Has received a config + DN_HARDWARE_ENUM = 0x00000080 // Enum generates hardware ID + DN_LIAR = 0x00000100 // Lied about can reconfig once + DN_HAS_MARK = 0x00000200 // Not CM_Create_DevInst lately + DN_HAS_PROBLEM = 0x00000400 // Need device installer + DN_FILTERED = 0x00000800 // Is filtered + DN_MOVED = 0x00001000 // Has been moved + DN_DISABLEABLE = 0x00002000 // Can be disabled + DN_REMOVABLE = 0x00004000 // Can be removed + DN_PRIVATE_PROBLEM = 0x00008000 // Has a private problem + DN_MF_PARENT = 0x00010000 // Multi function parent + DN_MF_CHILD = 0x00020000 // Multi function child + DN_WILL_BE_REMOVED = 0x00040000 // DevInst is being removed + DN_NOT_FIRST_TIMEE = 0x00080000 // Has received a config enumerate + DN_STOP_FREE_RES = 0x00100000 // When child is stopped, free resources + DN_REBAL_CANDIDATE = 0x00200000 // Don't skip during rebalance + DN_BAD_PARTIAL = 0x00400000 // This devnode's log_confs do not have same resources + DN_NT_ENUMERATOR = 0x00800000 // This devnode's is an NT enumerator + DN_NT_DRIVER = 0x01000000 // This devnode's is an NT driver + DN_NEEDS_LOCKING = 0x02000000 // Devnode need lock resume processing + DN_ARM_WAKEUP = 0x04000000 // Devnode can be the wakeup device + DN_APM_ENUMERATOR = 0x08000000 // APM aware enumerator + DN_APM_DRIVER = 0x10000000 // APM aware driver + DN_SILENT_INSTALL = 0x20000000 // Silent install + DN_NO_SHOW_IN_DM = 0x40000000 // No show in device manager + DN_BOOT_LOG_PROB = 0x80000000 // Had a problem during preassignment of boot log conf + DN_NEED_RESTART = DN_LIAR // System needs to be restarted for this Devnode to work properly + DN_DRIVER_BLOCKED = DN_NOT_FIRST_TIME // One or more drivers are blocked from loading for this Devnode + DN_LEGACY_DRIVER = DN_MOVED // This device is using a legacy driver + DN_CHILD_WITH_INVALID_ID = DN_HAS_MARK // One or more children have invalid IDs + DN_DEVICE_DISCONNECTED = DN_NEEDS_LOCKING // The function driver for a device reported that the device is not connected. Typically this means a wireless device is out of range. + DN_QUERY_REMOVE_PENDING = DN_MF_PARENT // Device is part of a set of related devices collectively pending query-removal + DN_QUERY_REMOVE_ACTIVE = DN_MF_CHILD // Device is actively engaged in a query-remove IRP + DN_CHANGEABLE_FLAGS = DN_NOT_FIRST_TIME | DN_HARDWARE_ENUM | DN_HAS_MARK | DN_DISABLEABLE | DN_REMOVABLE | DN_MF_CHILD | DN_MF_PARENT | DN_NOT_FIRST_TIMEE | DN_STOP_FREE_RES | DN_REBAL_CANDIDATE | DN_NT_ENUMERATOR | DN_NT_DRIVER | DN_SILENT_INSTALL | DN_NO_SHOW_IN_DM +) + +//sys setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiCreateDeviceInfoListExW + +// SetupDiCreateDeviceInfoListEx function creates an empty device information set on a remote or a local computer and optionally associates the set with a device setup class. +func SetupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName string) (deviceInfoSet DevInfo, err error) { + var machineNameUTF16 *uint16 + if machineName != "" { + machineNameUTF16, err = UTF16PtrFromString(machineName) + if err != nil { + return + } + } + return setupDiCreateDeviceInfoListEx(classGUID, hwndParent, machineNameUTF16, 0) +} + +//sys setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) = setupapi.SetupDiGetDeviceInfoListDetailW + +// SetupDiGetDeviceInfoListDetail function retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name. +func SetupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo) (deviceInfoSetDetailData *DevInfoListDetailData, err error) { + data := &DevInfoListDetailData{} + data.size = data.unsafeSizeOf() + + return data, setupDiGetDeviceInfoListDetail(deviceInfoSet, data) +} + +// DeviceInfoListDetail method retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name. +func (deviceInfoSet DevInfo) DeviceInfoListDetail() (*DevInfoListDetailData, error) { + return SetupDiGetDeviceInfoListDetail(deviceInfoSet) +} + +//sys setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCreateDeviceInfoW + +// SetupDiCreateDeviceInfo function creates a new device information element and adds it as a new member to the specified device information set. +func SetupDiCreateDeviceInfo(deviceInfoSet DevInfo, deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (deviceInfoData *DevInfoData, err error) { + deviceNameUTF16, err := UTF16PtrFromString(deviceName) + if err != nil { + return + } + + var deviceDescriptionUTF16 *uint16 + if deviceDescription != "" { + deviceDescriptionUTF16, err = UTF16PtrFromString(deviceDescription) + if err != nil { + return + } + } + + data := &DevInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiCreateDeviceInfo(deviceInfoSet, deviceNameUTF16, classGUID, deviceDescriptionUTF16, hwndParent, creationFlags, data) +} + +// CreateDeviceInfo method creates a new device information element and adds it as a new member to the specified device information set. +func (deviceInfoSet DevInfo) CreateDeviceInfo(deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (*DevInfoData, error) { + return SetupDiCreateDeviceInfo(deviceInfoSet, deviceName, classGUID, deviceDescription, hwndParent, creationFlags) +} + +//sys setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiEnumDeviceInfo + +// SetupDiEnumDeviceInfo function returns a DevInfoData structure that specifies a device information element in a device information set. +func SetupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex int) (*DevInfoData, error) { + data := &DevInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiEnumDeviceInfo(deviceInfoSet, uint32(memberIndex), data) +} + +// EnumDeviceInfo method returns a DevInfoData structure that specifies a device information element in a device information set. +func (deviceInfoSet DevInfo) EnumDeviceInfo(memberIndex int) (*DevInfoData, error) { + return SetupDiEnumDeviceInfo(deviceInfoSet, memberIndex) +} + +// SetupDiDestroyDeviceInfoList function deletes a device information set and frees all associated memory. +//sys SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiDestroyDeviceInfoList + +// Close method deletes a device information set and frees all associated memory. +func (deviceInfoSet DevInfo) Close() error { + return SetupDiDestroyDeviceInfoList(deviceInfoSet) +} + +//sys SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiBuildDriverInfoList + +// BuildDriverInfoList method builds a list of drivers that is associated with a specific device or with the global class driver list for a device information set. +func (deviceInfoSet DevInfo) BuildDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error { + return SetupDiBuildDriverInfoList(deviceInfoSet, deviceInfoData, driverType) +} + +//sys SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiCancelDriverInfoSearch + +// CancelDriverInfoSearch method cancels a driver list search that is currently in progress in a different thread. +func (deviceInfoSet DevInfo) CancelDriverInfoSearch() error { + return SetupDiCancelDriverInfoSearch(deviceInfoSet) +} + +//sys setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiEnumDriverInfoW + +// SetupDiEnumDriverInfo function enumerates the members of a driver list. +func SetupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) { + data := &DrvInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, uint32(memberIndex), data) +} + +// EnumDriverInfo method enumerates the members of a driver list. +func (deviceInfoSet DevInfo) EnumDriverInfo(deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) { + return SetupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, memberIndex) +} + +//sys setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiGetSelectedDriverW + +// SetupDiGetSelectedDriver function retrieves the selected driver for a device information set or a particular device information element. +func SetupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DrvInfoData, error) { + data := &DrvInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiGetSelectedDriver(deviceInfoSet, deviceInfoData, data) +} + +// SelectedDriver method retrieves the selected driver for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) SelectedDriver(deviceInfoData *DevInfoData) (*DrvInfoData, error) { + return SetupDiGetSelectedDriver(deviceInfoSet, deviceInfoData) +} + +//sys SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiSetSelectedDriverW + +// SetSelectedDriver method sets, or resets, the selected driver for a device information element or the selected class driver for a device information set. +func (deviceInfoSet DevInfo) SetSelectedDriver(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) error { + return SetupDiSetSelectedDriver(deviceInfoSet, deviceInfoData, driverInfoData) +} + +//sys setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDriverInfoDetailW + +// SetupDiGetDriverInfoDetail function retrieves driver information detail for a device information set or a particular device information element in the device information set. +func SetupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) { + reqSize := uint32(2048) + for { + buf := make([]byte, reqSize) + data := (*DrvInfoDetailData)(unsafe.Pointer(&buf[0])) + data.size = data.unsafeSizeOf() + err := setupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData, data, uint32(len(buf)), &reqSize) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return nil, err + } + data.size = reqSize + return data, nil + } +} + +// DriverInfoDetail method retrieves driver information detail for a device information set or a particular device information element in the device information set. +func (deviceInfoSet DevInfo) DriverInfoDetail(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) { + return SetupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData) +} + +//sys SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiDestroyDriverInfoList + +// DestroyDriverInfoList method deletes a driver list. +func (deviceInfoSet DevInfo) DestroyDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error { + return SetupDiDestroyDriverInfoList(deviceInfoSet, deviceInfoData, driverType) +} + +//sys setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiGetClassDevsExW + +// SetupDiGetClassDevsEx function returns a handle to a device information set that contains requested device information elements for a local or a remote computer. +func SetupDiGetClassDevsEx(classGUID *GUID, enumerator string, hwndParent uintptr, flags DIGCF, deviceInfoSet DevInfo, machineName string) (handle DevInfo, err error) { + var enumeratorUTF16 *uint16 + if enumerator != "" { + enumeratorUTF16, err = UTF16PtrFromString(enumerator) + if err != nil { + return + } + } + var machineNameUTF16 *uint16 + if machineName != "" { + machineNameUTF16, err = UTF16PtrFromString(machineName) + if err != nil { + return + } + } + return setupDiGetClassDevsEx(classGUID, enumeratorUTF16, hwndParent, flags, deviceInfoSet, machineNameUTF16, 0) +} + +// SetupDiCallClassInstaller function calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code). +//sys SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCallClassInstaller + +// CallClassInstaller member calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code). +func (deviceInfoSet DevInfo) CallClassInstaller(installFunction DI_FUNCTION, deviceInfoData *DevInfoData) error { + return SetupDiCallClassInstaller(installFunction, deviceInfoSet, deviceInfoData) +} + +// SetupDiOpenDevRegKey function opens a registry key for device-specific configuration information. +//sys SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) [failretval==InvalidHandle] = setupapi.SetupDiOpenDevRegKey + +// OpenDevRegKey method opens a registry key for device-specific configuration information. +func (deviceInfoSet DevInfo) OpenDevRegKey(DeviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (Handle, error) { + return SetupDiOpenDevRegKey(deviceInfoSet, DeviceInfoData, Scope, HwProfile, KeyType, samDesired) +} + +//sys setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) = setupapi.SetupDiGetDevicePropertyW + +// SetupDiGetDeviceProperty function retrieves a specified device instance property. +func SetupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY) (value interface{}, err error) { + reqSize := uint32(256) + for { + var dataType DEVPROPTYPE + buf := make([]byte, reqSize) + err = setupDiGetDeviceProperty(deviceInfoSet, deviceInfoData, propertyKey, &dataType, &buf[0], uint32(len(buf)), &reqSize, 0) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return + } + switch dataType { + case DEVPROP_TYPE_STRING: + ret := UTF16ToString(bufToUTF16(buf)) + runtime.KeepAlive(buf) + return ret, nil + } + return nil, errors.New("unimplemented property type") + } +} + +//sys setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceRegistryPropertyW + +// SetupDiGetDeviceRegistryProperty function retrieves a specified Plug and Play device property. +func SetupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP) (value interface{}, err error) { + reqSize := uint32(256) + for { + var dataType uint32 + buf := make([]byte, reqSize) + err = setupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &dataType, &buf[0], uint32(len(buf)), &reqSize) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return + } + return getRegistryValue(buf[:reqSize], dataType) + } +} + +func getRegistryValue(buf []byte, dataType uint32) (interface{}, error) { + switch dataType { + case REG_SZ: + ret := UTF16ToString(bufToUTF16(buf)) + runtime.KeepAlive(buf) + return ret, nil + case REG_EXPAND_SZ: + value := UTF16ToString(bufToUTF16(buf)) + if value == "" { + return "", nil + } + p, err := syscall.UTF16PtrFromString(value) + if err != nil { + return "", err + } + ret := make([]uint16, 100) + for { + n, err := ExpandEnvironmentStrings(p, &ret[0], uint32(len(ret))) + if err != nil { + return "", err + } + if n <= uint32(len(ret)) { + return UTF16ToString(ret[:n]), nil + } + ret = make([]uint16, n) + } + case REG_BINARY: + return buf, nil + case REG_DWORD_LITTLE_ENDIAN: + return binary.LittleEndian.Uint32(buf), nil + case REG_DWORD_BIG_ENDIAN: + return binary.BigEndian.Uint32(buf), nil + case REG_MULTI_SZ: + bufW := bufToUTF16(buf) + a := []string{} + for i := 0; i < len(bufW); { + j := i + wcslen(bufW[i:]) + if i < j { + a = append(a, UTF16ToString(bufW[i:j])) + } + i = j + 1 + } + runtime.KeepAlive(buf) + return a, nil + case REG_QWORD_LITTLE_ENDIAN: + return binary.LittleEndian.Uint64(buf), nil + default: + return nil, fmt.Errorf("Unsupported registry value type: %v", dataType) + } +} + +// bufToUTF16 function reinterprets []byte buffer as []uint16 +func bufToUTF16(buf []byte) []uint16 { + sl := struct { + addr *uint16 + len int + cap int + }{(*uint16)(unsafe.Pointer(&buf[0])), len(buf) / 2, cap(buf) / 2} + return *(*[]uint16)(unsafe.Pointer(&sl)) +} + +// utf16ToBuf function reinterprets []uint16 as []byte +func utf16ToBuf(buf []uint16) []byte { + sl := struct { + addr *byte + len int + cap int + }{(*byte)(unsafe.Pointer(&buf[0])), len(buf) * 2, cap(buf) * 2} + return *(*[]byte)(unsafe.Pointer(&sl)) +} + +func wcslen(str []uint16) int { + for i := 0; i < len(str); i++ { + if str[i] == 0 { + return i + } + } + return len(str) +} + +// DeviceRegistryProperty method retrieves a specified Plug and Play device property. +func (deviceInfoSet DevInfo) DeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP) (interface{}, error) { + return SetupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property) +} + +//sys setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) = setupapi.SetupDiSetDeviceRegistryPropertyW + +// SetupDiSetDeviceRegistryProperty function sets a Plug and Play device property for a device. +func SetupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error { + return setupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &propertyBuffers[0], uint32(len(propertyBuffers))) +} + +// SetDeviceRegistryProperty function sets a Plug and Play device property for a device. +func (deviceInfoSet DevInfo) SetDeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error { + return SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, propertyBuffers) +} + +// SetDeviceRegistryPropertyString method sets a Plug and Play device property string for a device. +func (deviceInfoSet DevInfo) SetDeviceRegistryPropertyString(deviceInfoData *DevInfoData, property SPDRP, str string) error { + str16, err := UTF16FromString(str) + if err != nil { + return err + } + err = SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, utf16ToBuf(append(str16, 0))) + runtime.KeepAlive(str16) + return err +} + +//sys setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiGetDeviceInstallParamsW + +// SetupDiGetDeviceInstallParams function retrieves device installation parameters for a device information set or a particular device information element. +func SetupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DevInstallParams, error) { + params := &DevInstallParams{} + params.size = uint32(unsafe.Sizeof(*params)) + + return params, setupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData, params) +} + +// DeviceInstallParams method retrieves device installation parameters for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) DeviceInstallParams(deviceInfoData *DevInfoData) (*DevInstallParams, error) { + return SetupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData) +} + +//sys setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceInstanceIdW + +// SetupDiGetDeviceInstanceId function retrieves the instance ID of the device. +func SetupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (string, error) { + reqSize := uint32(1024) + for { + buf := make([]uint16, reqSize) + err := setupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData, &buf[0], uint32(len(buf)), &reqSize) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return "", err + } + return UTF16ToString(buf), nil + } +} + +// DeviceInstanceID method retrieves the instance ID of the device. +func (deviceInfoSet DevInfo) DeviceInstanceID(deviceInfoData *DevInfoData) (string, error) { + return SetupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData) +} + +// SetupDiGetClassInstallParams function retrieves class installation parameters for a device information set or a particular device information element. +//sys SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetClassInstallParamsW + +// ClassInstallParams method retrieves class installation parameters for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) ClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) error { + return SetupDiGetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize, requiredSize) +} + +//sys SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiSetDeviceInstallParamsW + +// SetDeviceInstallParams member sets device installation parameters for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) SetDeviceInstallParams(deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) error { + return SetupDiSetDeviceInstallParams(deviceInfoSet, deviceInfoData, deviceInstallParams) +} + +// SetupDiSetClassInstallParams function sets or clears class install parameters for a device information set or a particular device information element. +//sys SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) = setupapi.SetupDiSetClassInstallParamsW + +// SetClassInstallParams method sets or clears class install parameters for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) SetClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) error { + return SetupDiSetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize) +} + +//sys setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassNameFromGuidExW + +// SetupDiClassNameFromGuidEx function retrieves the class name associated with a class GUID. The class can be installed on a local or remote computer. +func SetupDiClassNameFromGuidEx(classGUID *GUID, machineName string) (className string, err error) { + var classNameUTF16 [MAX_CLASS_NAME_LEN]uint16 + + var machineNameUTF16 *uint16 + if machineName != "" { + machineNameUTF16, err = UTF16PtrFromString(machineName) + if err != nil { + return + } + } + + err = setupDiClassNameFromGuidEx(classGUID, &classNameUTF16[0], MAX_CLASS_NAME_LEN, nil, machineNameUTF16, 0) + if err != nil { + return + } + + className = UTF16ToString(classNameUTF16[:]) + return +} + +//sys setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassGuidsFromNameExW + +// SetupDiClassGuidsFromNameEx function retrieves the GUIDs associated with the specified class name. This resulting list contains the classes currently installed on a local or remote computer. +func SetupDiClassGuidsFromNameEx(className string, machineName string) ([]GUID, error) { + classNameUTF16, err := UTF16PtrFromString(className) + if err != nil { + return nil, err + } + + var machineNameUTF16 *uint16 + if machineName != "" { + machineNameUTF16, err = UTF16PtrFromString(machineName) + if err != nil { + return nil, err + } + } + + reqSize := uint32(4) + for { + buf := make([]GUID, reqSize) + err = setupDiClassGuidsFromNameEx(classNameUTF16, &buf[0], uint32(len(buf)), &reqSize, machineNameUTF16, 0) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return nil, err + } + return buf[:reqSize], nil + } +} + +//sys setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiGetSelectedDevice + +// SetupDiGetSelectedDevice function retrieves the selected device information element in a device information set. +func SetupDiGetSelectedDevice(deviceInfoSet DevInfo) (*DevInfoData, error) { + data := &DevInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiGetSelectedDevice(deviceInfoSet, data) +} + +// SelectedDevice method retrieves the selected device information element in a device information set. +func (deviceInfoSet DevInfo) SelectedDevice() (*DevInfoData, error) { + return SetupDiGetSelectedDevice(deviceInfoSet) +} + +// SetupDiSetSelectedDevice function sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard. +//sys SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiSetSelectedDevice + +// SetSelectedDevice method sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard. +func (deviceInfoSet DevInfo) SetSelectedDevice(deviceInfoData *DevInfoData) error { + return SetupDiSetSelectedDevice(deviceInfoSet, deviceInfoData) +} + +//sys setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) = setupapi.SetupUninstallOEMInfW + +// SetupUninstallOEMInf uninstalls the specified driver. +func SetupUninstallOEMInf(infFileName string, flags SUOI) error { + infFileName16, err := UTF16PtrFromString(infFileName) + if err != nil { + return err + } + return setupUninstallOEMInf(infFileName16, flags, 0) +} + +//sys cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) = CfgMgr32.CM_MapCrToWin32Err + +//sys cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_List_SizeW +//sys cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_ListW + +func CM_Get_Device_Interface_List(deviceID string, interfaceClass *GUID, flags uint32) ([]string, error) { + deviceID16, err := UTF16PtrFromString(deviceID) + if err != nil { + return nil, err + } + var buf []uint16 + var buflen uint32 + for { + if ret := cm_Get_Device_Interface_List_Size(&buflen, interfaceClass, deviceID16, flags); ret != CR_SUCCESS { + return nil, ret + } + buf = make([]uint16, buflen) + if ret := cm_Get_Device_Interface_List(interfaceClass, deviceID16, &buf[0], buflen, flags); ret == CR_SUCCESS { + break + } else if ret != CR_BUFFER_SMALL { + return nil, ret + } + } + var interfaces []string + for i := 0; i < len(buf); { + j := i + wcslen(buf[i:]) + if i < j { + interfaces = append(interfaces, UTF16ToString(buf[i:j])) + } + i = j + 1 + } + if interfaces == nil { + return nil, ERROR_NO_SUCH_DEVICE_INTERFACE + } + return interfaces, nil +} + +//sys cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_DevNode_Status + +func CM_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) error { + ret := cm_Get_DevNode_Status(status, problemNumber, devInst, flags) + if ret == CR_SUCCESS { + return nil + } + return ret +} diff --git a/vendor/golang.org/x/sys/windows/str.go b/vendor/golang.org/x/sys/windows/str.go new file mode 100644 index 000000000..6a4f9ce6a --- /dev/null +++ b/vendor/golang.org/x/sys/windows/str.go @@ -0,0 +1,22 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build windows + +package windows + +func itoa(val int) string { // do it here rather than with fmt to avoid dependency + if val < 0 { + return "-" + itoa(-val) + } + var buf [32]byte // big enough for int64 + i := len(buf) - 1 + for val >= 10 { + buf[i] = byte(val%10 + '0') + i-- + val /= 10 + } + buf[i] = byte(val + '0') + return string(buf[i:]) +} diff --git a/vendor/golang.org/x/sys/windows/syscall.go b/vendor/golang.org/x/sys/windows/syscall.go new file mode 100644 index 000000000..e85ed6b9c --- /dev/null +++ b/vendor/golang.org/x/sys/windows/syscall.go @@ -0,0 +1,104 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build windows + +// Package windows contains an interface to the low-level operating system +// primitives. OS details vary depending on the underlying system, and +// by default, godoc will display the OS-specific documentation for the current +// system. If you want godoc to display syscall documentation for another +// system, set $GOOS and $GOARCH to the desired system. For example, if +// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS +// to freebsd and $GOARCH to arm. +// +// The primary use of this package is inside other packages that provide a more +// portable interface to the system, such as "os", "time" and "net". Use +// those packages rather than this one if you can. +// +// For details of the functions and data types in this package consult +// the manuals for the appropriate operating system. +// +// These calls return err == nil to indicate success; otherwise +// err represents an operating system error describing the failure and +// holds a value of type syscall.Errno. +package windows // import "golang.org/x/sys/windows" + +import ( + "bytes" + "strings" + "syscall" + "unsafe" +) + +// ByteSliceFromString returns a NUL-terminated slice of bytes +// containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, syscall.EINVAL). +func ByteSliceFromString(s string) ([]byte, error) { + if strings.IndexByte(s, 0) != -1 { + return nil, syscall.EINVAL + } + a := make([]byte, len(s)+1) + copy(a, s) + return a, nil +} + +// BytePtrFromString returns a pointer to a NUL-terminated array of +// bytes containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, syscall.EINVAL). +func BytePtrFromString(s string) (*byte, error) { + a, err := ByteSliceFromString(s) + if err != nil { + return nil, err + } + return &a[0], nil +} + +// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any +// bytes after the NUL removed. +func ByteSliceToString(s []byte) string { + if i := bytes.IndexByte(s, 0); i != -1 { + s = s[:i] + } + return string(s) +} + +// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string. +// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated +// at a zero byte; if the zero byte is not present, the program may crash. +func BytePtrToString(p *byte) string { + if p == nil { + return "" + } + if *p == 0 { + return "" + } + + // Find NUL terminator. + n := 0 + for ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ { + ptr = unsafe.Pointer(uintptr(ptr) + 1) + } + + return string(unsafe.Slice(p, n)) +} + +// Single-word zero for use when we need a valid pointer to 0 bytes. +// See mksyscall.pl. +var _zero uintptr + +func (ts *Timespec) Unix() (sec int64, nsec int64) { + return int64(ts.Sec), int64(ts.Nsec) +} + +func (tv *Timeval) Unix() (sec int64, nsec int64) { + return int64(tv.Sec), int64(tv.Usec) * 1000 +} + +func (ts *Timespec) Nano() int64 { + return int64(ts.Sec)*1e9 + int64(ts.Nsec) +} + +func (tv *Timeval) Nano() int64 { + return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 +} diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go new file mode 100644 index 000000000..5cee9a314 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -0,0 +1,1930 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Windows system calls. + +package windows + +import ( + errorspkg "errors" + "fmt" + "runtime" + "sync" + "syscall" + "time" + "unicode/utf16" + "unsafe" +) + +type ( + Handle uintptr + HWND uintptr +) + +const ( + InvalidHandle = ^Handle(0) + InvalidHWND = ^HWND(0) + + // Flags for DefineDosDevice. + DDD_EXACT_MATCH_ON_REMOVE = 0x00000004 + DDD_NO_BROADCAST_SYSTEM = 0x00000008 + DDD_RAW_TARGET_PATH = 0x00000001 + DDD_REMOVE_DEFINITION = 0x00000002 + + // Return values for GetDriveType. + DRIVE_UNKNOWN = 0 + DRIVE_NO_ROOT_DIR = 1 + DRIVE_REMOVABLE = 2 + DRIVE_FIXED = 3 + DRIVE_REMOTE = 4 + DRIVE_CDROM = 5 + DRIVE_RAMDISK = 6 + + // File system flags from GetVolumeInformation and GetVolumeInformationByHandle. + FILE_CASE_SENSITIVE_SEARCH = 0x00000001 + FILE_CASE_PRESERVED_NAMES = 0x00000002 + FILE_FILE_COMPRESSION = 0x00000010 + FILE_DAX_VOLUME = 0x20000000 + FILE_NAMED_STREAMS = 0x00040000 + FILE_PERSISTENT_ACLS = 0x00000008 + FILE_READ_ONLY_VOLUME = 0x00080000 + FILE_SEQUENTIAL_WRITE_ONCE = 0x00100000 + FILE_SUPPORTS_ENCRYPTION = 0x00020000 + FILE_SUPPORTS_EXTENDED_ATTRIBUTES = 0x00800000 + FILE_SUPPORTS_HARD_LINKS = 0x00400000 + FILE_SUPPORTS_OBJECT_IDS = 0x00010000 + FILE_SUPPORTS_OPEN_BY_FILE_ID = 0x01000000 + FILE_SUPPORTS_REPARSE_POINTS = 0x00000080 + FILE_SUPPORTS_SPARSE_FILES = 0x00000040 + FILE_SUPPORTS_TRANSACTIONS = 0x00200000 + FILE_SUPPORTS_USN_JOURNAL = 0x02000000 + FILE_UNICODE_ON_DISK = 0x00000004 + FILE_VOLUME_IS_COMPRESSED = 0x00008000 + FILE_VOLUME_QUOTAS = 0x00000020 + + // Flags for LockFileEx. + LOCKFILE_FAIL_IMMEDIATELY = 0x00000001 + LOCKFILE_EXCLUSIVE_LOCK = 0x00000002 + + // Return value of SleepEx and other APC functions + WAIT_IO_COMPLETION = 0x000000C0 +) + +// StringToUTF16 is deprecated. Use UTF16FromString instead. +// If s contains a NUL byte this function panics instead of +// returning an error. +func StringToUTF16(s string) []uint16 { + a, err := UTF16FromString(s) + if err != nil { + panic("windows: string with NUL passed to StringToUTF16") + } + return a +} + +// UTF16FromString returns the UTF-16 encoding of the UTF-8 string +// s, with a terminating NUL added. If s contains a NUL byte at any +// location, it returns (nil, syscall.EINVAL). +func UTF16FromString(s string) ([]uint16, error) { + return syscall.UTF16FromString(s) +} + +// UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s, +// with a terminating NUL and any bytes after the NUL removed. +func UTF16ToString(s []uint16) string { + return syscall.UTF16ToString(s) +} + +// StringToUTF16Ptr is deprecated. Use UTF16PtrFromString instead. +// If s contains a NUL byte this function panics instead of +// returning an error. +func StringToUTF16Ptr(s string) *uint16 { return &StringToUTF16(s)[0] } + +// UTF16PtrFromString returns pointer to the UTF-16 encoding of +// the UTF-8 string s, with a terminating NUL added. If s +// contains a NUL byte at any location, it returns (nil, syscall.EINVAL). +func UTF16PtrFromString(s string) (*uint16, error) { + a, err := UTF16FromString(s) + if err != nil { + return nil, err + } + return &a[0], nil +} + +// UTF16PtrToString takes a pointer to a UTF-16 sequence and returns the corresponding UTF-8 encoded string. +// If the pointer is nil, it returns the empty string. It assumes that the UTF-16 sequence is terminated +// at a zero word; if the zero word is not present, the program may crash. +func UTF16PtrToString(p *uint16) string { + if p == nil { + return "" + } + if *p == 0 { + return "" + } + + // Find NUL terminator. + n := 0 + for ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ { + ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p)) + } + return UTF16ToString(unsafe.Slice(p, n)) +} + +func Getpagesize() int { return 4096 } + +// NewCallback converts a Go function to a function pointer conforming to the stdcall calling convention. +// This is useful when interoperating with Windows code requiring callbacks. +// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. +func NewCallback(fn interface{}) uintptr { + return syscall.NewCallback(fn) +} + +// NewCallbackCDecl converts a Go function to a function pointer conforming to the cdecl calling convention. +// This is useful when interoperating with Windows code requiring callbacks. +// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. +func NewCallbackCDecl(fn interface{}) uintptr { + return syscall.NewCallbackCDecl(fn) +} + +// windows api calls + +//sys GetLastError() (lasterr error) +//sys LoadLibrary(libname string) (handle Handle, err error) = LoadLibraryW +//sys LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) = LoadLibraryExW +//sys FreeLibrary(handle Handle) (err error) +//sys GetProcAddress(module Handle, procname string) (proc uintptr, err error) +//sys GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) = kernel32.GetModuleFileNameW +//sys GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) = kernel32.GetModuleHandleExW +//sys SetDefaultDllDirectories(directoryFlags uint32) (err error) +//sys AddDllDirectory(path *uint16) (cookie uintptr, err error) = kernel32.AddDllDirectory +//sys RemoveDllDirectory(cookie uintptr) (err error) = kernel32.RemoveDllDirectory +//sys SetDllDirectory(path string) (err error) = kernel32.SetDllDirectoryW +//sys GetVersion() (ver uint32, err error) +//sys FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW +//sys ExitProcess(exitcode uint32) +//sys IsWow64Process(handle Handle, isWow64 *bool) (err error) = IsWow64Process +//sys IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) = IsWow64Process2? +//sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW +//sys CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) [failretval==InvalidHandle] = CreateNamedPipeW +//sys ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) +//sys DisconnectNamedPipe(pipe Handle) (err error) +//sys GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) +//sys GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW +//sys SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) = SetNamedPipeHandleState +//sys readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = ReadFile +//sys writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = WriteFile +//sys GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) +//sys SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) [failretval==0xffffffff] +//sys CloseHandle(handle Handle) (err error) +//sys GetStdHandle(stdhandle uint32) (handle Handle, err error) [failretval==InvalidHandle] +//sys SetStdHandle(stdhandle uint32, handle Handle) (err error) +//sys findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstFileW +//sys findNextFile1(handle Handle, data *win32finddata1) (err error) = FindNextFileW +//sys FindClose(handle Handle) (err error) +//sys GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) +//sys GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) +//sys SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) +//sys GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) = GetCurrentDirectoryW +//sys SetCurrentDirectory(path *uint16) (err error) = SetCurrentDirectoryW +//sys CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) = CreateDirectoryW +//sys RemoveDirectory(path *uint16) (err error) = RemoveDirectoryW +//sys DeleteFile(path *uint16) (err error) = DeleteFileW +//sys MoveFile(from *uint16, to *uint16) (err error) = MoveFileW +//sys MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) = MoveFileExW +//sys LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) +//sys UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) +//sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW +//sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW +//sys SetEndOfFile(handle Handle) (err error) +//sys SetFileValidData(handle Handle, validDataLength int64) (err error) +//sys GetSystemTimeAsFileTime(time *Filetime) +//sys GetSystemTimePreciseAsFileTime(time *Filetime) +//sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff] +//sys CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) +//sys GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) +//sys PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) +//sys CancelIo(s Handle) (err error) +//sys CancelIoEx(s Handle, o *Overlapped) (err error) +//sys CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW +//sys CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = advapi32.CreateProcessAsUserW +//sys initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) = InitializeProcThreadAttributeList +//sys deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) = DeleteProcThreadAttributeList +//sys updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) = UpdateProcThreadAttribute +//sys OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) +//sys ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) [failretval<=32] = shell32.ShellExecuteW +//sys GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) = user32.GetWindowThreadProcessId +//sys LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) [failretval==0] = user32.LoadKeyboardLayoutW +//sys UnloadKeyboardLayout(hkl Handle) (err error) = user32.UnloadKeyboardLayout +//sys GetKeyboardLayout(tid uint32) (hkl Handle) = user32.GetKeyboardLayout +//sys ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) = user32.ToUnicodeEx +//sys GetShellWindow() (shellWindow HWND) = user32.GetShellWindow +//sys MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW +//sys ExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx +//sys shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath +//sys TerminateProcess(handle Handle, exitcode uint32) (err error) +//sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) +//sys getStartupInfo(startupInfo *StartupInfo) = GetStartupInfoW +//sys GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) +//sys DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) +//sys WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] +//sys waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] = WaitForMultipleObjects +//sys GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) = GetTempPathW +//sys CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) +//sys GetFileType(filehandle Handle) (n uint32, err error) +//sys CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) = advapi32.CryptAcquireContextW +//sys CryptReleaseContext(provhandle Handle, flags uint32) (err error) = advapi32.CryptReleaseContext +//sys CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) = advapi32.CryptGenRandom +//sys GetEnvironmentStrings() (envs *uint16, err error) [failretval==nil] = kernel32.GetEnvironmentStringsW +//sys FreeEnvironmentStrings(envs *uint16) (err error) = kernel32.FreeEnvironmentStringsW +//sys GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) = kernel32.GetEnvironmentVariableW +//sys SetEnvironmentVariable(name *uint16, value *uint16) (err error) = kernel32.SetEnvironmentVariableW +//sys ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW +//sys CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) = userenv.CreateEnvironmentBlock +//sys DestroyEnvironmentBlock(block *uint16) (err error) = userenv.DestroyEnvironmentBlock +//sys getTickCount64() (ms uint64) = kernel32.GetTickCount64 +//sys GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) +//sys SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) +//sys GetFileAttributes(name *uint16) (attrs uint32, err error) [failretval==INVALID_FILE_ATTRIBUTES] = kernel32.GetFileAttributesW +//sys SetFileAttributes(name *uint16, attrs uint32) (err error) = kernel32.SetFileAttributesW +//sys GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) = kernel32.GetFileAttributesExW +//sys GetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW +//sys commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) [failretval==nil] = shell32.CommandLineToArgvW +//sys LocalFree(hmem Handle) (handle Handle, err error) [failretval!=0] +//sys LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) +//sys SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) +//sys FlushFileBuffers(handle Handle) (err error) +//sys GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) = kernel32.GetFullPathNameW +//sys GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) = kernel32.GetLongPathNameW +//sys GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) = kernel32.GetShortPathNameW +//sys GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) = kernel32.GetFinalPathNameByHandleW +//sys CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateFileMappingW +//sys MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) +//sys UnmapViewOfFile(addr uintptr) (err error) +//sys FlushViewOfFile(addr uintptr, length uintptr) (err error) +//sys VirtualLock(addr uintptr, length uintptr) (err error) +//sys VirtualUnlock(addr uintptr, length uintptr) (err error) +//sys VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) = kernel32.VirtualAlloc +//sys VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) = kernel32.VirtualFree +//sys VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) = kernel32.VirtualProtect +//sys VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) = kernel32.VirtualProtectEx +//sys VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQuery +//sys VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQueryEx +//sys ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) = kernel32.ReadProcessMemory +//sys WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) = kernel32.WriteProcessMemory +//sys TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) = mswsock.TransmitFile +//sys ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) = kernel32.ReadDirectoryChangesW +//sys FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.FindFirstChangeNotificationW +//sys FindNextChangeNotification(handle Handle) (err error) +//sys FindCloseChangeNotification(handle Handle) (err error) +//sys CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) = crypt32.CertOpenSystemStoreW +//sys CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) = crypt32.CertOpenStore +//sys CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) [failretval==nil] = crypt32.CertEnumCertificatesInStore +//sys CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore +//sys CertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore +//sys CertDeleteCertificateFromStore(certContext *CertContext) (err error) = crypt32.CertDeleteCertificateFromStore +//sys CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) = crypt32.CertDuplicateCertificateContext +//sys PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) = crypt32.PFXImportCertStore +//sys CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain +//sys CertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain +//sys CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext +//sys CertFreeCertificateContext(ctx *CertContext) (err error) = crypt32.CertFreeCertificateContext +//sys CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) = crypt32.CertVerifyCertificateChainPolicy +//sys CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) = crypt32.CertGetNameStringW +//sys CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) = crypt32.CertFindExtension +//sys CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) [failretval==nil] = crypt32.CertFindCertificateInStore +//sys CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) [failretval==nil] = crypt32.CertFindChainInStore +//sys CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) = crypt32.CryptAcquireCertificatePrivateKey +//sys CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) = crypt32.CryptQueryObject +//sys CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) = crypt32.CryptDecodeObject +//sys CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptProtectData +//sys CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptUnprotectData +//sys WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) = wintrust.WinVerifyTrustEx +//sys RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) = advapi32.RegOpenKeyExW +//sys RegCloseKey(key Handle) (regerrno error) = advapi32.RegCloseKey +//sys RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegQueryInfoKeyW +//sys RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegEnumKeyExW +//sys RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegQueryValueExW +//sys RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) = advapi32.RegNotifyChangeKeyValue +//sys GetCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId +//sys ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) = kernel32.ProcessIdToSessionId +//sys ClosePseudoConsole(console Handle) = kernel32.ClosePseudoConsole +//sys createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) = kernel32.CreatePseudoConsole +//sys GetConsoleMode(console Handle, mode *uint32) (err error) = kernel32.GetConsoleMode +//sys SetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode +//sys GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo +//sys setConsoleCursorPosition(console Handle, position uint32) (err error) = kernel32.SetConsoleCursorPosition +//sys GetConsoleCP() (cp uint32, err error) = kernel32.GetConsoleCP +//sys GetConsoleOutputCP() (cp uint32, err error) = kernel32.GetConsoleOutputCP +//sys SetConsoleCP(cp uint32) (err error) = kernel32.SetConsoleCP +//sys SetConsoleOutputCP(cp uint32) (err error) = kernel32.SetConsoleOutputCP +//sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW +//sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW +//sys resizePseudoConsole(pconsole Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole +//sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot +//sys Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32FirstW +//sys Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32NextW +//sys Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32FirstW +//sys Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32NextW +//sys Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) +//sys Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) +//sys DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) +// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. +//sys CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) [failretval&0xff==0] = CreateSymbolicLinkW +//sys CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) [failretval&0xff==0] = CreateHardLinkW +//sys GetCurrentThreadId() (id uint32) +//sys CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventW +//sys CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventExW +//sys OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenEventW +//sys SetEvent(event Handle) (err error) = kernel32.SetEvent +//sys ResetEvent(event Handle) (err error) = kernel32.ResetEvent +//sys PulseEvent(event Handle) (err error) = kernel32.PulseEvent +//sys CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexW +//sys CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexExW +//sys OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenMutexW +//sys ReleaseMutex(mutex Handle) (err error) = kernel32.ReleaseMutex +//sys SleepEx(milliseconds uint32, alertable bool) (ret uint32) = kernel32.SleepEx +//sys CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) = kernel32.CreateJobObjectW +//sys AssignProcessToJobObject(job Handle, process Handle) (err error) = kernel32.AssignProcessToJobObject +//sys TerminateJobObject(job Handle, exitCode uint32) (err error) = kernel32.TerminateJobObject +//sys SetErrorMode(mode uint32) (ret uint32) = kernel32.SetErrorMode +//sys ResumeThread(thread Handle) (ret uint32, err error) [failretval==0xffffffff] = kernel32.ResumeThread +//sys SetPriorityClass(process Handle, priorityClass uint32) (err error) = kernel32.SetPriorityClass +//sys GetPriorityClass(process Handle) (ret uint32, err error) = kernel32.GetPriorityClass +//sys QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) = kernel32.QueryInformationJobObject +//sys SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) +//sys GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) +//sys GetProcessId(process Handle) (id uint32, err error) +//sys QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) = kernel32.QueryFullProcessImageNameW +//sys OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) +//sys SetProcessPriorityBoost(process Handle, disable bool) (err error) = kernel32.SetProcessPriorityBoost +//sys GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) +//sys SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) +//sys ClearCommBreak(handle Handle) (err error) +//sys ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) +//sys EscapeCommFunction(handle Handle, dwFunc uint32) (err error) +//sys GetCommState(handle Handle, lpDCB *DCB) (err error) +//sys GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) +//sys GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) +//sys PurgeComm(handle Handle, dwFlags uint32) (err error) +//sys SetCommBreak(handle Handle) (err error) +//sys SetCommMask(handle Handle, dwEvtMask uint32) (err error) +//sys SetCommState(handle Handle, lpDCB *DCB) (err error) +//sys SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) +//sys SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) +//sys WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) +//sys GetActiveProcessorCount(groupNumber uint16) (ret uint32) +//sys GetMaximumProcessorCount(groupNumber uint16) (ret uint32) +//sys EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows +//sys EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) = user32.EnumChildWindows +//sys GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) = user32.GetClassNameW +//sys GetDesktopWindow() (hwnd HWND) = user32.GetDesktopWindow +//sys GetForegroundWindow() (hwnd HWND) = user32.GetForegroundWindow +//sys IsWindow(hwnd HWND) (isWindow bool) = user32.IsWindow +//sys IsWindowUnicode(hwnd HWND) (isUnicode bool) = user32.IsWindowUnicode +//sys IsWindowVisible(hwnd HWND) (isVisible bool) = user32.IsWindowVisible +//sys GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) = user32.GetGUIThreadInfo +//sys GetLargePageMinimum() (size uintptr) + +// Volume Management Functions +//sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW +//sys DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) = DeleteVolumeMountPointW +//sys FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeW +//sys FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeMountPointW +//sys FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) = FindNextVolumeW +//sys FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) = FindNextVolumeMountPointW +//sys FindVolumeClose(findVolume Handle) (err error) +//sys FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) +//sys GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) = GetDiskFreeSpaceExW +//sys GetDriveType(rootPathName *uint16) (driveType uint32) = GetDriveTypeW +//sys GetLogicalDrives() (drivesBitMask uint32, err error) [failretval==0] +//sys GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) [failretval==0] = GetLogicalDriveStringsW +//sys GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationW +//sys GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationByHandleW +//sys GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) = GetVolumeNameForVolumeMountPointW +//sys GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) = GetVolumePathNameW +//sys GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) = GetVolumePathNamesForVolumeNameW +//sys QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) [failretval==0] = QueryDosDeviceW +//sys SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW +//sys SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW +//sys InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) = advapi32.InitiateSystemShutdownExW +//sys SetProcessShutdownParameters(level uint32, flags uint32) (err error) = kernel32.SetProcessShutdownParameters +//sys GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) = kernel32.GetProcessShutdownParameters +//sys clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) = ole32.CLSIDFromString +//sys stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) = ole32.StringFromGUID2 +//sys coCreateGuid(pguid *GUID) (ret error) = ole32.CoCreateGuid +//sys CoTaskMemFree(address unsafe.Pointer) = ole32.CoTaskMemFree +//sys CoInitializeEx(reserved uintptr, coInit uint32) (ret error) = ole32.CoInitializeEx +//sys CoUninitialize() = ole32.CoUninitialize +//sys CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) = ole32.CoGetObject +//sys getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetProcessPreferredUILanguages +//sys getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetThreadPreferredUILanguages +//sys getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetUserPreferredUILanguages +//sys getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetSystemPreferredUILanguages +//sys findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) = kernel32.FindResourceW +//sys SizeofResource(module Handle, resInfo Handle) (size uint32, err error) = kernel32.SizeofResource +//sys LoadResource(module Handle, resInfo Handle) (resData Handle, err error) = kernel32.LoadResource +//sys LockResource(resData Handle) (addr uintptr, err error) = kernel32.LockResource + +// Version APIs +//sys GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) = version.GetFileVersionInfoSizeW +//sys GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) = version.GetFileVersionInfoW +//sys VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) = version.VerQueryValueW + +// Process Status API (PSAPI) +//sys enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses +//sys EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) = psapi.EnumProcessModules +//sys EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) = psapi.EnumProcessModulesEx +//sys GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) = psapi.GetModuleInformation +//sys GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) = psapi.GetModuleFileNameExW +//sys GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) = psapi.GetModuleBaseNameW +//sys QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) = psapi.QueryWorkingSetEx + +// NT Native APIs +//sys rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) = ntdll.RtlNtStatusToDosErrorNoTeb +//sys rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) = ntdll.RtlGetVersion +//sys rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) = ntdll.RtlGetNtVersionNumbers +//sys RtlGetCurrentPeb() (peb *PEB) = ntdll.RtlGetCurrentPeb +//sys RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) = ntdll.RtlInitUnicodeString +//sys RtlInitString(destinationString *NTString, sourceString *byte) = ntdll.RtlInitString +//sys NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) = ntdll.NtCreateFile +//sys NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) = ntdll.NtCreateNamedPipeFile +//sys NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) = ntdll.NtSetInformationFile +//sys RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToNtPathName_U_WithStatus +//sys RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToRelativeNtPathName_U_WithStatus +//sys RtlDefaultNpAcl(acl **ACL) (ntstatus error) = ntdll.RtlDefaultNpAcl +//sys NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQueryInformationProcess +//sys NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) = ntdll.NtSetInformationProcess +//sys NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQuerySystemInformation +//sys NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) = ntdll.NtSetSystemInformation +//sys RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) = ntdll.RtlAddFunctionTable +//sys RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) = ntdll.RtlDeleteFunctionTable + +// Desktop Window Manager API (Dwmapi) +//sys DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmGetWindowAttribute +//sys DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmSetWindowAttribute + +// Windows Multimedia API +//sys TimeBeginPeriod (period uint32) (err error) [failretval != 0] = winmm.timeBeginPeriod +//sys TimeEndPeriod (period uint32) (err error) [failretval != 0] = winmm.timeEndPeriod + +// syscall interface implementation for other packages + +// GetCurrentProcess returns the handle for the current process. +// It is a pseudo handle that does not need to be closed. +// The returned error is always nil. +// +// Deprecated: use CurrentProcess for the same Handle without the nil +// error. +func GetCurrentProcess() (Handle, error) { + return CurrentProcess(), nil +} + +// CurrentProcess returns the handle for the current process. +// It is a pseudo handle that does not need to be closed. +func CurrentProcess() Handle { return Handle(^uintptr(1 - 1)) } + +// GetCurrentThread returns the handle for the current thread. +// It is a pseudo handle that does not need to be closed. +// The returned error is always nil. +// +// Deprecated: use CurrentThread for the same Handle without the nil +// error. +func GetCurrentThread() (Handle, error) { + return CurrentThread(), nil +} + +// CurrentThread returns the handle for the current thread. +// It is a pseudo handle that does not need to be closed. +func CurrentThread() Handle { return Handle(^uintptr(2 - 1)) } + +// GetProcAddressByOrdinal retrieves the address of the exported +// function from module by ordinal. +func GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) { + r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), ordinal, 0) + proc = uintptr(r0) + if proc == 0 { + err = errnoErr(e1) + } + return +} + +func Exit(code int) { ExitProcess(uint32(code)) } + +func makeInheritSa() *SecurityAttributes { + var sa SecurityAttributes + sa.Length = uint32(unsafe.Sizeof(sa)) + sa.InheritHandle = 1 + return &sa +} + +func Open(path string, mode int, perm uint32) (fd Handle, err error) { + if len(path) == 0 { + return InvalidHandle, ERROR_FILE_NOT_FOUND + } + pathp, err := UTF16PtrFromString(path) + if err != nil { + return InvalidHandle, err + } + var access uint32 + switch mode & (O_RDONLY | O_WRONLY | O_RDWR) { + case O_RDONLY: + access = GENERIC_READ + case O_WRONLY: + access = GENERIC_WRITE + case O_RDWR: + access = GENERIC_READ | GENERIC_WRITE + } + if mode&O_CREAT != 0 { + access |= GENERIC_WRITE + } + if mode&O_APPEND != 0 { + access &^= GENERIC_WRITE + access |= FILE_APPEND_DATA + } + sharemode := uint32(FILE_SHARE_READ | FILE_SHARE_WRITE) + var sa *SecurityAttributes + if mode&O_CLOEXEC == 0 { + sa = makeInheritSa() + } + var createmode uint32 + switch { + case mode&(O_CREAT|O_EXCL) == (O_CREAT | O_EXCL): + createmode = CREATE_NEW + case mode&(O_CREAT|O_TRUNC) == (O_CREAT | O_TRUNC): + createmode = CREATE_ALWAYS + case mode&O_CREAT == O_CREAT: + createmode = OPEN_ALWAYS + case mode&O_TRUNC == O_TRUNC: + createmode = TRUNCATE_EXISTING + default: + createmode = OPEN_EXISTING + } + var attrs uint32 = FILE_ATTRIBUTE_NORMAL + if perm&S_IWRITE == 0 { + attrs = FILE_ATTRIBUTE_READONLY + } + h, e := CreateFile(pathp, access, sharemode, sa, createmode, attrs, 0) + return h, e +} + +func Read(fd Handle, p []byte) (n int, err error) { + var done uint32 + e := ReadFile(fd, p, &done, nil) + if e != nil { + if e == ERROR_BROKEN_PIPE { + // NOTE(brainman): work around ERROR_BROKEN_PIPE is returned on reading EOF from stdin + return 0, nil + } + return 0, e + } + return int(done), nil +} + +func Write(fd Handle, p []byte) (n int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + var done uint32 + e := WriteFile(fd, p, &done, nil) + if e != nil { + return 0, e + } + return int(done), nil +} + +func ReadFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error { + err := readFile(fd, p, done, overlapped) + if raceenabled { + if *done > 0 { + raceWriteRange(unsafe.Pointer(&p[0]), int(*done)) + } + raceAcquire(unsafe.Pointer(&ioSync)) + } + return err +} + +func WriteFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + err := writeFile(fd, p, done, overlapped) + if raceenabled && *done > 0 { + raceReadRange(unsafe.Pointer(&p[0]), int(*done)) + } + return err +} + +var ioSync int64 + +func Seek(fd Handle, offset int64, whence int) (newoffset int64, err error) { + var w uint32 + switch whence { + case 0: + w = FILE_BEGIN + case 1: + w = FILE_CURRENT + case 2: + w = FILE_END + } + hi := int32(offset >> 32) + lo := int32(offset) + // use GetFileType to check pipe, pipe can't do seek + ft, _ := GetFileType(fd) + if ft == FILE_TYPE_PIPE { + return 0, syscall.EPIPE + } + rlo, e := SetFilePointer(fd, lo, &hi, w) + if e != nil { + return 0, e + } + return int64(hi)<<32 + int64(rlo), nil +} + +func Close(fd Handle) (err error) { + return CloseHandle(fd) +} + +var ( + Stdin = getStdHandle(STD_INPUT_HANDLE) + Stdout = getStdHandle(STD_OUTPUT_HANDLE) + Stderr = getStdHandle(STD_ERROR_HANDLE) +) + +func getStdHandle(stdhandle uint32) (fd Handle) { + r, _ := GetStdHandle(stdhandle) + return r +} + +const ImplementsGetwd = true + +func Getwd() (wd string, err error) { + b := make([]uint16, 300) + n, e := GetCurrentDirectory(uint32(len(b)), &b[0]) + if e != nil { + return "", e + } + return string(utf16.Decode(b[0:n])), nil +} + +func Chdir(path string) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return SetCurrentDirectory(pathp) +} + +func Mkdir(path string, mode uint32) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return CreateDirectory(pathp, nil) +} + +func Rmdir(path string) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return RemoveDirectory(pathp) +} + +func Unlink(path string) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return DeleteFile(pathp) +} + +func Rename(oldpath, newpath string) (err error) { + from, err := UTF16PtrFromString(oldpath) + if err != nil { + return err + } + to, err := UTF16PtrFromString(newpath) + if err != nil { + return err + } + return MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING) +} + +func ComputerName() (name string, err error) { + var n uint32 = MAX_COMPUTERNAME_LENGTH + 1 + b := make([]uint16, n) + e := GetComputerName(&b[0], &n) + if e != nil { + return "", e + } + return string(utf16.Decode(b[0:n])), nil +} + +func DurationSinceBoot() time.Duration { + return time.Duration(getTickCount64()) * time.Millisecond +} + +func Ftruncate(fd Handle, length int64) (err error) { + curoffset, e := Seek(fd, 0, 1) + if e != nil { + return e + } + defer Seek(fd, curoffset, 0) + _, e = Seek(fd, length, 0) + if e != nil { + return e + } + e = SetEndOfFile(fd) + if e != nil { + return e + } + return nil +} + +func Gettimeofday(tv *Timeval) (err error) { + var ft Filetime + GetSystemTimeAsFileTime(&ft) + *tv = NsecToTimeval(ft.Nanoseconds()) + return nil +} + +func Pipe(p []Handle) (err error) { + if len(p) != 2 { + return syscall.EINVAL + } + var r, w Handle + e := CreatePipe(&r, &w, makeInheritSa(), 0) + if e != nil { + return e + } + p[0] = r + p[1] = w + return nil +} + +func Utimes(path string, tv []Timeval) (err error) { + if len(tv) != 2 { + return syscall.EINVAL + } + pathp, e := UTF16PtrFromString(path) + if e != nil { + return e + } + h, e := CreateFile(pathp, + FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, + OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) + if e != nil { + return e + } + defer CloseHandle(h) + a := NsecToFiletime(tv[0].Nanoseconds()) + w := NsecToFiletime(tv[1].Nanoseconds()) + return SetFileTime(h, nil, &a, &w) +} + +func UtimesNano(path string, ts []Timespec) (err error) { + if len(ts) != 2 { + return syscall.EINVAL + } + pathp, e := UTF16PtrFromString(path) + if e != nil { + return e + } + h, e := CreateFile(pathp, + FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, + OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) + if e != nil { + return e + } + defer CloseHandle(h) + a := NsecToFiletime(TimespecToNsec(ts[0])) + w := NsecToFiletime(TimespecToNsec(ts[1])) + return SetFileTime(h, nil, &a, &w) +} + +func Fsync(fd Handle) (err error) { + return FlushFileBuffers(fd) +} + +func Chmod(path string, mode uint32) (err error) { + p, e := UTF16PtrFromString(path) + if e != nil { + return e + } + attrs, e := GetFileAttributes(p) + if e != nil { + return e + } + if mode&S_IWRITE != 0 { + attrs &^= FILE_ATTRIBUTE_READONLY + } else { + attrs |= FILE_ATTRIBUTE_READONLY + } + return SetFileAttributes(p, attrs) +} + +func LoadGetSystemTimePreciseAsFileTime() error { + return procGetSystemTimePreciseAsFileTime.Find() +} + +func LoadCancelIoEx() error { + return procCancelIoEx.Find() +} + +func LoadSetFileCompletionNotificationModes() error { + return procSetFileCompletionNotificationModes.Find() +} + +func WaitForMultipleObjects(handles []Handle, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { + // Every other win32 array API takes arguments as "pointer, count", except for this function. So we + // can't declare it as a usual [] type, because mksyscall will use the opposite order. We therefore + // trivially stub this ourselves. + + var handlePtr *Handle + if len(handles) > 0 { + handlePtr = &handles[0] + } + return waitForMultipleObjects(uint32(len(handles)), uintptr(unsafe.Pointer(handlePtr)), waitAll, waitMilliseconds) +} + +// net api calls + +const socket_error = uintptr(^uint32(0)) + +//sys WSAStartup(verreq uint32, data *WSAData) (sockerr error) = ws2_32.WSAStartup +//sys WSACleanup() (err error) [failretval==socket_error] = ws2_32.WSACleanup +//sys WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) [failretval==socket_error] = ws2_32.WSAIoctl +//sys WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceBeginW +//sys WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceNextW +//sys WSALookupServiceEnd(handle Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceEnd +//sys socket(af int32, typ int32, protocol int32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.socket +//sys sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) [failretval==socket_error] = ws2_32.sendto +//sys recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) [failretval==-1] = ws2_32.recvfrom +//sys Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) [failretval==socket_error] = ws2_32.setsockopt +//sys Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockopt +//sys bind(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.bind +//sys connect(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.connect +//sys getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockname +//sys getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getpeername +//sys listen(s Handle, backlog int32) (err error) [failretval==socket_error] = ws2_32.listen +//sys shutdown(s Handle, how int32) (err error) [failretval==socket_error] = ws2_32.shutdown +//sys Closesocket(s Handle) (err error) [failretval==socket_error] = ws2_32.closesocket +//sys AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) = mswsock.AcceptEx +//sys GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) = mswsock.GetAcceptExSockaddrs +//sys WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecv +//sys WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASend +//sys WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom +//sys WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo +//sys WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.WSASocketW +//sys GetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname +//sys GetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname +//sys Ntohs(netshort uint16) (u uint16) = ws2_32.ntohs +//sys GetProtoByName(name string) (p *Protoent, err error) [failretval==nil] = ws2_32.getprotobyname +//sys DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) = dnsapi.DnsQuery_W +//sys DnsRecordListFree(rl *DNSRecord, freetype uint32) = dnsapi.DnsRecordListFree +//sys DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) = dnsapi.DnsNameCompare_W +//sys GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) = ws2_32.GetAddrInfoW +//sys FreeAddrInfoW(addrinfo *AddrinfoW) = ws2_32.FreeAddrInfoW +//sys GetIfEntry(pIfRow *MibIfRow) (errcode error) = iphlpapi.GetIfEntry +//sys GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) = iphlpapi.GetAdaptersInfo +//sys SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) = kernel32.SetFileCompletionNotificationModes +//sys WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) [failretval==-1] = ws2_32.WSAEnumProtocolsW +//sys WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) = ws2_32.WSAGetOverlappedResult +//sys GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) = iphlpapi.GetAdaptersAddresses +//sys GetACP() (acp uint32) = kernel32.GetACP +//sys MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar +//sys getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) = iphlpapi.GetBestInterfaceEx + +// For testing: clients can set this flag to force +// creation of IPv6 sockets to return EAFNOSUPPORT. +var SocketDisableIPv6 bool + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [100]int8 +} + +type Sockaddr interface { + sockaddr() (ptr unsafe.Pointer, len int32, err error) // lowercase; only we can define Sockaddrs +} + +type SockaddrInet4 struct { + Port int + Addr [4]byte + raw RawSockaddrInet4 +} + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, int32, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, syscall.EINVAL + } + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil +} + +type SockaddrInet6 struct { + Port int + ZoneId uint32 + Addr [16]byte + raw RawSockaddrInet6 +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, int32, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, syscall.EINVAL + } + sa.raw.Family = AF_INET6 + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil +} + +type RawSockaddrUnix struct { + Family uint16 + Path [UNIX_PATH_MAX]int8 +} + +type SockaddrUnix struct { + Name string + raw RawSockaddrUnix +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) { + name := sa.Name + n := len(name) + if n > len(sa.raw.Path) { + return nil, 0, syscall.EINVAL + } + if n == len(sa.raw.Path) && name[0] != '@' { + return nil, 0, syscall.EINVAL + } + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = int8(name[i]) + } + // length is family (uint16), name, NUL. + sl := int32(2) + if n > 0 { + sl += int32(n) + 1 + } + if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { + // Check sl > 3 so we don't change unnamed socket behavior. + sa.raw.Path[0] = 0 + // Don't count trailing NUL for abstract address. + sl-- + } + + return unsafe.Pointer(&sa.raw), sl, nil +} + +type RawSockaddrBth struct { + AddressFamily [2]byte + BtAddr [8]byte + ServiceClassId [16]byte + Port [4]byte +} + +type SockaddrBth struct { + BtAddr uint64 + ServiceClassId GUID + Port uint32 + + raw RawSockaddrBth +} + +func (sa *SockaddrBth) sockaddr() (unsafe.Pointer, int32, error) { + family := AF_BTH + sa.raw = RawSockaddrBth{ + AddressFamily: *(*[2]byte)(unsafe.Pointer(&family)), + BtAddr: *(*[8]byte)(unsafe.Pointer(&sa.BtAddr)), + Port: *(*[4]byte)(unsafe.Pointer(&sa.Port)), + ServiceClassId: *(*[16]byte)(unsafe.Pointer(&sa.ServiceClassId)), + } + return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil +} + +func (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + if pp.Path[0] == 0 { + // "Abstract" Unix domain socket. + // Rewrite leading NUL as @ for textual display. + // (This is the standard convention.) + // Not friendly to overwrite in place, + // but the callers below don't care. + pp.Path[0] = '@' + } + + // Assume path ends at NUL. + // This is not technically the Linux semantics for + // abstract Unix domain sockets--they are supposed + // to be uninterpreted fixed-size binary blobs--but + // everyone uses this convention. + n := 0 + for n < len(pp.Path) && pp.Path[n] != 0 { + n++ + } + sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) + return sa, nil + + case AF_INET: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.Addr = pp.Addr + return sa, nil + + case AF_INET6: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + sa.Addr = pp.Addr + return sa, nil + } + return nil, syscall.EAFNOSUPPORT +} + +func Socket(domain, typ, proto int) (fd Handle, err error) { + if domain == AF_INET6 && SocketDisableIPv6 { + return InvalidHandle, syscall.EAFNOSUPPORT + } + return socket(int32(domain), int32(typ), int32(proto)) +} + +func SetsockoptInt(fd Handle, level, opt int, value int) (err error) { + v := int32(value) + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), int32(unsafe.Sizeof(v))) +} + +func Bind(fd Handle, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return bind(fd, ptr, n) +} + +func Connect(fd Handle, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return connect(fd, ptr, n) +} + +func GetBestInterfaceEx(sa Sockaddr, pdwBestIfIndex *uint32) (err error) { + ptr, _, err := sa.sockaddr() + if err != nil { + return err + } + return getBestInterfaceEx(ptr, pdwBestIfIndex) +} + +func Getsockname(fd Handle) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + l := int32(unsafe.Sizeof(rsa)) + if err = getsockname(fd, &rsa, &l); err != nil { + return + } + return rsa.Sockaddr() +} + +func Getpeername(fd Handle) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + l := int32(unsafe.Sizeof(rsa)) + if err = getpeername(fd, &rsa, &l); err != nil { + return + } + return rsa.Sockaddr() +} + +func Listen(s Handle, n int) (err error) { + return listen(s, int32(n)) +} + +func Shutdown(fd Handle, how int) (err error) { + return shutdown(fd, int32(how)) +} + +func WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) { + var rsa unsafe.Pointer + var l int32 + if to != nil { + rsa, l, err = to.sockaddr() + if err != nil { + return err + } + } + return WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine) +} + +func LoadGetAddrInfo() error { + return procGetAddrInfoW.Find() +} + +var connectExFunc struct { + once sync.Once + addr uintptr + err error +} + +func LoadConnectEx() error { + connectExFunc.once.Do(func() { + var s Handle + s, connectExFunc.err = Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) + if connectExFunc.err != nil { + return + } + defer CloseHandle(s) + var n uint32 + connectExFunc.err = WSAIoctl(s, + SIO_GET_EXTENSION_FUNCTION_POINTER, + (*byte)(unsafe.Pointer(&WSAID_CONNECTEX)), + uint32(unsafe.Sizeof(WSAID_CONNECTEX)), + (*byte)(unsafe.Pointer(&connectExFunc.addr)), + uint32(unsafe.Sizeof(connectExFunc.addr)), + &n, nil, 0) + }) + return connectExFunc.err +} + +func connectEx(s Handle, name unsafe.Pointer, namelen int32, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall9(connectExFunc.addr, 7, uintptr(s), uintptr(name), uintptr(namelen), uintptr(unsafe.Pointer(sendBuf)), uintptr(sendDataLen), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = error(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ConnectEx(fd Handle, sa Sockaddr, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) error { + err := LoadConnectEx() + if err != nil { + return errorspkg.New("failed to find ConnectEx: " + err.Error()) + } + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped) +} + +var sendRecvMsgFunc struct { + once sync.Once + sendAddr uintptr + recvAddr uintptr + err error +} + +func loadWSASendRecvMsg() error { + sendRecvMsgFunc.once.Do(func() { + var s Handle + s, sendRecvMsgFunc.err = Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) + if sendRecvMsgFunc.err != nil { + return + } + defer CloseHandle(s) + var n uint32 + sendRecvMsgFunc.err = WSAIoctl(s, + SIO_GET_EXTENSION_FUNCTION_POINTER, + (*byte)(unsafe.Pointer(&WSAID_WSARECVMSG)), + uint32(unsafe.Sizeof(WSAID_WSARECVMSG)), + (*byte)(unsafe.Pointer(&sendRecvMsgFunc.recvAddr)), + uint32(unsafe.Sizeof(sendRecvMsgFunc.recvAddr)), + &n, nil, 0) + if sendRecvMsgFunc.err != nil { + return + } + sendRecvMsgFunc.err = WSAIoctl(s, + SIO_GET_EXTENSION_FUNCTION_POINTER, + (*byte)(unsafe.Pointer(&WSAID_WSASENDMSG)), + uint32(unsafe.Sizeof(WSAID_WSASENDMSG)), + (*byte)(unsafe.Pointer(&sendRecvMsgFunc.sendAddr)), + uint32(unsafe.Sizeof(sendRecvMsgFunc.sendAddr)), + &n, nil, 0) + }) + return sendRecvMsgFunc.err +} + +func WSASendMsg(fd Handle, msg *WSAMsg, flags uint32, bytesSent *uint32, overlapped *Overlapped, croutine *byte) error { + err := loadWSASendRecvMsg() + if err != nil { + return err + } + r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.sendAddr, 6, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(flags), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + if r1 == socket_error { + err = errnoErr(e1) + } + return err +} + +func WSARecvMsg(fd Handle, msg *WSAMsg, bytesReceived *uint32, overlapped *Overlapped, croutine *byte) error { + err := loadWSASendRecvMsg() + if err != nil { + return err + } + r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.recvAddr, 5, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(bytesReceived)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return err +} + +// Invented structures to support what package os expects. +type Rusage struct { + CreationTime Filetime + ExitTime Filetime + KernelTime Filetime + UserTime Filetime +} + +type WaitStatus struct { + ExitCode uint32 +} + +func (w WaitStatus) Exited() bool { return true } + +func (w WaitStatus) ExitStatus() int { return int(w.ExitCode) } + +func (w WaitStatus) Signal() Signal { return -1 } + +func (w WaitStatus) CoreDump() bool { return false } + +func (w WaitStatus) Stopped() bool { return false } + +func (w WaitStatus) Continued() bool { return false } + +func (w WaitStatus) StopSignal() Signal { return -1 } + +func (w WaitStatus) Signaled() bool { return false } + +func (w WaitStatus) TrapCause() int { return -1 } + +// Timespec is an invented structure on Windows, but here for +// consistency with the corresponding package for other operating systems. +type Timespec struct { + Sec int64 + Nsec int64 +} + +func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } + +func NsecToTimespec(nsec int64) (ts Timespec) { + ts.Sec = nsec / 1e9 + ts.Nsec = nsec % 1e9 + return +} + +// TODO(brainman): fix all needed for net + +func Accept(fd Handle) (nfd Handle, sa Sockaddr, err error) { return 0, nil, syscall.EWINDOWS } + +func Recvfrom(fd Handle, p []byte, flags int) (n int, from Sockaddr, err error) { + var rsa RawSockaddrAny + l := int32(unsafe.Sizeof(rsa)) + n32, err := recvfrom(fd, p, int32(flags), &rsa, &l) + n = int(n32) + if err != nil { + return + } + from, err = rsa.Sockaddr() + return +} + +func Sendto(fd Handle, p []byte, flags int, to Sockaddr) (err error) { + ptr, l, err := to.sockaddr() + if err != nil { + return err + } + return sendto(fd, p, int32(flags), ptr, l) +} + +func SetsockoptTimeval(fd Handle, level, opt int, tv *Timeval) (err error) { return syscall.EWINDOWS } + +// The Linger struct is wrong but we only noticed after Go 1. +// sysLinger is the real system call structure. + +// BUG(brainman): The definition of Linger is not appropriate for direct use +// with Setsockopt and Getsockopt. +// Use SetsockoptLinger instead. + +type Linger struct { + Onoff int32 + Linger int32 +} + +type sysLinger struct { + Onoff uint16 + Linger uint16 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +func GetsockoptInt(fd Handle, level, opt int) (int, error) { + v := int32(0) + l := int32(unsafe.Sizeof(v)) + err := Getsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), &l) + return int(v), err +} + +func SetsockoptLinger(fd Handle, level, opt int, l *Linger) (err error) { + sys := sysLinger{Onoff: uint16(l.Onoff), Linger: uint16(l.Linger)} + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&sys)), int32(unsafe.Sizeof(sys))) +} + +func SetsockoptInet4Addr(fd Handle, level, opt int, value [4]byte) (err error) { + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&value[0])), 4) +} + +func SetsockoptIPMreq(fd Handle, level, opt int, mreq *IPMreq) (err error) { + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(mreq)), int32(unsafe.Sizeof(*mreq))) +} + +func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) { + return syscall.EWINDOWS +} + +func EnumProcesses(processIds []uint32, bytesReturned *uint32) error { + // EnumProcesses syscall expects the size parameter to be in bytes, but the code generated with mksyscall uses + // the length of the processIds slice instead. Hence, this wrapper function is added to fix the discrepancy. + var p *uint32 + if len(processIds) > 0 { + p = &processIds[0] + } + size := uint32(len(processIds) * 4) + return enumProcesses(p, size, bytesReturned) +} + +func Getpid() (pid int) { return int(GetCurrentProcessId()) } + +func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) { + // NOTE(rsc): The Win32finddata struct is wrong for the system call: + // the two paths are each one uint16 short. Use the correct struct, + // a win32finddata1, and then copy the results out. + // There is no loss of expressivity here, because the final + // uint16, if it is used, is supposed to be a NUL, and Go doesn't need that. + // For Go 1.1, we might avoid the allocation of win32finddata1 here + // by adding a final Bug [2]uint16 field to the struct and then + // adjusting the fields in the result directly. + var data1 win32finddata1 + handle, err = findFirstFile1(name, &data1) + if err == nil { + copyFindData(data, &data1) + } + return +} + +func FindNextFile(handle Handle, data *Win32finddata) (err error) { + var data1 win32finddata1 + err = findNextFile1(handle, &data1) + if err == nil { + copyFindData(data, &data1) + } + return +} + +func getProcessEntry(pid int) (*ProcessEntry32, error) { + snapshot, err := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0) + if err != nil { + return nil, err + } + defer CloseHandle(snapshot) + var procEntry ProcessEntry32 + procEntry.Size = uint32(unsafe.Sizeof(procEntry)) + if err = Process32First(snapshot, &procEntry); err != nil { + return nil, err + } + for { + if procEntry.ProcessID == uint32(pid) { + return &procEntry, nil + } + err = Process32Next(snapshot, &procEntry) + if err != nil { + return nil, err + } + } +} + +func Getppid() (ppid int) { + pe, err := getProcessEntry(Getpid()) + if err != nil { + return -1 + } + return int(pe.ParentProcessID) +} + +// TODO(brainman): fix all needed for os +func Fchdir(fd Handle) (err error) { return syscall.EWINDOWS } +func Link(oldpath, newpath string) (err error) { return syscall.EWINDOWS } +func Symlink(path, link string) (err error) { return syscall.EWINDOWS } + +func Fchmod(fd Handle, mode uint32) (err error) { return syscall.EWINDOWS } +func Chown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } +func Lchown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } +func Fchown(fd Handle, uid int, gid int) (err error) { return syscall.EWINDOWS } + +func Getuid() (uid int) { return -1 } +func Geteuid() (euid int) { return -1 } +func Getgid() (gid int) { return -1 } +func Getegid() (egid int) { return -1 } +func Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS } + +type Signal int + +func (s Signal) Signal() {} + +func (s Signal) String() string { + if 0 <= s && int(s) < len(signals) { + str := signals[s] + if str != "" { + return str + } + } + return "signal " + itoa(int(s)) +} + +func LoadCreateSymbolicLink() error { + return procCreateSymbolicLinkW.Find() +} + +// Readlink returns the destination of the named symbolic link. +func Readlink(path string, buf []byte) (n int, err error) { + fd, err := CreateFile(StringToUTF16Ptr(path), GENERIC_READ, 0, nil, OPEN_EXISTING, + FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0) + if err != nil { + return -1, err + } + defer CloseHandle(fd) + + rdbbuf := make([]byte, MAXIMUM_REPARSE_DATA_BUFFER_SIZE) + var bytesReturned uint32 + err = DeviceIoControl(fd, FSCTL_GET_REPARSE_POINT, nil, 0, &rdbbuf[0], uint32(len(rdbbuf)), &bytesReturned, nil) + if err != nil { + return -1, err + } + + rdb := (*reparseDataBuffer)(unsafe.Pointer(&rdbbuf[0])) + var s string + switch rdb.ReparseTag { + case IO_REPARSE_TAG_SYMLINK: + data := (*symbolicLinkReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) + p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) + s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) + case IO_REPARSE_TAG_MOUNT_POINT: + data := (*mountPointReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) + p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) + s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) + default: + // the path is not a symlink or junction but another type of reparse + // point + return -1, syscall.ENOENT + } + n = copy(buf, []byte(s)) + + return n, nil +} + +// GUIDFromString parses a string in the form of +// "{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" into a GUID. +func GUIDFromString(str string) (GUID, error) { + guid := GUID{} + str16, err := syscall.UTF16PtrFromString(str) + if err != nil { + return guid, err + } + err = clsidFromString(str16, &guid) + if err != nil { + return guid, err + } + return guid, nil +} + +// GenerateGUID creates a new random GUID. +func GenerateGUID() (GUID, error) { + guid := GUID{} + err := coCreateGuid(&guid) + if err != nil { + return guid, err + } + return guid, nil +} + +// String returns the canonical string form of the GUID, +// in the form of "{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}". +func (guid GUID) String() string { + var str [100]uint16 + chars := stringFromGUID2(&guid, &str[0], int32(len(str))) + if chars <= 1 { + return "" + } + return string(utf16.Decode(str[:chars-1])) +} + +// KnownFolderPath returns a well-known folder path for the current user, specified by one of +// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag. +func KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) { + return Token(0).KnownFolderPath(folderID, flags) +} + +// KnownFolderPath returns a well-known folder path for the user token, specified by one of +// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag. +func (t Token) KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) { + var p *uint16 + err := shGetKnownFolderPath(folderID, flags, t, &p) + if err != nil { + return "", err + } + defer CoTaskMemFree(unsafe.Pointer(p)) + return UTF16PtrToString(p), nil +} + +// RtlGetVersion returns the version of the underlying operating system, ignoring +// manifest semantics but is affected by the application compatibility layer. +func RtlGetVersion() *OsVersionInfoEx { + info := &OsVersionInfoEx{} + info.osVersionInfoSize = uint32(unsafe.Sizeof(*info)) + // According to documentation, this function always succeeds. + // The function doesn't even check the validity of the + // osVersionInfoSize member. Disassembling ntdll.dll indicates + // that the documentation is indeed correct about that. + _ = rtlGetVersion(info) + return info +} + +// RtlGetNtVersionNumbers returns the version of the underlying operating system, +// ignoring manifest semantics and the application compatibility layer. +func RtlGetNtVersionNumbers() (majorVersion, minorVersion, buildNumber uint32) { + rtlGetNtVersionNumbers(&majorVersion, &minorVersion, &buildNumber) + buildNumber &= 0xffff + return +} + +// GetProcessPreferredUILanguages retrieves the process preferred UI languages. +func GetProcessPreferredUILanguages(flags uint32) ([]string, error) { + return getUILanguages(flags, getProcessPreferredUILanguages) +} + +// GetThreadPreferredUILanguages retrieves the thread preferred UI languages for the current thread. +func GetThreadPreferredUILanguages(flags uint32) ([]string, error) { + return getUILanguages(flags, getThreadPreferredUILanguages) +} + +// GetUserPreferredUILanguages retrieves information about the user preferred UI languages. +func GetUserPreferredUILanguages(flags uint32) ([]string, error) { + return getUILanguages(flags, getUserPreferredUILanguages) +} + +// GetSystemPreferredUILanguages retrieves the system preferred UI languages. +func GetSystemPreferredUILanguages(flags uint32) ([]string, error) { + return getUILanguages(flags, getSystemPreferredUILanguages) +} + +func getUILanguages(flags uint32, f func(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) error) ([]string, error) { + size := uint32(128) + for { + var numLanguages uint32 + buf := make([]uint16, size) + err := f(flags, &numLanguages, &buf[0], &size) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return nil, err + } + buf = buf[:size] + if numLanguages == 0 || len(buf) == 0 { // GetProcessPreferredUILanguages may return numLanguages==0 with "\0\0" + return []string{}, nil + } + if buf[len(buf)-1] == 0 { + buf = buf[:len(buf)-1] // remove terminating null + } + languages := make([]string, 0, numLanguages) + from := 0 + for i, c := range buf { + if c == 0 { + languages = append(languages, string(utf16.Decode(buf[from:i]))) + from = i + 1 + } + } + return languages, nil + } +} + +func SetConsoleCursorPosition(console Handle, position Coord) error { + return setConsoleCursorPosition(console, *((*uint32)(unsafe.Pointer(&position)))) +} + +func GetStartupInfo(startupInfo *StartupInfo) error { + getStartupInfo(startupInfo) + return nil +} + +func (s NTStatus) Errno() syscall.Errno { + return rtlNtStatusToDosErrorNoTeb(s) +} + +func langID(pri, sub uint16) uint32 { return uint32(sub)<<10 | uint32(pri) } + +func (s NTStatus) Error() string { + b := make([]uint16, 300) + n, err := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_ARGUMENT_ARRAY, modntdll.Handle(), uint32(s), langID(LANG_ENGLISH, SUBLANG_ENGLISH_US), b, nil) + if err != nil { + return fmt.Sprintf("NTSTATUS 0x%08x", uint32(s)) + } + // trim terminating \r and \n + for ; n > 0 && (b[n-1] == '\n' || b[n-1] == '\r'); n-- { + } + return string(utf16.Decode(b[:n])) +} + +// NewNTUnicodeString returns a new NTUnicodeString structure for use with native +// NT APIs that work over the NTUnicodeString type. Note that most Windows APIs +// do not use NTUnicodeString, and instead UTF16PtrFromString should be used for +// the more common *uint16 string type. +func NewNTUnicodeString(s string) (*NTUnicodeString, error) { + var u NTUnicodeString + s16, err := UTF16PtrFromString(s) + if err != nil { + return nil, err + } + RtlInitUnicodeString(&u, s16) + return &u, nil +} + +// Slice returns a uint16 slice that aliases the data in the NTUnicodeString. +func (s *NTUnicodeString) Slice() []uint16 { + slice := unsafe.Slice(s.Buffer, s.MaximumLength) + return slice[:s.Length] +} + +func (s *NTUnicodeString) String() string { + return UTF16ToString(s.Slice()) +} + +// NewNTString returns a new NTString structure for use with native +// NT APIs that work over the NTString type. Note that most Windows APIs +// do not use NTString, and instead UTF16PtrFromString should be used for +// the more common *uint16 string type. +func NewNTString(s string) (*NTString, error) { + var nts NTString + s8, err := BytePtrFromString(s) + if err != nil { + return nil, err + } + RtlInitString(&nts, s8) + return &nts, nil +} + +// Slice returns a byte slice that aliases the data in the NTString. +func (s *NTString) Slice() []byte { + slice := unsafe.Slice(s.Buffer, s.MaximumLength) + return slice[:s.Length] +} + +func (s *NTString) String() string { + return ByteSliceToString(s.Slice()) +} + +// FindResource resolves a resource of the given name and resource type. +func FindResource(module Handle, name, resType ResourceIDOrString) (Handle, error) { + var namePtr, resTypePtr uintptr + var name16, resType16 *uint16 + var err error + resolvePtr := func(i interface{}, keep **uint16) (uintptr, error) { + switch v := i.(type) { + case string: + *keep, err = UTF16PtrFromString(v) + if err != nil { + return 0, err + } + return uintptr(unsafe.Pointer(*keep)), nil + case ResourceID: + return uintptr(v), nil + } + return 0, errorspkg.New("parameter must be a ResourceID or a string") + } + namePtr, err = resolvePtr(name, &name16) + if err != nil { + return 0, err + } + resTypePtr, err = resolvePtr(resType, &resType16) + if err != nil { + return 0, err + } + resInfo, err := findResource(module, namePtr, resTypePtr) + runtime.KeepAlive(name16) + runtime.KeepAlive(resType16) + return resInfo, err +} + +func LoadResourceData(module, resInfo Handle) (data []byte, err error) { + size, err := SizeofResource(module, resInfo) + if err != nil { + return + } + resData, err := LoadResource(module, resInfo) + if err != nil { + return + } + ptr, err := LockResource(resData) + if err != nil { + return + } + data = unsafe.Slice((*byte)(unsafe.Pointer(ptr)), size) + return +} + +// PSAPI_WORKING_SET_EX_BLOCK contains extended working set information for a page. +type PSAPI_WORKING_SET_EX_BLOCK uint64 + +// Valid returns the validity of this page. +// If this bit is 1, the subsequent members are valid; otherwise they should be ignored. +func (b PSAPI_WORKING_SET_EX_BLOCK) Valid() bool { + return (b & 1) == 1 +} + +// ShareCount is the number of processes that share this page. The maximum value of this member is 7. +func (b PSAPI_WORKING_SET_EX_BLOCK) ShareCount() uint64 { + return b.intField(1, 3) +} + +// Win32Protection is the memory protection attributes of the page. For a list of values, see +// https://docs.microsoft.com/en-us/windows/win32/memory/memory-protection-constants +func (b PSAPI_WORKING_SET_EX_BLOCK) Win32Protection() uint64 { + return b.intField(4, 11) +} + +// Shared returns the shared status of this page. +// If this bit is 1, the page can be shared. +func (b PSAPI_WORKING_SET_EX_BLOCK) Shared() bool { + return (b & (1 << 15)) == 1 +} + +// Node is the NUMA node. The maximum value of this member is 63. +func (b PSAPI_WORKING_SET_EX_BLOCK) Node() uint64 { + return b.intField(16, 6) +} + +// Locked returns the locked status of this page. +// If this bit is 1, the virtual page is locked in physical memory. +func (b PSAPI_WORKING_SET_EX_BLOCK) Locked() bool { + return (b & (1 << 22)) == 1 +} + +// LargePage returns the large page status of this page. +// If this bit is 1, the page is a large page. +func (b PSAPI_WORKING_SET_EX_BLOCK) LargePage() bool { + return (b & (1 << 23)) == 1 +} + +// Bad returns the bad status of this page. +// If this bit is 1, the page is has been reported as bad. +func (b PSAPI_WORKING_SET_EX_BLOCK) Bad() bool { + return (b & (1 << 31)) == 1 +} + +// intField extracts an integer field in the PSAPI_WORKING_SET_EX_BLOCK union. +func (b PSAPI_WORKING_SET_EX_BLOCK) intField(start, length int) uint64 { + var mask PSAPI_WORKING_SET_EX_BLOCK + for pos := start; pos < start+length; pos++ { + mask |= (1 << pos) + } + + masked := b & mask + return uint64(masked >> start) +} + +// PSAPI_WORKING_SET_EX_INFORMATION contains extended working set information for a process. +type PSAPI_WORKING_SET_EX_INFORMATION struct { + // The virtual address. + VirtualAddress Pointer + // A PSAPI_WORKING_SET_EX_BLOCK union that indicates the attributes of the page at VirtualAddress. + VirtualAttributes PSAPI_WORKING_SET_EX_BLOCK +} + +// CreatePseudoConsole creates a windows pseudo console. +func CreatePseudoConsole(size Coord, in Handle, out Handle, flags uint32, pconsole *Handle) error { + // We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only + // accept arguments that can be casted to uintptr, and Coord can't. + return createPseudoConsole(*((*uint32)(unsafe.Pointer(&size))), in, out, flags, pconsole) +} + +// ResizePseudoConsole resizes the internal buffers of the pseudo console to the width and height specified in `size`. +func ResizePseudoConsole(pconsole Handle, size Coord) error { + // We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only + // accept arguments that can be casted to uintptr, and Coord can't. + return resizePseudoConsole(pconsole, *((*uint32)(unsafe.Pointer(&size)))) +} + +// DCB constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-dcb. +const ( + CBR_110 = 110 + CBR_300 = 300 + CBR_600 = 600 + CBR_1200 = 1200 + CBR_2400 = 2400 + CBR_4800 = 4800 + CBR_9600 = 9600 + CBR_14400 = 14400 + CBR_19200 = 19200 + CBR_38400 = 38400 + CBR_57600 = 57600 + CBR_115200 = 115200 + CBR_128000 = 128000 + CBR_256000 = 256000 + + DTR_CONTROL_DISABLE = 0x00000000 + DTR_CONTROL_ENABLE = 0x00000010 + DTR_CONTROL_HANDSHAKE = 0x00000020 + + RTS_CONTROL_DISABLE = 0x00000000 + RTS_CONTROL_ENABLE = 0x00001000 + RTS_CONTROL_HANDSHAKE = 0x00002000 + RTS_CONTROL_TOGGLE = 0x00003000 + + NOPARITY = 0 + ODDPARITY = 1 + EVENPARITY = 2 + MARKPARITY = 3 + SPACEPARITY = 4 + + ONESTOPBIT = 0 + ONE5STOPBITS = 1 + TWOSTOPBITS = 2 +) + +// EscapeCommFunction constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-escapecommfunction. +const ( + SETXOFF = 1 + SETXON = 2 + SETRTS = 3 + CLRRTS = 4 + SETDTR = 5 + CLRDTR = 6 + SETBREAK = 8 + CLRBREAK = 9 +) + +// PurgeComm constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-purgecomm. +const ( + PURGE_TXABORT = 0x0001 + PURGE_RXABORT = 0x0002 + PURGE_TXCLEAR = 0x0004 + PURGE_RXCLEAR = 0x0008 +) + +// SetCommMask constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setcommmask. +const ( + EV_RXCHAR = 0x0001 + EV_RXFLAG = 0x0002 + EV_TXEMPTY = 0x0004 + EV_CTS = 0x0008 + EV_DSR = 0x0010 + EV_RLSD = 0x0020 + EV_BREAK = 0x0040 + EV_ERR = 0x0080 + EV_RING = 0x0100 +) diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go new file mode 100644 index 000000000..7b97a154c --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -0,0 +1,3476 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +import ( + "net" + "syscall" + "unsafe" +) + +// NTStatus corresponds with NTSTATUS, error values returned by ntdll.dll and +// other native functions. +type NTStatus uint32 + +const ( + // Invented values to support what package os expects. + O_RDONLY = 0x00000 + O_WRONLY = 0x00001 + O_RDWR = 0x00002 + O_CREAT = 0x00040 + O_EXCL = 0x00080 + O_NOCTTY = 0x00100 + O_TRUNC = 0x00200 + O_NONBLOCK = 0x00800 + O_APPEND = 0x00400 + O_SYNC = 0x01000 + O_ASYNC = 0x02000 + O_CLOEXEC = 0x80000 +) + +const ( + // More invented values for signals + SIGHUP = Signal(0x1) + SIGINT = Signal(0x2) + SIGQUIT = Signal(0x3) + SIGILL = Signal(0x4) + SIGTRAP = Signal(0x5) + SIGABRT = Signal(0x6) + SIGBUS = Signal(0x7) + SIGFPE = Signal(0x8) + SIGKILL = Signal(0x9) + SIGSEGV = Signal(0xb) + SIGPIPE = Signal(0xd) + SIGALRM = Signal(0xe) + SIGTERM = Signal(0xf) +) + +var signals = [...]string{ + 1: "hangup", + 2: "interrupt", + 3: "quit", + 4: "illegal instruction", + 5: "trace/breakpoint trap", + 6: "aborted", + 7: "bus error", + 8: "floating point exception", + 9: "killed", + 10: "user defined signal 1", + 11: "segmentation fault", + 12: "user defined signal 2", + 13: "broken pipe", + 14: "alarm clock", + 15: "terminated", +} + +const ( + FILE_READ_DATA = 0x00000001 + FILE_READ_ATTRIBUTES = 0x00000080 + FILE_READ_EA = 0x00000008 + FILE_WRITE_DATA = 0x00000002 + FILE_WRITE_ATTRIBUTES = 0x00000100 + FILE_WRITE_EA = 0x00000010 + FILE_APPEND_DATA = 0x00000004 + FILE_EXECUTE = 0x00000020 + + FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE + FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE + FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE + + FILE_LIST_DIRECTORY = 0x00000001 + FILE_TRAVERSE = 0x00000020 + + FILE_SHARE_READ = 0x00000001 + FILE_SHARE_WRITE = 0x00000002 + FILE_SHARE_DELETE = 0x00000004 + + FILE_ATTRIBUTE_READONLY = 0x00000001 + FILE_ATTRIBUTE_HIDDEN = 0x00000002 + FILE_ATTRIBUTE_SYSTEM = 0x00000004 + FILE_ATTRIBUTE_DIRECTORY = 0x00000010 + FILE_ATTRIBUTE_ARCHIVE = 0x00000020 + FILE_ATTRIBUTE_DEVICE = 0x00000040 + FILE_ATTRIBUTE_NORMAL = 0x00000080 + FILE_ATTRIBUTE_TEMPORARY = 0x00000100 + FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200 + FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 + FILE_ATTRIBUTE_COMPRESSED = 0x00000800 + FILE_ATTRIBUTE_OFFLINE = 0x00001000 + FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000 + FILE_ATTRIBUTE_ENCRYPTED = 0x00004000 + FILE_ATTRIBUTE_INTEGRITY_STREAM = 0x00008000 + FILE_ATTRIBUTE_VIRTUAL = 0x00010000 + FILE_ATTRIBUTE_NO_SCRUB_DATA = 0x00020000 + FILE_ATTRIBUTE_RECALL_ON_OPEN = 0x00040000 + FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS = 0x00400000 + + INVALID_FILE_ATTRIBUTES = 0xffffffff + + CREATE_NEW = 1 + CREATE_ALWAYS = 2 + OPEN_EXISTING = 3 + OPEN_ALWAYS = 4 + TRUNCATE_EXISTING = 5 + + FILE_FLAG_OPEN_REQUIRING_OPLOCK = 0x00040000 + FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000 + FILE_FLAG_OPEN_NO_RECALL = 0x00100000 + FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000 + FILE_FLAG_SESSION_AWARE = 0x00800000 + FILE_FLAG_POSIX_SEMANTICS = 0x01000000 + FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 + FILE_FLAG_DELETE_ON_CLOSE = 0x04000000 + FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000 + FILE_FLAG_RANDOM_ACCESS = 0x10000000 + FILE_FLAG_NO_BUFFERING = 0x20000000 + FILE_FLAG_OVERLAPPED = 0x40000000 + FILE_FLAG_WRITE_THROUGH = 0x80000000 + + HANDLE_FLAG_INHERIT = 0x00000001 + STARTF_USESTDHANDLES = 0x00000100 + STARTF_USESHOWWINDOW = 0x00000001 + DUPLICATE_CLOSE_SOURCE = 0x00000001 + DUPLICATE_SAME_ACCESS = 0x00000002 + + STD_INPUT_HANDLE = -10 & (1<<32 - 1) + STD_OUTPUT_HANDLE = -11 & (1<<32 - 1) + STD_ERROR_HANDLE = -12 & (1<<32 - 1) + + FILE_BEGIN = 0 + FILE_CURRENT = 1 + FILE_END = 2 + + LANG_ENGLISH = 0x09 + SUBLANG_ENGLISH_US = 0x01 + + FORMAT_MESSAGE_ALLOCATE_BUFFER = 256 + FORMAT_MESSAGE_IGNORE_INSERTS = 512 + FORMAT_MESSAGE_FROM_STRING = 1024 + FORMAT_MESSAGE_FROM_HMODULE = 2048 + FORMAT_MESSAGE_FROM_SYSTEM = 4096 + FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192 + FORMAT_MESSAGE_MAX_WIDTH_MASK = 255 + + MAX_PATH = 260 + MAX_LONG_PATH = 32768 + + MAX_MODULE_NAME32 = 255 + + MAX_COMPUTERNAME_LENGTH = 15 + + MAX_DHCPV6_DUID_LENGTH = 130 + + MAX_DNS_SUFFIX_STRING_LENGTH = 256 + + TIME_ZONE_ID_UNKNOWN = 0 + TIME_ZONE_ID_STANDARD = 1 + + TIME_ZONE_ID_DAYLIGHT = 2 + IGNORE = 0 + INFINITE = 0xffffffff + + WAIT_ABANDONED = 0x00000080 + WAIT_OBJECT_0 = 0x00000000 + WAIT_FAILED = 0xFFFFFFFF + + // Access rights for process. + PROCESS_CREATE_PROCESS = 0x0080 + PROCESS_CREATE_THREAD = 0x0002 + PROCESS_DUP_HANDLE = 0x0040 + PROCESS_QUERY_INFORMATION = 0x0400 + PROCESS_QUERY_LIMITED_INFORMATION = 0x1000 + PROCESS_SET_INFORMATION = 0x0200 + PROCESS_SET_QUOTA = 0x0100 + PROCESS_SUSPEND_RESUME = 0x0800 + PROCESS_TERMINATE = 0x0001 + PROCESS_VM_OPERATION = 0x0008 + PROCESS_VM_READ = 0x0010 + PROCESS_VM_WRITE = 0x0020 + + // Access rights for thread. + THREAD_DIRECT_IMPERSONATION = 0x0200 + THREAD_GET_CONTEXT = 0x0008 + THREAD_IMPERSONATE = 0x0100 + THREAD_QUERY_INFORMATION = 0x0040 + THREAD_QUERY_LIMITED_INFORMATION = 0x0800 + THREAD_SET_CONTEXT = 0x0010 + THREAD_SET_INFORMATION = 0x0020 + THREAD_SET_LIMITED_INFORMATION = 0x0400 + THREAD_SET_THREAD_TOKEN = 0x0080 + THREAD_SUSPEND_RESUME = 0x0002 + THREAD_TERMINATE = 0x0001 + + FILE_MAP_COPY = 0x01 + FILE_MAP_WRITE = 0x02 + FILE_MAP_READ = 0x04 + FILE_MAP_EXECUTE = 0x20 + + CTRL_C_EVENT = 0 + CTRL_BREAK_EVENT = 1 + CTRL_CLOSE_EVENT = 2 + CTRL_LOGOFF_EVENT = 5 + CTRL_SHUTDOWN_EVENT = 6 + + // Windows reserves errors >= 1<<29 for application use. + APPLICATION_ERROR = 1 << 29 +) + +const ( + // Process creation flags. + CREATE_BREAKAWAY_FROM_JOB = 0x01000000 + CREATE_DEFAULT_ERROR_MODE = 0x04000000 + CREATE_NEW_CONSOLE = 0x00000010 + CREATE_NEW_PROCESS_GROUP = 0x00000200 + CREATE_NO_WINDOW = 0x08000000 + CREATE_PROTECTED_PROCESS = 0x00040000 + CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000 + CREATE_SEPARATE_WOW_VDM = 0x00000800 + CREATE_SHARED_WOW_VDM = 0x00001000 + CREATE_SUSPENDED = 0x00000004 + CREATE_UNICODE_ENVIRONMENT = 0x00000400 + DEBUG_ONLY_THIS_PROCESS = 0x00000002 + DEBUG_PROCESS = 0x00000001 + DETACHED_PROCESS = 0x00000008 + EXTENDED_STARTUPINFO_PRESENT = 0x00080000 + INHERIT_PARENT_AFFINITY = 0x00010000 +) + +const ( + // attributes for ProcThreadAttributeList + PROC_THREAD_ATTRIBUTE_PARENT_PROCESS = 0x00020000 + PROC_THREAD_ATTRIBUTE_HANDLE_LIST = 0x00020002 + PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY = 0x00030003 + PROC_THREAD_ATTRIBUTE_PREFERRED_NODE = 0x00020004 + PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR = 0x00030005 + PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY = 0x00020007 + PROC_THREAD_ATTRIBUTE_UMS_THREAD = 0x00030006 + PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL = 0x0002000b + PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE = 0x00020016 +) + +const ( + // flags for CreateToolhelp32Snapshot + TH32CS_SNAPHEAPLIST = 0x01 + TH32CS_SNAPPROCESS = 0x02 + TH32CS_SNAPTHREAD = 0x04 + TH32CS_SNAPMODULE = 0x08 + TH32CS_SNAPMODULE32 = 0x10 + TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD + TH32CS_INHERIT = 0x80000000 +) + +const ( + // flags for EnumProcessModulesEx + LIST_MODULES_32BIT = 0x01 + LIST_MODULES_64BIT = 0x02 + LIST_MODULES_ALL = 0x03 + LIST_MODULES_DEFAULT = 0x00 +) + +const ( + // filters for ReadDirectoryChangesW and FindFirstChangeNotificationW + FILE_NOTIFY_CHANGE_FILE_NAME = 0x001 + FILE_NOTIFY_CHANGE_DIR_NAME = 0x002 + FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x004 + FILE_NOTIFY_CHANGE_SIZE = 0x008 + FILE_NOTIFY_CHANGE_LAST_WRITE = 0x010 + FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x020 + FILE_NOTIFY_CHANGE_CREATION = 0x040 + FILE_NOTIFY_CHANGE_SECURITY = 0x100 +) + +const ( + // do not reorder + FILE_ACTION_ADDED = iota + 1 + FILE_ACTION_REMOVED + FILE_ACTION_MODIFIED + FILE_ACTION_RENAMED_OLD_NAME + FILE_ACTION_RENAMED_NEW_NAME +) + +const ( + // wincrypt.h + /* certenrolld_begin -- PROV_RSA_*/ + PROV_RSA_FULL = 1 + PROV_RSA_SIG = 2 + PROV_DSS = 3 + PROV_FORTEZZA = 4 + PROV_MS_EXCHANGE = 5 + PROV_SSL = 6 + PROV_RSA_SCHANNEL = 12 + PROV_DSS_DH = 13 + PROV_EC_ECDSA_SIG = 14 + PROV_EC_ECNRA_SIG = 15 + PROV_EC_ECDSA_FULL = 16 + PROV_EC_ECNRA_FULL = 17 + PROV_DH_SCHANNEL = 18 + PROV_SPYRUS_LYNKS = 20 + PROV_RNG = 21 + PROV_INTEL_SEC = 22 + PROV_REPLACE_OWF = 23 + PROV_RSA_AES = 24 + + /* dwFlags definitions for CryptAcquireContext */ + CRYPT_VERIFYCONTEXT = 0xF0000000 + CRYPT_NEWKEYSET = 0x00000008 + CRYPT_DELETEKEYSET = 0x00000010 + CRYPT_MACHINE_KEYSET = 0x00000020 + CRYPT_SILENT = 0x00000040 + CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080 + + /* Flags for PFXImportCertStore */ + CRYPT_EXPORTABLE = 0x00000001 + CRYPT_USER_PROTECTED = 0x00000002 + CRYPT_USER_KEYSET = 0x00001000 + PKCS12_PREFER_CNG_KSP = 0x00000100 + PKCS12_ALWAYS_CNG_KSP = 0x00000200 + PKCS12_ALLOW_OVERWRITE_KEY = 0x00004000 + PKCS12_NO_PERSIST_KEY = 0x00008000 + PKCS12_INCLUDE_EXTENDED_PROPERTIES = 0x00000010 + + /* Flags for CryptAcquireCertificatePrivateKey */ + CRYPT_ACQUIRE_CACHE_FLAG = 0x00000001 + CRYPT_ACQUIRE_USE_PROV_INFO_FLAG = 0x00000002 + CRYPT_ACQUIRE_COMPARE_KEY_FLAG = 0x00000004 + CRYPT_ACQUIRE_NO_HEALING = 0x00000008 + CRYPT_ACQUIRE_SILENT_FLAG = 0x00000040 + CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG = 0x00000080 + CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK = 0x00070000 + CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG = 0x00010000 + CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG = 0x00020000 + CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG = 0x00040000 + + /* pdwKeySpec for CryptAcquireCertificatePrivateKey */ + AT_KEYEXCHANGE = 1 + AT_SIGNATURE = 2 + CERT_NCRYPT_KEY_SPEC = 0xFFFFFFFF + + /* Default usage match type is AND with value zero */ + USAGE_MATCH_TYPE_AND = 0 + USAGE_MATCH_TYPE_OR = 1 + + /* msgAndCertEncodingType values for CertOpenStore function */ + X509_ASN_ENCODING = 0x00000001 + PKCS_7_ASN_ENCODING = 0x00010000 + + /* storeProvider values for CertOpenStore function */ + CERT_STORE_PROV_MSG = 1 + CERT_STORE_PROV_MEMORY = 2 + CERT_STORE_PROV_FILE = 3 + CERT_STORE_PROV_REG = 4 + CERT_STORE_PROV_PKCS7 = 5 + CERT_STORE_PROV_SERIALIZED = 6 + CERT_STORE_PROV_FILENAME_A = 7 + CERT_STORE_PROV_FILENAME_W = 8 + CERT_STORE_PROV_FILENAME = CERT_STORE_PROV_FILENAME_W + CERT_STORE_PROV_SYSTEM_A = 9 + CERT_STORE_PROV_SYSTEM_W = 10 + CERT_STORE_PROV_SYSTEM = CERT_STORE_PROV_SYSTEM_W + CERT_STORE_PROV_COLLECTION = 11 + CERT_STORE_PROV_SYSTEM_REGISTRY_A = 12 + CERT_STORE_PROV_SYSTEM_REGISTRY_W = 13 + CERT_STORE_PROV_SYSTEM_REGISTRY = CERT_STORE_PROV_SYSTEM_REGISTRY_W + CERT_STORE_PROV_PHYSICAL_W = 14 + CERT_STORE_PROV_PHYSICAL = CERT_STORE_PROV_PHYSICAL_W + CERT_STORE_PROV_SMART_CARD_W = 15 + CERT_STORE_PROV_SMART_CARD = CERT_STORE_PROV_SMART_CARD_W + CERT_STORE_PROV_LDAP_W = 16 + CERT_STORE_PROV_LDAP = CERT_STORE_PROV_LDAP_W + CERT_STORE_PROV_PKCS12 = 17 + + /* store characteristics (low WORD of flag) for CertOpenStore function */ + CERT_STORE_NO_CRYPT_RELEASE_FLAG = 0x00000001 + CERT_STORE_SET_LOCALIZED_NAME_FLAG = 0x00000002 + CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004 + CERT_STORE_DELETE_FLAG = 0x00000010 + CERT_STORE_UNSAFE_PHYSICAL_FLAG = 0x00000020 + CERT_STORE_SHARE_STORE_FLAG = 0x00000040 + CERT_STORE_SHARE_CONTEXT_FLAG = 0x00000080 + CERT_STORE_MANIFOLD_FLAG = 0x00000100 + CERT_STORE_ENUM_ARCHIVED_FLAG = 0x00000200 + CERT_STORE_UPDATE_KEYID_FLAG = 0x00000400 + CERT_STORE_BACKUP_RESTORE_FLAG = 0x00000800 + CERT_STORE_MAXIMUM_ALLOWED_FLAG = 0x00001000 + CERT_STORE_CREATE_NEW_FLAG = 0x00002000 + CERT_STORE_OPEN_EXISTING_FLAG = 0x00004000 + CERT_STORE_READONLY_FLAG = 0x00008000 + + /* store locations (high WORD of flag) for CertOpenStore function */ + CERT_SYSTEM_STORE_CURRENT_USER = 0x00010000 + CERT_SYSTEM_STORE_LOCAL_MACHINE = 0x00020000 + CERT_SYSTEM_STORE_CURRENT_SERVICE = 0x00040000 + CERT_SYSTEM_STORE_SERVICES = 0x00050000 + CERT_SYSTEM_STORE_USERS = 0x00060000 + CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY = 0x00070000 + CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = 0x00080000 + CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE = 0x00090000 + CERT_SYSTEM_STORE_UNPROTECTED_FLAG = 0x40000000 + CERT_SYSTEM_STORE_RELOCATE_FLAG = 0x80000000 + + /* Miscellaneous high-WORD flags for CertOpenStore function */ + CERT_REGISTRY_STORE_REMOTE_FLAG = 0x00010000 + CERT_REGISTRY_STORE_SERIALIZED_FLAG = 0x00020000 + CERT_REGISTRY_STORE_ROAMING_FLAG = 0x00040000 + CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 0x00080000 + CERT_REGISTRY_STORE_LM_GPT_FLAG = 0x01000000 + CERT_REGISTRY_STORE_CLIENT_GPT_FLAG = 0x80000000 + CERT_FILE_STORE_COMMIT_ENABLE_FLAG = 0x00010000 + CERT_LDAP_STORE_SIGN_FLAG = 0x00010000 + CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG = 0x00020000 + CERT_LDAP_STORE_OPENED_FLAG = 0x00040000 + CERT_LDAP_STORE_UNBIND_FLAG = 0x00080000 + + /* addDisposition values for CertAddCertificateContextToStore function */ + CERT_STORE_ADD_NEW = 1 + CERT_STORE_ADD_USE_EXISTING = 2 + CERT_STORE_ADD_REPLACE_EXISTING = 3 + CERT_STORE_ADD_ALWAYS = 4 + CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5 + CERT_STORE_ADD_NEWER = 6 + CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES = 7 + + /* ErrorStatus values for CertTrustStatus struct */ + CERT_TRUST_NO_ERROR = 0x00000000 + CERT_TRUST_IS_NOT_TIME_VALID = 0x00000001 + CERT_TRUST_IS_REVOKED = 0x00000004 + CERT_TRUST_IS_NOT_SIGNATURE_VALID = 0x00000008 + CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 0x00000010 + CERT_TRUST_IS_UNTRUSTED_ROOT = 0x00000020 + CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 0x00000040 + CERT_TRUST_IS_CYCLIC = 0x00000080 + CERT_TRUST_INVALID_EXTENSION = 0x00000100 + CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 0x00000200 + CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 0x00000400 + CERT_TRUST_INVALID_NAME_CONSTRAINTS = 0x00000800 + CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000 + CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 0x00002000 + CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000 + CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 0x00008000 + CERT_TRUST_IS_PARTIAL_CHAIN = 0x00010000 + CERT_TRUST_CTL_IS_NOT_TIME_VALID = 0x00020000 + CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 0x00040000 + CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 0x00080000 + CERT_TRUST_HAS_WEAK_SIGNATURE = 0x00100000 + CERT_TRUST_IS_OFFLINE_REVOCATION = 0x01000000 + CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 0x02000000 + CERT_TRUST_IS_EXPLICIT_DISTRUST = 0x04000000 + CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT = 0x08000000 + + /* InfoStatus values for CertTrustStatus struct */ + CERT_TRUST_HAS_EXACT_MATCH_ISSUER = 0x00000001 + CERT_TRUST_HAS_KEY_MATCH_ISSUER = 0x00000002 + CERT_TRUST_HAS_NAME_MATCH_ISSUER = 0x00000004 + CERT_TRUST_IS_SELF_SIGNED = 0x00000008 + CERT_TRUST_HAS_PREFERRED_ISSUER = 0x00000100 + CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY = 0x00000400 + CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS = 0x00000400 + CERT_TRUST_IS_PEER_TRUSTED = 0x00000800 + CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED = 0x00001000 + CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE = 0x00002000 + CERT_TRUST_IS_CA_TRUSTED = 0x00004000 + CERT_TRUST_IS_COMPLEX_CHAIN = 0x00010000 + + /* Certificate Information Flags */ + CERT_INFO_VERSION_FLAG = 1 + CERT_INFO_SERIAL_NUMBER_FLAG = 2 + CERT_INFO_SIGNATURE_ALGORITHM_FLAG = 3 + CERT_INFO_ISSUER_FLAG = 4 + CERT_INFO_NOT_BEFORE_FLAG = 5 + CERT_INFO_NOT_AFTER_FLAG = 6 + CERT_INFO_SUBJECT_FLAG = 7 + CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = 8 + CERT_INFO_ISSUER_UNIQUE_ID_FLAG = 9 + CERT_INFO_SUBJECT_UNIQUE_ID_FLAG = 10 + CERT_INFO_EXTENSION_FLAG = 11 + + /* dwFindType for CertFindCertificateInStore */ + CERT_COMPARE_MASK = 0xFFFF + CERT_COMPARE_SHIFT = 16 + CERT_COMPARE_ANY = 0 + CERT_COMPARE_SHA1_HASH = 1 + CERT_COMPARE_NAME = 2 + CERT_COMPARE_ATTR = 3 + CERT_COMPARE_MD5_HASH = 4 + CERT_COMPARE_PROPERTY = 5 + CERT_COMPARE_PUBLIC_KEY = 6 + CERT_COMPARE_HASH = CERT_COMPARE_SHA1_HASH + CERT_COMPARE_NAME_STR_A = 7 + CERT_COMPARE_NAME_STR_W = 8 + CERT_COMPARE_KEY_SPEC = 9 + CERT_COMPARE_ENHKEY_USAGE = 10 + CERT_COMPARE_CTL_USAGE = CERT_COMPARE_ENHKEY_USAGE + CERT_COMPARE_SUBJECT_CERT = 11 + CERT_COMPARE_ISSUER_OF = 12 + CERT_COMPARE_EXISTING = 13 + CERT_COMPARE_SIGNATURE_HASH = 14 + CERT_COMPARE_KEY_IDENTIFIER = 15 + CERT_COMPARE_CERT_ID = 16 + CERT_COMPARE_CROSS_CERT_DIST_POINTS = 17 + CERT_COMPARE_PUBKEY_MD5_HASH = 18 + CERT_COMPARE_SUBJECT_INFO_ACCESS = 19 + CERT_COMPARE_HASH_STR = 20 + CERT_COMPARE_HAS_PRIVATE_KEY = 21 + CERT_FIND_ANY = (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT) + CERT_FIND_SHA1_HASH = (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT) + CERT_FIND_MD5_HASH = (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT) + CERT_FIND_SIGNATURE_HASH = (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT) + CERT_FIND_KEY_IDENTIFIER = (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT) + CERT_FIND_HASH = CERT_FIND_SHA1_HASH + CERT_FIND_PROPERTY = (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT) + CERT_FIND_PUBLIC_KEY = (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT) + CERT_FIND_SUBJECT_NAME = (CERT_COMPARE_NAME<> 32 & 0xffffffff) + return ft +} + +type Win32finddata struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + FileSizeHigh uint32 + FileSizeLow uint32 + Reserved0 uint32 + Reserved1 uint32 + FileName [MAX_PATH - 1]uint16 + AlternateFileName [13]uint16 +} + +// This is the actual system call structure. +// Win32finddata is what we committed to in Go 1. +type win32finddata1 struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + FileSizeHigh uint32 + FileSizeLow uint32 + Reserved0 uint32 + Reserved1 uint32 + FileName [MAX_PATH]uint16 + AlternateFileName [14]uint16 + + // The Microsoft documentation for this struct¹ describes three additional + // fields: dwFileType, dwCreatorType, and wFinderFlags. However, those fields + // are empirically only present in the macOS port of the Win32 API,² and thus + // not needed for binaries built for Windows. + // + // ¹ https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-win32_find_dataw describe + // ² https://golang.org/issue/42637#issuecomment-760715755. +} + +func copyFindData(dst *Win32finddata, src *win32finddata1) { + dst.FileAttributes = src.FileAttributes + dst.CreationTime = src.CreationTime + dst.LastAccessTime = src.LastAccessTime + dst.LastWriteTime = src.LastWriteTime + dst.FileSizeHigh = src.FileSizeHigh + dst.FileSizeLow = src.FileSizeLow + dst.Reserved0 = src.Reserved0 + dst.Reserved1 = src.Reserved1 + + // The src is 1 element bigger than dst, but it must be NUL. + copy(dst.FileName[:], src.FileName[:]) + copy(dst.AlternateFileName[:], src.AlternateFileName[:]) +} + +type ByHandleFileInformation struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + VolumeSerialNumber uint32 + FileSizeHigh uint32 + FileSizeLow uint32 + NumberOfLinks uint32 + FileIndexHigh uint32 + FileIndexLow uint32 +} + +const ( + GetFileExInfoStandard = 0 + GetFileExMaxInfoLevel = 1 +) + +type Win32FileAttributeData struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + FileSizeHigh uint32 + FileSizeLow uint32 +} + +// ShowWindow constants +const ( + // winuser.h + SW_HIDE = 0 + SW_NORMAL = 1 + SW_SHOWNORMAL = 1 + SW_SHOWMINIMIZED = 2 + SW_SHOWMAXIMIZED = 3 + SW_MAXIMIZE = 3 + SW_SHOWNOACTIVATE = 4 + SW_SHOW = 5 + SW_MINIMIZE = 6 + SW_SHOWMINNOACTIVE = 7 + SW_SHOWNA = 8 + SW_RESTORE = 9 + SW_SHOWDEFAULT = 10 + SW_FORCEMINIMIZE = 11 +) + +type StartupInfo struct { + Cb uint32 + _ *uint16 + Desktop *uint16 + Title *uint16 + X uint32 + Y uint32 + XSize uint32 + YSize uint32 + XCountChars uint32 + YCountChars uint32 + FillAttribute uint32 + Flags uint32 + ShowWindow uint16 + _ uint16 + _ *byte + StdInput Handle + StdOutput Handle + StdErr Handle +} + +type StartupInfoEx struct { + StartupInfo + ProcThreadAttributeList *ProcThreadAttributeList +} + +// ProcThreadAttributeList is a placeholder type to represent a PROC_THREAD_ATTRIBUTE_LIST. +// +// To create a *ProcThreadAttributeList, use NewProcThreadAttributeList, update +// it with ProcThreadAttributeListContainer.Update, free its memory using +// ProcThreadAttributeListContainer.Delete, and access the list itself using +// ProcThreadAttributeListContainer.List. +type ProcThreadAttributeList struct{} + +type ProcThreadAttributeListContainer struct { + data *ProcThreadAttributeList + pointers []unsafe.Pointer +} + +type ProcessInformation struct { + Process Handle + Thread Handle + ProcessId uint32 + ThreadId uint32 +} + +type ProcessEntry32 struct { + Size uint32 + Usage uint32 + ProcessID uint32 + DefaultHeapID uintptr + ModuleID uint32 + Threads uint32 + ParentProcessID uint32 + PriClassBase int32 + Flags uint32 + ExeFile [MAX_PATH]uint16 +} + +type ThreadEntry32 struct { + Size uint32 + Usage uint32 + ThreadID uint32 + OwnerProcessID uint32 + BasePri int32 + DeltaPri int32 + Flags uint32 +} + +type ModuleEntry32 struct { + Size uint32 + ModuleID uint32 + ProcessID uint32 + GlblcntUsage uint32 + ProccntUsage uint32 + ModBaseAddr uintptr + ModBaseSize uint32 + ModuleHandle Handle + Module [MAX_MODULE_NAME32 + 1]uint16 + ExePath [MAX_PATH]uint16 +} + +const SizeofModuleEntry32 = unsafe.Sizeof(ModuleEntry32{}) + +type Systemtime struct { + Year uint16 + Month uint16 + DayOfWeek uint16 + Day uint16 + Hour uint16 + Minute uint16 + Second uint16 + Milliseconds uint16 +} + +type Timezoneinformation struct { + Bias int32 + StandardName [32]uint16 + StandardDate Systemtime + StandardBias int32 + DaylightName [32]uint16 + DaylightDate Systemtime + DaylightBias int32 +} + +// Socket related. + +const ( + AF_UNSPEC = 0 + AF_UNIX = 1 + AF_INET = 2 + AF_NETBIOS = 17 + AF_INET6 = 23 + AF_IRDA = 26 + AF_BTH = 32 + + SOCK_STREAM = 1 + SOCK_DGRAM = 2 + SOCK_RAW = 3 + SOCK_RDM = 4 + SOCK_SEQPACKET = 5 + + IPPROTO_IP = 0 + IPPROTO_ICMP = 1 + IPPROTO_IGMP = 2 + BTHPROTO_RFCOMM = 3 + IPPROTO_TCP = 6 + IPPROTO_UDP = 17 + IPPROTO_IPV6 = 41 + IPPROTO_ICMPV6 = 58 + IPPROTO_RM = 113 + + SOL_SOCKET = 0xffff + SO_REUSEADDR = 4 + SO_KEEPALIVE = 8 + SO_DONTROUTE = 16 + SO_BROADCAST = 32 + SO_LINGER = 128 + SO_RCVBUF = 0x1002 + SO_RCVTIMEO = 0x1006 + SO_SNDBUF = 0x1001 + SO_UPDATE_ACCEPT_CONTEXT = 0x700b + SO_UPDATE_CONNECT_CONTEXT = 0x7010 + + IOC_OUT = 0x40000000 + IOC_IN = 0x80000000 + IOC_VENDOR = 0x18000000 + IOC_INOUT = IOC_IN | IOC_OUT + IOC_WS2 = 0x08000000 + SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6 + SIO_KEEPALIVE_VALS = IOC_IN | IOC_VENDOR | 4 + SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12 + SIO_UDP_NETRESET = IOC_IN | IOC_VENDOR | 15 + + // cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460 + + IP_HDRINCL = 0x2 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_LOOP = 0xb + IP_ADD_MEMBERSHIP = 0xc + IP_DROP_MEMBERSHIP = 0xd + IP_PKTINFO = 0x13 + + IPV6_V6ONLY = 0x1b + IPV6_UNICAST_HOPS = 0x4 + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_LOOP = 0xb + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_PKTINFO = 0x13 + + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_DONTROUTE = 0x4 + MSG_WAITALL = 0x8 + + MSG_TRUNC = 0x0100 + MSG_CTRUNC = 0x0200 + MSG_BCAST = 0x0400 + MSG_MCAST = 0x0800 + + SOMAXCONN = 0x7fffffff + + TCP_NODELAY = 1 + TCP_EXPEDITED_1122 = 2 + TCP_KEEPALIVE = 3 + TCP_MAXSEG = 4 + TCP_MAXRT = 5 + TCP_STDURG = 6 + TCP_NOURG = 7 + TCP_ATMARK = 8 + TCP_NOSYNRETRIES = 9 + TCP_TIMESTAMPS = 10 + TCP_OFFLOAD_PREFERENCE = 11 + TCP_CONGESTION_ALGORITHM = 12 + TCP_DELAY_FIN_ACK = 13 + TCP_MAXRTMS = 14 + TCP_FASTOPEN = 15 + TCP_KEEPCNT = 16 + TCP_KEEPIDLE = TCP_KEEPALIVE + TCP_KEEPINTVL = 17 + TCP_FAIL_CONNECT_ON_ICMP_ERROR = 18 + TCP_ICMP_ERROR_INFO = 19 + + UDP_NOCHECKSUM = 1 + UDP_SEND_MSG_SIZE = 2 + UDP_RECV_MAX_COALESCED_SIZE = 3 + UDP_CHECKSUM_COVERAGE = 20 + + UDP_COALESCED_INFO = 3 + + SHUT_RD = 0 + SHUT_WR = 1 + SHUT_RDWR = 2 + + WSADESCRIPTION_LEN = 256 + WSASYS_STATUS_LEN = 128 +) + +type WSABuf struct { + Len uint32 + Buf *byte +} + +type WSAMsg struct { + Name *syscall.RawSockaddrAny + Namelen int32 + Buffers *WSABuf + BufferCount uint32 + Control WSABuf + Flags uint32 +} + +// Flags for WSASocket +const ( + WSA_FLAG_OVERLAPPED = 0x01 + WSA_FLAG_MULTIPOINT_C_ROOT = 0x02 + WSA_FLAG_MULTIPOINT_C_LEAF = 0x04 + WSA_FLAG_MULTIPOINT_D_ROOT = 0x08 + WSA_FLAG_MULTIPOINT_D_LEAF = 0x10 + WSA_FLAG_ACCESS_SYSTEM_SECURITY = 0x40 + WSA_FLAG_NO_HANDLE_INHERIT = 0x80 + WSA_FLAG_REGISTERED_IO = 0x100 +) + +// Invented values to support what package os expects. +const ( + S_IFMT = 0x1f000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXUSR = 0x40 +) + +const ( + FILE_TYPE_CHAR = 0x0002 + FILE_TYPE_DISK = 0x0001 + FILE_TYPE_PIPE = 0x0003 + FILE_TYPE_REMOTE = 0x8000 + FILE_TYPE_UNKNOWN = 0x0000 +) + +type Hostent struct { + Name *byte + Aliases **byte + AddrType uint16 + Length uint16 + AddrList **byte +} + +type Protoent struct { + Name *byte + Aliases **byte + Proto uint16 +} + +const ( + DNS_TYPE_A = 0x0001 + DNS_TYPE_NS = 0x0002 + DNS_TYPE_MD = 0x0003 + DNS_TYPE_MF = 0x0004 + DNS_TYPE_CNAME = 0x0005 + DNS_TYPE_SOA = 0x0006 + DNS_TYPE_MB = 0x0007 + DNS_TYPE_MG = 0x0008 + DNS_TYPE_MR = 0x0009 + DNS_TYPE_NULL = 0x000a + DNS_TYPE_WKS = 0x000b + DNS_TYPE_PTR = 0x000c + DNS_TYPE_HINFO = 0x000d + DNS_TYPE_MINFO = 0x000e + DNS_TYPE_MX = 0x000f + DNS_TYPE_TEXT = 0x0010 + DNS_TYPE_RP = 0x0011 + DNS_TYPE_AFSDB = 0x0012 + DNS_TYPE_X25 = 0x0013 + DNS_TYPE_ISDN = 0x0014 + DNS_TYPE_RT = 0x0015 + DNS_TYPE_NSAP = 0x0016 + DNS_TYPE_NSAPPTR = 0x0017 + DNS_TYPE_SIG = 0x0018 + DNS_TYPE_KEY = 0x0019 + DNS_TYPE_PX = 0x001a + DNS_TYPE_GPOS = 0x001b + DNS_TYPE_AAAA = 0x001c + DNS_TYPE_LOC = 0x001d + DNS_TYPE_NXT = 0x001e + DNS_TYPE_EID = 0x001f + DNS_TYPE_NIMLOC = 0x0020 + DNS_TYPE_SRV = 0x0021 + DNS_TYPE_ATMA = 0x0022 + DNS_TYPE_NAPTR = 0x0023 + DNS_TYPE_KX = 0x0024 + DNS_TYPE_CERT = 0x0025 + DNS_TYPE_A6 = 0x0026 + DNS_TYPE_DNAME = 0x0027 + DNS_TYPE_SINK = 0x0028 + DNS_TYPE_OPT = 0x0029 + DNS_TYPE_DS = 0x002B + DNS_TYPE_RRSIG = 0x002E + DNS_TYPE_NSEC = 0x002F + DNS_TYPE_DNSKEY = 0x0030 + DNS_TYPE_DHCID = 0x0031 + DNS_TYPE_UINFO = 0x0064 + DNS_TYPE_UID = 0x0065 + DNS_TYPE_GID = 0x0066 + DNS_TYPE_UNSPEC = 0x0067 + DNS_TYPE_ADDRS = 0x00f8 + DNS_TYPE_TKEY = 0x00f9 + DNS_TYPE_TSIG = 0x00fa + DNS_TYPE_IXFR = 0x00fb + DNS_TYPE_AXFR = 0x00fc + DNS_TYPE_MAILB = 0x00fd + DNS_TYPE_MAILA = 0x00fe + DNS_TYPE_ALL = 0x00ff + DNS_TYPE_ANY = 0x00ff + DNS_TYPE_WINS = 0xff01 + DNS_TYPE_WINSR = 0xff02 + DNS_TYPE_NBSTAT = 0xff01 +) + +const ( + // flags inside DNSRecord.Dw + DnsSectionQuestion = 0x0000 + DnsSectionAnswer = 0x0001 + DnsSectionAuthority = 0x0002 + DnsSectionAdditional = 0x0003 +) + +const ( + // flags of WSALookupService + LUP_DEEP = 0x0001 + LUP_CONTAINERS = 0x0002 + LUP_NOCONTAINERS = 0x0004 + LUP_NEAREST = 0x0008 + LUP_RETURN_NAME = 0x0010 + LUP_RETURN_TYPE = 0x0020 + LUP_RETURN_VERSION = 0x0040 + LUP_RETURN_COMMENT = 0x0080 + LUP_RETURN_ADDR = 0x0100 + LUP_RETURN_BLOB = 0x0200 + LUP_RETURN_ALIASES = 0x0400 + LUP_RETURN_QUERY_STRING = 0x0800 + LUP_RETURN_ALL = 0x0FF0 + LUP_RES_SERVICE = 0x8000 + + LUP_FLUSHCACHE = 0x1000 + LUP_FLUSHPREVIOUS = 0x2000 + + LUP_NON_AUTHORITATIVE = 0x4000 + LUP_SECURE = 0x8000 + LUP_RETURN_PREFERRED_NAMES = 0x10000 + LUP_DNS_ONLY = 0x20000 + + LUP_ADDRCONFIG = 0x100000 + LUP_DUAL_ADDR = 0x200000 + LUP_FILESERVER = 0x400000 + LUP_DISABLE_IDN_ENCODING = 0x00800000 + LUP_API_ANSI = 0x01000000 + + LUP_RESOLUTION_HANDLE = 0x80000000 +) + +const ( + // values of WSAQUERYSET's namespace + NS_ALL = 0 + NS_DNS = 12 + NS_NLA = 15 + NS_BTH = 16 + NS_EMAIL = 37 + NS_PNRPNAME = 38 + NS_PNRPCLOUD = 39 +) + +type DNSSRVData struct { + Target *uint16 + Priority uint16 + Weight uint16 + Port uint16 + Pad uint16 +} + +type DNSPTRData struct { + Host *uint16 +} + +type DNSMXData struct { + NameExchange *uint16 + Preference uint16 + Pad uint16 +} + +type DNSTXTData struct { + StringCount uint16 + StringArray [1]*uint16 +} + +type DNSRecord struct { + Next *DNSRecord + Name *uint16 + Type uint16 + Length uint16 + Dw uint32 + Ttl uint32 + Reserved uint32 + Data [40]byte +} + +const ( + TF_DISCONNECT = 1 + TF_REUSE_SOCKET = 2 + TF_WRITE_BEHIND = 4 + TF_USE_DEFAULT_WORKER = 0 + TF_USE_SYSTEM_THREAD = 16 + TF_USE_KERNEL_APC = 32 +) + +type TransmitFileBuffers struct { + Head uintptr + HeadLength uint32 + Tail uintptr + TailLength uint32 +} + +const ( + IFF_UP = 1 + IFF_BROADCAST = 2 + IFF_LOOPBACK = 4 + IFF_POINTTOPOINT = 8 + IFF_MULTICAST = 16 +) + +const SIO_GET_INTERFACE_LIST = 0x4004747F + +// TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old. +// will be fixed to change variable type as suitable. + +type SockaddrGen [24]byte + +type InterfaceInfo struct { + Flags uint32 + Address SockaddrGen + BroadcastAddress SockaddrGen + Netmask SockaddrGen +} + +type IpAddressString struct { + String [16]byte +} + +type IpMaskString IpAddressString + +type IpAddrString struct { + Next *IpAddrString + IpAddress IpAddressString + IpMask IpMaskString + Context uint32 +} + +const MAX_ADAPTER_NAME_LENGTH = 256 +const MAX_ADAPTER_DESCRIPTION_LENGTH = 128 +const MAX_ADAPTER_ADDRESS_LENGTH = 8 + +type IpAdapterInfo struct { + Next *IpAdapterInfo + ComboIndex uint32 + AdapterName [MAX_ADAPTER_NAME_LENGTH + 4]byte + Description [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte + AddressLength uint32 + Address [MAX_ADAPTER_ADDRESS_LENGTH]byte + Index uint32 + Type uint32 + DhcpEnabled uint32 + CurrentIpAddress *IpAddrString + IpAddressList IpAddrString + GatewayList IpAddrString + DhcpServer IpAddrString + HaveWins bool + PrimaryWinsServer IpAddrString + SecondaryWinsServer IpAddrString + LeaseObtained int64 + LeaseExpires int64 +} + +const MAXLEN_PHYSADDR = 8 +const MAX_INTERFACE_NAME_LEN = 256 +const MAXLEN_IFDESCR = 256 + +type MibIfRow struct { + Name [MAX_INTERFACE_NAME_LEN]uint16 + Index uint32 + Type uint32 + Mtu uint32 + Speed uint32 + PhysAddrLen uint32 + PhysAddr [MAXLEN_PHYSADDR]byte + AdminStatus uint32 + OperStatus uint32 + LastChange uint32 + InOctets uint32 + InUcastPkts uint32 + InNUcastPkts uint32 + InDiscards uint32 + InErrors uint32 + InUnknownProtos uint32 + OutOctets uint32 + OutUcastPkts uint32 + OutNUcastPkts uint32 + OutDiscards uint32 + OutErrors uint32 + OutQLen uint32 + DescrLen uint32 + Descr [MAXLEN_IFDESCR]byte +} + +type CertInfo struct { + Version uint32 + SerialNumber CryptIntegerBlob + SignatureAlgorithm CryptAlgorithmIdentifier + Issuer CertNameBlob + NotBefore Filetime + NotAfter Filetime + Subject CertNameBlob + SubjectPublicKeyInfo CertPublicKeyInfo + IssuerUniqueId CryptBitBlob + SubjectUniqueId CryptBitBlob + CountExtensions uint32 + Extensions *CertExtension +} + +type CertExtension struct { + ObjId *byte + Critical int32 + Value CryptObjidBlob +} + +type CryptAlgorithmIdentifier struct { + ObjId *byte + Parameters CryptObjidBlob +} + +type CertPublicKeyInfo struct { + Algorithm CryptAlgorithmIdentifier + PublicKey CryptBitBlob +} + +type DataBlob struct { + Size uint32 + Data *byte +} +type CryptIntegerBlob DataBlob +type CryptUintBlob DataBlob +type CryptObjidBlob DataBlob +type CertNameBlob DataBlob +type CertRdnValueBlob DataBlob +type CertBlob DataBlob +type CrlBlob DataBlob +type CryptDataBlob DataBlob +type CryptHashBlob DataBlob +type CryptDigestBlob DataBlob +type CryptDerBlob DataBlob +type CryptAttrBlob DataBlob + +type CryptBitBlob struct { + Size uint32 + Data *byte + UnusedBits uint32 +} + +type CertContext struct { + EncodingType uint32 + EncodedCert *byte + Length uint32 + CertInfo *CertInfo + Store Handle +} + +type CertChainContext struct { + Size uint32 + TrustStatus CertTrustStatus + ChainCount uint32 + Chains **CertSimpleChain + LowerQualityChainCount uint32 + LowerQualityChains **CertChainContext + HasRevocationFreshnessTime uint32 + RevocationFreshnessTime uint32 +} + +type CertTrustListInfo struct { + // Not implemented +} + +type CertSimpleChain struct { + Size uint32 + TrustStatus CertTrustStatus + NumElements uint32 + Elements **CertChainElement + TrustListInfo *CertTrustListInfo + HasRevocationFreshnessTime uint32 + RevocationFreshnessTime uint32 +} + +type CertChainElement struct { + Size uint32 + CertContext *CertContext + TrustStatus CertTrustStatus + RevocationInfo *CertRevocationInfo + IssuanceUsage *CertEnhKeyUsage + ApplicationUsage *CertEnhKeyUsage + ExtendedErrorInfo *uint16 +} + +type CertRevocationCrlInfo struct { + // Not implemented +} + +type CertRevocationInfo struct { + Size uint32 + RevocationResult uint32 + RevocationOid *byte + OidSpecificInfo Pointer + HasFreshnessTime uint32 + FreshnessTime uint32 + CrlInfo *CertRevocationCrlInfo +} + +type CertTrustStatus struct { + ErrorStatus uint32 + InfoStatus uint32 +} + +type CertUsageMatch struct { + Type uint32 + Usage CertEnhKeyUsage +} + +type CertEnhKeyUsage struct { + Length uint32 + UsageIdentifiers **byte +} + +type CertChainPara struct { + Size uint32 + RequestedUsage CertUsageMatch + RequstedIssuancePolicy CertUsageMatch + URLRetrievalTimeout uint32 + CheckRevocationFreshnessTime uint32 + RevocationFreshnessTime uint32 + CacheResync *Filetime +} + +type CertChainPolicyPara struct { + Size uint32 + Flags uint32 + ExtraPolicyPara Pointer +} + +type SSLExtraCertChainPolicyPara struct { + Size uint32 + AuthType uint32 + Checks uint32 + ServerName *uint16 +} + +type CertChainPolicyStatus struct { + Size uint32 + Error uint32 + ChainIndex uint32 + ElementIndex uint32 + ExtraPolicyStatus Pointer +} + +type CertPolicyInfo struct { + Identifier *byte + CountQualifiers uint32 + Qualifiers *CertPolicyQualifierInfo +} + +type CertPoliciesInfo struct { + Count uint32 + PolicyInfos *CertPolicyInfo +} + +type CertPolicyQualifierInfo struct { + // Not implemented +} + +type CertStrongSignPara struct { + Size uint32 + InfoChoice uint32 + InfoOrSerializedInfoOrOID unsafe.Pointer +} + +type CryptProtectPromptStruct struct { + Size uint32 + PromptFlags uint32 + App HWND + Prompt *uint16 +} + +type CertChainFindByIssuerPara struct { + Size uint32 + UsageIdentifier *byte + KeySpec uint32 + AcquirePrivateKeyFlags uint32 + IssuerCount uint32 + Issuer Pointer + FindCallback Pointer + FindArg Pointer + IssuerChainIndex *uint32 + IssuerElementIndex *uint32 +} + +type WinTrustData struct { + Size uint32 + PolicyCallbackData uintptr + SIPClientData uintptr + UIChoice uint32 + RevocationChecks uint32 + UnionChoice uint32 + FileOrCatalogOrBlobOrSgnrOrCert unsafe.Pointer + StateAction uint32 + StateData Handle + URLReference *uint16 + ProvFlags uint32 + UIContext uint32 + SignatureSettings *WinTrustSignatureSettings +} + +type WinTrustFileInfo struct { + Size uint32 + FilePath *uint16 + File Handle + KnownSubject *GUID +} + +type WinTrustSignatureSettings struct { + Size uint32 + Index uint32 + Flags uint32 + SecondarySigs uint32 + VerifiedSigIndex uint32 + CryptoPolicy *CertStrongSignPara +} + +const ( + // do not reorder + HKEY_CLASSES_ROOT = 0x80000000 + iota + HKEY_CURRENT_USER + HKEY_LOCAL_MACHINE + HKEY_USERS + HKEY_PERFORMANCE_DATA + HKEY_CURRENT_CONFIG + HKEY_DYN_DATA + + KEY_QUERY_VALUE = 1 + KEY_SET_VALUE = 2 + KEY_CREATE_SUB_KEY = 4 + KEY_ENUMERATE_SUB_KEYS = 8 + KEY_NOTIFY = 16 + KEY_CREATE_LINK = 32 + KEY_WRITE = 0x20006 + KEY_EXECUTE = 0x20019 + KEY_READ = 0x20019 + KEY_WOW64_64KEY = 0x0100 + KEY_WOW64_32KEY = 0x0200 + KEY_ALL_ACCESS = 0xf003f +) + +const ( + // do not reorder + REG_NONE = iota + REG_SZ + REG_EXPAND_SZ + REG_BINARY + REG_DWORD_LITTLE_ENDIAN + REG_DWORD_BIG_ENDIAN + REG_LINK + REG_MULTI_SZ + REG_RESOURCE_LIST + REG_FULL_RESOURCE_DESCRIPTOR + REG_RESOURCE_REQUIREMENTS_LIST + REG_QWORD_LITTLE_ENDIAN + REG_DWORD = REG_DWORD_LITTLE_ENDIAN + REG_QWORD = REG_QWORD_LITTLE_ENDIAN +) + +const ( + EVENT_MODIFY_STATE = 0x0002 + EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3 + + MUTANT_QUERY_STATE = 0x0001 + MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE + + SEMAPHORE_MODIFY_STATE = 0x0002 + SEMAPHORE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3 + + TIMER_QUERY_STATE = 0x0001 + TIMER_MODIFY_STATE = 0x0002 + TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUERY_STATE | TIMER_MODIFY_STATE + + MUTEX_MODIFY_STATE = MUTANT_QUERY_STATE + MUTEX_ALL_ACCESS = MUTANT_ALL_ACCESS + + CREATE_EVENT_MANUAL_RESET = 0x1 + CREATE_EVENT_INITIAL_SET = 0x2 + CREATE_MUTEX_INITIAL_OWNER = 0x1 +) + +type AddrinfoW struct { + Flags int32 + Family int32 + Socktype int32 + Protocol int32 + Addrlen uintptr + Canonname *uint16 + Addr uintptr + Next *AddrinfoW +} + +const ( + AI_PASSIVE = 1 + AI_CANONNAME = 2 + AI_NUMERICHOST = 4 +) + +type GUID struct { + Data1 uint32 + Data2 uint16 + Data3 uint16 + Data4 [8]byte +} + +var WSAID_CONNECTEX = GUID{ + 0x25a207b9, + 0xddf3, + 0x4660, + [8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}, +} + +var WSAID_WSASENDMSG = GUID{ + 0xa441e712, + 0x754f, + 0x43ca, + [8]byte{0x84, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d}, +} + +var WSAID_WSARECVMSG = GUID{ + 0xf689d7c8, + 0x6f1f, + 0x436b, + [8]byte{0x8a, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22}, +} + +const ( + FILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1 + FILE_SKIP_SET_EVENT_ON_HANDLE = 2 +) + +const ( + WSAPROTOCOL_LEN = 255 + MAX_PROTOCOL_CHAIN = 7 + BASE_PROTOCOL = 1 + LAYERED_PROTOCOL = 0 + + XP1_CONNECTIONLESS = 0x00000001 + XP1_GUARANTEED_DELIVERY = 0x00000002 + XP1_GUARANTEED_ORDER = 0x00000004 + XP1_MESSAGE_ORIENTED = 0x00000008 + XP1_PSEUDO_STREAM = 0x00000010 + XP1_GRACEFUL_CLOSE = 0x00000020 + XP1_EXPEDITED_DATA = 0x00000040 + XP1_CONNECT_DATA = 0x00000080 + XP1_DISCONNECT_DATA = 0x00000100 + XP1_SUPPORT_BROADCAST = 0x00000200 + XP1_SUPPORT_MULTIPOINT = 0x00000400 + XP1_MULTIPOINT_CONTROL_PLANE = 0x00000800 + XP1_MULTIPOINT_DATA_PLANE = 0x00001000 + XP1_QOS_SUPPORTED = 0x00002000 + XP1_UNI_SEND = 0x00008000 + XP1_UNI_RECV = 0x00010000 + XP1_IFS_HANDLES = 0x00020000 + XP1_PARTIAL_MESSAGE = 0x00040000 + XP1_SAN_SUPPORT_SDP = 0x00080000 + + PFL_MULTIPLE_PROTO_ENTRIES = 0x00000001 + PFL_RECOMMENDED_PROTO_ENTRY = 0x00000002 + PFL_HIDDEN = 0x00000004 + PFL_MATCHES_PROTOCOL_ZERO = 0x00000008 + PFL_NETWORKDIRECT_PROVIDER = 0x00000010 +) + +type WSAProtocolInfo struct { + ServiceFlags1 uint32 + ServiceFlags2 uint32 + ServiceFlags3 uint32 + ServiceFlags4 uint32 + ProviderFlags uint32 + ProviderId GUID + CatalogEntryId uint32 + ProtocolChain WSAProtocolChain + Version int32 + AddressFamily int32 + MaxSockAddr int32 + MinSockAddr int32 + SocketType int32 + Protocol int32 + ProtocolMaxOffset int32 + NetworkByteOrder int32 + SecurityScheme int32 + MessageSize uint32 + ProviderReserved uint32 + ProtocolName [WSAPROTOCOL_LEN + 1]uint16 +} + +type WSAProtocolChain struct { + ChainLen int32 + ChainEntries [MAX_PROTOCOL_CHAIN]uint32 +} + +type TCPKeepalive struct { + OnOff uint32 + Time uint32 + Interval uint32 +} + +type symbolicLinkReparseBuffer struct { + SubstituteNameOffset uint16 + SubstituteNameLength uint16 + PrintNameOffset uint16 + PrintNameLength uint16 + Flags uint32 + PathBuffer [1]uint16 +} + +type mountPointReparseBuffer struct { + SubstituteNameOffset uint16 + SubstituteNameLength uint16 + PrintNameOffset uint16 + PrintNameLength uint16 + PathBuffer [1]uint16 +} + +type reparseDataBuffer struct { + ReparseTag uint32 + ReparseDataLength uint16 + Reserved uint16 + + // GenericReparseBuffer + reparseBuffer byte +} + +const ( + FSCTL_CREATE_OR_GET_OBJECT_ID = 0x0900C0 + FSCTL_DELETE_OBJECT_ID = 0x0900A0 + FSCTL_DELETE_REPARSE_POINT = 0x0900AC + FSCTL_DUPLICATE_EXTENTS_TO_FILE = 0x098344 + FSCTL_DUPLICATE_EXTENTS_TO_FILE_EX = 0x0983E8 + FSCTL_FILESYSTEM_GET_STATISTICS = 0x090060 + FSCTL_FILE_LEVEL_TRIM = 0x098208 + FSCTL_FIND_FILES_BY_SID = 0x09008F + FSCTL_GET_COMPRESSION = 0x09003C + FSCTL_GET_INTEGRITY_INFORMATION = 0x09027C + FSCTL_GET_NTFS_VOLUME_DATA = 0x090064 + FSCTL_GET_REFS_VOLUME_DATA = 0x0902D8 + FSCTL_GET_OBJECT_ID = 0x09009C + FSCTL_GET_REPARSE_POINT = 0x0900A8 + FSCTL_GET_RETRIEVAL_POINTER_COUNT = 0x09042B + FSCTL_GET_RETRIEVAL_POINTERS = 0x090073 + FSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT = 0x0903D3 + FSCTL_IS_PATHNAME_VALID = 0x09002C + FSCTL_LMR_SET_LINK_TRACKING_INFORMATION = 0x1400EC + FSCTL_MARK_HANDLE = 0x0900FC + FSCTL_OFFLOAD_READ = 0x094264 + FSCTL_OFFLOAD_WRITE = 0x098268 + FSCTL_PIPE_PEEK = 0x11400C + FSCTL_PIPE_TRANSCEIVE = 0x11C017 + FSCTL_PIPE_WAIT = 0x110018 + FSCTL_QUERY_ALLOCATED_RANGES = 0x0940CF + FSCTL_QUERY_FAT_BPB = 0x090058 + FSCTL_QUERY_FILE_REGIONS = 0x090284 + FSCTL_QUERY_ON_DISK_VOLUME_INFO = 0x09013C + FSCTL_QUERY_SPARING_INFO = 0x090138 + FSCTL_READ_FILE_USN_DATA = 0x0900EB + FSCTL_RECALL_FILE = 0x090117 + FSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT = 0x090440 + FSCTL_SET_COMPRESSION = 0x09C040 + FSCTL_SET_DEFECT_MANAGEMENT = 0x098134 + FSCTL_SET_ENCRYPTION = 0x0900D7 + FSCTL_SET_INTEGRITY_INFORMATION = 0x09C280 + FSCTL_SET_INTEGRITY_INFORMATION_EX = 0x090380 + FSCTL_SET_OBJECT_ID = 0x090098 + FSCTL_SET_OBJECT_ID_EXTENDED = 0x0900BC + FSCTL_SET_REPARSE_POINT = 0x0900A4 + FSCTL_SET_SPARSE = 0x0900C4 + FSCTL_SET_ZERO_DATA = 0x0980C8 + FSCTL_SET_ZERO_ON_DEALLOCATION = 0x090194 + FSCTL_SIS_COPYFILE = 0x090100 + FSCTL_WRITE_USN_CLOSE_RECORD = 0x0900EF + + MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024 + IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003 + IO_REPARSE_TAG_SYMLINK = 0xA000000C + SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1 +) + +const ( + ComputerNameNetBIOS = 0 + ComputerNameDnsHostname = 1 + ComputerNameDnsDomain = 2 + ComputerNameDnsFullyQualified = 3 + ComputerNamePhysicalNetBIOS = 4 + ComputerNamePhysicalDnsHostname = 5 + ComputerNamePhysicalDnsDomain = 6 + ComputerNamePhysicalDnsFullyQualified = 7 + ComputerNameMax = 8 +) + +// For MessageBox() +const ( + MB_OK = 0x00000000 + MB_OKCANCEL = 0x00000001 + MB_ABORTRETRYIGNORE = 0x00000002 + MB_YESNOCANCEL = 0x00000003 + MB_YESNO = 0x00000004 + MB_RETRYCANCEL = 0x00000005 + MB_CANCELTRYCONTINUE = 0x00000006 + MB_ICONHAND = 0x00000010 + MB_ICONQUESTION = 0x00000020 + MB_ICONEXCLAMATION = 0x00000030 + MB_ICONASTERISK = 0x00000040 + MB_USERICON = 0x00000080 + MB_ICONWARNING = MB_ICONEXCLAMATION + MB_ICONERROR = MB_ICONHAND + MB_ICONINFORMATION = MB_ICONASTERISK + MB_ICONSTOP = MB_ICONHAND + MB_DEFBUTTON1 = 0x00000000 + MB_DEFBUTTON2 = 0x00000100 + MB_DEFBUTTON3 = 0x00000200 + MB_DEFBUTTON4 = 0x00000300 + MB_APPLMODAL = 0x00000000 + MB_SYSTEMMODAL = 0x00001000 + MB_TASKMODAL = 0x00002000 + MB_HELP = 0x00004000 + MB_NOFOCUS = 0x00008000 + MB_SETFOREGROUND = 0x00010000 + MB_DEFAULT_DESKTOP_ONLY = 0x00020000 + MB_TOPMOST = 0x00040000 + MB_RIGHT = 0x00080000 + MB_RTLREADING = 0x00100000 + MB_SERVICE_NOTIFICATION = 0x00200000 +) + +const ( + MOVEFILE_REPLACE_EXISTING = 0x1 + MOVEFILE_COPY_ALLOWED = 0x2 + MOVEFILE_DELAY_UNTIL_REBOOT = 0x4 + MOVEFILE_WRITE_THROUGH = 0x8 + MOVEFILE_CREATE_HARDLINK = 0x10 + MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20 +) + +// Flags for GetAdaptersAddresses, see +// https://learn.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getadaptersaddresses. +const ( + GAA_FLAG_SKIP_UNICAST = 0x1 + GAA_FLAG_SKIP_ANYCAST = 0x2 + GAA_FLAG_SKIP_MULTICAST = 0x4 + GAA_FLAG_SKIP_DNS_SERVER = 0x8 + GAA_FLAG_INCLUDE_PREFIX = 0x10 + GAA_FLAG_SKIP_FRIENDLY_NAME = 0x20 + GAA_FLAG_INCLUDE_WINS_INFO = 0x40 + GAA_FLAG_INCLUDE_GATEWAYS = 0x80 + GAA_FLAG_INCLUDE_ALL_INTERFACES = 0x100 + GAA_FLAG_INCLUDE_ALL_COMPARTMENTS = 0x200 + GAA_FLAG_INCLUDE_TUNNEL_BINDINGORDER = 0x400 +) + +const ( + IF_TYPE_OTHER = 1 + IF_TYPE_ETHERNET_CSMACD = 6 + IF_TYPE_ISO88025_TOKENRING = 9 + IF_TYPE_PPP = 23 + IF_TYPE_SOFTWARE_LOOPBACK = 24 + IF_TYPE_ATM = 37 + IF_TYPE_IEEE80211 = 71 + IF_TYPE_TUNNEL = 131 + IF_TYPE_IEEE1394 = 144 +) + +// Enum NL_PREFIX_ORIGIN for [IpAdapterUnicastAddress], see +// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_prefix_origin +const ( + IpPrefixOriginOther = 0 + IpPrefixOriginManual = 1 + IpPrefixOriginWellKnown = 2 + IpPrefixOriginDhcp = 3 + IpPrefixOriginRouterAdvertisement = 4 + IpPrefixOriginUnchanged = 1 << 4 +) + +// Enum NL_SUFFIX_ORIGIN for [IpAdapterUnicastAddress], see +// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_suffix_origin +const ( + NlsoOther = 0 + NlsoManual = 1 + NlsoWellKnown = 2 + NlsoDhcp = 3 + NlsoLinkLayerAddress = 4 + NlsoRandom = 5 + IpSuffixOriginOther = 0 + IpSuffixOriginManual = 1 + IpSuffixOriginWellKnown = 2 + IpSuffixOriginDhcp = 3 + IpSuffixOriginLinkLayerAddress = 4 + IpSuffixOriginRandom = 5 + IpSuffixOriginUnchanged = 1 << 4 +) + +// Enum NL_DAD_STATE for [IpAdapterUnicastAddress], see +// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_dad_state +const ( + NldsInvalid = 0 + NldsTentative = 1 + NldsDuplicate = 2 + NldsDeprecated = 3 + NldsPreferred = 4 + IpDadStateInvalid = 0 + IpDadStateTentative = 1 + IpDadStateDuplicate = 2 + IpDadStateDeprecated = 3 + IpDadStatePreferred = 4 +) + +type SocketAddress struct { + Sockaddr *syscall.RawSockaddrAny + SockaddrLength int32 +} + +// IP returns an IPv4 or IPv6 address, or nil if the underlying SocketAddress is neither. +func (addr *SocketAddress) IP() net.IP { + if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet4{}) && addr.Sockaddr.Addr.Family == AF_INET { + return (*RawSockaddrInet4)(unsafe.Pointer(addr.Sockaddr)).Addr[:] + } else if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet6{}) && addr.Sockaddr.Addr.Family == AF_INET6 { + return (*RawSockaddrInet6)(unsafe.Pointer(addr.Sockaddr)).Addr[:] + } + return nil +} + +type IpAdapterUnicastAddress struct { + Length uint32 + Flags uint32 + Next *IpAdapterUnicastAddress + Address SocketAddress + PrefixOrigin int32 + SuffixOrigin int32 + DadState int32 + ValidLifetime uint32 + PreferredLifetime uint32 + LeaseLifetime uint32 + OnLinkPrefixLength uint8 +} + +type IpAdapterAnycastAddress struct { + Length uint32 + Flags uint32 + Next *IpAdapterAnycastAddress + Address SocketAddress +} + +type IpAdapterMulticastAddress struct { + Length uint32 + Flags uint32 + Next *IpAdapterMulticastAddress + Address SocketAddress +} + +type IpAdapterDnsServerAdapter struct { + Length uint32 + Reserved uint32 + Next *IpAdapterDnsServerAdapter + Address SocketAddress +} + +type IpAdapterPrefix struct { + Length uint32 + Flags uint32 + Next *IpAdapterPrefix + Address SocketAddress + PrefixLength uint32 +} + +type IpAdapterAddresses struct { + Length uint32 + IfIndex uint32 + Next *IpAdapterAddresses + AdapterName *byte + FirstUnicastAddress *IpAdapterUnicastAddress + FirstAnycastAddress *IpAdapterAnycastAddress + FirstMulticastAddress *IpAdapterMulticastAddress + FirstDnsServerAddress *IpAdapterDnsServerAdapter + DnsSuffix *uint16 + Description *uint16 + FriendlyName *uint16 + PhysicalAddress [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte + PhysicalAddressLength uint32 + Flags uint32 + Mtu uint32 + IfType uint32 + OperStatus uint32 + Ipv6IfIndex uint32 + ZoneIndices [16]uint32 + FirstPrefix *IpAdapterPrefix + TransmitLinkSpeed uint64 + ReceiveLinkSpeed uint64 + FirstWinsServerAddress *IpAdapterWinsServerAddress + FirstGatewayAddress *IpAdapterGatewayAddress + Ipv4Metric uint32 + Ipv6Metric uint32 + Luid uint64 + Dhcpv4Server SocketAddress + CompartmentId uint32 + NetworkGuid GUID + ConnectionType uint32 + TunnelType uint32 + Dhcpv6Server SocketAddress + Dhcpv6ClientDuid [MAX_DHCPV6_DUID_LENGTH]byte + Dhcpv6ClientDuidLength uint32 + Dhcpv6Iaid uint32 + FirstDnsSuffix *IpAdapterDNSSuffix +} + +type IpAdapterWinsServerAddress struct { + Length uint32 + Reserved uint32 + Next *IpAdapterWinsServerAddress + Address SocketAddress +} + +type IpAdapterGatewayAddress struct { + Length uint32 + Reserved uint32 + Next *IpAdapterGatewayAddress + Address SocketAddress +} + +type IpAdapterDNSSuffix struct { + Next *IpAdapterDNSSuffix + String [MAX_DNS_SUFFIX_STRING_LENGTH]uint16 +} + +const ( + IfOperStatusUp = 1 + IfOperStatusDown = 2 + IfOperStatusTesting = 3 + IfOperStatusUnknown = 4 + IfOperStatusDormant = 5 + IfOperStatusNotPresent = 6 + IfOperStatusLowerLayerDown = 7 +) + +// Console related constants used for the mode parameter to SetConsoleMode. See +// https://docs.microsoft.com/en-us/windows/console/setconsolemode for details. + +const ( + ENABLE_PROCESSED_INPUT = 0x1 + ENABLE_LINE_INPUT = 0x2 + ENABLE_ECHO_INPUT = 0x4 + ENABLE_WINDOW_INPUT = 0x8 + ENABLE_MOUSE_INPUT = 0x10 + ENABLE_INSERT_MODE = 0x20 + ENABLE_QUICK_EDIT_MODE = 0x40 + ENABLE_EXTENDED_FLAGS = 0x80 + ENABLE_AUTO_POSITION = 0x100 + ENABLE_VIRTUAL_TERMINAL_INPUT = 0x200 + + ENABLE_PROCESSED_OUTPUT = 0x1 + ENABLE_WRAP_AT_EOL_OUTPUT = 0x2 + ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4 + DISABLE_NEWLINE_AUTO_RETURN = 0x8 + ENABLE_LVB_GRID_WORLDWIDE = 0x10 +) + +// Pseudo console related constants used for the flags parameter to +// CreatePseudoConsole. See: https://learn.microsoft.com/en-us/windows/console/createpseudoconsole +const ( + PSEUDOCONSOLE_INHERIT_CURSOR = 0x1 +) + +type Coord struct { + X int16 + Y int16 +} + +type SmallRect struct { + Left int16 + Top int16 + Right int16 + Bottom int16 +} + +// Used with GetConsoleScreenBuffer to retrieve information about a console +// screen buffer. See +// https://docs.microsoft.com/en-us/windows/console/console-screen-buffer-info-str +// for details. + +type ConsoleScreenBufferInfo struct { + Size Coord + CursorPosition Coord + Attributes uint16 + Window SmallRect + MaximumWindowSize Coord +} + +const UNIX_PATH_MAX = 108 // defined in afunix.h + +const ( + // flags for JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags + JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x00000008 + JOB_OBJECT_LIMIT_AFFINITY = 0x00000010 + JOB_OBJECT_LIMIT_BREAKAWAY_OK = 0x00000800 + JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400 + JOB_OBJECT_LIMIT_JOB_MEMORY = 0x00000200 + JOB_OBJECT_LIMIT_JOB_TIME = 0x00000004 + JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 0x00002000 + JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x00000040 + JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x00000020 + JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x00000100 + JOB_OBJECT_LIMIT_PROCESS_TIME = 0x00000002 + JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x00000080 + JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 0x00001000 + JOB_OBJECT_LIMIT_SUBSET_AFFINITY = 0x00004000 + JOB_OBJECT_LIMIT_WORKINGSET = 0x00000001 +) + +type IO_COUNTERS struct { + ReadOperationCount uint64 + WriteOperationCount uint64 + OtherOperationCount uint64 + ReadTransferCount uint64 + WriteTransferCount uint64 + OtherTransferCount uint64 +} + +type JOBOBJECT_EXTENDED_LIMIT_INFORMATION struct { + BasicLimitInformation JOBOBJECT_BASIC_LIMIT_INFORMATION + IoInfo IO_COUNTERS + ProcessMemoryLimit uintptr + JobMemoryLimit uintptr + PeakProcessMemoryUsed uintptr + PeakJobMemoryUsed uintptr +} + +const ( + // UIRestrictionsClass + JOB_OBJECT_UILIMIT_DESKTOP = 0x00000040 + JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x00000010 + JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x00000080 + JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x00000020 + JOB_OBJECT_UILIMIT_HANDLES = 0x00000001 + JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x00000002 + JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008 + JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x00000004 +) + +type JOBOBJECT_BASIC_UI_RESTRICTIONS struct { + UIRestrictionsClass uint32 +} + +const ( + // JobObjectInformationClass for QueryInformationJobObject and SetInformationJobObject + JobObjectAssociateCompletionPortInformation = 7 + JobObjectBasicAccountingInformation = 1 + JobObjectBasicAndIoAccountingInformation = 8 + JobObjectBasicLimitInformation = 2 + JobObjectBasicProcessIdList = 3 + JobObjectBasicUIRestrictions = 4 + JobObjectCpuRateControlInformation = 15 + JobObjectEndOfJobTimeInformation = 6 + JobObjectExtendedLimitInformation = 9 + JobObjectGroupInformation = 11 + JobObjectGroupInformationEx = 14 + JobObjectLimitViolationInformation = 13 + JobObjectLimitViolationInformation2 = 34 + JobObjectNetRateControlInformation = 32 + JobObjectNotificationLimitInformation = 12 + JobObjectNotificationLimitInformation2 = 33 + JobObjectSecurityLimitInformation = 5 +) + +const ( + KF_FLAG_DEFAULT = 0x00000000 + KF_FLAG_FORCE_APP_DATA_REDIRECTION = 0x00080000 + KF_FLAG_RETURN_FILTER_REDIRECTION_TARGET = 0x00040000 + KF_FLAG_FORCE_PACKAGE_REDIRECTION = 0x00020000 + KF_FLAG_NO_PACKAGE_REDIRECTION = 0x00010000 + KF_FLAG_FORCE_APPCONTAINER_REDIRECTION = 0x00020000 + KF_FLAG_NO_APPCONTAINER_REDIRECTION = 0x00010000 + KF_FLAG_CREATE = 0x00008000 + KF_FLAG_DONT_VERIFY = 0x00004000 + KF_FLAG_DONT_UNEXPAND = 0x00002000 + KF_FLAG_NO_ALIAS = 0x00001000 + KF_FLAG_INIT = 0x00000800 + KF_FLAG_DEFAULT_PATH = 0x00000400 + KF_FLAG_NOT_PARENT_RELATIVE = 0x00000200 + KF_FLAG_SIMPLE_IDLIST = 0x00000100 + KF_FLAG_ALIAS_ONLY = 0x80000000 +) + +type OsVersionInfoEx struct { + osVersionInfoSize uint32 + MajorVersion uint32 + MinorVersion uint32 + BuildNumber uint32 + PlatformId uint32 + CsdVersion [128]uint16 + ServicePackMajor uint16 + ServicePackMinor uint16 + SuiteMask uint16 + ProductType byte + _ byte +} + +const ( + EWX_LOGOFF = 0x00000000 + EWX_SHUTDOWN = 0x00000001 + EWX_REBOOT = 0x00000002 + EWX_FORCE = 0x00000004 + EWX_POWEROFF = 0x00000008 + EWX_FORCEIFHUNG = 0x00000010 + EWX_QUICKRESOLVE = 0x00000020 + EWX_RESTARTAPPS = 0x00000040 + EWX_HYBRID_SHUTDOWN = 0x00400000 + EWX_BOOTOPTIONS = 0x01000000 + + SHTDN_REASON_FLAG_COMMENT_REQUIRED = 0x01000000 + SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED = 0x02000000 + SHTDN_REASON_FLAG_CLEAN_UI = 0x04000000 + SHTDN_REASON_FLAG_DIRTY_UI = 0x08000000 + SHTDN_REASON_FLAG_USER_DEFINED = 0x40000000 + SHTDN_REASON_FLAG_PLANNED = 0x80000000 + SHTDN_REASON_MAJOR_OTHER = 0x00000000 + SHTDN_REASON_MAJOR_NONE = 0x00000000 + SHTDN_REASON_MAJOR_HARDWARE = 0x00010000 + SHTDN_REASON_MAJOR_OPERATINGSYSTEM = 0x00020000 + SHTDN_REASON_MAJOR_SOFTWARE = 0x00030000 + SHTDN_REASON_MAJOR_APPLICATION = 0x00040000 + SHTDN_REASON_MAJOR_SYSTEM = 0x00050000 + SHTDN_REASON_MAJOR_POWER = 0x00060000 + SHTDN_REASON_MAJOR_LEGACY_API = 0x00070000 + SHTDN_REASON_MINOR_OTHER = 0x00000000 + SHTDN_REASON_MINOR_NONE = 0x000000ff + SHTDN_REASON_MINOR_MAINTENANCE = 0x00000001 + SHTDN_REASON_MINOR_INSTALLATION = 0x00000002 + SHTDN_REASON_MINOR_UPGRADE = 0x00000003 + SHTDN_REASON_MINOR_RECONFIG = 0x00000004 + SHTDN_REASON_MINOR_HUNG = 0x00000005 + SHTDN_REASON_MINOR_UNSTABLE = 0x00000006 + SHTDN_REASON_MINOR_DISK = 0x00000007 + SHTDN_REASON_MINOR_PROCESSOR = 0x00000008 + SHTDN_REASON_MINOR_NETWORKCARD = 0x00000009 + SHTDN_REASON_MINOR_POWER_SUPPLY = 0x0000000a + SHTDN_REASON_MINOR_CORDUNPLUGGED = 0x0000000b + SHTDN_REASON_MINOR_ENVIRONMENT = 0x0000000c + SHTDN_REASON_MINOR_HARDWARE_DRIVER = 0x0000000d + SHTDN_REASON_MINOR_OTHERDRIVER = 0x0000000e + SHTDN_REASON_MINOR_BLUESCREEN = 0x0000000F + SHTDN_REASON_MINOR_SERVICEPACK = 0x00000010 + SHTDN_REASON_MINOR_HOTFIX = 0x00000011 + SHTDN_REASON_MINOR_SECURITYFIX = 0x00000012 + SHTDN_REASON_MINOR_SECURITY = 0x00000013 + SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY = 0x00000014 + SHTDN_REASON_MINOR_WMI = 0x00000015 + SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL = 0x00000016 + SHTDN_REASON_MINOR_HOTFIX_UNINSTALL = 0x00000017 + SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL = 0x00000018 + SHTDN_REASON_MINOR_MMC = 0x00000019 + SHTDN_REASON_MINOR_SYSTEMRESTORE = 0x0000001a + SHTDN_REASON_MINOR_TERMSRV = 0x00000020 + SHTDN_REASON_MINOR_DC_PROMOTION = 0x00000021 + SHTDN_REASON_MINOR_DC_DEMOTION = 0x00000022 + SHTDN_REASON_UNKNOWN = SHTDN_REASON_MINOR_NONE + SHTDN_REASON_LEGACY_API = SHTDN_REASON_MAJOR_LEGACY_API | SHTDN_REASON_FLAG_PLANNED + SHTDN_REASON_VALID_BIT_MASK = 0xc0ffffff + + SHUTDOWN_NORETRY = 0x1 +) + +// Flags used for GetModuleHandleEx +const ( + GET_MODULE_HANDLE_EX_FLAG_PIN = 1 + GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2 + GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4 +) + +// MUI function flag values +const ( + MUI_LANGUAGE_ID = 0x4 + MUI_LANGUAGE_NAME = 0x8 + MUI_MERGE_SYSTEM_FALLBACK = 0x10 + MUI_MERGE_USER_FALLBACK = 0x20 + MUI_UI_FALLBACK = MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK + MUI_THREAD_LANGUAGES = 0x40 + MUI_CONSOLE_FILTER = 0x100 + MUI_COMPLEX_SCRIPT_FILTER = 0x200 + MUI_RESET_FILTERS = 0x001 + MUI_USER_PREFERRED_UI_LANGUAGES = 0x10 + MUI_USE_INSTALLED_LANGUAGES = 0x20 + MUI_USE_SEARCH_ALL_LANGUAGES = 0x40 + MUI_LANG_NEUTRAL_PE_FILE = 0x100 + MUI_NON_LANG_NEUTRAL_FILE = 0x200 + MUI_MACHINE_LANGUAGE_SETTINGS = 0x400 + MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL = 0x001 + MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN = 0x002 + MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI = 0x004 + MUI_QUERY_TYPE = 0x001 + MUI_QUERY_CHECKSUM = 0x002 + MUI_QUERY_LANGUAGE_NAME = 0x004 + MUI_QUERY_RESOURCE_TYPES = 0x008 + MUI_FILEINFO_VERSION = 0x001 + + MUI_FULL_LANGUAGE = 0x01 + MUI_PARTIAL_LANGUAGE = 0x02 + MUI_LIP_LANGUAGE = 0x04 + MUI_LANGUAGE_INSTALLED = 0x20 + MUI_LANGUAGE_LICENSED = 0x40 +) + +// FILE_INFO_BY_HANDLE_CLASS constants for SetFileInformationByHandle/GetFileInformationByHandleEx +const ( + FileBasicInfo = 0 + FileStandardInfo = 1 + FileNameInfo = 2 + FileRenameInfo = 3 + FileDispositionInfo = 4 + FileAllocationInfo = 5 + FileEndOfFileInfo = 6 + FileStreamInfo = 7 + FileCompressionInfo = 8 + FileAttributeTagInfo = 9 + FileIdBothDirectoryInfo = 10 + FileIdBothDirectoryRestartInfo = 11 + FileIoPriorityHintInfo = 12 + FileRemoteProtocolInfo = 13 + FileFullDirectoryInfo = 14 + FileFullDirectoryRestartInfo = 15 + FileStorageInfo = 16 + FileAlignmentInfo = 17 + FileIdInfo = 18 + FileIdExtdDirectoryInfo = 19 + FileIdExtdDirectoryRestartInfo = 20 + FileDispositionInfoEx = 21 + FileRenameInfoEx = 22 + FileCaseSensitiveInfo = 23 + FileNormalizedNameInfo = 24 +) + +// LoadLibrary flags for determining from where to search for a DLL +const ( + DONT_RESOLVE_DLL_REFERENCES = 0x1 + LOAD_LIBRARY_AS_DATAFILE = 0x2 + LOAD_WITH_ALTERED_SEARCH_PATH = 0x8 + LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x10 + LOAD_LIBRARY_AS_IMAGE_RESOURCE = 0x20 + LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE = 0x40 + LOAD_LIBRARY_REQUIRE_SIGNED_TARGET = 0x80 + LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR = 0x100 + LOAD_LIBRARY_SEARCH_APPLICATION_DIR = 0x200 + LOAD_LIBRARY_SEARCH_USER_DIRS = 0x400 + LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x800 + LOAD_LIBRARY_SEARCH_DEFAULT_DIRS = 0x1000 + LOAD_LIBRARY_SAFE_CURRENT_DIRS = 0x00002000 + LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER = 0x00004000 + LOAD_LIBRARY_OS_INTEGRITY_CONTINUITY = 0x00008000 +) + +// RegNotifyChangeKeyValue notifyFilter flags. +const ( + // REG_NOTIFY_CHANGE_NAME notifies the caller if a subkey is added or deleted. + REG_NOTIFY_CHANGE_NAME = 0x00000001 + + // REG_NOTIFY_CHANGE_ATTRIBUTES notifies the caller of changes to the attributes of the key, such as the security descriptor information. + REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002 + + // REG_NOTIFY_CHANGE_LAST_SET notifies the caller of changes to a value of the key. This can include adding or deleting a value, or changing an existing value. + REG_NOTIFY_CHANGE_LAST_SET = 0x00000004 + + // REG_NOTIFY_CHANGE_SECURITY notifies the caller of changes to the security descriptor of the key. + REG_NOTIFY_CHANGE_SECURITY = 0x00000008 + + // REG_NOTIFY_THREAD_AGNOSTIC indicates that the lifetime of the registration must not be tied to the lifetime of the thread issuing the RegNotifyChangeKeyValue call. Note: This flag value is only supported in Windows 8 and later. + REG_NOTIFY_THREAD_AGNOSTIC = 0x10000000 +) + +type CommTimeouts struct { + ReadIntervalTimeout uint32 + ReadTotalTimeoutMultiplier uint32 + ReadTotalTimeoutConstant uint32 + WriteTotalTimeoutMultiplier uint32 + WriteTotalTimeoutConstant uint32 +} + +// NTUnicodeString is a UTF-16 string for NT native APIs, corresponding to UNICODE_STRING. +type NTUnicodeString struct { + Length uint16 + MaximumLength uint16 + Buffer *uint16 +} + +// NTString is an ANSI string for NT native APIs, corresponding to STRING. +type NTString struct { + Length uint16 + MaximumLength uint16 + Buffer *byte +} + +type LIST_ENTRY struct { + Flink *LIST_ENTRY + Blink *LIST_ENTRY +} + +type RUNTIME_FUNCTION struct { + BeginAddress uint32 + EndAddress uint32 + UnwindData uint32 +} + +type LDR_DATA_TABLE_ENTRY struct { + reserved1 [2]uintptr + InMemoryOrderLinks LIST_ENTRY + reserved2 [2]uintptr + DllBase uintptr + reserved3 [2]uintptr + FullDllName NTUnicodeString + reserved4 [8]byte + reserved5 [3]uintptr + reserved6 uintptr + TimeDateStamp uint32 +} + +type PEB_LDR_DATA struct { + reserved1 [8]byte + reserved2 [3]uintptr + InMemoryOrderModuleList LIST_ENTRY +} + +type CURDIR struct { + DosPath NTUnicodeString + Handle Handle +} + +type RTL_DRIVE_LETTER_CURDIR struct { + Flags uint16 + Length uint16 + TimeStamp uint32 + DosPath NTString +} + +type RTL_USER_PROCESS_PARAMETERS struct { + MaximumLength, Length uint32 + + Flags, DebugFlags uint32 + + ConsoleHandle Handle + ConsoleFlags uint32 + StandardInput, StandardOutput, StandardError Handle + + CurrentDirectory CURDIR + DllPath NTUnicodeString + ImagePathName NTUnicodeString + CommandLine NTUnicodeString + Environment unsafe.Pointer + + StartingX, StartingY, CountX, CountY, CountCharsX, CountCharsY, FillAttribute uint32 + + WindowFlags, ShowWindowFlags uint32 + WindowTitle, DesktopInfo, ShellInfo, RuntimeData NTUnicodeString + CurrentDirectories [32]RTL_DRIVE_LETTER_CURDIR + + EnvironmentSize, EnvironmentVersion uintptr + + PackageDependencyData unsafe.Pointer + ProcessGroupId uint32 + LoaderThreads uint32 + + RedirectionDllName NTUnicodeString + HeapPartitionName NTUnicodeString + DefaultThreadpoolCpuSetMasks uintptr + DefaultThreadpoolCpuSetMaskCount uint32 +} + +type PEB struct { + reserved1 [2]byte + BeingDebugged byte + BitField byte + reserved3 uintptr + ImageBaseAddress uintptr + Ldr *PEB_LDR_DATA + ProcessParameters *RTL_USER_PROCESS_PARAMETERS + reserved4 [3]uintptr + AtlThunkSListPtr uintptr + reserved5 uintptr + reserved6 uint32 + reserved7 uintptr + reserved8 uint32 + AtlThunkSListPtr32 uint32 + reserved9 [45]uintptr + reserved10 [96]byte + PostProcessInitRoutine uintptr + reserved11 [128]byte + reserved12 [1]uintptr + SessionId uint32 +} + +type OBJECT_ATTRIBUTES struct { + Length uint32 + RootDirectory Handle + ObjectName *NTUnicodeString + Attributes uint32 + SecurityDescriptor *SECURITY_DESCRIPTOR + SecurityQoS *SECURITY_QUALITY_OF_SERVICE +} + +// Values for the Attributes member of OBJECT_ATTRIBUTES. +const ( + OBJ_INHERIT = 0x00000002 + OBJ_PERMANENT = 0x00000010 + OBJ_EXCLUSIVE = 0x00000020 + OBJ_CASE_INSENSITIVE = 0x00000040 + OBJ_OPENIF = 0x00000080 + OBJ_OPENLINK = 0x00000100 + OBJ_KERNEL_HANDLE = 0x00000200 + OBJ_FORCE_ACCESS_CHECK = 0x00000400 + OBJ_IGNORE_IMPERSONATED_DEVICEMAP = 0x00000800 + OBJ_DONT_REPARSE = 0x00001000 + OBJ_VALID_ATTRIBUTES = 0x00001FF2 +) + +type IO_STATUS_BLOCK struct { + Status NTStatus + Information uintptr +} + +type RTLP_CURDIR_REF struct { + RefCount int32 + Handle Handle +} + +type RTL_RELATIVE_NAME struct { + RelativeName NTUnicodeString + ContainingDirectory Handle + CurDirRef *RTLP_CURDIR_REF +} + +const ( + // CreateDisposition flags for NtCreateFile and NtCreateNamedPipeFile. + FILE_SUPERSEDE = 0x00000000 + FILE_OPEN = 0x00000001 + FILE_CREATE = 0x00000002 + FILE_OPEN_IF = 0x00000003 + FILE_OVERWRITE = 0x00000004 + FILE_OVERWRITE_IF = 0x00000005 + FILE_MAXIMUM_DISPOSITION = 0x00000005 + + // CreateOptions flags for NtCreateFile and NtCreateNamedPipeFile. + FILE_DIRECTORY_FILE = 0x00000001 + FILE_WRITE_THROUGH = 0x00000002 + FILE_SEQUENTIAL_ONLY = 0x00000004 + FILE_NO_INTERMEDIATE_BUFFERING = 0x00000008 + FILE_SYNCHRONOUS_IO_ALERT = 0x00000010 + FILE_SYNCHRONOUS_IO_NONALERT = 0x00000020 + FILE_NON_DIRECTORY_FILE = 0x00000040 + FILE_CREATE_TREE_CONNECTION = 0x00000080 + FILE_COMPLETE_IF_OPLOCKED = 0x00000100 + FILE_NO_EA_KNOWLEDGE = 0x00000200 + FILE_OPEN_REMOTE_INSTANCE = 0x00000400 + FILE_RANDOM_ACCESS = 0x00000800 + FILE_DELETE_ON_CLOSE = 0x00001000 + FILE_OPEN_BY_FILE_ID = 0x00002000 + FILE_OPEN_FOR_BACKUP_INTENT = 0x00004000 + FILE_NO_COMPRESSION = 0x00008000 + FILE_OPEN_REQUIRING_OPLOCK = 0x00010000 + FILE_DISALLOW_EXCLUSIVE = 0x00020000 + FILE_RESERVE_OPFILTER = 0x00100000 + FILE_OPEN_REPARSE_POINT = 0x00200000 + FILE_OPEN_NO_RECALL = 0x00400000 + FILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000 + + // Parameter constants for NtCreateNamedPipeFile. + + FILE_PIPE_BYTE_STREAM_TYPE = 0x00000000 + FILE_PIPE_MESSAGE_TYPE = 0x00000001 + + FILE_PIPE_ACCEPT_REMOTE_CLIENTS = 0x00000000 + FILE_PIPE_REJECT_REMOTE_CLIENTS = 0x00000002 + + FILE_PIPE_TYPE_VALID_MASK = 0x00000003 + + FILE_PIPE_BYTE_STREAM_MODE = 0x00000000 + FILE_PIPE_MESSAGE_MODE = 0x00000001 + + FILE_PIPE_QUEUE_OPERATION = 0x00000000 + FILE_PIPE_COMPLETE_OPERATION = 0x00000001 + + FILE_PIPE_INBOUND = 0x00000000 + FILE_PIPE_OUTBOUND = 0x00000001 + FILE_PIPE_FULL_DUPLEX = 0x00000002 + + FILE_PIPE_DISCONNECTED_STATE = 0x00000001 + FILE_PIPE_LISTENING_STATE = 0x00000002 + FILE_PIPE_CONNECTED_STATE = 0x00000003 + FILE_PIPE_CLOSING_STATE = 0x00000004 + + FILE_PIPE_CLIENT_END = 0x00000000 + FILE_PIPE_SERVER_END = 0x00000001 +) + +const ( + // FileInformationClass for NtSetInformationFile + FileBasicInformation = 4 + FileRenameInformation = 10 + FileDispositionInformation = 13 + FilePositionInformation = 14 + FileEndOfFileInformation = 20 + FileValidDataLengthInformation = 39 + FileShortNameInformation = 40 + FileIoPriorityHintInformation = 43 + FileReplaceCompletionInformation = 61 + FileDispositionInformationEx = 64 + FileCaseSensitiveInformation = 71 + FileLinkInformation = 72 + FileCaseSensitiveInformationForceAccessCheck = 75 + FileKnownFolderInformation = 76 + + // Flags for FILE_RENAME_INFORMATION + FILE_RENAME_REPLACE_IF_EXISTS = 0x00000001 + FILE_RENAME_POSIX_SEMANTICS = 0x00000002 + FILE_RENAME_SUPPRESS_PIN_STATE_INHERITANCE = 0x00000004 + FILE_RENAME_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008 + FILE_RENAME_NO_INCREASE_AVAILABLE_SPACE = 0x00000010 + FILE_RENAME_NO_DECREASE_AVAILABLE_SPACE = 0x00000020 + FILE_RENAME_PRESERVE_AVAILABLE_SPACE = 0x00000030 + FILE_RENAME_IGNORE_READONLY_ATTRIBUTE = 0x00000040 + FILE_RENAME_FORCE_RESIZE_TARGET_SR = 0x00000080 + FILE_RENAME_FORCE_RESIZE_SOURCE_SR = 0x00000100 + FILE_RENAME_FORCE_RESIZE_SR = 0x00000180 + + // Flags for FILE_DISPOSITION_INFORMATION_EX + FILE_DISPOSITION_DO_NOT_DELETE = 0x00000000 + FILE_DISPOSITION_DELETE = 0x00000001 + FILE_DISPOSITION_POSIX_SEMANTICS = 0x00000002 + FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK = 0x00000004 + FILE_DISPOSITION_ON_CLOSE = 0x00000008 + FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE = 0x00000010 + + // Flags for FILE_CASE_SENSITIVE_INFORMATION + FILE_CS_FLAG_CASE_SENSITIVE_DIR = 0x00000001 + + // Flags for FILE_LINK_INFORMATION + FILE_LINK_REPLACE_IF_EXISTS = 0x00000001 + FILE_LINK_POSIX_SEMANTICS = 0x00000002 + FILE_LINK_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008 + FILE_LINK_NO_INCREASE_AVAILABLE_SPACE = 0x00000010 + FILE_LINK_NO_DECREASE_AVAILABLE_SPACE = 0x00000020 + FILE_LINK_PRESERVE_AVAILABLE_SPACE = 0x00000030 + FILE_LINK_IGNORE_READONLY_ATTRIBUTE = 0x00000040 + FILE_LINK_FORCE_RESIZE_TARGET_SR = 0x00000080 + FILE_LINK_FORCE_RESIZE_SOURCE_SR = 0x00000100 + FILE_LINK_FORCE_RESIZE_SR = 0x00000180 +) + +// ProcessInformationClasses for NtQueryInformationProcess and NtSetInformationProcess. +const ( + ProcessBasicInformation = iota + ProcessQuotaLimits + ProcessIoCounters + ProcessVmCounters + ProcessTimes + ProcessBasePriority + ProcessRaisePriority + ProcessDebugPort + ProcessExceptionPort + ProcessAccessToken + ProcessLdtInformation + ProcessLdtSize + ProcessDefaultHardErrorMode + ProcessIoPortHandlers + ProcessPooledUsageAndLimits + ProcessWorkingSetWatch + ProcessUserModeIOPL + ProcessEnableAlignmentFaultFixup + ProcessPriorityClass + ProcessWx86Information + ProcessHandleCount + ProcessAffinityMask + ProcessPriorityBoost + ProcessDeviceMap + ProcessSessionInformation + ProcessForegroundInformation + ProcessWow64Information + ProcessImageFileName + ProcessLUIDDeviceMapsEnabled + ProcessBreakOnTermination + ProcessDebugObjectHandle + ProcessDebugFlags + ProcessHandleTracing + ProcessIoPriority + ProcessExecuteFlags + ProcessTlsInformation + ProcessCookie + ProcessImageInformation + ProcessCycleTime + ProcessPagePriority + ProcessInstrumentationCallback + ProcessThreadStackAllocation + ProcessWorkingSetWatchEx + ProcessImageFileNameWin32 + ProcessImageFileMapping + ProcessAffinityUpdateMode + ProcessMemoryAllocationMode + ProcessGroupInformation + ProcessTokenVirtualizationEnabled + ProcessConsoleHostProcess + ProcessWindowInformation + ProcessHandleInformation + ProcessMitigationPolicy + ProcessDynamicFunctionTableInformation + ProcessHandleCheckingMode + ProcessKeepAliveCount + ProcessRevokeFileHandles + ProcessWorkingSetControl + ProcessHandleTable + ProcessCheckStackExtentsMode + ProcessCommandLineInformation + ProcessProtectionInformation + ProcessMemoryExhaustion + ProcessFaultInformation + ProcessTelemetryIdInformation + ProcessCommitReleaseInformation + ProcessDefaultCpuSetsInformation + ProcessAllowedCpuSetsInformation + ProcessSubsystemProcess + ProcessJobMemoryInformation + ProcessInPrivate + ProcessRaiseUMExceptionOnInvalidHandleClose + ProcessIumChallengeResponse + ProcessChildProcessInformation + ProcessHighGraphicsPriorityInformation + ProcessSubsystemInformation + ProcessEnergyValues + ProcessActivityThrottleState + ProcessActivityThrottlePolicy + ProcessWin32kSyscallFilterInformation + ProcessDisableSystemAllowedCpuSets + ProcessWakeInformation + ProcessEnergyTrackingState + ProcessManageWritesToExecutableMemory + ProcessCaptureTrustletLiveDump + ProcessTelemetryCoverage + ProcessEnclaveInformation + ProcessEnableReadWriteVmLogging + ProcessUptimeInformation + ProcessImageSection + ProcessDebugAuthInformation + ProcessSystemResourceManagement + ProcessSequenceNumber + ProcessLoaderDetour + ProcessSecurityDomainInformation + ProcessCombineSecurityDomainsInformation + ProcessEnableLogging + ProcessLeapSecondInformation + ProcessFiberShadowStackAllocation + ProcessFreeFiberShadowStackAllocation + ProcessAltSystemCallInformation + ProcessDynamicEHContinuationTargets + ProcessDynamicEnforcedCetCompatibleRanges +) + +type PROCESS_BASIC_INFORMATION struct { + ExitStatus NTStatus + PebBaseAddress *PEB + AffinityMask uintptr + BasePriority int32 + UniqueProcessId uintptr + InheritedFromUniqueProcessId uintptr +} + +type SYSTEM_PROCESS_INFORMATION struct { + NextEntryOffset uint32 + NumberOfThreads uint32 + WorkingSetPrivateSize int64 + HardFaultCount uint32 + NumberOfThreadsHighWatermark uint32 + CycleTime uint64 + CreateTime int64 + UserTime int64 + KernelTime int64 + ImageName NTUnicodeString + BasePriority int32 + UniqueProcessID uintptr + InheritedFromUniqueProcessID uintptr + HandleCount uint32 + SessionID uint32 + UniqueProcessKey *uint32 + PeakVirtualSize uintptr + VirtualSize uintptr + PageFaultCount uint32 + PeakWorkingSetSize uintptr + WorkingSetSize uintptr + QuotaPeakPagedPoolUsage uintptr + QuotaPagedPoolUsage uintptr + QuotaPeakNonPagedPoolUsage uintptr + QuotaNonPagedPoolUsage uintptr + PagefileUsage uintptr + PeakPagefileUsage uintptr + PrivatePageCount uintptr + ReadOperationCount int64 + WriteOperationCount int64 + OtherOperationCount int64 + ReadTransferCount int64 + WriteTransferCount int64 + OtherTransferCount int64 +} + +// SystemInformationClasses for NtQuerySystemInformation and NtSetSystemInformation +const ( + SystemBasicInformation = iota + SystemProcessorInformation + SystemPerformanceInformation + SystemTimeOfDayInformation + SystemPathInformation + SystemProcessInformation + SystemCallCountInformation + SystemDeviceInformation + SystemProcessorPerformanceInformation + SystemFlagsInformation + SystemCallTimeInformation + SystemModuleInformation + SystemLocksInformation + SystemStackTraceInformation + SystemPagedPoolInformation + SystemNonPagedPoolInformation + SystemHandleInformation + SystemObjectInformation + SystemPageFileInformation + SystemVdmInstemulInformation + SystemVdmBopInformation + SystemFileCacheInformation + SystemPoolTagInformation + SystemInterruptInformation + SystemDpcBehaviorInformation + SystemFullMemoryInformation + SystemLoadGdiDriverInformation + SystemUnloadGdiDriverInformation + SystemTimeAdjustmentInformation + SystemSummaryMemoryInformation + SystemMirrorMemoryInformation + SystemPerformanceTraceInformation + systemObsolete0 + SystemExceptionInformation + SystemCrashDumpStateInformation + SystemKernelDebuggerInformation + SystemContextSwitchInformation + SystemRegistryQuotaInformation + SystemExtendServiceTableInformation + SystemPrioritySeperation + SystemVerifierAddDriverInformation + SystemVerifierRemoveDriverInformation + SystemProcessorIdleInformation + SystemLegacyDriverInformation + SystemCurrentTimeZoneInformation + SystemLookasideInformation + SystemTimeSlipNotification + SystemSessionCreate + SystemSessionDetach + SystemSessionInformation + SystemRangeStartInformation + SystemVerifierInformation + SystemVerifierThunkExtend + SystemSessionProcessInformation + SystemLoadGdiDriverInSystemSpace + SystemNumaProcessorMap + SystemPrefetcherInformation + SystemExtendedProcessInformation + SystemRecommendedSharedDataAlignment + SystemComPlusPackage + SystemNumaAvailableMemory + SystemProcessorPowerInformation + SystemEmulationBasicInformation + SystemEmulationProcessorInformation + SystemExtendedHandleInformation + SystemLostDelayedWriteInformation + SystemBigPoolInformation + SystemSessionPoolTagInformation + SystemSessionMappedViewInformation + SystemHotpatchInformation + SystemObjectSecurityMode + SystemWatchdogTimerHandler + SystemWatchdogTimerInformation + SystemLogicalProcessorInformation + SystemWow64SharedInformationObsolete + SystemRegisterFirmwareTableInformationHandler + SystemFirmwareTableInformation + SystemModuleInformationEx + SystemVerifierTriageInformation + SystemSuperfetchInformation + SystemMemoryListInformation + SystemFileCacheInformationEx + SystemThreadPriorityClientIdInformation + SystemProcessorIdleCycleTimeInformation + SystemVerifierCancellationInformation + SystemProcessorPowerInformationEx + SystemRefTraceInformation + SystemSpecialPoolInformation + SystemProcessIdInformation + SystemErrorPortInformation + SystemBootEnvironmentInformation + SystemHypervisorInformation + SystemVerifierInformationEx + SystemTimeZoneInformation + SystemImageFileExecutionOptionsInformation + SystemCoverageInformation + SystemPrefetchPatchInformation + SystemVerifierFaultsInformation + SystemSystemPartitionInformation + SystemSystemDiskInformation + SystemProcessorPerformanceDistribution + SystemNumaProximityNodeInformation + SystemDynamicTimeZoneInformation + SystemCodeIntegrityInformation + SystemProcessorMicrocodeUpdateInformation + SystemProcessorBrandString + SystemVirtualAddressInformation + SystemLogicalProcessorAndGroupInformation + SystemProcessorCycleTimeInformation + SystemStoreInformation + SystemRegistryAppendString + SystemAitSamplingValue + SystemVhdBootInformation + SystemCpuQuotaInformation + SystemNativeBasicInformation + systemSpare1 + SystemLowPriorityIoInformation + SystemTpmBootEntropyInformation + SystemVerifierCountersInformation + SystemPagedPoolInformationEx + SystemSystemPtesInformationEx + SystemNodeDistanceInformation + SystemAcpiAuditInformation + SystemBasicPerformanceInformation + SystemQueryPerformanceCounterInformation + SystemSessionBigPoolInformation + SystemBootGraphicsInformation + SystemScrubPhysicalMemoryInformation + SystemBadPageInformation + SystemProcessorProfileControlArea + SystemCombinePhysicalMemoryInformation + SystemEntropyInterruptTimingCallback + SystemConsoleInformation + SystemPlatformBinaryInformation + SystemThrottleNotificationInformation + SystemHypervisorProcessorCountInformation + SystemDeviceDataInformation + SystemDeviceDataEnumerationInformation + SystemMemoryTopologyInformation + SystemMemoryChannelInformation + SystemBootLogoInformation + SystemProcessorPerformanceInformationEx + systemSpare0 + SystemSecureBootPolicyInformation + SystemPageFileInformationEx + SystemSecureBootInformation + SystemEntropyInterruptTimingRawInformation + SystemPortableWorkspaceEfiLauncherInformation + SystemFullProcessInformation + SystemKernelDebuggerInformationEx + SystemBootMetadataInformation + SystemSoftRebootInformation + SystemElamCertificateInformation + SystemOfflineDumpConfigInformation + SystemProcessorFeaturesInformation + SystemRegistryReconciliationInformation + SystemEdidInformation + SystemManufacturingInformation + SystemEnergyEstimationConfigInformation + SystemHypervisorDetailInformation + SystemProcessorCycleStatsInformation + SystemVmGenerationCountInformation + SystemTrustedPlatformModuleInformation + SystemKernelDebuggerFlags + SystemCodeIntegrityPolicyInformation + SystemIsolatedUserModeInformation + SystemHardwareSecurityTestInterfaceResultsInformation + SystemSingleModuleInformation + SystemAllowedCpuSetsInformation + SystemDmaProtectionInformation + SystemInterruptCpuSetsInformation + SystemSecureBootPolicyFullInformation + SystemCodeIntegrityPolicyFullInformation + SystemAffinitizedInterruptProcessorInformation + SystemRootSiloInformation +) + +type RTL_PROCESS_MODULE_INFORMATION struct { + Section Handle + MappedBase uintptr + ImageBase uintptr + ImageSize uint32 + Flags uint32 + LoadOrderIndex uint16 + InitOrderIndex uint16 + LoadCount uint16 + OffsetToFileName uint16 + FullPathName [256]byte +} + +type RTL_PROCESS_MODULES struct { + NumberOfModules uint32 + Modules [1]RTL_PROCESS_MODULE_INFORMATION +} + +// Constants for LocalAlloc flags. +const ( + LMEM_FIXED = 0x0 + LMEM_MOVEABLE = 0x2 + LMEM_NOCOMPACT = 0x10 + LMEM_NODISCARD = 0x20 + LMEM_ZEROINIT = 0x40 + LMEM_MODIFY = 0x80 + LMEM_DISCARDABLE = 0xf00 + LMEM_VALID_FLAGS = 0xf72 + LMEM_INVALID_HANDLE = 0x8000 + LHND = LMEM_MOVEABLE | LMEM_ZEROINIT + LPTR = LMEM_FIXED | LMEM_ZEROINIT + NONZEROLHND = LMEM_MOVEABLE + NONZEROLPTR = LMEM_FIXED +) + +// Constants for the CreateNamedPipe-family of functions. +const ( + PIPE_ACCESS_INBOUND = 0x1 + PIPE_ACCESS_OUTBOUND = 0x2 + PIPE_ACCESS_DUPLEX = 0x3 + + PIPE_CLIENT_END = 0x0 + PIPE_SERVER_END = 0x1 + + PIPE_WAIT = 0x0 + PIPE_NOWAIT = 0x1 + PIPE_READMODE_BYTE = 0x0 + PIPE_READMODE_MESSAGE = 0x2 + PIPE_TYPE_BYTE = 0x0 + PIPE_TYPE_MESSAGE = 0x4 + PIPE_ACCEPT_REMOTE_CLIENTS = 0x0 + PIPE_REJECT_REMOTE_CLIENTS = 0x8 + + PIPE_UNLIMITED_INSTANCES = 255 +) + +// Constants for security attributes when opening named pipes. +const ( + SECURITY_ANONYMOUS = SecurityAnonymous << 16 + SECURITY_IDENTIFICATION = SecurityIdentification << 16 + SECURITY_IMPERSONATION = SecurityImpersonation << 16 + SECURITY_DELEGATION = SecurityDelegation << 16 + + SECURITY_CONTEXT_TRACKING = 0x40000 + SECURITY_EFFECTIVE_ONLY = 0x80000 + + SECURITY_SQOS_PRESENT = 0x100000 + SECURITY_VALID_SQOS_FLAGS = 0x1f0000 +) + +// ResourceID represents a 16-bit resource identifier, traditionally created with the MAKEINTRESOURCE macro. +type ResourceID uint16 + +// ResourceIDOrString must be either a ResourceID, to specify a resource or resource type by ID, +// or a string, to specify a resource or resource type by name. +type ResourceIDOrString interface{} + +// Predefined resource names and types. +var ( + // Predefined names. + CREATEPROCESS_MANIFEST_RESOURCE_ID ResourceID = 1 + ISOLATIONAWARE_MANIFEST_RESOURCE_ID ResourceID = 2 + ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID ResourceID = 3 + ISOLATIONPOLICY_MANIFEST_RESOURCE_ID ResourceID = 4 + ISOLATIONPOLICY_BROWSER_MANIFEST_RESOURCE_ID ResourceID = 5 + MINIMUM_RESERVED_MANIFEST_RESOURCE_ID ResourceID = 1 // inclusive + MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID ResourceID = 16 // inclusive + + // Predefined types. + RT_CURSOR ResourceID = 1 + RT_BITMAP ResourceID = 2 + RT_ICON ResourceID = 3 + RT_MENU ResourceID = 4 + RT_DIALOG ResourceID = 5 + RT_STRING ResourceID = 6 + RT_FONTDIR ResourceID = 7 + RT_FONT ResourceID = 8 + RT_ACCELERATOR ResourceID = 9 + RT_RCDATA ResourceID = 10 + RT_MESSAGETABLE ResourceID = 11 + RT_GROUP_CURSOR ResourceID = 12 + RT_GROUP_ICON ResourceID = 14 + RT_VERSION ResourceID = 16 + RT_DLGINCLUDE ResourceID = 17 + RT_PLUGPLAY ResourceID = 19 + RT_VXD ResourceID = 20 + RT_ANICURSOR ResourceID = 21 + RT_ANIICON ResourceID = 22 + RT_HTML ResourceID = 23 + RT_MANIFEST ResourceID = 24 +) + +type VS_FIXEDFILEINFO struct { + Signature uint32 + StrucVersion uint32 + FileVersionMS uint32 + FileVersionLS uint32 + ProductVersionMS uint32 + ProductVersionLS uint32 + FileFlagsMask uint32 + FileFlags uint32 + FileOS uint32 + FileType uint32 + FileSubtype uint32 + FileDateMS uint32 + FileDateLS uint32 +} + +type COAUTHIDENTITY struct { + User *uint16 + UserLength uint32 + Domain *uint16 + DomainLength uint32 + Password *uint16 + PasswordLength uint32 + Flags uint32 +} + +type COAUTHINFO struct { + AuthnSvc uint32 + AuthzSvc uint32 + ServerPrincName *uint16 + AuthnLevel uint32 + ImpersonationLevel uint32 + AuthIdentityData *COAUTHIDENTITY + Capabilities uint32 +} + +type COSERVERINFO struct { + Reserved1 uint32 + Aame *uint16 + AuthInfo *COAUTHINFO + Reserved2 uint32 +} + +type BIND_OPTS3 struct { + CbStruct uint32 + Flags uint32 + Mode uint32 + TickCountDeadline uint32 + TrackFlags uint32 + ClassContext uint32 + Locale uint32 + ServerInfo *COSERVERINFO + Hwnd HWND +} + +const ( + CLSCTX_INPROC_SERVER = 0x1 + CLSCTX_INPROC_HANDLER = 0x2 + CLSCTX_LOCAL_SERVER = 0x4 + CLSCTX_INPROC_SERVER16 = 0x8 + CLSCTX_REMOTE_SERVER = 0x10 + CLSCTX_INPROC_HANDLER16 = 0x20 + CLSCTX_RESERVED1 = 0x40 + CLSCTX_RESERVED2 = 0x80 + CLSCTX_RESERVED3 = 0x100 + CLSCTX_RESERVED4 = 0x200 + CLSCTX_NO_CODE_DOWNLOAD = 0x400 + CLSCTX_RESERVED5 = 0x800 + CLSCTX_NO_CUSTOM_MARSHAL = 0x1000 + CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000 + CLSCTX_NO_FAILURE_LOG = 0x4000 + CLSCTX_DISABLE_AAA = 0x8000 + CLSCTX_ENABLE_AAA = 0x10000 + CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000 + CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000 + CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000 + CLSCTX_ENABLE_CLOAKING = 0x100000 + CLSCTX_APPCONTAINER = 0x400000 + CLSCTX_ACTIVATE_AAA_AS_IU = 0x800000 + CLSCTX_PS_DLL = 0x80000000 + + COINIT_MULTITHREADED = 0x0 + COINIT_APARTMENTTHREADED = 0x2 + COINIT_DISABLE_OLE1DDE = 0x4 + COINIT_SPEED_OVER_MEMORY = 0x8 +) + +// Flag for QueryFullProcessImageName. +const PROCESS_NAME_NATIVE = 1 + +type ModuleInfo struct { + BaseOfDll uintptr + SizeOfImage uint32 + EntryPoint uintptr +} + +const ALL_PROCESSOR_GROUPS = 0xFFFF + +type Rect struct { + Left int32 + Top int32 + Right int32 + Bottom int32 +} + +type GUIThreadInfo struct { + Size uint32 + Flags uint32 + Active HWND + Focus HWND + Capture HWND + MenuOwner HWND + MoveSize HWND + CaretHandle HWND + CaretRect Rect +} + +const ( + DWMWA_NCRENDERING_ENABLED = 1 + DWMWA_NCRENDERING_POLICY = 2 + DWMWA_TRANSITIONS_FORCEDISABLED = 3 + DWMWA_ALLOW_NCPAINT = 4 + DWMWA_CAPTION_BUTTON_BOUNDS = 5 + DWMWA_NONCLIENT_RTL_LAYOUT = 6 + DWMWA_FORCE_ICONIC_REPRESENTATION = 7 + DWMWA_FLIP3D_POLICY = 8 + DWMWA_EXTENDED_FRAME_BOUNDS = 9 + DWMWA_HAS_ICONIC_BITMAP = 10 + DWMWA_DISALLOW_PEEK = 11 + DWMWA_EXCLUDED_FROM_PEEK = 12 + DWMWA_CLOAK = 13 + DWMWA_CLOAKED = 14 + DWMWA_FREEZE_REPRESENTATION = 15 + DWMWA_PASSIVE_UPDATE_MODE = 16 + DWMWA_USE_HOSTBACKDROPBRUSH = 17 + DWMWA_USE_IMMERSIVE_DARK_MODE = 20 + DWMWA_WINDOW_CORNER_PREFERENCE = 33 + DWMWA_BORDER_COLOR = 34 + DWMWA_CAPTION_COLOR = 35 + DWMWA_TEXT_COLOR = 36 + DWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 37 +) + +type WSAQUERYSET struct { + Size uint32 + ServiceInstanceName *uint16 + ServiceClassId *GUID + Version *WSAVersion + Comment *uint16 + NameSpace uint32 + NSProviderId *GUID + Context *uint16 + NumberOfProtocols uint32 + AfpProtocols *AFProtocols + QueryString *uint16 + NumberOfCsAddrs uint32 + SaBuffer *CSAddrInfo + OutputFlags uint32 + Blob *BLOB +} + +type WSAVersion struct { + Version uint32 + EnumerationOfComparison int32 +} + +type AFProtocols struct { + AddressFamily int32 + Protocol int32 +} + +type CSAddrInfo struct { + LocalAddr SocketAddress + RemoteAddr SocketAddress + SocketType int32 + Protocol int32 +} + +type BLOB struct { + Size uint32 + BlobData *byte +} + +type ComStat struct { + Flags uint32 + CBInQue uint32 + CBOutQue uint32 +} + +type DCB struct { + DCBlength uint32 + BaudRate uint32 + Flags uint32 + wReserved uint16 + XonLim uint16 + XoffLim uint16 + ByteSize uint8 + Parity uint8 + StopBits uint8 + XonChar byte + XoffChar byte + ErrorChar byte + EofChar byte + EvtChar byte + wReserved1 uint16 +} + +// Keyboard Layout Flags. +// See https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-loadkeyboardlayoutw +const ( + KLF_ACTIVATE = 0x00000001 + KLF_SUBSTITUTE_OK = 0x00000002 + KLF_REORDER = 0x00000008 + KLF_REPLACELANG = 0x00000010 + KLF_NOTELLSHELL = 0x00000080 + KLF_SETFORPROCESS = 0x00000100 +) diff --git a/vendor/golang.org/x/sys/windows/types_windows_386.go b/vendor/golang.org/x/sys/windows/types_windows_386.go new file mode 100644 index 000000000..8bce3e2fc --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows_386.go @@ -0,0 +1,35 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +type WSAData struct { + Version uint16 + HighVersion uint16 + Description [WSADESCRIPTION_LEN + 1]byte + SystemStatus [WSASYS_STATUS_LEN + 1]byte + MaxSockets uint16 + MaxUdpDg uint16 + VendorInfo *byte +} + +type Servent struct { + Name *byte + Aliases **byte + Port uint16 + Proto *byte +} + +type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { + PerProcessUserTimeLimit int64 + PerJobUserTimeLimit int64 + LimitFlags uint32 + MinimumWorkingSetSize uintptr + MaximumWorkingSetSize uintptr + ActiveProcessLimit uint32 + Affinity uintptr + PriorityClass uint32 + SchedulingClass uint32 + _ uint32 // pad to 8 byte boundary +} diff --git a/vendor/golang.org/x/sys/windows/types_windows_amd64.go b/vendor/golang.org/x/sys/windows/types_windows_amd64.go new file mode 100644 index 000000000..fdddc0c70 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows_amd64.go @@ -0,0 +1,34 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +type WSAData struct { + Version uint16 + HighVersion uint16 + MaxSockets uint16 + MaxUdpDg uint16 + VendorInfo *byte + Description [WSADESCRIPTION_LEN + 1]byte + SystemStatus [WSASYS_STATUS_LEN + 1]byte +} + +type Servent struct { + Name *byte + Aliases **byte + Proto *byte + Port uint16 +} + +type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { + PerProcessUserTimeLimit int64 + PerJobUserTimeLimit int64 + LimitFlags uint32 + MinimumWorkingSetSize uintptr + MaximumWorkingSetSize uintptr + ActiveProcessLimit uint32 + Affinity uintptr + PriorityClass uint32 + SchedulingClass uint32 +} diff --git a/vendor/golang.org/x/sys/windows/types_windows_arm.go b/vendor/golang.org/x/sys/windows/types_windows_arm.go new file mode 100644 index 000000000..321872c3e --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows_arm.go @@ -0,0 +1,35 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +type WSAData struct { + Version uint16 + HighVersion uint16 + Description [WSADESCRIPTION_LEN + 1]byte + SystemStatus [WSASYS_STATUS_LEN + 1]byte + MaxSockets uint16 + MaxUdpDg uint16 + VendorInfo *byte +} + +type Servent struct { + Name *byte + Aliases **byte + Port uint16 + Proto *byte +} + +type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { + PerProcessUserTimeLimit int64 + PerJobUserTimeLimit int64 + LimitFlags uint32 + MinimumWorkingSetSize uintptr + MaximumWorkingSetSize uintptr + ActiveProcessLimit uint32 + Affinity uintptr + PriorityClass uint32 + SchedulingClass uint32 + _ uint32 // pad to 8 byte boundary +} diff --git a/vendor/golang.org/x/sys/windows/types_windows_arm64.go b/vendor/golang.org/x/sys/windows/types_windows_arm64.go new file mode 100644 index 000000000..fdddc0c70 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows_arm64.go @@ -0,0 +1,34 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +type WSAData struct { + Version uint16 + HighVersion uint16 + MaxSockets uint16 + MaxUdpDg uint16 + VendorInfo *byte + Description [WSADESCRIPTION_LEN + 1]byte + SystemStatus [WSASYS_STATUS_LEN + 1]byte +} + +type Servent struct { + Name *byte + Aliases **byte + Proto *byte + Port uint16 +} + +type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { + PerProcessUserTimeLimit int64 + PerJobUserTimeLimit int64 + LimitFlags uint32 + MinimumWorkingSetSize uintptr + MaximumWorkingSetSize uintptr + ActiveProcessLimit uint32 + Affinity uintptr + PriorityClass uint32 + SchedulingClass uint32 +} diff --git a/vendor/golang.org/x/sys/windows/zerrors_windows.go b/vendor/golang.org/x/sys/windows/zerrors_windows.go new file mode 100644 index 000000000..0cf658fbd --- /dev/null +++ b/vendor/golang.org/x/sys/windows/zerrors_windows.go @@ -0,0 +1,9468 @@ +// Code generated by 'mkerrors.bash'; DO NOT EDIT. + +package windows + +import "syscall" + +const ( + FACILITY_NULL = 0 + FACILITY_RPC = 1 + FACILITY_DISPATCH = 2 + FACILITY_STORAGE = 3 + FACILITY_ITF = 4 + FACILITY_WIN32 = 7 + FACILITY_WINDOWS = 8 + FACILITY_SSPI = 9 + FACILITY_SECURITY = 9 + FACILITY_CONTROL = 10 + FACILITY_CERT = 11 + FACILITY_INTERNET = 12 + FACILITY_MEDIASERVER = 13 + FACILITY_MSMQ = 14 + FACILITY_SETUPAPI = 15 + FACILITY_SCARD = 16 + FACILITY_COMPLUS = 17 + FACILITY_AAF = 18 + FACILITY_URT = 19 + FACILITY_ACS = 20 + FACILITY_DPLAY = 21 + FACILITY_UMI = 22 + FACILITY_SXS = 23 + FACILITY_WINDOWS_CE = 24 + FACILITY_HTTP = 25 + FACILITY_USERMODE_COMMONLOG = 26 + FACILITY_WER = 27 + FACILITY_USERMODE_FILTER_MANAGER = 31 + FACILITY_BACKGROUNDCOPY = 32 + FACILITY_CONFIGURATION = 33 + FACILITY_WIA = 33 + FACILITY_STATE_MANAGEMENT = 34 + FACILITY_METADIRECTORY = 35 + FACILITY_WINDOWSUPDATE = 36 + FACILITY_DIRECTORYSERVICE = 37 + FACILITY_GRAPHICS = 38 + FACILITY_SHELL = 39 + FACILITY_NAP = 39 + FACILITY_TPM_SERVICES = 40 + FACILITY_TPM_SOFTWARE = 41 + FACILITY_UI = 42 + FACILITY_XAML = 43 + FACILITY_ACTION_QUEUE = 44 + FACILITY_PLA = 48 + FACILITY_WINDOWS_SETUP = 48 + FACILITY_FVE = 49 + FACILITY_FWP = 50 + FACILITY_WINRM = 51 + FACILITY_NDIS = 52 + FACILITY_USERMODE_HYPERVISOR = 53 + FACILITY_CMI = 54 + FACILITY_USERMODE_VIRTUALIZATION = 55 + FACILITY_USERMODE_VOLMGR = 56 + FACILITY_BCD = 57 + FACILITY_USERMODE_VHD = 58 + FACILITY_USERMODE_HNS = 59 + FACILITY_SDIAG = 60 + FACILITY_WEBSERVICES = 61 + FACILITY_WINPE = 61 + FACILITY_WPN = 62 + FACILITY_WINDOWS_STORE = 63 + FACILITY_INPUT = 64 + FACILITY_EAP = 66 + FACILITY_WINDOWS_DEFENDER = 80 + FACILITY_OPC = 81 + FACILITY_XPS = 82 + FACILITY_MBN = 84 + FACILITY_POWERSHELL = 84 + FACILITY_RAS = 83 + FACILITY_P2P_INT = 98 + FACILITY_P2P = 99 + FACILITY_DAF = 100 + FACILITY_BLUETOOTH_ATT = 101 + FACILITY_AUDIO = 102 + FACILITY_STATEREPOSITORY = 103 + FACILITY_VISUALCPP = 109 + FACILITY_SCRIPT = 112 + FACILITY_PARSE = 113 + FACILITY_BLB = 120 + FACILITY_BLB_CLI = 121 + FACILITY_WSBAPP = 122 + FACILITY_BLBUI = 128 + FACILITY_USN = 129 + FACILITY_USERMODE_VOLSNAP = 130 + FACILITY_TIERING = 131 + FACILITY_WSB_ONLINE = 133 + FACILITY_ONLINE_ID = 134 + FACILITY_DEVICE_UPDATE_AGENT = 135 + FACILITY_DRVSERVICING = 136 + FACILITY_DLS = 153 + FACILITY_DELIVERY_OPTIMIZATION = 208 + FACILITY_USERMODE_SPACES = 231 + FACILITY_USER_MODE_SECURITY_CORE = 232 + FACILITY_USERMODE_LICENSING = 234 + FACILITY_SOS = 160 + FACILITY_DEBUGGERS = 176 + FACILITY_SPP = 256 + FACILITY_RESTORE = 256 + FACILITY_DMSERVER = 256 + FACILITY_DEPLOYMENT_SERVICES_SERVER = 257 + FACILITY_DEPLOYMENT_SERVICES_IMAGING = 258 + FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT = 259 + FACILITY_DEPLOYMENT_SERVICES_UTIL = 260 + FACILITY_DEPLOYMENT_SERVICES_BINLSVC = 261 + FACILITY_DEPLOYMENT_SERVICES_PXE = 263 + FACILITY_DEPLOYMENT_SERVICES_TFTP = 264 + FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT = 272 + FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING = 278 + FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER = 289 + FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT = 290 + FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER = 293 + FACILITY_LINGUISTIC_SERVICES = 305 + FACILITY_AUDIOSTREAMING = 1094 + FACILITY_ACCELERATOR = 1536 + FACILITY_WMAAECMA = 1996 + FACILITY_DIRECTMUSIC = 2168 + FACILITY_DIRECT3D10 = 2169 + FACILITY_DXGI = 2170 + FACILITY_DXGI_DDI = 2171 + FACILITY_DIRECT3D11 = 2172 + FACILITY_DIRECT3D11_DEBUG = 2173 + FACILITY_DIRECT3D12 = 2174 + FACILITY_DIRECT3D12_DEBUG = 2175 + FACILITY_LEAP = 2184 + FACILITY_AUDCLNT = 2185 + FACILITY_WINCODEC_DWRITE_DWM = 2200 + FACILITY_WINML = 2192 + FACILITY_DIRECT2D = 2201 + FACILITY_DEFRAG = 2304 + FACILITY_USERMODE_SDBUS = 2305 + FACILITY_JSCRIPT = 2306 + FACILITY_PIDGENX = 2561 + FACILITY_EAS = 85 + FACILITY_WEB = 885 + FACILITY_WEB_SOCKET = 886 + FACILITY_MOBILE = 1793 + FACILITY_SQLITE = 1967 + FACILITY_UTC = 1989 + FACILITY_WEP = 2049 + FACILITY_SYNCENGINE = 2050 + FACILITY_XBOX = 2339 + FACILITY_GAME = 2340 + FACILITY_PIX = 2748 + ERROR_SUCCESS syscall.Errno = 0 + NO_ERROR = 0 + SEC_E_OK Handle = 0x00000000 + ERROR_INVALID_FUNCTION syscall.Errno = 1 + ERROR_FILE_NOT_FOUND syscall.Errno = 2 + ERROR_PATH_NOT_FOUND syscall.Errno = 3 + ERROR_TOO_MANY_OPEN_FILES syscall.Errno = 4 + ERROR_ACCESS_DENIED syscall.Errno = 5 + ERROR_INVALID_HANDLE syscall.Errno = 6 + ERROR_ARENA_TRASHED syscall.Errno = 7 + ERROR_NOT_ENOUGH_MEMORY syscall.Errno = 8 + ERROR_INVALID_BLOCK syscall.Errno = 9 + ERROR_BAD_ENVIRONMENT syscall.Errno = 10 + ERROR_BAD_FORMAT syscall.Errno = 11 + ERROR_INVALID_ACCESS syscall.Errno = 12 + ERROR_INVALID_DATA syscall.Errno = 13 + ERROR_OUTOFMEMORY syscall.Errno = 14 + ERROR_INVALID_DRIVE syscall.Errno = 15 + ERROR_CURRENT_DIRECTORY syscall.Errno = 16 + ERROR_NOT_SAME_DEVICE syscall.Errno = 17 + ERROR_NO_MORE_FILES syscall.Errno = 18 + ERROR_WRITE_PROTECT syscall.Errno = 19 + ERROR_BAD_UNIT syscall.Errno = 20 + ERROR_NOT_READY syscall.Errno = 21 + ERROR_BAD_COMMAND syscall.Errno = 22 + ERROR_CRC syscall.Errno = 23 + ERROR_BAD_LENGTH syscall.Errno = 24 + ERROR_SEEK syscall.Errno = 25 + ERROR_NOT_DOS_DISK syscall.Errno = 26 + ERROR_SECTOR_NOT_FOUND syscall.Errno = 27 + ERROR_OUT_OF_PAPER syscall.Errno = 28 + ERROR_WRITE_FAULT syscall.Errno = 29 + ERROR_READ_FAULT syscall.Errno = 30 + ERROR_GEN_FAILURE syscall.Errno = 31 + ERROR_SHARING_VIOLATION syscall.Errno = 32 + ERROR_LOCK_VIOLATION syscall.Errno = 33 + ERROR_WRONG_DISK syscall.Errno = 34 + ERROR_SHARING_BUFFER_EXCEEDED syscall.Errno = 36 + ERROR_HANDLE_EOF syscall.Errno = 38 + ERROR_HANDLE_DISK_FULL syscall.Errno = 39 + ERROR_NOT_SUPPORTED syscall.Errno = 50 + ERROR_REM_NOT_LIST syscall.Errno = 51 + ERROR_DUP_NAME syscall.Errno = 52 + ERROR_BAD_NETPATH syscall.Errno = 53 + ERROR_NETWORK_BUSY syscall.Errno = 54 + ERROR_DEV_NOT_EXIST syscall.Errno = 55 + ERROR_TOO_MANY_CMDS syscall.Errno = 56 + ERROR_ADAP_HDW_ERR syscall.Errno = 57 + ERROR_BAD_NET_RESP syscall.Errno = 58 + ERROR_UNEXP_NET_ERR syscall.Errno = 59 + ERROR_BAD_REM_ADAP syscall.Errno = 60 + ERROR_PRINTQ_FULL syscall.Errno = 61 + ERROR_NO_SPOOL_SPACE syscall.Errno = 62 + ERROR_PRINT_CANCELLED syscall.Errno = 63 + ERROR_NETNAME_DELETED syscall.Errno = 64 + ERROR_NETWORK_ACCESS_DENIED syscall.Errno = 65 + ERROR_BAD_DEV_TYPE syscall.Errno = 66 + ERROR_BAD_NET_NAME syscall.Errno = 67 + ERROR_TOO_MANY_NAMES syscall.Errno = 68 + ERROR_TOO_MANY_SESS syscall.Errno = 69 + ERROR_SHARING_PAUSED syscall.Errno = 70 + ERROR_REQ_NOT_ACCEP syscall.Errno = 71 + ERROR_REDIR_PAUSED syscall.Errno = 72 + ERROR_FILE_EXISTS syscall.Errno = 80 + ERROR_CANNOT_MAKE syscall.Errno = 82 + ERROR_FAIL_I24 syscall.Errno = 83 + ERROR_OUT_OF_STRUCTURES syscall.Errno = 84 + ERROR_ALREADY_ASSIGNED syscall.Errno = 85 + ERROR_INVALID_PASSWORD syscall.Errno = 86 + ERROR_INVALID_PARAMETER syscall.Errno = 87 + ERROR_NET_WRITE_FAULT syscall.Errno = 88 + ERROR_NO_PROC_SLOTS syscall.Errno = 89 + ERROR_TOO_MANY_SEMAPHORES syscall.Errno = 100 + ERROR_EXCL_SEM_ALREADY_OWNED syscall.Errno = 101 + ERROR_SEM_IS_SET syscall.Errno = 102 + ERROR_TOO_MANY_SEM_REQUESTS syscall.Errno = 103 + ERROR_INVALID_AT_INTERRUPT_TIME syscall.Errno = 104 + ERROR_SEM_OWNER_DIED syscall.Errno = 105 + ERROR_SEM_USER_LIMIT syscall.Errno = 106 + ERROR_DISK_CHANGE syscall.Errno = 107 + ERROR_DRIVE_LOCKED syscall.Errno = 108 + ERROR_BROKEN_PIPE syscall.Errno = 109 + ERROR_OPEN_FAILED syscall.Errno = 110 + ERROR_BUFFER_OVERFLOW syscall.Errno = 111 + ERROR_DISK_FULL syscall.Errno = 112 + ERROR_NO_MORE_SEARCH_HANDLES syscall.Errno = 113 + ERROR_INVALID_TARGET_HANDLE syscall.Errno = 114 + ERROR_INVALID_CATEGORY syscall.Errno = 117 + ERROR_INVALID_VERIFY_SWITCH syscall.Errno = 118 + ERROR_BAD_DRIVER_LEVEL syscall.Errno = 119 + ERROR_CALL_NOT_IMPLEMENTED syscall.Errno = 120 + ERROR_SEM_TIMEOUT syscall.Errno = 121 + ERROR_INSUFFICIENT_BUFFER syscall.Errno = 122 + ERROR_INVALID_NAME syscall.Errno = 123 + ERROR_INVALID_LEVEL syscall.Errno = 124 + ERROR_NO_VOLUME_LABEL syscall.Errno = 125 + ERROR_MOD_NOT_FOUND syscall.Errno = 126 + ERROR_PROC_NOT_FOUND syscall.Errno = 127 + ERROR_WAIT_NO_CHILDREN syscall.Errno = 128 + ERROR_CHILD_NOT_COMPLETE syscall.Errno = 129 + ERROR_DIRECT_ACCESS_HANDLE syscall.Errno = 130 + ERROR_NEGATIVE_SEEK syscall.Errno = 131 + ERROR_SEEK_ON_DEVICE syscall.Errno = 132 + ERROR_IS_JOIN_TARGET syscall.Errno = 133 + ERROR_IS_JOINED syscall.Errno = 134 + ERROR_IS_SUBSTED syscall.Errno = 135 + ERROR_NOT_JOINED syscall.Errno = 136 + ERROR_NOT_SUBSTED syscall.Errno = 137 + ERROR_JOIN_TO_JOIN syscall.Errno = 138 + ERROR_SUBST_TO_SUBST syscall.Errno = 139 + ERROR_JOIN_TO_SUBST syscall.Errno = 140 + ERROR_SUBST_TO_JOIN syscall.Errno = 141 + ERROR_BUSY_DRIVE syscall.Errno = 142 + ERROR_SAME_DRIVE syscall.Errno = 143 + ERROR_DIR_NOT_ROOT syscall.Errno = 144 + ERROR_DIR_NOT_EMPTY syscall.Errno = 145 + ERROR_IS_SUBST_PATH syscall.Errno = 146 + ERROR_IS_JOIN_PATH syscall.Errno = 147 + ERROR_PATH_BUSY syscall.Errno = 148 + ERROR_IS_SUBST_TARGET syscall.Errno = 149 + ERROR_SYSTEM_TRACE syscall.Errno = 150 + ERROR_INVALID_EVENT_COUNT syscall.Errno = 151 + ERROR_TOO_MANY_MUXWAITERS syscall.Errno = 152 + ERROR_INVALID_LIST_FORMAT syscall.Errno = 153 + ERROR_LABEL_TOO_LONG syscall.Errno = 154 + ERROR_TOO_MANY_TCBS syscall.Errno = 155 + ERROR_SIGNAL_REFUSED syscall.Errno = 156 + ERROR_DISCARDED syscall.Errno = 157 + ERROR_NOT_LOCKED syscall.Errno = 158 + ERROR_BAD_THREADID_ADDR syscall.Errno = 159 + ERROR_BAD_ARGUMENTS syscall.Errno = 160 + ERROR_BAD_PATHNAME syscall.Errno = 161 + ERROR_SIGNAL_PENDING syscall.Errno = 162 + ERROR_MAX_THRDS_REACHED syscall.Errno = 164 + ERROR_LOCK_FAILED syscall.Errno = 167 + ERROR_BUSY syscall.Errno = 170 + ERROR_DEVICE_SUPPORT_IN_PROGRESS syscall.Errno = 171 + ERROR_CANCEL_VIOLATION syscall.Errno = 173 + ERROR_ATOMIC_LOCKS_NOT_SUPPORTED syscall.Errno = 174 + ERROR_INVALID_SEGMENT_NUMBER syscall.Errno = 180 + ERROR_INVALID_ORDINAL syscall.Errno = 182 + ERROR_ALREADY_EXISTS syscall.Errno = 183 + ERROR_INVALID_FLAG_NUMBER syscall.Errno = 186 + ERROR_SEM_NOT_FOUND syscall.Errno = 187 + ERROR_INVALID_STARTING_CODESEG syscall.Errno = 188 + ERROR_INVALID_STACKSEG syscall.Errno = 189 + ERROR_INVALID_MODULETYPE syscall.Errno = 190 + ERROR_INVALID_EXE_SIGNATURE syscall.Errno = 191 + ERROR_EXE_MARKED_INVALID syscall.Errno = 192 + ERROR_BAD_EXE_FORMAT syscall.Errno = 193 + ERROR_ITERATED_DATA_EXCEEDS_64k syscall.Errno = 194 + ERROR_INVALID_MINALLOCSIZE syscall.Errno = 195 + ERROR_DYNLINK_FROM_INVALID_RING syscall.Errno = 196 + ERROR_IOPL_NOT_ENABLED syscall.Errno = 197 + ERROR_INVALID_SEGDPL syscall.Errno = 198 + ERROR_AUTODATASEG_EXCEEDS_64k syscall.Errno = 199 + ERROR_RING2SEG_MUST_BE_MOVABLE syscall.Errno = 200 + ERROR_RELOC_CHAIN_XEEDS_SEGLIM syscall.Errno = 201 + ERROR_INFLOOP_IN_RELOC_CHAIN syscall.Errno = 202 + ERROR_ENVVAR_NOT_FOUND syscall.Errno = 203 + ERROR_NO_SIGNAL_SENT syscall.Errno = 205 + ERROR_FILENAME_EXCED_RANGE syscall.Errno = 206 + ERROR_RING2_STACK_IN_USE syscall.Errno = 207 + ERROR_META_EXPANSION_TOO_LONG syscall.Errno = 208 + ERROR_INVALID_SIGNAL_NUMBER syscall.Errno = 209 + ERROR_THREAD_1_INACTIVE syscall.Errno = 210 + ERROR_LOCKED syscall.Errno = 212 + ERROR_TOO_MANY_MODULES syscall.Errno = 214 + ERROR_NESTING_NOT_ALLOWED syscall.Errno = 215 + ERROR_EXE_MACHINE_TYPE_MISMATCH syscall.Errno = 216 + ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY syscall.Errno = 217 + ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY syscall.Errno = 218 + ERROR_FILE_CHECKED_OUT syscall.Errno = 220 + ERROR_CHECKOUT_REQUIRED syscall.Errno = 221 + ERROR_BAD_FILE_TYPE syscall.Errno = 222 + ERROR_FILE_TOO_LARGE syscall.Errno = 223 + ERROR_FORMS_AUTH_REQUIRED syscall.Errno = 224 + ERROR_VIRUS_INFECTED syscall.Errno = 225 + ERROR_VIRUS_DELETED syscall.Errno = 226 + ERROR_PIPE_LOCAL syscall.Errno = 229 + ERROR_BAD_PIPE syscall.Errno = 230 + ERROR_PIPE_BUSY syscall.Errno = 231 + ERROR_NO_DATA syscall.Errno = 232 + ERROR_PIPE_NOT_CONNECTED syscall.Errno = 233 + ERROR_MORE_DATA syscall.Errno = 234 + ERROR_NO_WORK_DONE syscall.Errno = 235 + ERROR_VC_DISCONNECTED syscall.Errno = 240 + ERROR_INVALID_EA_NAME syscall.Errno = 254 + ERROR_EA_LIST_INCONSISTENT syscall.Errno = 255 + WAIT_TIMEOUT syscall.Errno = 258 + ERROR_NO_MORE_ITEMS syscall.Errno = 259 + ERROR_CANNOT_COPY syscall.Errno = 266 + ERROR_DIRECTORY syscall.Errno = 267 + ERROR_EAS_DIDNT_FIT syscall.Errno = 275 + ERROR_EA_FILE_CORRUPT syscall.Errno = 276 + ERROR_EA_TABLE_FULL syscall.Errno = 277 + ERROR_INVALID_EA_HANDLE syscall.Errno = 278 + ERROR_EAS_NOT_SUPPORTED syscall.Errno = 282 + ERROR_NOT_OWNER syscall.Errno = 288 + ERROR_TOO_MANY_POSTS syscall.Errno = 298 + ERROR_PARTIAL_COPY syscall.Errno = 299 + ERROR_OPLOCK_NOT_GRANTED syscall.Errno = 300 + ERROR_INVALID_OPLOCK_PROTOCOL syscall.Errno = 301 + ERROR_DISK_TOO_FRAGMENTED syscall.Errno = 302 + ERROR_DELETE_PENDING syscall.Errno = 303 + ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING syscall.Errno = 304 + ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME syscall.Errno = 305 + ERROR_SECURITY_STREAM_IS_INCONSISTENT syscall.Errno = 306 + ERROR_INVALID_LOCK_RANGE syscall.Errno = 307 + ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT syscall.Errno = 308 + ERROR_NOTIFICATION_GUID_ALREADY_DEFINED syscall.Errno = 309 + ERROR_INVALID_EXCEPTION_HANDLER syscall.Errno = 310 + ERROR_DUPLICATE_PRIVILEGES syscall.Errno = 311 + ERROR_NO_RANGES_PROCESSED syscall.Errno = 312 + ERROR_NOT_ALLOWED_ON_SYSTEM_FILE syscall.Errno = 313 + ERROR_DISK_RESOURCES_EXHAUSTED syscall.Errno = 314 + ERROR_INVALID_TOKEN syscall.Errno = 315 + ERROR_DEVICE_FEATURE_NOT_SUPPORTED syscall.Errno = 316 + ERROR_MR_MID_NOT_FOUND syscall.Errno = 317 + ERROR_SCOPE_NOT_FOUND syscall.Errno = 318 + ERROR_UNDEFINED_SCOPE syscall.Errno = 319 + ERROR_INVALID_CAP syscall.Errno = 320 + ERROR_DEVICE_UNREACHABLE syscall.Errno = 321 + ERROR_DEVICE_NO_RESOURCES syscall.Errno = 322 + ERROR_DATA_CHECKSUM_ERROR syscall.Errno = 323 + ERROR_INTERMIXED_KERNEL_EA_OPERATION syscall.Errno = 324 + ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED syscall.Errno = 326 + ERROR_OFFSET_ALIGNMENT_VIOLATION syscall.Errno = 327 + ERROR_INVALID_FIELD_IN_PARAMETER_LIST syscall.Errno = 328 + ERROR_OPERATION_IN_PROGRESS syscall.Errno = 329 + ERROR_BAD_DEVICE_PATH syscall.Errno = 330 + ERROR_TOO_MANY_DESCRIPTORS syscall.Errno = 331 + ERROR_SCRUB_DATA_DISABLED syscall.Errno = 332 + ERROR_NOT_REDUNDANT_STORAGE syscall.Errno = 333 + ERROR_RESIDENT_FILE_NOT_SUPPORTED syscall.Errno = 334 + ERROR_COMPRESSED_FILE_NOT_SUPPORTED syscall.Errno = 335 + ERROR_DIRECTORY_NOT_SUPPORTED syscall.Errno = 336 + ERROR_NOT_READ_FROM_COPY syscall.Errno = 337 + ERROR_FT_WRITE_FAILURE syscall.Errno = 338 + ERROR_FT_DI_SCAN_REQUIRED syscall.Errno = 339 + ERROR_INVALID_KERNEL_INFO_VERSION syscall.Errno = 340 + ERROR_INVALID_PEP_INFO_VERSION syscall.Errno = 341 + ERROR_OBJECT_NOT_EXTERNALLY_BACKED syscall.Errno = 342 + ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN syscall.Errno = 343 + ERROR_COMPRESSION_NOT_BENEFICIAL syscall.Errno = 344 + ERROR_STORAGE_TOPOLOGY_ID_MISMATCH syscall.Errno = 345 + ERROR_BLOCKED_BY_PARENTAL_CONTROLS syscall.Errno = 346 + ERROR_BLOCK_TOO_MANY_REFERENCES syscall.Errno = 347 + ERROR_MARKED_TO_DISALLOW_WRITES syscall.Errno = 348 + ERROR_ENCLAVE_FAILURE syscall.Errno = 349 + ERROR_FAIL_NOACTION_REBOOT syscall.Errno = 350 + ERROR_FAIL_SHUTDOWN syscall.Errno = 351 + ERROR_FAIL_RESTART syscall.Errno = 352 + ERROR_MAX_SESSIONS_REACHED syscall.Errno = 353 + ERROR_NETWORK_ACCESS_DENIED_EDP syscall.Errno = 354 + ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL syscall.Errno = 355 + ERROR_EDP_POLICY_DENIES_OPERATION syscall.Errno = 356 + ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED syscall.Errno = 357 + ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT syscall.Errno = 358 + ERROR_DEVICE_IN_MAINTENANCE syscall.Errno = 359 + ERROR_NOT_SUPPORTED_ON_DAX syscall.Errno = 360 + ERROR_DAX_MAPPING_EXISTS syscall.Errno = 361 + ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING syscall.Errno = 362 + ERROR_CLOUD_FILE_METADATA_CORRUPT syscall.Errno = 363 + ERROR_CLOUD_FILE_METADATA_TOO_LARGE syscall.Errno = 364 + ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE syscall.Errno = 365 + ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH syscall.Errno = 366 + ERROR_CHILD_PROCESS_BLOCKED syscall.Errno = 367 + ERROR_STORAGE_LOST_DATA_PERSISTENCE syscall.Errno = 368 + ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE syscall.Errno = 369 + ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT syscall.Errno = 370 + ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY syscall.Errno = 371 + ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN syscall.Errno = 372 + ERROR_GDI_HANDLE_LEAK syscall.Errno = 373 + ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS syscall.Errno = 374 + ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED syscall.Errno = 375 + ERROR_NOT_A_CLOUD_FILE syscall.Errno = 376 + ERROR_CLOUD_FILE_NOT_IN_SYNC syscall.Errno = 377 + ERROR_CLOUD_FILE_ALREADY_CONNECTED syscall.Errno = 378 + ERROR_CLOUD_FILE_NOT_SUPPORTED syscall.Errno = 379 + ERROR_CLOUD_FILE_INVALID_REQUEST syscall.Errno = 380 + ERROR_CLOUD_FILE_READ_ONLY_VOLUME syscall.Errno = 381 + ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY syscall.Errno = 382 + ERROR_CLOUD_FILE_VALIDATION_FAILED syscall.Errno = 383 + ERROR_SMB1_NOT_AVAILABLE syscall.Errno = 384 + ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION syscall.Errno = 385 + ERROR_CLOUD_FILE_AUTHENTICATION_FAILED syscall.Errno = 386 + ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES syscall.Errno = 387 + ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE syscall.Errno = 388 + ERROR_CLOUD_FILE_UNSUCCESSFUL syscall.Errno = 389 + ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT syscall.Errno = 390 + ERROR_CLOUD_FILE_IN_USE syscall.Errno = 391 + ERROR_CLOUD_FILE_PINNED syscall.Errno = 392 + ERROR_CLOUD_FILE_REQUEST_ABORTED syscall.Errno = 393 + ERROR_CLOUD_FILE_PROPERTY_CORRUPT syscall.Errno = 394 + ERROR_CLOUD_FILE_ACCESS_DENIED syscall.Errno = 395 + ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS syscall.Errno = 396 + ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT syscall.Errno = 397 + ERROR_CLOUD_FILE_REQUEST_CANCELED syscall.Errno = 398 + ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED syscall.Errno = 399 + ERROR_THREAD_MODE_ALREADY_BACKGROUND syscall.Errno = 400 + ERROR_THREAD_MODE_NOT_BACKGROUND syscall.Errno = 401 + ERROR_PROCESS_MODE_ALREADY_BACKGROUND syscall.Errno = 402 + ERROR_PROCESS_MODE_NOT_BACKGROUND syscall.Errno = 403 + ERROR_CLOUD_FILE_PROVIDER_TERMINATED syscall.Errno = 404 + ERROR_NOT_A_CLOUD_SYNC_ROOT syscall.Errno = 405 + ERROR_FILE_PROTECTED_UNDER_DPL syscall.Errno = 406 + ERROR_VOLUME_NOT_CLUSTER_ALIGNED syscall.Errno = 407 + ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND syscall.Errno = 408 + ERROR_APPX_FILE_NOT_ENCRYPTED syscall.Errno = 409 + ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED syscall.Errno = 410 + ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET syscall.Errno = 411 + ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE syscall.Errno = 412 + ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER syscall.Errno = 413 + ERROR_LINUX_SUBSYSTEM_NOT_PRESENT syscall.Errno = 414 + ERROR_FT_READ_FAILURE syscall.Errno = 415 + ERROR_STORAGE_RESERVE_ID_INVALID syscall.Errno = 416 + ERROR_STORAGE_RESERVE_DOES_NOT_EXIST syscall.Errno = 417 + ERROR_STORAGE_RESERVE_ALREADY_EXISTS syscall.Errno = 418 + ERROR_STORAGE_RESERVE_NOT_EMPTY syscall.Errno = 419 + ERROR_NOT_A_DAX_VOLUME syscall.Errno = 420 + ERROR_NOT_DAX_MAPPABLE syscall.Errno = 421 + ERROR_TIME_SENSITIVE_THREAD syscall.Errno = 422 + ERROR_DPL_NOT_SUPPORTED_FOR_USER syscall.Errno = 423 + ERROR_CASE_DIFFERING_NAMES_IN_DIR syscall.Errno = 424 + ERROR_FILE_NOT_SUPPORTED syscall.Errno = 425 + ERROR_CLOUD_FILE_REQUEST_TIMEOUT syscall.Errno = 426 + ERROR_NO_TASK_QUEUE syscall.Errno = 427 + ERROR_SRC_SRV_DLL_LOAD_FAILED syscall.Errno = 428 + ERROR_NOT_SUPPORTED_WITH_BTT syscall.Errno = 429 + ERROR_ENCRYPTION_DISABLED syscall.Errno = 430 + ERROR_ENCRYPTING_METADATA_DISALLOWED syscall.Errno = 431 + ERROR_CANT_CLEAR_ENCRYPTION_FLAG syscall.Errno = 432 + ERROR_NO_SUCH_DEVICE syscall.Errno = 433 + ERROR_CAPAUTHZ_NOT_DEVUNLOCKED syscall.Errno = 450 + ERROR_CAPAUTHZ_CHANGE_TYPE syscall.Errno = 451 + ERROR_CAPAUTHZ_NOT_PROVISIONED syscall.Errno = 452 + ERROR_CAPAUTHZ_NOT_AUTHORIZED syscall.Errno = 453 + ERROR_CAPAUTHZ_NO_POLICY syscall.Errno = 454 + ERROR_CAPAUTHZ_DB_CORRUPTED syscall.Errno = 455 + ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG syscall.Errno = 456 + ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY syscall.Errno = 457 + ERROR_CAPAUTHZ_SCCD_PARSE_ERROR syscall.Errno = 458 + ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED syscall.Errno = 459 + ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH syscall.Errno = 460 + ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT syscall.Errno = 480 + ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT syscall.Errno = 481 + ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT syscall.Errno = 482 + ERROR_DEVICE_HARDWARE_ERROR syscall.Errno = 483 + ERROR_INVALID_ADDRESS syscall.Errno = 487 + ERROR_VRF_CFG_ENABLED syscall.Errno = 1183 + ERROR_PARTITION_TERMINATING syscall.Errno = 1184 + ERROR_USER_PROFILE_LOAD syscall.Errno = 500 + ERROR_ARITHMETIC_OVERFLOW syscall.Errno = 534 + ERROR_PIPE_CONNECTED syscall.Errno = 535 + ERROR_PIPE_LISTENING syscall.Errno = 536 + ERROR_VERIFIER_STOP syscall.Errno = 537 + ERROR_ABIOS_ERROR syscall.Errno = 538 + ERROR_WX86_WARNING syscall.Errno = 539 + ERROR_WX86_ERROR syscall.Errno = 540 + ERROR_TIMER_NOT_CANCELED syscall.Errno = 541 + ERROR_UNWIND syscall.Errno = 542 + ERROR_BAD_STACK syscall.Errno = 543 + ERROR_INVALID_UNWIND_TARGET syscall.Errno = 544 + ERROR_INVALID_PORT_ATTRIBUTES syscall.Errno = 545 + ERROR_PORT_MESSAGE_TOO_LONG syscall.Errno = 546 + ERROR_INVALID_QUOTA_LOWER syscall.Errno = 547 + ERROR_DEVICE_ALREADY_ATTACHED syscall.Errno = 548 + ERROR_INSTRUCTION_MISALIGNMENT syscall.Errno = 549 + ERROR_PROFILING_NOT_STARTED syscall.Errno = 550 + ERROR_PROFILING_NOT_STOPPED syscall.Errno = 551 + ERROR_COULD_NOT_INTERPRET syscall.Errno = 552 + ERROR_PROFILING_AT_LIMIT syscall.Errno = 553 + ERROR_CANT_WAIT syscall.Errno = 554 + ERROR_CANT_TERMINATE_SELF syscall.Errno = 555 + ERROR_UNEXPECTED_MM_CREATE_ERR syscall.Errno = 556 + ERROR_UNEXPECTED_MM_MAP_ERROR syscall.Errno = 557 + ERROR_UNEXPECTED_MM_EXTEND_ERR syscall.Errno = 558 + ERROR_BAD_FUNCTION_TABLE syscall.Errno = 559 + ERROR_NO_GUID_TRANSLATION syscall.Errno = 560 + ERROR_INVALID_LDT_SIZE syscall.Errno = 561 + ERROR_INVALID_LDT_OFFSET syscall.Errno = 563 + ERROR_INVALID_LDT_DESCRIPTOR syscall.Errno = 564 + ERROR_TOO_MANY_THREADS syscall.Errno = 565 + ERROR_THREAD_NOT_IN_PROCESS syscall.Errno = 566 + ERROR_PAGEFILE_QUOTA_EXCEEDED syscall.Errno = 567 + ERROR_LOGON_SERVER_CONFLICT syscall.Errno = 568 + ERROR_SYNCHRONIZATION_REQUIRED syscall.Errno = 569 + ERROR_NET_OPEN_FAILED syscall.Errno = 570 + ERROR_IO_PRIVILEGE_FAILED syscall.Errno = 571 + ERROR_CONTROL_C_EXIT syscall.Errno = 572 + ERROR_MISSING_SYSTEMFILE syscall.Errno = 573 + ERROR_UNHANDLED_EXCEPTION syscall.Errno = 574 + ERROR_APP_INIT_FAILURE syscall.Errno = 575 + ERROR_PAGEFILE_CREATE_FAILED syscall.Errno = 576 + ERROR_INVALID_IMAGE_HASH syscall.Errno = 577 + ERROR_NO_PAGEFILE syscall.Errno = 578 + ERROR_ILLEGAL_FLOAT_CONTEXT syscall.Errno = 579 + ERROR_NO_EVENT_PAIR syscall.Errno = 580 + ERROR_DOMAIN_CTRLR_CONFIG_ERROR syscall.Errno = 581 + ERROR_ILLEGAL_CHARACTER syscall.Errno = 582 + ERROR_UNDEFINED_CHARACTER syscall.Errno = 583 + ERROR_FLOPPY_VOLUME syscall.Errno = 584 + ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT syscall.Errno = 585 + ERROR_BACKUP_CONTROLLER syscall.Errno = 586 + ERROR_MUTANT_LIMIT_EXCEEDED syscall.Errno = 587 + ERROR_FS_DRIVER_REQUIRED syscall.Errno = 588 + ERROR_CANNOT_LOAD_REGISTRY_FILE syscall.Errno = 589 + ERROR_DEBUG_ATTACH_FAILED syscall.Errno = 590 + ERROR_SYSTEM_PROCESS_TERMINATED syscall.Errno = 591 + ERROR_DATA_NOT_ACCEPTED syscall.Errno = 592 + ERROR_VDM_HARD_ERROR syscall.Errno = 593 + ERROR_DRIVER_CANCEL_TIMEOUT syscall.Errno = 594 + ERROR_REPLY_MESSAGE_MISMATCH syscall.Errno = 595 + ERROR_LOST_WRITEBEHIND_DATA syscall.Errno = 596 + ERROR_CLIENT_SERVER_PARAMETERS_INVALID syscall.Errno = 597 + ERROR_NOT_TINY_STREAM syscall.Errno = 598 + ERROR_STACK_OVERFLOW_READ syscall.Errno = 599 + ERROR_CONVERT_TO_LARGE syscall.Errno = 600 + ERROR_FOUND_OUT_OF_SCOPE syscall.Errno = 601 + ERROR_ALLOCATE_BUCKET syscall.Errno = 602 + ERROR_MARSHALL_OVERFLOW syscall.Errno = 603 + ERROR_INVALID_VARIANT syscall.Errno = 604 + ERROR_BAD_COMPRESSION_BUFFER syscall.Errno = 605 + ERROR_AUDIT_FAILED syscall.Errno = 606 + ERROR_TIMER_RESOLUTION_NOT_SET syscall.Errno = 607 + ERROR_INSUFFICIENT_LOGON_INFO syscall.Errno = 608 + ERROR_BAD_DLL_ENTRYPOINT syscall.Errno = 609 + ERROR_BAD_SERVICE_ENTRYPOINT syscall.Errno = 610 + ERROR_IP_ADDRESS_CONFLICT1 syscall.Errno = 611 + ERROR_IP_ADDRESS_CONFLICT2 syscall.Errno = 612 + ERROR_REGISTRY_QUOTA_LIMIT syscall.Errno = 613 + ERROR_NO_CALLBACK_ACTIVE syscall.Errno = 614 + ERROR_PWD_TOO_SHORT syscall.Errno = 615 + ERROR_PWD_TOO_RECENT syscall.Errno = 616 + ERROR_PWD_HISTORY_CONFLICT syscall.Errno = 617 + ERROR_UNSUPPORTED_COMPRESSION syscall.Errno = 618 + ERROR_INVALID_HW_PROFILE syscall.Errno = 619 + ERROR_INVALID_PLUGPLAY_DEVICE_PATH syscall.Errno = 620 + ERROR_QUOTA_LIST_INCONSISTENT syscall.Errno = 621 + ERROR_EVALUATION_EXPIRATION syscall.Errno = 622 + ERROR_ILLEGAL_DLL_RELOCATION syscall.Errno = 623 + ERROR_DLL_INIT_FAILED_LOGOFF syscall.Errno = 624 + ERROR_VALIDATE_CONTINUE syscall.Errno = 625 + ERROR_NO_MORE_MATCHES syscall.Errno = 626 + ERROR_RANGE_LIST_CONFLICT syscall.Errno = 627 + ERROR_SERVER_SID_MISMATCH syscall.Errno = 628 + ERROR_CANT_ENABLE_DENY_ONLY syscall.Errno = 629 + ERROR_FLOAT_MULTIPLE_FAULTS syscall.Errno = 630 + ERROR_FLOAT_MULTIPLE_TRAPS syscall.Errno = 631 + ERROR_NOINTERFACE syscall.Errno = 632 + ERROR_DRIVER_FAILED_SLEEP syscall.Errno = 633 + ERROR_CORRUPT_SYSTEM_FILE syscall.Errno = 634 + ERROR_COMMITMENT_MINIMUM syscall.Errno = 635 + ERROR_PNP_RESTART_ENUMERATION syscall.Errno = 636 + ERROR_SYSTEM_IMAGE_BAD_SIGNATURE syscall.Errno = 637 + ERROR_PNP_REBOOT_REQUIRED syscall.Errno = 638 + ERROR_INSUFFICIENT_POWER syscall.Errno = 639 + ERROR_MULTIPLE_FAULT_VIOLATION syscall.Errno = 640 + ERROR_SYSTEM_SHUTDOWN syscall.Errno = 641 + ERROR_PORT_NOT_SET syscall.Errno = 642 + ERROR_DS_VERSION_CHECK_FAILURE syscall.Errno = 643 + ERROR_RANGE_NOT_FOUND syscall.Errno = 644 + ERROR_NOT_SAFE_MODE_DRIVER syscall.Errno = 646 + ERROR_FAILED_DRIVER_ENTRY syscall.Errno = 647 + ERROR_DEVICE_ENUMERATION_ERROR syscall.Errno = 648 + ERROR_MOUNT_POINT_NOT_RESOLVED syscall.Errno = 649 + ERROR_INVALID_DEVICE_OBJECT_PARAMETER syscall.Errno = 650 + ERROR_MCA_OCCURED syscall.Errno = 651 + ERROR_DRIVER_DATABASE_ERROR syscall.Errno = 652 + ERROR_SYSTEM_HIVE_TOO_LARGE syscall.Errno = 653 + ERROR_DRIVER_FAILED_PRIOR_UNLOAD syscall.Errno = 654 + ERROR_VOLSNAP_PREPARE_HIBERNATE syscall.Errno = 655 + ERROR_HIBERNATION_FAILURE syscall.Errno = 656 + ERROR_PWD_TOO_LONG syscall.Errno = 657 + ERROR_FILE_SYSTEM_LIMITATION syscall.Errno = 665 + ERROR_ASSERTION_FAILURE syscall.Errno = 668 + ERROR_ACPI_ERROR syscall.Errno = 669 + ERROR_WOW_ASSERTION syscall.Errno = 670 + ERROR_PNP_BAD_MPS_TABLE syscall.Errno = 671 + ERROR_PNP_TRANSLATION_FAILED syscall.Errno = 672 + ERROR_PNP_IRQ_TRANSLATION_FAILED syscall.Errno = 673 + ERROR_PNP_INVALID_ID syscall.Errno = 674 + ERROR_WAKE_SYSTEM_DEBUGGER syscall.Errno = 675 + ERROR_HANDLES_CLOSED syscall.Errno = 676 + ERROR_EXTRANEOUS_INFORMATION syscall.Errno = 677 + ERROR_RXACT_COMMIT_NECESSARY syscall.Errno = 678 + ERROR_MEDIA_CHECK syscall.Errno = 679 + ERROR_GUID_SUBSTITUTION_MADE syscall.Errno = 680 + ERROR_STOPPED_ON_SYMLINK syscall.Errno = 681 + ERROR_LONGJUMP syscall.Errno = 682 + ERROR_PLUGPLAY_QUERY_VETOED syscall.Errno = 683 + ERROR_UNWIND_CONSOLIDATE syscall.Errno = 684 + ERROR_REGISTRY_HIVE_RECOVERED syscall.Errno = 685 + ERROR_DLL_MIGHT_BE_INSECURE syscall.Errno = 686 + ERROR_DLL_MIGHT_BE_INCOMPATIBLE syscall.Errno = 687 + ERROR_DBG_EXCEPTION_NOT_HANDLED syscall.Errno = 688 + ERROR_DBG_REPLY_LATER syscall.Errno = 689 + ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE syscall.Errno = 690 + ERROR_DBG_TERMINATE_THREAD syscall.Errno = 691 + ERROR_DBG_TERMINATE_PROCESS syscall.Errno = 692 + ERROR_DBG_CONTROL_C syscall.Errno = 693 + ERROR_DBG_PRINTEXCEPTION_C syscall.Errno = 694 + ERROR_DBG_RIPEXCEPTION syscall.Errno = 695 + ERROR_DBG_CONTROL_BREAK syscall.Errno = 696 + ERROR_DBG_COMMAND_EXCEPTION syscall.Errno = 697 + ERROR_OBJECT_NAME_EXISTS syscall.Errno = 698 + ERROR_THREAD_WAS_SUSPENDED syscall.Errno = 699 + ERROR_IMAGE_NOT_AT_BASE syscall.Errno = 700 + ERROR_RXACT_STATE_CREATED syscall.Errno = 701 + ERROR_SEGMENT_NOTIFICATION syscall.Errno = 702 + ERROR_BAD_CURRENT_DIRECTORY syscall.Errno = 703 + ERROR_FT_READ_RECOVERY_FROM_BACKUP syscall.Errno = 704 + ERROR_FT_WRITE_RECOVERY syscall.Errno = 705 + ERROR_IMAGE_MACHINE_TYPE_MISMATCH syscall.Errno = 706 + ERROR_RECEIVE_PARTIAL syscall.Errno = 707 + ERROR_RECEIVE_EXPEDITED syscall.Errno = 708 + ERROR_RECEIVE_PARTIAL_EXPEDITED syscall.Errno = 709 + ERROR_EVENT_DONE syscall.Errno = 710 + ERROR_EVENT_PENDING syscall.Errno = 711 + ERROR_CHECKING_FILE_SYSTEM syscall.Errno = 712 + ERROR_FATAL_APP_EXIT syscall.Errno = 713 + ERROR_PREDEFINED_HANDLE syscall.Errno = 714 + ERROR_WAS_UNLOCKED syscall.Errno = 715 + ERROR_SERVICE_NOTIFICATION syscall.Errno = 716 + ERROR_WAS_LOCKED syscall.Errno = 717 + ERROR_LOG_HARD_ERROR syscall.Errno = 718 + ERROR_ALREADY_WIN32 syscall.Errno = 719 + ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE syscall.Errno = 720 + ERROR_NO_YIELD_PERFORMED syscall.Errno = 721 + ERROR_TIMER_RESUME_IGNORED syscall.Errno = 722 + ERROR_ARBITRATION_UNHANDLED syscall.Errno = 723 + ERROR_CARDBUS_NOT_SUPPORTED syscall.Errno = 724 + ERROR_MP_PROCESSOR_MISMATCH syscall.Errno = 725 + ERROR_HIBERNATED syscall.Errno = 726 + ERROR_RESUME_HIBERNATION syscall.Errno = 727 + ERROR_FIRMWARE_UPDATED syscall.Errno = 728 + ERROR_DRIVERS_LEAKING_LOCKED_PAGES syscall.Errno = 729 + ERROR_WAKE_SYSTEM syscall.Errno = 730 + ERROR_WAIT_1 syscall.Errno = 731 + ERROR_WAIT_2 syscall.Errno = 732 + ERROR_WAIT_3 syscall.Errno = 733 + ERROR_WAIT_63 syscall.Errno = 734 + ERROR_ABANDONED_WAIT_0 syscall.Errno = 735 + ERROR_ABANDONED_WAIT_63 syscall.Errno = 736 + ERROR_USER_APC syscall.Errno = 737 + ERROR_KERNEL_APC syscall.Errno = 738 + ERROR_ALERTED syscall.Errno = 739 + ERROR_ELEVATION_REQUIRED syscall.Errno = 740 + ERROR_REPARSE syscall.Errno = 741 + ERROR_OPLOCK_BREAK_IN_PROGRESS syscall.Errno = 742 + ERROR_VOLUME_MOUNTED syscall.Errno = 743 + ERROR_RXACT_COMMITTED syscall.Errno = 744 + ERROR_NOTIFY_CLEANUP syscall.Errno = 745 + ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED syscall.Errno = 746 + ERROR_PAGE_FAULT_TRANSITION syscall.Errno = 747 + ERROR_PAGE_FAULT_DEMAND_ZERO syscall.Errno = 748 + ERROR_PAGE_FAULT_COPY_ON_WRITE syscall.Errno = 749 + ERROR_PAGE_FAULT_GUARD_PAGE syscall.Errno = 750 + ERROR_PAGE_FAULT_PAGING_FILE syscall.Errno = 751 + ERROR_CACHE_PAGE_LOCKED syscall.Errno = 752 + ERROR_CRASH_DUMP syscall.Errno = 753 + ERROR_BUFFER_ALL_ZEROS syscall.Errno = 754 + ERROR_REPARSE_OBJECT syscall.Errno = 755 + ERROR_RESOURCE_REQUIREMENTS_CHANGED syscall.Errno = 756 + ERROR_TRANSLATION_COMPLETE syscall.Errno = 757 + ERROR_NOTHING_TO_TERMINATE syscall.Errno = 758 + ERROR_PROCESS_NOT_IN_JOB syscall.Errno = 759 + ERROR_PROCESS_IN_JOB syscall.Errno = 760 + ERROR_VOLSNAP_HIBERNATE_READY syscall.Errno = 761 + ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY syscall.Errno = 762 + ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED syscall.Errno = 763 + ERROR_INTERRUPT_STILL_CONNECTED syscall.Errno = 764 + ERROR_WAIT_FOR_OPLOCK syscall.Errno = 765 + ERROR_DBG_EXCEPTION_HANDLED syscall.Errno = 766 + ERROR_DBG_CONTINUE syscall.Errno = 767 + ERROR_CALLBACK_POP_STACK syscall.Errno = 768 + ERROR_COMPRESSION_DISABLED syscall.Errno = 769 + ERROR_CANTFETCHBACKWARDS syscall.Errno = 770 + ERROR_CANTSCROLLBACKWARDS syscall.Errno = 771 + ERROR_ROWSNOTRELEASED syscall.Errno = 772 + ERROR_BAD_ACCESSOR_FLAGS syscall.Errno = 773 + ERROR_ERRORS_ENCOUNTERED syscall.Errno = 774 + ERROR_NOT_CAPABLE syscall.Errno = 775 + ERROR_REQUEST_OUT_OF_SEQUENCE syscall.Errno = 776 + ERROR_VERSION_PARSE_ERROR syscall.Errno = 777 + ERROR_BADSTARTPOSITION syscall.Errno = 778 + ERROR_MEMORY_HARDWARE syscall.Errno = 779 + ERROR_DISK_REPAIR_DISABLED syscall.Errno = 780 + ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE syscall.Errno = 781 + ERROR_SYSTEM_POWERSTATE_TRANSITION syscall.Errno = 782 + ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION syscall.Errno = 783 + ERROR_MCA_EXCEPTION syscall.Errno = 784 + ERROR_ACCESS_AUDIT_BY_POLICY syscall.Errno = 785 + ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY syscall.Errno = 786 + ERROR_ABANDON_HIBERFILE syscall.Errno = 787 + ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED syscall.Errno = 788 + ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR syscall.Errno = 789 + ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR syscall.Errno = 790 + ERROR_BAD_MCFG_TABLE syscall.Errno = 791 + ERROR_DISK_REPAIR_REDIRECTED syscall.Errno = 792 + ERROR_DISK_REPAIR_UNSUCCESSFUL syscall.Errno = 793 + ERROR_CORRUPT_LOG_OVERFULL syscall.Errno = 794 + ERROR_CORRUPT_LOG_CORRUPTED syscall.Errno = 795 + ERROR_CORRUPT_LOG_UNAVAILABLE syscall.Errno = 796 + ERROR_CORRUPT_LOG_DELETED_FULL syscall.Errno = 797 + ERROR_CORRUPT_LOG_CLEARED syscall.Errno = 798 + ERROR_ORPHAN_NAME_EXHAUSTED syscall.Errno = 799 + ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE syscall.Errno = 800 + ERROR_CANNOT_GRANT_REQUESTED_OPLOCK syscall.Errno = 801 + ERROR_CANNOT_BREAK_OPLOCK syscall.Errno = 802 + ERROR_OPLOCK_HANDLE_CLOSED syscall.Errno = 803 + ERROR_NO_ACE_CONDITION syscall.Errno = 804 + ERROR_INVALID_ACE_CONDITION syscall.Errno = 805 + ERROR_FILE_HANDLE_REVOKED syscall.Errno = 806 + ERROR_IMAGE_AT_DIFFERENT_BASE syscall.Errno = 807 + ERROR_ENCRYPTED_IO_NOT_POSSIBLE syscall.Errno = 808 + ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS syscall.Errno = 809 + ERROR_QUOTA_ACTIVITY syscall.Errno = 810 + ERROR_HANDLE_REVOKED syscall.Errno = 811 + ERROR_CALLBACK_INVOKE_INLINE syscall.Errno = 812 + ERROR_CPU_SET_INVALID syscall.Errno = 813 + ERROR_ENCLAVE_NOT_TERMINATED syscall.Errno = 814 + ERROR_ENCLAVE_VIOLATION syscall.Errno = 815 + ERROR_EA_ACCESS_DENIED syscall.Errno = 994 + ERROR_OPERATION_ABORTED syscall.Errno = 995 + ERROR_IO_INCOMPLETE syscall.Errno = 996 + ERROR_IO_PENDING syscall.Errno = 997 + ERROR_NOACCESS syscall.Errno = 998 + ERROR_SWAPERROR syscall.Errno = 999 + ERROR_STACK_OVERFLOW syscall.Errno = 1001 + ERROR_INVALID_MESSAGE syscall.Errno = 1002 + ERROR_CAN_NOT_COMPLETE syscall.Errno = 1003 + ERROR_INVALID_FLAGS syscall.Errno = 1004 + ERROR_UNRECOGNIZED_VOLUME syscall.Errno = 1005 + ERROR_FILE_INVALID syscall.Errno = 1006 + ERROR_FULLSCREEN_MODE syscall.Errno = 1007 + ERROR_NO_TOKEN syscall.Errno = 1008 + ERROR_BADDB syscall.Errno = 1009 + ERROR_BADKEY syscall.Errno = 1010 + ERROR_CANTOPEN syscall.Errno = 1011 + ERROR_CANTREAD syscall.Errno = 1012 + ERROR_CANTWRITE syscall.Errno = 1013 + ERROR_REGISTRY_RECOVERED syscall.Errno = 1014 + ERROR_REGISTRY_CORRUPT syscall.Errno = 1015 + ERROR_REGISTRY_IO_FAILED syscall.Errno = 1016 + ERROR_NOT_REGISTRY_FILE syscall.Errno = 1017 + ERROR_KEY_DELETED syscall.Errno = 1018 + ERROR_NO_LOG_SPACE syscall.Errno = 1019 + ERROR_KEY_HAS_CHILDREN syscall.Errno = 1020 + ERROR_CHILD_MUST_BE_VOLATILE syscall.Errno = 1021 + ERROR_NOTIFY_ENUM_DIR syscall.Errno = 1022 + ERROR_DEPENDENT_SERVICES_RUNNING syscall.Errno = 1051 + ERROR_INVALID_SERVICE_CONTROL syscall.Errno = 1052 + ERROR_SERVICE_REQUEST_TIMEOUT syscall.Errno = 1053 + ERROR_SERVICE_NO_THREAD syscall.Errno = 1054 + ERROR_SERVICE_DATABASE_LOCKED syscall.Errno = 1055 + ERROR_SERVICE_ALREADY_RUNNING syscall.Errno = 1056 + ERROR_INVALID_SERVICE_ACCOUNT syscall.Errno = 1057 + ERROR_SERVICE_DISABLED syscall.Errno = 1058 + ERROR_CIRCULAR_DEPENDENCY syscall.Errno = 1059 + ERROR_SERVICE_DOES_NOT_EXIST syscall.Errno = 1060 + ERROR_SERVICE_CANNOT_ACCEPT_CTRL syscall.Errno = 1061 + ERROR_SERVICE_NOT_ACTIVE syscall.Errno = 1062 + ERROR_FAILED_SERVICE_CONTROLLER_CONNECT syscall.Errno = 1063 + ERROR_EXCEPTION_IN_SERVICE syscall.Errno = 1064 + ERROR_DATABASE_DOES_NOT_EXIST syscall.Errno = 1065 + ERROR_SERVICE_SPECIFIC_ERROR syscall.Errno = 1066 + ERROR_PROCESS_ABORTED syscall.Errno = 1067 + ERROR_SERVICE_DEPENDENCY_FAIL syscall.Errno = 1068 + ERROR_SERVICE_LOGON_FAILED syscall.Errno = 1069 + ERROR_SERVICE_START_HANG syscall.Errno = 1070 + ERROR_INVALID_SERVICE_LOCK syscall.Errno = 1071 + ERROR_SERVICE_MARKED_FOR_DELETE syscall.Errno = 1072 + ERROR_SERVICE_EXISTS syscall.Errno = 1073 + ERROR_ALREADY_RUNNING_LKG syscall.Errno = 1074 + ERROR_SERVICE_DEPENDENCY_DELETED syscall.Errno = 1075 + ERROR_BOOT_ALREADY_ACCEPTED syscall.Errno = 1076 + ERROR_SERVICE_NEVER_STARTED syscall.Errno = 1077 + ERROR_DUPLICATE_SERVICE_NAME syscall.Errno = 1078 + ERROR_DIFFERENT_SERVICE_ACCOUNT syscall.Errno = 1079 + ERROR_CANNOT_DETECT_DRIVER_FAILURE syscall.Errno = 1080 + ERROR_CANNOT_DETECT_PROCESS_ABORT syscall.Errno = 1081 + ERROR_NO_RECOVERY_PROGRAM syscall.Errno = 1082 + ERROR_SERVICE_NOT_IN_EXE syscall.Errno = 1083 + ERROR_NOT_SAFEBOOT_SERVICE syscall.Errno = 1084 + ERROR_END_OF_MEDIA syscall.Errno = 1100 + ERROR_FILEMARK_DETECTED syscall.Errno = 1101 + ERROR_BEGINNING_OF_MEDIA syscall.Errno = 1102 + ERROR_SETMARK_DETECTED syscall.Errno = 1103 + ERROR_NO_DATA_DETECTED syscall.Errno = 1104 + ERROR_PARTITION_FAILURE syscall.Errno = 1105 + ERROR_INVALID_BLOCK_LENGTH syscall.Errno = 1106 + ERROR_DEVICE_NOT_PARTITIONED syscall.Errno = 1107 + ERROR_UNABLE_TO_LOCK_MEDIA syscall.Errno = 1108 + ERROR_UNABLE_TO_UNLOAD_MEDIA syscall.Errno = 1109 + ERROR_MEDIA_CHANGED syscall.Errno = 1110 + ERROR_BUS_RESET syscall.Errno = 1111 + ERROR_NO_MEDIA_IN_DRIVE syscall.Errno = 1112 + ERROR_NO_UNICODE_TRANSLATION syscall.Errno = 1113 + ERROR_DLL_INIT_FAILED syscall.Errno = 1114 + ERROR_SHUTDOWN_IN_PROGRESS syscall.Errno = 1115 + ERROR_NO_SHUTDOWN_IN_PROGRESS syscall.Errno = 1116 + ERROR_IO_DEVICE syscall.Errno = 1117 + ERROR_SERIAL_NO_DEVICE syscall.Errno = 1118 + ERROR_IRQ_BUSY syscall.Errno = 1119 + ERROR_MORE_WRITES syscall.Errno = 1120 + ERROR_COUNTER_TIMEOUT syscall.Errno = 1121 + ERROR_FLOPPY_ID_MARK_NOT_FOUND syscall.Errno = 1122 + ERROR_FLOPPY_WRONG_CYLINDER syscall.Errno = 1123 + ERROR_FLOPPY_UNKNOWN_ERROR syscall.Errno = 1124 + ERROR_FLOPPY_BAD_REGISTERS syscall.Errno = 1125 + ERROR_DISK_RECALIBRATE_FAILED syscall.Errno = 1126 + ERROR_DISK_OPERATION_FAILED syscall.Errno = 1127 + ERROR_DISK_RESET_FAILED syscall.Errno = 1128 + ERROR_EOM_OVERFLOW syscall.Errno = 1129 + ERROR_NOT_ENOUGH_SERVER_MEMORY syscall.Errno = 1130 + ERROR_POSSIBLE_DEADLOCK syscall.Errno = 1131 + ERROR_MAPPED_ALIGNMENT syscall.Errno = 1132 + ERROR_SET_POWER_STATE_VETOED syscall.Errno = 1140 + ERROR_SET_POWER_STATE_FAILED syscall.Errno = 1141 + ERROR_TOO_MANY_LINKS syscall.Errno = 1142 + ERROR_OLD_WIN_VERSION syscall.Errno = 1150 + ERROR_APP_WRONG_OS syscall.Errno = 1151 + ERROR_SINGLE_INSTANCE_APP syscall.Errno = 1152 + ERROR_RMODE_APP syscall.Errno = 1153 + ERROR_INVALID_DLL syscall.Errno = 1154 + ERROR_NO_ASSOCIATION syscall.Errno = 1155 + ERROR_DDE_FAIL syscall.Errno = 1156 + ERROR_DLL_NOT_FOUND syscall.Errno = 1157 + ERROR_NO_MORE_USER_HANDLES syscall.Errno = 1158 + ERROR_MESSAGE_SYNC_ONLY syscall.Errno = 1159 + ERROR_SOURCE_ELEMENT_EMPTY syscall.Errno = 1160 + ERROR_DESTINATION_ELEMENT_FULL syscall.Errno = 1161 + ERROR_ILLEGAL_ELEMENT_ADDRESS syscall.Errno = 1162 + ERROR_MAGAZINE_NOT_PRESENT syscall.Errno = 1163 + ERROR_DEVICE_REINITIALIZATION_NEEDED syscall.Errno = 1164 + ERROR_DEVICE_REQUIRES_CLEANING syscall.Errno = 1165 + ERROR_DEVICE_DOOR_OPEN syscall.Errno = 1166 + ERROR_DEVICE_NOT_CONNECTED syscall.Errno = 1167 + ERROR_NOT_FOUND syscall.Errno = 1168 + ERROR_NO_MATCH syscall.Errno = 1169 + ERROR_SET_NOT_FOUND syscall.Errno = 1170 + ERROR_POINT_NOT_FOUND syscall.Errno = 1171 + ERROR_NO_TRACKING_SERVICE syscall.Errno = 1172 + ERROR_NO_VOLUME_ID syscall.Errno = 1173 + ERROR_UNABLE_TO_REMOVE_REPLACED syscall.Errno = 1175 + ERROR_UNABLE_TO_MOVE_REPLACEMENT syscall.Errno = 1176 + ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 syscall.Errno = 1177 + ERROR_JOURNAL_DELETE_IN_PROGRESS syscall.Errno = 1178 + ERROR_JOURNAL_NOT_ACTIVE syscall.Errno = 1179 + ERROR_POTENTIAL_FILE_FOUND syscall.Errno = 1180 + ERROR_JOURNAL_ENTRY_DELETED syscall.Errno = 1181 + ERROR_SHUTDOWN_IS_SCHEDULED syscall.Errno = 1190 + ERROR_SHUTDOWN_USERS_LOGGED_ON syscall.Errno = 1191 + ERROR_BAD_DEVICE syscall.Errno = 1200 + ERROR_CONNECTION_UNAVAIL syscall.Errno = 1201 + ERROR_DEVICE_ALREADY_REMEMBERED syscall.Errno = 1202 + ERROR_NO_NET_OR_BAD_PATH syscall.Errno = 1203 + ERROR_BAD_PROVIDER syscall.Errno = 1204 + ERROR_CANNOT_OPEN_PROFILE syscall.Errno = 1205 + ERROR_BAD_PROFILE syscall.Errno = 1206 + ERROR_NOT_CONTAINER syscall.Errno = 1207 + ERROR_EXTENDED_ERROR syscall.Errno = 1208 + ERROR_INVALID_GROUPNAME syscall.Errno = 1209 + ERROR_INVALID_COMPUTERNAME syscall.Errno = 1210 + ERROR_INVALID_EVENTNAME syscall.Errno = 1211 + ERROR_INVALID_DOMAINNAME syscall.Errno = 1212 + ERROR_INVALID_SERVICENAME syscall.Errno = 1213 + ERROR_INVALID_NETNAME syscall.Errno = 1214 + ERROR_INVALID_SHARENAME syscall.Errno = 1215 + ERROR_INVALID_PASSWORDNAME syscall.Errno = 1216 + ERROR_INVALID_MESSAGENAME syscall.Errno = 1217 + ERROR_INVALID_MESSAGEDEST syscall.Errno = 1218 + ERROR_SESSION_CREDENTIAL_CONFLICT syscall.Errno = 1219 + ERROR_REMOTE_SESSION_LIMIT_EXCEEDED syscall.Errno = 1220 + ERROR_DUP_DOMAINNAME syscall.Errno = 1221 + ERROR_NO_NETWORK syscall.Errno = 1222 + ERROR_CANCELLED syscall.Errno = 1223 + ERROR_USER_MAPPED_FILE syscall.Errno = 1224 + ERROR_CONNECTION_REFUSED syscall.Errno = 1225 + ERROR_GRACEFUL_DISCONNECT syscall.Errno = 1226 + ERROR_ADDRESS_ALREADY_ASSOCIATED syscall.Errno = 1227 + ERROR_ADDRESS_NOT_ASSOCIATED syscall.Errno = 1228 + ERROR_CONNECTION_INVALID syscall.Errno = 1229 + ERROR_CONNECTION_ACTIVE syscall.Errno = 1230 + ERROR_NETWORK_UNREACHABLE syscall.Errno = 1231 + ERROR_HOST_UNREACHABLE syscall.Errno = 1232 + ERROR_PROTOCOL_UNREACHABLE syscall.Errno = 1233 + ERROR_PORT_UNREACHABLE syscall.Errno = 1234 + ERROR_REQUEST_ABORTED syscall.Errno = 1235 + ERROR_CONNECTION_ABORTED syscall.Errno = 1236 + ERROR_RETRY syscall.Errno = 1237 + ERROR_CONNECTION_COUNT_LIMIT syscall.Errno = 1238 + ERROR_LOGIN_TIME_RESTRICTION syscall.Errno = 1239 + ERROR_LOGIN_WKSTA_RESTRICTION syscall.Errno = 1240 + ERROR_INCORRECT_ADDRESS syscall.Errno = 1241 + ERROR_ALREADY_REGISTERED syscall.Errno = 1242 + ERROR_SERVICE_NOT_FOUND syscall.Errno = 1243 + ERROR_NOT_AUTHENTICATED syscall.Errno = 1244 + ERROR_NOT_LOGGED_ON syscall.Errno = 1245 + ERROR_CONTINUE syscall.Errno = 1246 + ERROR_ALREADY_INITIALIZED syscall.Errno = 1247 + ERROR_NO_MORE_DEVICES syscall.Errno = 1248 + ERROR_NO_SUCH_SITE syscall.Errno = 1249 + ERROR_DOMAIN_CONTROLLER_EXISTS syscall.Errno = 1250 + ERROR_ONLY_IF_CONNECTED syscall.Errno = 1251 + ERROR_OVERRIDE_NOCHANGES syscall.Errno = 1252 + ERROR_BAD_USER_PROFILE syscall.Errno = 1253 + ERROR_NOT_SUPPORTED_ON_SBS syscall.Errno = 1254 + ERROR_SERVER_SHUTDOWN_IN_PROGRESS syscall.Errno = 1255 + ERROR_HOST_DOWN syscall.Errno = 1256 + ERROR_NON_ACCOUNT_SID syscall.Errno = 1257 + ERROR_NON_DOMAIN_SID syscall.Errno = 1258 + ERROR_APPHELP_BLOCK syscall.Errno = 1259 + ERROR_ACCESS_DISABLED_BY_POLICY syscall.Errno = 1260 + ERROR_REG_NAT_CONSUMPTION syscall.Errno = 1261 + ERROR_CSCSHARE_OFFLINE syscall.Errno = 1262 + ERROR_PKINIT_FAILURE syscall.Errno = 1263 + ERROR_SMARTCARD_SUBSYSTEM_FAILURE syscall.Errno = 1264 + ERROR_DOWNGRADE_DETECTED syscall.Errno = 1265 + ERROR_MACHINE_LOCKED syscall.Errno = 1271 + ERROR_SMB_GUEST_LOGON_BLOCKED syscall.Errno = 1272 + ERROR_CALLBACK_SUPPLIED_INVALID_DATA syscall.Errno = 1273 + ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED syscall.Errno = 1274 + ERROR_DRIVER_BLOCKED syscall.Errno = 1275 + ERROR_INVALID_IMPORT_OF_NON_DLL syscall.Errno = 1276 + ERROR_ACCESS_DISABLED_WEBBLADE syscall.Errno = 1277 + ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER syscall.Errno = 1278 + ERROR_RECOVERY_FAILURE syscall.Errno = 1279 + ERROR_ALREADY_FIBER syscall.Errno = 1280 + ERROR_ALREADY_THREAD syscall.Errno = 1281 + ERROR_STACK_BUFFER_OVERRUN syscall.Errno = 1282 + ERROR_PARAMETER_QUOTA_EXCEEDED syscall.Errno = 1283 + ERROR_DEBUGGER_INACTIVE syscall.Errno = 1284 + ERROR_DELAY_LOAD_FAILED syscall.Errno = 1285 + ERROR_VDM_DISALLOWED syscall.Errno = 1286 + ERROR_UNIDENTIFIED_ERROR syscall.Errno = 1287 + ERROR_INVALID_CRUNTIME_PARAMETER syscall.Errno = 1288 + ERROR_BEYOND_VDL syscall.Errno = 1289 + ERROR_INCOMPATIBLE_SERVICE_SID_TYPE syscall.Errno = 1290 + ERROR_DRIVER_PROCESS_TERMINATED syscall.Errno = 1291 + ERROR_IMPLEMENTATION_LIMIT syscall.Errno = 1292 + ERROR_PROCESS_IS_PROTECTED syscall.Errno = 1293 + ERROR_SERVICE_NOTIFY_CLIENT_LAGGING syscall.Errno = 1294 + ERROR_DISK_QUOTA_EXCEEDED syscall.Errno = 1295 + ERROR_CONTENT_BLOCKED syscall.Errno = 1296 + ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE syscall.Errno = 1297 + ERROR_APP_HANG syscall.Errno = 1298 + ERROR_INVALID_LABEL syscall.Errno = 1299 + ERROR_NOT_ALL_ASSIGNED syscall.Errno = 1300 + ERROR_SOME_NOT_MAPPED syscall.Errno = 1301 + ERROR_NO_QUOTAS_FOR_ACCOUNT syscall.Errno = 1302 + ERROR_LOCAL_USER_SESSION_KEY syscall.Errno = 1303 + ERROR_NULL_LM_PASSWORD syscall.Errno = 1304 + ERROR_UNKNOWN_REVISION syscall.Errno = 1305 + ERROR_REVISION_MISMATCH syscall.Errno = 1306 + ERROR_INVALID_OWNER syscall.Errno = 1307 + ERROR_INVALID_PRIMARY_GROUP syscall.Errno = 1308 + ERROR_NO_IMPERSONATION_TOKEN syscall.Errno = 1309 + ERROR_CANT_DISABLE_MANDATORY syscall.Errno = 1310 + ERROR_NO_LOGON_SERVERS syscall.Errno = 1311 + ERROR_NO_SUCH_LOGON_SESSION syscall.Errno = 1312 + ERROR_NO_SUCH_PRIVILEGE syscall.Errno = 1313 + ERROR_PRIVILEGE_NOT_HELD syscall.Errno = 1314 + ERROR_INVALID_ACCOUNT_NAME syscall.Errno = 1315 + ERROR_USER_EXISTS syscall.Errno = 1316 + ERROR_NO_SUCH_USER syscall.Errno = 1317 + ERROR_GROUP_EXISTS syscall.Errno = 1318 + ERROR_NO_SUCH_GROUP syscall.Errno = 1319 + ERROR_MEMBER_IN_GROUP syscall.Errno = 1320 + ERROR_MEMBER_NOT_IN_GROUP syscall.Errno = 1321 + ERROR_LAST_ADMIN syscall.Errno = 1322 + ERROR_WRONG_PASSWORD syscall.Errno = 1323 + ERROR_ILL_FORMED_PASSWORD syscall.Errno = 1324 + ERROR_PASSWORD_RESTRICTION syscall.Errno = 1325 + ERROR_LOGON_FAILURE syscall.Errno = 1326 + ERROR_ACCOUNT_RESTRICTION syscall.Errno = 1327 + ERROR_INVALID_LOGON_HOURS syscall.Errno = 1328 + ERROR_INVALID_WORKSTATION syscall.Errno = 1329 + ERROR_PASSWORD_EXPIRED syscall.Errno = 1330 + ERROR_ACCOUNT_DISABLED syscall.Errno = 1331 + ERROR_NONE_MAPPED syscall.Errno = 1332 + ERROR_TOO_MANY_LUIDS_REQUESTED syscall.Errno = 1333 + ERROR_LUIDS_EXHAUSTED syscall.Errno = 1334 + ERROR_INVALID_SUB_AUTHORITY syscall.Errno = 1335 + ERROR_INVALID_ACL syscall.Errno = 1336 + ERROR_INVALID_SID syscall.Errno = 1337 + ERROR_INVALID_SECURITY_DESCR syscall.Errno = 1338 + ERROR_BAD_INHERITANCE_ACL syscall.Errno = 1340 + ERROR_SERVER_DISABLED syscall.Errno = 1341 + ERROR_SERVER_NOT_DISABLED syscall.Errno = 1342 + ERROR_INVALID_ID_AUTHORITY syscall.Errno = 1343 + ERROR_ALLOTTED_SPACE_EXCEEDED syscall.Errno = 1344 + ERROR_INVALID_GROUP_ATTRIBUTES syscall.Errno = 1345 + ERROR_BAD_IMPERSONATION_LEVEL syscall.Errno = 1346 + ERROR_CANT_OPEN_ANONYMOUS syscall.Errno = 1347 + ERROR_BAD_VALIDATION_CLASS syscall.Errno = 1348 + ERROR_BAD_TOKEN_TYPE syscall.Errno = 1349 + ERROR_NO_SECURITY_ON_OBJECT syscall.Errno = 1350 + ERROR_CANT_ACCESS_DOMAIN_INFO syscall.Errno = 1351 + ERROR_INVALID_SERVER_STATE syscall.Errno = 1352 + ERROR_INVALID_DOMAIN_STATE syscall.Errno = 1353 + ERROR_INVALID_DOMAIN_ROLE syscall.Errno = 1354 + ERROR_NO_SUCH_DOMAIN syscall.Errno = 1355 + ERROR_DOMAIN_EXISTS syscall.Errno = 1356 + ERROR_DOMAIN_LIMIT_EXCEEDED syscall.Errno = 1357 + ERROR_INTERNAL_DB_CORRUPTION syscall.Errno = 1358 + ERROR_INTERNAL_ERROR syscall.Errno = 1359 + ERROR_GENERIC_NOT_MAPPED syscall.Errno = 1360 + ERROR_BAD_DESCRIPTOR_FORMAT syscall.Errno = 1361 + ERROR_NOT_LOGON_PROCESS syscall.Errno = 1362 + ERROR_LOGON_SESSION_EXISTS syscall.Errno = 1363 + ERROR_NO_SUCH_PACKAGE syscall.Errno = 1364 + ERROR_BAD_LOGON_SESSION_STATE syscall.Errno = 1365 + ERROR_LOGON_SESSION_COLLISION syscall.Errno = 1366 + ERROR_INVALID_LOGON_TYPE syscall.Errno = 1367 + ERROR_CANNOT_IMPERSONATE syscall.Errno = 1368 + ERROR_RXACT_INVALID_STATE syscall.Errno = 1369 + ERROR_RXACT_COMMIT_FAILURE syscall.Errno = 1370 + ERROR_SPECIAL_ACCOUNT syscall.Errno = 1371 + ERROR_SPECIAL_GROUP syscall.Errno = 1372 + ERROR_SPECIAL_USER syscall.Errno = 1373 + ERROR_MEMBERS_PRIMARY_GROUP syscall.Errno = 1374 + ERROR_TOKEN_ALREADY_IN_USE syscall.Errno = 1375 + ERROR_NO_SUCH_ALIAS syscall.Errno = 1376 + ERROR_MEMBER_NOT_IN_ALIAS syscall.Errno = 1377 + ERROR_MEMBER_IN_ALIAS syscall.Errno = 1378 + ERROR_ALIAS_EXISTS syscall.Errno = 1379 + ERROR_LOGON_NOT_GRANTED syscall.Errno = 1380 + ERROR_TOO_MANY_SECRETS syscall.Errno = 1381 + ERROR_SECRET_TOO_LONG syscall.Errno = 1382 + ERROR_INTERNAL_DB_ERROR syscall.Errno = 1383 + ERROR_TOO_MANY_CONTEXT_IDS syscall.Errno = 1384 + ERROR_LOGON_TYPE_NOT_GRANTED syscall.Errno = 1385 + ERROR_NT_CROSS_ENCRYPTION_REQUIRED syscall.Errno = 1386 + ERROR_NO_SUCH_MEMBER syscall.Errno = 1387 + ERROR_INVALID_MEMBER syscall.Errno = 1388 + ERROR_TOO_MANY_SIDS syscall.Errno = 1389 + ERROR_LM_CROSS_ENCRYPTION_REQUIRED syscall.Errno = 1390 + ERROR_NO_INHERITANCE syscall.Errno = 1391 + ERROR_FILE_CORRUPT syscall.Errno = 1392 + ERROR_DISK_CORRUPT syscall.Errno = 1393 + ERROR_NO_USER_SESSION_KEY syscall.Errno = 1394 + ERROR_LICENSE_QUOTA_EXCEEDED syscall.Errno = 1395 + ERROR_WRONG_TARGET_NAME syscall.Errno = 1396 + ERROR_MUTUAL_AUTH_FAILED syscall.Errno = 1397 + ERROR_TIME_SKEW syscall.Errno = 1398 + ERROR_CURRENT_DOMAIN_NOT_ALLOWED syscall.Errno = 1399 + ERROR_INVALID_WINDOW_HANDLE syscall.Errno = 1400 + ERROR_INVALID_MENU_HANDLE syscall.Errno = 1401 + ERROR_INVALID_CURSOR_HANDLE syscall.Errno = 1402 + ERROR_INVALID_ACCEL_HANDLE syscall.Errno = 1403 + ERROR_INVALID_HOOK_HANDLE syscall.Errno = 1404 + ERROR_INVALID_DWP_HANDLE syscall.Errno = 1405 + ERROR_TLW_WITH_WSCHILD syscall.Errno = 1406 + ERROR_CANNOT_FIND_WND_CLASS syscall.Errno = 1407 + ERROR_WINDOW_OF_OTHER_THREAD syscall.Errno = 1408 + ERROR_HOTKEY_ALREADY_REGISTERED syscall.Errno = 1409 + ERROR_CLASS_ALREADY_EXISTS syscall.Errno = 1410 + ERROR_CLASS_DOES_NOT_EXIST syscall.Errno = 1411 + ERROR_CLASS_HAS_WINDOWS syscall.Errno = 1412 + ERROR_INVALID_INDEX syscall.Errno = 1413 + ERROR_INVALID_ICON_HANDLE syscall.Errno = 1414 + ERROR_PRIVATE_DIALOG_INDEX syscall.Errno = 1415 + ERROR_LISTBOX_ID_NOT_FOUND syscall.Errno = 1416 + ERROR_NO_WILDCARD_CHARACTERS syscall.Errno = 1417 + ERROR_CLIPBOARD_NOT_OPEN syscall.Errno = 1418 + ERROR_HOTKEY_NOT_REGISTERED syscall.Errno = 1419 + ERROR_WINDOW_NOT_DIALOG syscall.Errno = 1420 + ERROR_CONTROL_ID_NOT_FOUND syscall.Errno = 1421 + ERROR_INVALID_COMBOBOX_MESSAGE syscall.Errno = 1422 + ERROR_WINDOW_NOT_COMBOBOX syscall.Errno = 1423 + ERROR_INVALID_EDIT_HEIGHT syscall.Errno = 1424 + ERROR_DC_NOT_FOUND syscall.Errno = 1425 + ERROR_INVALID_HOOK_FILTER syscall.Errno = 1426 + ERROR_INVALID_FILTER_PROC syscall.Errno = 1427 + ERROR_HOOK_NEEDS_HMOD syscall.Errno = 1428 + ERROR_GLOBAL_ONLY_HOOK syscall.Errno = 1429 + ERROR_JOURNAL_HOOK_SET syscall.Errno = 1430 + ERROR_HOOK_NOT_INSTALLED syscall.Errno = 1431 + ERROR_INVALID_LB_MESSAGE syscall.Errno = 1432 + ERROR_SETCOUNT_ON_BAD_LB syscall.Errno = 1433 + ERROR_LB_WITHOUT_TABSTOPS syscall.Errno = 1434 + ERROR_DESTROY_OBJECT_OF_OTHER_THREAD syscall.Errno = 1435 + ERROR_CHILD_WINDOW_MENU syscall.Errno = 1436 + ERROR_NO_SYSTEM_MENU syscall.Errno = 1437 + ERROR_INVALID_MSGBOX_STYLE syscall.Errno = 1438 + ERROR_INVALID_SPI_VALUE syscall.Errno = 1439 + ERROR_SCREEN_ALREADY_LOCKED syscall.Errno = 1440 + ERROR_HWNDS_HAVE_DIFF_PARENT syscall.Errno = 1441 + ERROR_NOT_CHILD_WINDOW syscall.Errno = 1442 + ERROR_INVALID_GW_COMMAND syscall.Errno = 1443 + ERROR_INVALID_THREAD_ID syscall.Errno = 1444 + ERROR_NON_MDICHILD_WINDOW syscall.Errno = 1445 + ERROR_POPUP_ALREADY_ACTIVE syscall.Errno = 1446 + ERROR_NO_SCROLLBARS syscall.Errno = 1447 + ERROR_INVALID_SCROLLBAR_RANGE syscall.Errno = 1448 + ERROR_INVALID_SHOWWIN_COMMAND syscall.Errno = 1449 + ERROR_NO_SYSTEM_RESOURCES syscall.Errno = 1450 + ERROR_NONPAGED_SYSTEM_RESOURCES syscall.Errno = 1451 + ERROR_PAGED_SYSTEM_RESOURCES syscall.Errno = 1452 + ERROR_WORKING_SET_QUOTA syscall.Errno = 1453 + ERROR_PAGEFILE_QUOTA syscall.Errno = 1454 + ERROR_COMMITMENT_LIMIT syscall.Errno = 1455 + ERROR_MENU_ITEM_NOT_FOUND syscall.Errno = 1456 + ERROR_INVALID_KEYBOARD_HANDLE syscall.Errno = 1457 + ERROR_HOOK_TYPE_NOT_ALLOWED syscall.Errno = 1458 + ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION syscall.Errno = 1459 + ERROR_TIMEOUT syscall.Errno = 1460 + ERROR_INVALID_MONITOR_HANDLE syscall.Errno = 1461 + ERROR_INCORRECT_SIZE syscall.Errno = 1462 + ERROR_SYMLINK_CLASS_DISABLED syscall.Errno = 1463 + ERROR_SYMLINK_NOT_SUPPORTED syscall.Errno = 1464 + ERROR_XML_PARSE_ERROR syscall.Errno = 1465 + ERROR_XMLDSIG_ERROR syscall.Errno = 1466 + ERROR_RESTART_APPLICATION syscall.Errno = 1467 + ERROR_WRONG_COMPARTMENT syscall.Errno = 1468 + ERROR_AUTHIP_FAILURE syscall.Errno = 1469 + ERROR_NO_NVRAM_RESOURCES syscall.Errno = 1470 + ERROR_NOT_GUI_PROCESS syscall.Errno = 1471 + ERROR_EVENTLOG_FILE_CORRUPT syscall.Errno = 1500 + ERROR_EVENTLOG_CANT_START syscall.Errno = 1501 + ERROR_LOG_FILE_FULL syscall.Errno = 1502 + ERROR_EVENTLOG_FILE_CHANGED syscall.Errno = 1503 + ERROR_CONTAINER_ASSIGNED syscall.Errno = 1504 + ERROR_JOB_NO_CONTAINER syscall.Errno = 1505 + ERROR_INVALID_TASK_NAME syscall.Errno = 1550 + ERROR_INVALID_TASK_INDEX syscall.Errno = 1551 + ERROR_THREAD_ALREADY_IN_TASK syscall.Errno = 1552 + ERROR_INSTALL_SERVICE_FAILURE syscall.Errno = 1601 + ERROR_INSTALL_USEREXIT syscall.Errno = 1602 + ERROR_INSTALL_FAILURE syscall.Errno = 1603 + ERROR_INSTALL_SUSPEND syscall.Errno = 1604 + ERROR_UNKNOWN_PRODUCT syscall.Errno = 1605 + ERROR_UNKNOWN_FEATURE syscall.Errno = 1606 + ERROR_UNKNOWN_COMPONENT syscall.Errno = 1607 + ERROR_UNKNOWN_PROPERTY syscall.Errno = 1608 + ERROR_INVALID_HANDLE_STATE syscall.Errno = 1609 + ERROR_BAD_CONFIGURATION syscall.Errno = 1610 + ERROR_INDEX_ABSENT syscall.Errno = 1611 + ERROR_INSTALL_SOURCE_ABSENT syscall.Errno = 1612 + ERROR_INSTALL_PACKAGE_VERSION syscall.Errno = 1613 + ERROR_PRODUCT_UNINSTALLED syscall.Errno = 1614 + ERROR_BAD_QUERY_SYNTAX syscall.Errno = 1615 + ERROR_INVALID_FIELD syscall.Errno = 1616 + ERROR_DEVICE_REMOVED syscall.Errno = 1617 + ERROR_INSTALL_ALREADY_RUNNING syscall.Errno = 1618 + ERROR_INSTALL_PACKAGE_OPEN_FAILED syscall.Errno = 1619 + ERROR_INSTALL_PACKAGE_INVALID syscall.Errno = 1620 + ERROR_INSTALL_UI_FAILURE syscall.Errno = 1621 + ERROR_INSTALL_LOG_FAILURE syscall.Errno = 1622 + ERROR_INSTALL_LANGUAGE_UNSUPPORTED syscall.Errno = 1623 + ERROR_INSTALL_TRANSFORM_FAILURE syscall.Errno = 1624 + ERROR_INSTALL_PACKAGE_REJECTED syscall.Errno = 1625 + ERROR_FUNCTION_NOT_CALLED syscall.Errno = 1626 + ERROR_FUNCTION_FAILED syscall.Errno = 1627 + ERROR_INVALID_TABLE syscall.Errno = 1628 + ERROR_DATATYPE_MISMATCH syscall.Errno = 1629 + ERROR_UNSUPPORTED_TYPE syscall.Errno = 1630 + ERROR_CREATE_FAILED syscall.Errno = 1631 + ERROR_INSTALL_TEMP_UNWRITABLE syscall.Errno = 1632 + ERROR_INSTALL_PLATFORM_UNSUPPORTED syscall.Errno = 1633 + ERROR_INSTALL_NOTUSED syscall.Errno = 1634 + ERROR_PATCH_PACKAGE_OPEN_FAILED syscall.Errno = 1635 + ERROR_PATCH_PACKAGE_INVALID syscall.Errno = 1636 + ERROR_PATCH_PACKAGE_UNSUPPORTED syscall.Errno = 1637 + ERROR_PRODUCT_VERSION syscall.Errno = 1638 + ERROR_INVALID_COMMAND_LINE syscall.Errno = 1639 + ERROR_INSTALL_REMOTE_DISALLOWED syscall.Errno = 1640 + ERROR_SUCCESS_REBOOT_INITIATED syscall.Errno = 1641 + ERROR_PATCH_TARGET_NOT_FOUND syscall.Errno = 1642 + ERROR_PATCH_PACKAGE_REJECTED syscall.Errno = 1643 + ERROR_INSTALL_TRANSFORM_REJECTED syscall.Errno = 1644 + ERROR_INSTALL_REMOTE_PROHIBITED syscall.Errno = 1645 + ERROR_PATCH_REMOVAL_UNSUPPORTED syscall.Errno = 1646 + ERROR_UNKNOWN_PATCH syscall.Errno = 1647 + ERROR_PATCH_NO_SEQUENCE syscall.Errno = 1648 + ERROR_PATCH_REMOVAL_DISALLOWED syscall.Errno = 1649 + ERROR_INVALID_PATCH_XML syscall.Errno = 1650 + ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT syscall.Errno = 1651 + ERROR_INSTALL_SERVICE_SAFEBOOT syscall.Errno = 1652 + ERROR_FAIL_FAST_EXCEPTION syscall.Errno = 1653 + ERROR_INSTALL_REJECTED syscall.Errno = 1654 + ERROR_DYNAMIC_CODE_BLOCKED syscall.Errno = 1655 + ERROR_NOT_SAME_OBJECT syscall.Errno = 1656 + ERROR_STRICT_CFG_VIOLATION syscall.Errno = 1657 + ERROR_SET_CONTEXT_DENIED syscall.Errno = 1660 + ERROR_CROSS_PARTITION_VIOLATION syscall.Errno = 1661 + RPC_S_INVALID_STRING_BINDING syscall.Errno = 1700 + RPC_S_WRONG_KIND_OF_BINDING syscall.Errno = 1701 + RPC_S_INVALID_BINDING syscall.Errno = 1702 + RPC_S_PROTSEQ_NOT_SUPPORTED syscall.Errno = 1703 + RPC_S_INVALID_RPC_PROTSEQ syscall.Errno = 1704 + RPC_S_INVALID_STRING_UUID syscall.Errno = 1705 + RPC_S_INVALID_ENDPOINT_FORMAT syscall.Errno = 1706 + RPC_S_INVALID_NET_ADDR syscall.Errno = 1707 + RPC_S_NO_ENDPOINT_FOUND syscall.Errno = 1708 + RPC_S_INVALID_TIMEOUT syscall.Errno = 1709 + RPC_S_OBJECT_NOT_FOUND syscall.Errno = 1710 + RPC_S_ALREADY_REGISTERED syscall.Errno = 1711 + RPC_S_TYPE_ALREADY_REGISTERED syscall.Errno = 1712 + RPC_S_ALREADY_LISTENING syscall.Errno = 1713 + RPC_S_NO_PROTSEQS_REGISTERED syscall.Errno = 1714 + RPC_S_NOT_LISTENING syscall.Errno = 1715 + RPC_S_UNKNOWN_MGR_TYPE syscall.Errno = 1716 + RPC_S_UNKNOWN_IF syscall.Errno = 1717 + RPC_S_NO_BINDINGS syscall.Errno = 1718 + RPC_S_NO_PROTSEQS syscall.Errno = 1719 + RPC_S_CANT_CREATE_ENDPOINT syscall.Errno = 1720 + RPC_S_OUT_OF_RESOURCES syscall.Errno = 1721 + RPC_S_SERVER_UNAVAILABLE syscall.Errno = 1722 + RPC_S_SERVER_TOO_BUSY syscall.Errno = 1723 + RPC_S_INVALID_NETWORK_OPTIONS syscall.Errno = 1724 + RPC_S_NO_CALL_ACTIVE syscall.Errno = 1725 + RPC_S_CALL_FAILED syscall.Errno = 1726 + RPC_S_CALL_FAILED_DNE syscall.Errno = 1727 + RPC_S_PROTOCOL_ERROR syscall.Errno = 1728 + RPC_S_PROXY_ACCESS_DENIED syscall.Errno = 1729 + RPC_S_UNSUPPORTED_TRANS_SYN syscall.Errno = 1730 + RPC_S_UNSUPPORTED_TYPE syscall.Errno = 1732 + RPC_S_INVALID_TAG syscall.Errno = 1733 + RPC_S_INVALID_BOUND syscall.Errno = 1734 + RPC_S_NO_ENTRY_NAME syscall.Errno = 1735 + RPC_S_INVALID_NAME_SYNTAX syscall.Errno = 1736 + RPC_S_UNSUPPORTED_NAME_SYNTAX syscall.Errno = 1737 + RPC_S_UUID_NO_ADDRESS syscall.Errno = 1739 + RPC_S_DUPLICATE_ENDPOINT syscall.Errno = 1740 + RPC_S_UNKNOWN_AUTHN_TYPE syscall.Errno = 1741 + RPC_S_MAX_CALLS_TOO_SMALL syscall.Errno = 1742 + RPC_S_STRING_TOO_LONG syscall.Errno = 1743 + RPC_S_PROTSEQ_NOT_FOUND syscall.Errno = 1744 + RPC_S_PROCNUM_OUT_OF_RANGE syscall.Errno = 1745 + RPC_S_BINDING_HAS_NO_AUTH syscall.Errno = 1746 + RPC_S_UNKNOWN_AUTHN_SERVICE syscall.Errno = 1747 + RPC_S_UNKNOWN_AUTHN_LEVEL syscall.Errno = 1748 + RPC_S_INVALID_AUTH_IDENTITY syscall.Errno = 1749 + RPC_S_UNKNOWN_AUTHZ_SERVICE syscall.Errno = 1750 + EPT_S_INVALID_ENTRY syscall.Errno = 1751 + EPT_S_CANT_PERFORM_OP syscall.Errno = 1752 + EPT_S_NOT_REGISTERED syscall.Errno = 1753 + RPC_S_NOTHING_TO_EXPORT syscall.Errno = 1754 + RPC_S_INCOMPLETE_NAME syscall.Errno = 1755 + RPC_S_INVALID_VERS_OPTION syscall.Errno = 1756 + RPC_S_NO_MORE_MEMBERS syscall.Errno = 1757 + RPC_S_NOT_ALL_OBJS_UNEXPORTED syscall.Errno = 1758 + RPC_S_INTERFACE_NOT_FOUND syscall.Errno = 1759 + RPC_S_ENTRY_ALREADY_EXISTS syscall.Errno = 1760 + RPC_S_ENTRY_NOT_FOUND syscall.Errno = 1761 + RPC_S_NAME_SERVICE_UNAVAILABLE syscall.Errno = 1762 + RPC_S_INVALID_NAF_ID syscall.Errno = 1763 + RPC_S_CANNOT_SUPPORT syscall.Errno = 1764 + RPC_S_NO_CONTEXT_AVAILABLE syscall.Errno = 1765 + RPC_S_INTERNAL_ERROR syscall.Errno = 1766 + RPC_S_ZERO_DIVIDE syscall.Errno = 1767 + RPC_S_ADDRESS_ERROR syscall.Errno = 1768 + RPC_S_FP_DIV_ZERO syscall.Errno = 1769 + RPC_S_FP_UNDERFLOW syscall.Errno = 1770 + RPC_S_FP_OVERFLOW syscall.Errno = 1771 + RPC_X_NO_MORE_ENTRIES syscall.Errno = 1772 + RPC_X_SS_CHAR_TRANS_OPEN_FAIL syscall.Errno = 1773 + RPC_X_SS_CHAR_TRANS_SHORT_FILE syscall.Errno = 1774 + RPC_X_SS_IN_NULL_CONTEXT syscall.Errno = 1775 + RPC_X_SS_CONTEXT_DAMAGED syscall.Errno = 1777 + RPC_X_SS_HANDLES_MISMATCH syscall.Errno = 1778 + RPC_X_SS_CANNOT_GET_CALL_HANDLE syscall.Errno = 1779 + RPC_X_NULL_REF_POINTER syscall.Errno = 1780 + RPC_X_ENUM_VALUE_OUT_OF_RANGE syscall.Errno = 1781 + RPC_X_BYTE_COUNT_TOO_SMALL syscall.Errno = 1782 + RPC_X_BAD_STUB_DATA syscall.Errno = 1783 + ERROR_INVALID_USER_BUFFER syscall.Errno = 1784 + ERROR_UNRECOGNIZED_MEDIA syscall.Errno = 1785 + ERROR_NO_TRUST_LSA_SECRET syscall.Errno = 1786 + ERROR_NO_TRUST_SAM_ACCOUNT syscall.Errno = 1787 + ERROR_TRUSTED_DOMAIN_FAILURE syscall.Errno = 1788 + ERROR_TRUSTED_RELATIONSHIP_FAILURE syscall.Errno = 1789 + ERROR_TRUST_FAILURE syscall.Errno = 1790 + RPC_S_CALL_IN_PROGRESS syscall.Errno = 1791 + ERROR_NETLOGON_NOT_STARTED syscall.Errno = 1792 + ERROR_ACCOUNT_EXPIRED syscall.Errno = 1793 + ERROR_REDIRECTOR_HAS_OPEN_HANDLES syscall.Errno = 1794 + ERROR_PRINTER_DRIVER_ALREADY_INSTALLED syscall.Errno = 1795 + ERROR_UNKNOWN_PORT syscall.Errno = 1796 + ERROR_UNKNOWN_PRINTER_DRIVER syscall.Errno = 1797 + ERROR_UNKNOWN_PRINTPROCESSOR syscall.Errno = 1798 + ERROR_INVALID_SEPARATOR_FILE syscall.Errno = 1799 + ERROR_INVALID_PRIORITY syscall.Errno = 1800 + ERROR_INVALID_PRINTER_NAME syscall.Errno = 1801 + ERROR_PRINTER_ALREADY_EXISTS syscall.Errno = 1802 + ERROR_INVALID_PRINTER_COMMAND syscall.Errno = 1803 + ERROR_INVALID_DATATYPE syscall.Errno = 1804 + ERROR_INVALID_ENVIRONMENT syscall.Errno = 1805 + RPC_S_NO_MORE_BINDINGS syscall.Errno = 1806 + ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT syscall.Errno = 1807 + ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT syscall.Errno = 1808 + ERROR_NOLOGON_SERVER_TRUST_ACCOUNT syscall.Errno = 1809 + ERROR_DOMAIN_TRUST_INCONSISTENT syscall.Errno = 1810 + ERROR_SERVER_HAS_OPEN_HANDLES syscall.Errno = 1811 + ERROR_RESOURCE_DATA_NOT_FOUND syscall.Errno = 1812 + ERROR_RESOURCE_TYPE_NOT_FOUND syscall.Errno = 1813 + ERROR_RESOURCE_NAME_NOT_FOUND syscall.Errno = 1814 + ERROR_RESOURCE_LANG_NOT_FOUND syscall.Errno = 1815 + ERROR_NOT_ENOUGH_QUOTA syscall.Errno = 1816 + RPC_S_NO_INTERFACES syscall.Errno = 1817 + RPC_S_CALL_CANCELLED syscall.Errno = 1818 + RPC_S_BINDING_INCOMPLETE syscall.Errno = 1819 + RPC_S_COMM_FAILURE syscall.Errno = 1820 + RPC_S_UNSUPPORTED_AUTHN_LEVEL syscall.Errno = 1821 + RPC_S_NO_PRINC_NAME syscall.Errno = 1822 + RPC_S_NOT_RPC_ERROR syscall.Errno = 1823 + RPC_S_UUID_LOCAL_ONLY syscall.Errno = 1824 + RPC_S_SEC_PKG_ERROR syscall.Errno = 1825 + RPC_S_NOT_CANCELLED syscall.Errno = 1826 + RPC_X_INVALID_ES_ACTION syscall.Errno = 1827 + RPC_X_WRONG_ES_VERSION syscall.Errno = 1828 + RPC_X_WRONG_STUB_VERSION syscall.Errno = 1829 + RPC_X_INVALID_PIPE_OBJECT syscall.Errno = 1830 + RPC_X_WRONG_PIPE_ORDER syscall.Errno = 1831 + RPC_X_WRONG_PIPE_VERSION syscall.Errno = 1832 + RPC_S_COOKIE_AUTH_FAILED syscall.Errno = 1833 + RPC_S_DO_NOT_DISTURB syscall.Errno = 1834 + RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED syscall.Errno = 1835 + RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH syscall.Errno = 1836 + RPC_S_GROUP_MEMBER_NOT_FOUND syscall.Errno = 1898 + EPT_S_CANT_CREATE syscall.Errno = 1899 + RPC_S_INVALID_OBJECT syscall.Errno = 1900 + ERROR_INVALID_TIME syscall.Errno = 1901 + ERROR_INVALID_FORM_NAME syscall.Errno = 1902 + ERROR_INVALID_FORM_SIZE syscall.Errno = 1903 + ERROR_ALREADY_WAITING syscall.Errno = 1904 + ERROR_PRINTER_DELETED syscall.Errno = 1905 + ERROR_INVALID_PRINTER_STATE syscall.Errno = 1906 + ERROR_PASSWORD_MUST_CHANGE syscall.Errno = 1907 + ERROR_DOMAIN_CONTROLLER_NOT_FOUND syscall.Errno = 1908 + ERROR_ACCOUNT_LOCKED_OUT syscall.Errno = 1909 + OR_INVALID_OXID syscall.Errno = 1910 + OR_INVALID_OID syscall.Errno = 1911 + OR_INVALID_SET syscall.Errno = 1912 + RPC_S_SEND_INCOMPLETE syscall.Errno = 1913 + RPC_S_INVALID_ASYNC_HANDLE syscall.Errno = 1914 + RPC_S_INVALID_ASYNC_CALL syscall.Errno = 1915 + RPC_X_PIPE_CLOSED syscall.Errno = 1916 + RPC_X_PIPE_DISCIPLINE_ERROR syscall.Errno = 1917 + RPC_X_PIPE_EMPTY syscall.Errno = 1918 + ERROR_NO_SITENAME syscall.Errno = 1919 + ERROR_CANT_ACCESS_FILE syscall.Errno = 1920 + ERROR_CANT_RESOLVE_FILENAME syscall.Errno = 1921 + RPC_S_ENTRY_TYPE_MISMATCH syscall.Errno = 1922 + RPC_S_NOT_ALL_OBJS_EXPORTED syscall.Errno = 1923 + RPC_S_INTERFACE_NOT_EXPORTED syscall.Errno = 1924 + RPC_S_PROFILE_NOT_ADDED syscall.Errno = 1925 + RPC_S_PRF_ELT_NOT_ADDED syscall.Errno = 1926 + RPC_S_PRF_ELT_NOT_REMOVED syscall.Errno = 1927 + RPC_S_GRP_ELT_NOT_ADDED syscall.Errno = 1928 + RPC_S_GRP_ELT_NOT_REMOVED syscall.Errno = 1929 + ERROR_KM_DRIVER_BLOCKED syscall.Errno = 1930 + ERROR_CONTEXT_EXPIRED syscall.Errno = 1931 + ERROR_PER_USER_TRUST_QUOTA_EXCEEDED syscall.Errno = 1932 + ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED syscall.Errno = 1933 + ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED syscall.Errno = 1934 + ERROR_AUTHENTICATION_FIREWALL_FAILED syscall.Errno = 1935 + ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED syscall.Errno = 1936 + ERROR_NTLM_BLOCKED syscall.Errno = 1937 + ERROR_PASSWORD_CHANGE_REQUIRED syscall.Errno = 1938 + ERROR_LOST_MODE_LOGON_RESTRICTION syscall.Errno = 1939 + ERROR_INVALID_PIXEL_FORMAT syscall.Errno = 2000 + ERROR_BAD_DRIVER syscall.Errno = 2001 + ERROR_INVALID_WINDOW_STYLE syscall.Errno = 2002 + ERROR_METAFILE_NOT_SUPPORTED syscall.Errno = 2003 + ERROR_TRANSFORM_NOT_SUPPORTED syscall.Errno = 2004 + ERROR_CLIPPING_NOT_SUPPORTED syscall.Errno = 2005 + ERROR_INVALID_CMM syscall.Errno = 2010 + ERROR_INVALID_PROFILE syscall.Errno = 2011 + ERROR_TAG_NOT_FOUND syscall.Errno = 2012 + ERROR_TAG_NOT_PRESENT syscall.Errno = 2013 + ERROR_DUPLICATE_TAG syscall.Errno = 2014 + ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE syscall.Errno = 2015 + ERROR_PROFILE_NOT_FOUND syscall.Errno = 2016 + ERROR_INVALID_COLORSPACE syscall.Errno = 2017 + ERROR_ICM_NOT_ENABLED syscall.Errno = 2018 + ERROR_DELETING_ICM_XFORM syscall.Errno = 2019 + ERROR_INVALID_TRANSFORM syscall.Errno = 2020 + ERROR_COLORSPACE_MISMATCH syscall.Errno = 2021 + ERROR_INVALID_COLORINDEX syscall.Errno = 2022 + ERROR_PROFILE_DOES_NOT_MATCH_DEVICE syscall.Errno = 2023 + ERROR_CONNECTED_OTHER_PASSWORD syscall.Errno = 2108 + ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT syscall.Errno = 2109 + ERROR_BAD_USERNAME syscall.Errno = 2202 + ERROR_NOT_CONNECTED syscall.Errno = 2250 + ERROR_OPEN_FILES syscall.Errno = 2401 + ERROR_ACTIVE_CONNECTIONS syscall.Errno = 2402 + ERROR_DEVICE_IN_USE syscall.Errno = 2404 + ERROR_UNKNOWN_PRINT_MONITOR syscall.Errno = 3000 + ERROR_PRINTER_DRIVER_IN_USE syscall.Errno = 3001 + ERROR_SPOOL_FILE_NOT_FOUND syscall.Errno = 3002 + ERROR_SPL_NO_STARTDOC syscall.Errno = 3003 + ERROR_SPL_NO_ADDJOB syscall.Errno = 3004 + ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED syscall.Errno = 3005 + ERROR_PRINT_MONITOR_ALREADY_INSTALLED syscall.Errno = 3006 + ERROR_INVALID_PRINT_MONITOR syscall.Errno = 3007 + ERROR_PRINT_MONITOR_IN_USE syscall.Errno = 3008 + ERROR_PRINTER_HAS_JOBS_QUEUED syscall.Errno = 3009 + ERROR_SUCCESS_REBOOT_REQUIRED syscall.Errno = 3010 + ERROR_SUCCESS_RESTART_REQUIRED syscall.Errno = 3011 + ERROR_PRINTER_NOT_FOUND syscall.Errno = 3012 + ERROR_PRINTER_DRIVER_WARNED syscall.Errno = 3013 + ERROR_PRINTER_DRIVER_BLOCKED syscall.Errno = 3014 + ERROR_PRINTER_DRIVER_PACKAGE_IN_USE syscall.Errno = 3015 + ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND syscall.Errno = 3016 + ERROR_FAIL_REBOOT_REQUIRED syscall.Errno = 3017 + ERROR_FAIL_REBOOT_INITIATED syscall.Errno = 3018 + ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED syscall.Errno = 3019 + ERROR_PRINT_JOB_RESTART_REQUIRED syscall.Errno = 3020 + ERROR_INVALID_PRINTER_DRIVER_MANIFEST syscall.Errno = 3021 + ERROR_PRINTER_NOT_SHAREABLE syscall.Errno = 3022 + ERROR_REQUEST_PAUSED syscall.Errno = 3050 + ERROR_APPEXEC_CONDITION_NOT_SATISFIED syscall.Errno = 3060 + ERROR_APPEXEC_HANDLE_INVALIDATED syscall.Errno = 3061 + ERROR_APPEXEC_INVALID_HOST_GENERATION syscall.Errno = 3062 + ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION syscall.Errno = 3063 + ERROR_APPEXEC_INVALID_HOST_STATE syscall.Errno = 3064 + ERROR_APPEXEC_NO_DONOR syscall.Errno = 3065 + ERROR_APPEXEC_HOST_ID_MISMATCH syscall.Errno = 3066 + ERROR_APPEXEC_UNKNOWN_USER syscall.Errno = 3067 + ERROR_IO_REISSUE_AS_CACHED syscall.Errno = 3950 + ERROR_WINS_INTERNAL syscall.Errno = 4000 + ERROR_CAN_NOT_DEL_LOCAL_WINS syscall.Errno = 4001 + ERROR_STATIC_INIT syscall.Errno = 4002 + ERROR_INC_BACKUP syscall.Errno = 4003 + ERROR_FULL_BACKUP syscall.Errno = 4004 + ERROR_REC_NON_EXISTENT syscall.Errno = 4005 + ERROR_RPL_NOT_ALLOWED syscall.Errno = 4006 + PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED syscall.Errno = 4050 + PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO syscall.Errno = 4051 + PEERDIST_ERROR_MISSING_DATA syscall.Errno = 4052 + PEERDIST_ERROR_NO_MORE syscall.Errno = 4053 + PEERDIST_ERROR_NOT_INITIALIZED syscall.Errno = 4054 + PEERDIST_ERROR_ALREADY_INITIALIZED syscall.Errno = 4055 + PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS syscall.Errno = 4056 + PEERDIST_ERROR_INVALIDATED syscall.Errno = 4057 + PEERDIST_ERROR_ALREADY_EXISTS syscall.Errno = 4058 + PEERDIST_ERROR_OPERATION_NOTFOUND syscall.Errno = 4059 + PEERDIST_ERROR_ALREADY_COMPLETED syscall.Errno = 4060 + PEERDIST_ERROR_OUT_OF_BOUNDS syscall.Errno = 4061 + PEERDIST_ERROR_VERSION_UNSUPPORTED syscall.Errno = 4062 + PEERDIST_ERROR_INVALID_CONFIGURATION syscall.Errno = 4063 + PEERDIST_ERROR_NOT_LICENSED syscall.Errno = 4064 + PEERDIST_ERROR_SERVICE_UNAVAILABLE syscall.Errno = 4065 + PEERDIST_ERROR_TRUST_FAILURE syscall.Errno = 4066 + ERROR_DHCP_ADDRESS_CONFLICT syscall.Errno = 4100 + ERROR_WMI_GUID_NOT_FOUND syscall.Errno = 4200 + ERROR_WMI_INSTANCE_NOT_FOUND syscall.Errno = 4201 + ERROR_WMI_ITEMID_NOT_FOUND syscall.Errno = 4202 + ERROR_WMI_TRY_AGAIN syscall.Errno = 4203 + ERROR_WMI_DP_NOT_FOUND syscall.Errno = 4204 + ERROR_WMI_UNRESOLVED_INSTANCE_REF syscall.Errno = 4205 + ERROR_WMI_ALREADY_ENABLED syscall.Errno = 4206 + ERROR_WMI_GUID_DISCONNECTED syscall.Errno = 4207 + ERROR_WMI_SERVER_UNAVAILABLE syscall.Errno = 4208 + ERROR_WMI_DP_FAILED syscall.Errno = 4209 + ERROR_WMI_INVALID_MOF syscall.Errno = 4210 + ERROR_WMI_INVALID_REGINFO syscall.Errno = 4211 + ERROR_WMI_ALREADY_DISABLED syscall.Errno = 4212 + ERROR_WMI_READ_ONLY syscall.Errno = 4213 + ERROR_WMI_SET_FAILURE syscall.Errno = 4214 + ERROR_NOT_APPCONTAINER syscall.Errno = 4250 + ERROR_APPCONTAINER_REQUIRED syscall.Errno = 4251 + ERROR_NOT_SUPPORTED_IN_APPCONTAINER syscall.Errno = 4252 + ERROR_INVALID_PACKAGE_SID_LENGTH syscall.Errno = 4253 + ERROR_INVALID_MEDIA syscall.Errno = 4300 + ERROR_INVALID_LIBRARY syscall.Errno = 4301 + ERROR_INVALID_MEDIA_POOL syscall.Errno = 4302 + ERROR_DRIVE_MEDIA_MISMATCH syscall.Errno = 4303 + ERROR_MEDIA_OFFLINE syscall.Errno = 4304 + ERROR_LIBRARY_OFFLINE syscall.Errno = 4305 + ERROR_EMPTY syscall.Errno = 4306 + ERROR_NOT_EMPTY syscall.Errno = 4307 + ERROR_MEDIA_UNAVAILABLE syscall.Errno = 4308 + ERROR_RESOURCE_DISABLED syscall.Errno = 4309 + ERROR_INVALID_CLEANER syscall.Errno = 4310 + ERROR_UNABLE_TO_CLEAN syscall.Errno = 4311 + ERROR_OBJECT_NOT_FOUND syscall.Errno = 4312 + ERROR_DATABASE_FAILURE syscall.Errno = 4313 + ERROR_DATABASE_FULL syscall.Errno = 4314 + ERROR_MEDIA_INCOMPATIBLE syscall.Errno = 4315 + ERROR_RESOURCE_NOT_PRESENT syscall.Errno = 4316 + ERROR_INVALID_OPERATION syscall.Errno = 4317 + ERROR_MEDIA_NOT_AVAILABLE syscall.Errno = 4318 + ERROR_DEVICE_NOT_AVAILABLE syscall.Errno = 4319 + ERROR_REQUEST_REFUSED syscall.Errno = 4320 + ERROR_INVALID_DRIVE_OBJECT syscall.Errno = 4321 + ERROR_LIBRARY_FULL syscall.Errno = 4322 + ERROR_MEDIUM_NOT_ACCESSIBLE syscall.Errno = 4323 + ERROR_UNABLE_TO_LOAD_MEDIUM syscall.Errno = 4324 + ERROR_UNABLE_TO_INVENTORY_DRIVE syscall.Errno = 4325 + ERROR_UNABLE_TO_INVENTORY_SLOT syscall.Errno = 4326 + ERROR_UNABLE_TO_INVENTORY_TRANSPORT syscall.Errno = 4327 + ERROR_TRANSPORT_FULL syscall.Errno = 4328 + ERROR_CONTROLLING_IEPORT syscall.Errno = 4329 + ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA syscall.Errno = 4330 + ERROR_CLEANER_SLOT_SET syscall.Errno = 4331 + ERROR_CLEANER_SLOT_NOT_SET syscall.Errno = 4332 + ERROR_CLEANER_CARTRIDGE_SPENT syscall.Errno = 4333 + ERROR_UNEXPECTED_OMID syscall.Errno = 4334 + ERROR_CANT_DELETE_LAST_ITEM syscall.Errno = 4335 + ERROR_MESSAGE_EXCEEDS_MAX_SIZE syscall.Errno = 4336 + ERROR_VOLUME_CONTAINS_SYS_FILES syscall.Errno = 4337 + ERROR_INDIGENOUS_TYPE syscall.Errno = 4338 + ERROR_NO_SUPPORTING_DRIVES syscall.Errno = 4339 + ERROR_CLEANER_CARTRIDGE_INSTALLED syscall.Errno = 4340 + ERROR_IEPORT_FULL syscall.Errno = 4341 + ERROR_FILE_OFFLINE syscall.Errno = 4350 + ERROR_REMOTE_STORAGE_NOT_ACTIVE syscall.Errno = 4351 + ERROR_REMOTE_STORAGE_MEDIA_ERROR syscall.Errno = 4352 + ERROR_NOT_A_REPARSE_POINT syscall.Errno = 4390 + ERROR_REPARSE_ATTRIBUTE_CONFLICT syscall.Errno = 4391 + ERROR_INVALID_REPARSE_DATA syscall.Errno = 4392 + ERROR_REPARSE_TAG_INVALID syscall.Errno = 4393 + ERROR_REPARSE_TAG_MISMATCH syscall.Errno = 4394 + ERROR_REPARSE_POINT_ENCOUNTERED syscall.Errno = 4395 + ERROR_APP_DATA_NOT_FOUND syscall.Errno = 4400 + ERROR_APP_DATA_EXPIRED syscall.Errno = 4401 + ERROR_APP_DATA_CORRUPT syscall.Errno = 4402 + ERROR_APP_DATA_LIMIT_EXCEEDED syscall.Errno = 4403 + ERROR_APP_DATA_REBOOT_REQUIRED syscall.Errno = 4404 + ERROR_SECUREBOOT_ROLLBACK_DETECTED syscall.Errno = 4420 + ERROR_SECUREBOOT_POLICY_VIOLATION syscall.Errno = 4421 + ERROR_SECUREBOOT_INVALID_POLICY syscall.Errno = 4422 + ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND syscall.Errno = 4423 + ERROR_SECUREBOOT_POLICY_NOT_SIGNED syscall.Errno = 4424 + ERROR_SECUREBOOT_NOT_ENABLED syscall.Errno = 4425 + ERROR_SECUREBOOT_FILE_REPLACED syscall.Errno = 4426 + ERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED syscall.Errno = 4427 + ERROR_SECUREBOOT_POLICY_UNKNOWN syscall.Errno = 4428 + ERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION syscall.Errno = 4429 + ERROR_SECUREBOOT_PLATFORM_ID_MISMATCH syscall.Errno = 4430 + ERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED syscall.Errno = 4431 + ERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH syscall.Errno = 4432 + ERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING syscall.Errno = 4433 + ERROR_SECUREBOOT_NOT_BASE_POLICY syscall.Errno = 4434 + ERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY syscall.Errno = 4435 + ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED syscall.Errno = 4440 + ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED syscall.Errno = 4441 + ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED syscall.Errno = 4442 + ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED syscall.Errno = 4443 + ERROR_ALREADY_HAS_STREAM_ID syscall.Errno = 4444 + ERROR_SMR_GARBAGE_COLLECTION_REQUIRED syscall.Errno = 4445 + ERROR_WOF_WIM_HEADER_CORRUPT syscall.Errno = 4446 + ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT syscall.Errno = 4447 + ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT syscall.Errno = 4448 + ERROR_VOLUME_NOT_SIS_ENABLED syscall.Errno = 4500 + ERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED syscall.Errno = 4550 + ERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION syscall.Errno = 4551 + ERROR_SYSTEM_INTEGRITY_INVALID_POLICY syscall.Errno = 4552 + ERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED syscall.Errno = 4553 + ERROR_SYSTEM_INTEGRITY_TOO_MANY_POLICIES syscall.Errno = 4554 + ERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED syscall.Errno = 4555 + ERROR_VSM_NOT_INITIALIZED syscall.Errno = 4560 + ERROR_VSM_DMA_PROTECTION_NOT_IN_USE syscall.Errno = 4561 + ERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED syscall.Errno = 4570 + ERROR_PLATFORM_MANIFEST_INVALID syscall.Errno = 4571 + ERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED syscall.Errno = 4572 + ERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED syscall.Errno = 4573 + ERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND syscall.Errno = 4574 + ERROR_PLATFORM_MANIFEST_NOT_ACTIVE syscall.Errno = 4575 + ERROR_PLATFORM_MANIFEST_NOT_SIGNED syscall.Errno = 4576 + ERROR_DEPENDENT_RESOURCE_EXISTS syscall.Errno = 5001 + ERROR_DEPENDENCY_NOT_FOUND syscall.Errno = 5002 + ERROR_DEPENDENCY_ALREADY_EXISTS syscall.Errno = 5003 + ERROR_RESOURCE_NOT_ONLINE syscall.Errno = 5004 + ERROR_HOST_NODE_NOT_AVAILABLE syscall.Errno = 5005 + ERROR_RESOURCE_NOT_AVAILABLE syscall.Errno = 5006 + ERROR_RESOURCE_NOT_FOUND syscall.Errno = 5007 + ERROR_SHUTDOWN_CLUSTER syscall.Errno = 5008 + ERROR_CANT_EVICT_ACTIVE_NODE syscall.Errno = 5009 + ERROR_OBJECT_ALREADY_EXISTS syscall.Errno = 5010 + ERROR_OBJECT_IN_LIST syscall.Errno = 5011 + ERROR_GROUP_NOT_AVAILABLE syscall.Errno = 5012 + ERROR_GROUP_NOT_FOUND syscall.Errno = 5013 + ERROR_GROUP_NOT_ONLINE syscall.Errno = 5014 + ERROR_HOST_NODE_NOT_RESOURCE_OWNER syscall.Errno = 5015 + ERROR_HOST_NODE_NOT_GROUP_OWNER syscall.Errno = 5016 + ERROR_RESMON_CREATE_FAILED syscall.Errno = 5017 + ERROR_RESMON_ONLINE_FAILED syscall.Errno = 5018 + ERROR_RESOURCE_ONLINE syscall.Errno = 5019 + ERROR_QUORUM_RESOURCE syscall.Errno = 5020 + ERROR_NOT_QUORUM_CAPABLE syscall.Errno = 5021 + ERROR_CLUSTER_SHUTTING_DOWN syscall.Errno = 5022 + ERROR_INVALID_STATE syscall.Errno = 5023 + ERROR_RESOURCE_PROPERTIES_STORED syscall.Errno = 5024 + ERROR_NOT_QUORUM_CLASS syscall.Errno = 5025 + ERROR_CORE_RESOURCE syscall.Errno = 5026 + ERROR_QUORUM_RESOURCE_ONLINE_FAILED syscall.Errno = 5027 + ERROR_QUORUMLOG_OPEN_FAILED syscall.Errno = 5028 + ERROR_CLUSTERLOG_CORRUPT syscall.Errno = 5029 + ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE syscall.Errno = 5030 + ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE syscall.Errno = 5031 + ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND syscall.Errno = 5032 + ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE syscall.Errno = 5033 + ERROR_QUORUM_OWNER_ALIVE syscall.Errno = 5034 + ERROR_NETWORK_NOT_AVAILABLE syscall.Errno = 5035 + ERROR_NODE_NOT_AVAILABLE syscall.Errno = 5036 + ERROR_ALL_NODES_NOT_AVAILABLE syscall.Errno = 5037 + ERROR_RESOURCE_FAILED syscall.Errno = 5038 + ERROR_CLUSTER_INVALID_NODE syscall.Errno = 5039 + ERROR_CLUSTER_NODE_EXISTS syscall.Errno = 5040 + ERROR_CLUSTER_JOIN_IN_PROGRESS syscall.Errno = 5041 + ERROR_CLUSTER_NODE_NOT_FOUND syscall.Errno = 5042 + ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND syscall.Errno = 5043 + ERROR_CLUSTER_NETWORK_EXISTS syscall.Errno = 5044 + ERROR_CLUSTER_NETWORK_NOT_FOUND syscall.Errno = 5045 + ERROR_CLUSTER_NETINTERFACE_EXISTS syscall.Errno = 5046 + ERROR_CLUSTER_NETINTERFACE_NOT_FOUND syscall.Errno = 5047 + ERROR_CLUSTER_INVALID_REQUEST syscall.Errno = 5048 + ERROR_CLUSTER_INVALID_NETWORK_PROVIDER syscall.Errno = 5049 + ERROR_CLUSTER_NODE_DOWN syscall.Errno = 5050 + ERROR_CLUSTER_NODE_UNREACHABLE syscall.Errno = 5051 + ERROR_CLUSTER_NODE_NOT_MEMBER syscall.Errno = 5052 + ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS syscall.Errno = 5053 + ERROR_CLUSTER_INVALID_NETWORK syscall.Errno = 5054 + ERROR_CLUSTER_NODE_UP syscall.Errno = 5056 + ERROR_CLUSTER_IPADDR_IN_USE syscall.Errno = 5057 + ERROR_CLUSTER_NODE_NOT_PAUSED syscall.Errno = 5058 + ERROR_CLUSTER_NO_SECURITY_CONTEXT syscall.Errno = 5059 + ERROR_CLUSTER_NETWORK_NOT_INTERNAL syscall.Errno = 5060 + ERROR_CLUSTER_NODE_ALREADY_UP syscall.Errno = 5061 + ERROR_CLUSTER_NODE_ALREADY_DOWN syscall.Errno = 5062 + ERROR_CLUSTER_NETWORK_ALREADY_ONLINE syscall.Errno = 5063 + ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE syscall.Errno = 5064 + ERROR_CLUSTER_NODE_ALREADY_MEMBER syscall.Errno = 5065 + ERROR_CLUSTER_LAST_INTERNAL_NETWORK syscall.Errno = 5066 + ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS syscall.Errno = 5067 + ERROR_INVALID_OPERATION_ON_QUORUM syscall.Errno = 5068 + ERROR_DEPENDENCY_NOT_ALLOWED syscall.Errno = 5069 + ERROR_CLUSTER_NODE_PAUSED syscall.Errno = 5070 + ERROR_NODE_CANT_HOST_RESOURCE syscall.Errno = 5071 + ERROR_CLUSTER_NODE_NOT_READY syscall.Errno = 5072 + ERROR_CLUSTER_NODE_SHUTTING_DOWN syscall.Errno = 5073 + ERROR_CLUSTER_JOIN_ABORTED syscall.Errno = 5074 + ERROR_CLUSTER_INCOMPATIBLE_VERSIONS syscall.Errno = 5075 + ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED syscall.Errno = 5076 + ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED syscall.Errno = 5077 + ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND syscall.Errno = 5078 + ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED syscall.Errno = 5079 + ERROR_CLUSTER_RESNAME_NOT_FOUND syscall.Errno = 5080 + ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED syscall.Errno = 5081 + ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST syscall.Errno = 5082 + ERROR_CLUSTER_DATABASE_SEQMISMATCH syscall.Errno = 5083 + ERROR_RESMON_INVALID_STATE syscall.Errno = 5084 + ERROR_CLUSTER_GUM_NOT_LOCKER syscall.Errno = 5085 + ERROR_QUORUM_DISK_NOT_FOUND syscall.Errno = 5086 + ERROR_DATABASE_BACKUP_CORRUPT syscall.Errno = 5087 + ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT syscall.Errno = 5088 + ERROR_RESOURCE_PROPERTY_UNCHANGEABLE syscall.Errno = 5089 + ERROR_NO_ADMIN_ACCESS_POINT syscall.Errno = 5090 + ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE syscall.Errno = 5890 + ERROR_CLUSTER_QUORUMLOG_NOT_FOUND syscall.Errno = 5891 + ERROR_CLUSTER_MEMBERSHIP_HALT syscall.Errno = 5892 + ERROR_CLUSTER_INSTANCE_ID_MISMATCH syscall.Errno = 5893 + ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP syscall.Errno = 5894 + ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH syscall.Errno = 5895 + ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP syscall.Errno = 5896 + ERROR_CLUSTER_PARAMETER_MISMATCH syscall.Errno = 5897 + ERROR_NODE_CANNOT_BE_CLUSTERED syscall.Errno = 5898 + ERROR_CLUSTER_WRONG_OS_VERSION syscall.Errno = 5899 + ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME syscall.Errno = 5900 + ERROR_CLUSCFG_ALREADY_COMMITTED syscall.Errno = 5901 + ERROR_CLUSCFG_ROLLBACK_FAILED syscall.Errno = 5902 + ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT syscall.Errno = 5903 + ERROR_CLUSTER_OLD_VERSION syscall.Errno = 5904 + ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME syscall.Errno = 5905 + ERROR_CLUSTER_NO_NET_ADAPTERS syscall.Errno = 5906 + ERROR_CLUSTER_POISONED syscall.Errno = 5907 + ERROR_CLUSTER_GROUP_MOVING syscall.Errno = 5908 + ERROR_CLUSTER_RESOURCE_TYPE_BUSY syscall.Errno = 5909 + ERROR_RESOURCE_CALL_TIMED_OUT syscall.Errno = 5910 + ERROR_INVALID_CLUSTER_IPV6_ADDRESS syscall.Errno = 5911 + ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION syscall.Errno = 5912 + ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS syscall.Errno = 5913 + ERROR_CLUSTER_PARTIAL_SEND syscall.Errno = 5914 + ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION syscall.Errno = 5915 + ERROR_CLUSTER_INVALID_STRING_TERMINATION syscall.Errno = 5916 + ERROR_CLUSTER_INVALID_STRING_FORMAT syscall.Errno = 5917 + ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS syscall.Errno = 5918 + ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS syscall.Errno = 5919 + ERROR_CLUSTER_NULL_DATA syscall.Errno = 5920 + ERROR_CLUSTER_PARTIAL_READ syscall.Errno = 5921 + ERROR_CLUSTER_PARTIAL_WRITE syscall.Errno = 5922 + ERROR_CLUSTER_CANT_DESERIALIZE_DATA syscall.Errno = 5923 + ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT syscall.Errno = 5924 + ERROR_CLUSTER_NO_QUORUM syscall.Errno = 5925 + ERROR_CLUSTER_INVALID_IPV6_NETWORK syscall.Errno = 5926 + ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK syscall.Errno = 5927 + ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP syscall.Errno = 5928 + ERROR_DEPENDENCY_TREE_TOO_COMPLEX syscall.Errno = 5929 + ERROR_EXCEPTION_IN_RESOURCE_CALL syscall.Errno = 5930 + ERROR_CLUSTER_RHS_FAILED_INITIALIZATION syscall.Errno = 5931 + ERROR_CLUSTER_NOT_INSTALLED syscall.Errno = 5932 + ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE syscall.Errno = 5933 + ERROR_CLUSTER_MAX_NODES_IN_CLUSTER syscall.Errno = 5934 + ERROR_CLUSTER_TOO_MANY_NODES syscall.Errno = 5935 + ERROR_CLUSTER_OBJECT_ALREADY_USED syscall.Errno = 5936 + ERROR_NONCORE_GROUPS_FOUND syscall.Errno = 5937 + ERROR_FILE_SHARE_RESOURCE_CONFLICT syscall.Errno = 5938 + ERROR_CLUSTER_EVICT_INVALID_REQUEST syscall.Errno = 5939 + ERROR_CLUSTER_SINGLETON_RESOURCE syscall.Errno = 5940 + ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE syscall.Errno = 5941 + ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED syscall.Errno = 5942 + ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR syscall.Errno = 5943 + ERROR_CLUSTER_GROUP_BUSY syscall.Errno = 5944 + ERROR_CLUSTER_NOT_SHARED_VOLUME syscall.Errno = 5945 + ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR syscall.Errno = 5946 + ERROR_CLUSTER_SHARED_VOLUMES_IN_USE syscall.Errno = 5947 + ERROR_CLUSTER_USE_SHARED_VOLUMES_API syscall.Errno = 5948 + ERROR_CLUSTER_BACKUP_IN_PROGRESS syscall.Errno = 5949 + ERROR_NON_CSV_PATH syscall.Errno = 5950 + ERROR_CSV_VOLUME_NOT_LOCAL syscall.Errno = 5951 + ERROR_CLUSTER_WATCHDOG_TERMINATING syscall.Errno = 5952 + ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES syscall.Errno = 5953 + ERROR_CLUSTER_INVALID_NODE_WEIGHT syscall.Errno = 5954 + ERROR_CLUSTER_RESOURCE_VETOED_CALL syscall.Errno = 5955 + ERROR_RESMON_SYSTEM_RESOURCES_LACKING syscall.Errno = 5956 + ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION syscall.Errno = 5957 + ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE syscall.Errno = 5958 + ERROR_CLUSTER_GROUP_QUEUED syscall.Errno = 5959 + ERROR_CLUSTER_RESOURCE_LOCKED_STATUS syscall.Errno = 5960 + ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED syscall.Errno = 5961 + ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS syscall.Errno = 5962 + ERROR_CLUSTER_DISK_NOT_CONNECTED syscall.Errno = 5963 + ERROR_DISK_NOT_CSV_CAPABLE syscall.Errno = 5964 + ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE syscall.Errno = 5965 + ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED syscall.Errno = 5966 + ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED syscall.Errno = 5967 + ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES syscall.Errno = 5968 + ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES syscall.Errno = 5969 + ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE syscall.Errno = 5970 + ERROR_CLUSTER_AFFINITY_CONFLICT syscall.Errno = 5971 + ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE syscall.Errno = 5972 + ERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS syscall.Errno = 5973 + ERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED syscall.Errno = 5974 + ERROR_CLUSTER_UPGRADE_RESTART_REQUIRED syscall.Errno = 5975 + ERROR_CLUSTER_UPGRADE_IN_PROGRESS syscall.Errno = 5976 + ERROR_CLUSTER_UPGRADE_INCOMPLETE syscall.Errno = 5977 + ERROR_CLUSTER_NODE_IN_GRACE_PERIOD syscall.Errno = 5978 + ERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT syscall.Errno = 5979 + ERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER syscall.Errno = 5980 + ERROR_CLUSTER_RESOURCE_NOT_MONITORED syscall.Errno = 5981 + ERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED syscall.Errno = 5982 + ERROR_CLUSTER_RESOURCE_IS_REPLICATED syscall.Errno = 5983 + ERROR_CLUSTER_NODE_ISOLATED syscall.Errno = 5984 + ERROR_CLUSTER_NODE_QUARANTINED syscall.Errno = 5985 + ERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED syscall.Errno = 5986 + ERROR_CLUSTER_SPACE_DEGRADED syscall.Errno = 5987 + ERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED syscall.Errno = 5988 + ERROR_CLUSTER_CSV_INVALID_HANDLE syscall.Errno = 5989 + ERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR syscall.Errno = 5990 + ERROR_GROUPSET_NOT_AVAILABLE syscall.Errno = 5991 + ERROR_GROUPSET_NOT_FOUND syscall.Errno = 5992 + ERROR_GROUPSET_CANT_PROVIDE syscall.Errno = 5993 + ERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND syscall.Errno = 5994 + ERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY syscall.Errno = 5995 + ERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION syscall.Errno = 5996 + ERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS syscall.Errno = 5997 + ERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME syscall.Errno = 5998 + ERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE syscall.Errno = 5999 + ERROR_ENCRYPTION_FAILED syscall.Errno = 6000 + ERROR_DECRYPTION_FAILED syscall.Errno = 6001 + ERROR_FILE_ENCRYPTED syscall.Errno = 6002 + ERROR_NO_RECOVERY_POLICY syscall.Errno = 6003 + ERROR_NO_EFS syscall.Errno = 6004 + ERROR_WRONG_EFS syscall.Errno = 6005 + ERROR_NO_USER_KEYS syscall.Errno = 6006 + ERROR_FILE_NOT_ENCRYPTED syscall.Errno = 6007 + ERROR_NOT_EXPORT_FORMAT syscall.Errno = 6008 + ERROR_FILE_READ_ONLY syscall.Errno = 6009 + ERROR_DIR_EFS_DISALLOWED syscall.Errno = 6010 + ERROR_EFS_SERVER_NOT_TRUSTED syscall.Errno = 6011 + ERROR_BAD_RECOVERY_POLICY syscall.Errno = 6012 + ERROR_EFS_ALG_BLOB_TOO_BIG syscall.Errno = 6013 + ERROR_VOLUME_NOT_SUPPORT_EFS syscall.Errno = 6014 + ERROR_EFS_DISABLED syscall.Errno = 6015 + ERROR_EFS_VERSION_NOT_SUPPORT syscall.Errno = 6016 + ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE syscall.Errno = 6017 + ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER syscall.Errno = 6018 + ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE syscall.Errno = 6019 + ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE syscall.Errno = 6020 + ERROR_CS_ENCRYPTION_FILE_NOT_CSE syscall.Errno = 6021 + ERROR_ENCRYPTION_POLICY_DENIES_OPERATION syscall.Errno = 6022 + ERROR_WIP_ENCRYPTION_FAILED syscall.Errno = 6023 + ERROR_NO_BROWSER_SERVERS_FOUND syscall.Errno = 6118 + SCHED_E_SERVICE_NOT_LOCALSYSTEM syscall.Errno = 6200 + ERROR_LOG_SECTOR_INVALID syscall.Errno = 6600 + ERROR_LOG_SECTOR_PARITY_INVALID syscall.Errno = 6601 + ERROR_LOG_SECTOR_REMAPPED syscall.Errno = 6602 + ERROR_LOG_BLOCK_INCOMPLETE syscall.Errno = 6603 + ERROR_LOG_INVALID_RANGE syscall.Errno = 6604 + ERROR_LOG_BLOCKS_EXHAUSTED syscall.Errno = 6605 + ERROR_LOG_READ_CONTEXT_INVALID syscall.Errno = 6606 + ERROR_LOG_RESTART_INVALID syscall.Errno = 6607 + ERROR_LOG_BLOCK_VERSION syscall.Errno = 6608 + ERROR_LOG_BLOCK_INVALID syscall.Errno = 6609 + ERROR_LOG_READ_MODE_INVALID syscall.Errno = 6610 + ERROR_LOG_NO_RESTART syscall.Errno = 6611 + ERROR_LOG_METADATA_CORRUPT syscall.Errno = 6612 + ERROR_LOG_METADATA_INVALID syscall.Errno = 6613 + ERROR_LOG_METADATA_INCONSISTENT syscall.Errno = 6614 + ERROR_LOG_RESERVATION_INVALID syscall.Errno = 6615 + ERROR_LOG_CANT_DELETE syscall.Errno = 6616 + ERROR_LOG_CONTAINER_LIMIT_EXCEEDED syscall.Errno = 6617 + ERROR_LOG_START_OF_LOG syscall.Errno = 6618 + ERROR_LOG_POLICY_ALREADY_INSTALLED syscall.Errno = 6619 + ERROR_LOG_POLICY_NOT_INSTALLED syscall.Errno = 6620 + ERROR_LOG_POLICY_INVALID syscall.Errno = 6621 + ERROR_LOG_POLICY_CONFLICT syscall.Errno = 6622 + ERROR_LOG_PINNED_ARCHIVE_TAIL syscall.Errno = 6623 + ERROR_LOG_RECORD_NONEXISTENT syscall.Errno = 6624 + ERROR_LOG_RECORDS_RESERVED_INVALID syscall.Errno = 6625 + ERROR_LOG_SPACE_RESERVED_INVALID syscall.Errno = 6626 + ERROR_LOG_TAIL_INVALID syscall.Errno = 6627 + ERROR_LOG_FULL syscall.Errno = 6628 + ERROR_COULD_NOT_RESIZE_LOG syscall.Errno = 6629 + ERROR_LOG_MULTIPLEXED syscall.Errno = 6630 + ERROR_LOG_DEDICATED syscall.Errno = 6631 + ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS syscall.Errno = 6632 + ERROR_LOG_ARCHIVE_IN_PROGRESS syscall.Errno = 6633 + ERROR_LOG_EPHEMERAL syscall.Errno = 6634 + ERROR_LOG_NOT_ENOUGH_CONTAINERS syscall.Errno = 6635 + ERROR_LOG_CLIENT_ALREADY_REGISTERED syscall.Errno = 6636 + ERROR_LOG_CLIENT_NOT_REGISTERED syscall.Errno = 6637 + ERROR_LOG_FULL_HANDLER_IN_PROGRESS syscall.Errno = 6638 + ERROR_LOG_CONTAINER_READ_FAILED syscall.Errno = 6639 + ERROR_LOG_CONTAINER_WRITE_FAILED syscall.Errno = 6640 + ERROR_LOG_CONTAINER_OPEN_FAILED syscall.Errno = 6641 + ERROR_LOG_CONTAINER_STATE_INVALID syscall.Errno = 6642 + ERROR_LOG_STATE_INVALID syscall.Errno = 6643 + ERROR_LOG_PINNED syscall.Errno = 6644 + ERROR_LOG_METADATA_FLUSH_FAILED syscall.Errno = 6645 + ERROR_LOG_INCONSISTENT_SECURITY syscall.Errno = 6646 + ERROR_LOG_APPENDED_FLUSH_FAILED syscall.Errno = 6647 + ERROR_LOG_PINNED_RESERVATION syscall.Errno = 6648 + ERROR_INVALID_TRANSACTION syscall.Errno = 6700 + ERROR_TRANSACTION_NOT_ACTIVE syscall.Errno = 6701 + ERROR_TRANSACTION_REQUEST_NOT_VALID syscall.Errno = 6702 + ERROR_TRANSACTION_NOT_REQUESTED syscall.Errno = 6703 + ERROR_TRANSACTION_ALREADY_ABORTED syscall.Errno = 6704 + ERROR_TRANSACTION_ALREADY_COMMITTED syscall.Errno = 6705 + ERROR_TM_INITIALIZATION_FAILED syscall.Errno = 6706 + ERROR_RESOURCEMANAGER_READ_ONLY syscall.Errno = 6707 + ERROR_TRANSACTION_NOT_JOINED syscall.Errno = 6708 + ERROR_TRANSACTION_SUPERIOR_EXISTS syscall.Errno = 6709 + ERROR_CRM_PROTOCOL_ALREADY_EXISTS syscall.Errno = 6710 + ERROR_TRANSACTION_PROPAGATION_FAILED syscall.Errno = 6711 + ERROR_CRM_PROTOCOL_NOT_FOUND syscall.Errno = 6712 + ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER syscall.Errno = 6713 + ERROR_CURRENT_TRANSACTION_NOT_VALID syscall.Errno = 6714 + ERROR_TRANSACTION_NOT_FOUND syscall.Errno = 6715 + ERROR_RESOURCEMANAGER_NOT_FOUND syscall.Errno = 6716 + ERROR_ENLISTMENT_NOT_FOUND syscall.Errno = 6717 + ERROR_TRANSACTIONMANAGER_NOT_FOUND syscall.Errno = 6718 + ERROR_TRANSACTIONMANAGER_NOT_ONLINE syscall.Errno = 6719 + ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION syscall.Errno = 6720 + ERROR_TRANSACTION_NOT_ROOT syscall.Errno = 6721 + ERROR_TRANSACTION_OBJECT_EXPIRED syscall.Errno = 6722 + ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED syscall.Errno = 6723 + ERROR_TRANSACTION_RECORD_TOO_LONG syscall.Errno = 6724 + ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED syscall.Errno = 6725 + ERROR_TRANSACTION_INTEGRITY_VIOLATED syscall.Errno = 6726 + ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH syscall.Errno = 6727 + ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT syscall.Errno = 6728 + ERROR_TRANSACTION_MUST_WRITETHROUGH syscall.Errno = 6729 + ERROR_TRANSACTION_NO_SUPERIOR syscall.Errno = 6730 + ERROR_HEURISTIC_DAMAGE_POSSIBLE syscall.Errno = 6731 + ERROR_TRANSACTIONAL_CONFLICT syscall.Errno = 6800 + ERROR_RM_NOT_ACTIVE syscall.Errno = 6801 + ERROR_RM_METADATA_CORRUPT syscall.Errno = 6802 + ERROR_DIRECTORY_NOT_RM syscall.Errno = 6803 + ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE syscall.Errno = 6805 + ERROR_LOG_RESIZE_INVALID_SIZE syscall.Errno = 6806 + ERROR_OBJECT_NO_LONGER_EXISTS syscall.Errno = 6807 + ERROR_STREAM_MINIVERSION_NOT_FOUND syscall.Errno = 6808 + ERROR_STREAM_MINIVERSION_NOT_VALID syscall.Errno = 6809 + ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION syscall.Errno = 6810 + ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT syscall.Errno = 6811 + ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS syscall.Errno = 6812 + ERROR_REMOTE_FILE_VERSION_MISMATCH syscall.Errno = 6814 + ERROR_HANDLE_NO_LONGER_VALID syscall.Errno = 6815 + ERROR_NO_TXF_METADATA syscall.Errno = 6816 + ERROR_LOG_CORRUPTION_DETECTED syscall.Errno = 6817 + ERROR_CANT_RECOVER_WITH_HANDLE_OPEN syscall.Errno = 6818 + ERROR_RM_DISCONNECTED syscall.Errno = 6819 + ERROR_ENLISTMENT_NOT_SUPERIOR syscall.Errno = 6820 + ERROR_RECOVERY_NOT_NEEDED syscall.Errno = 6821 + ERROR_RM_ALREADY_STARTED syscall.Errno = 6822 + ERROR_FILE_IDENTITY_NOT_PERSISTENT syscall.Errno = 6823 + ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY syscall.Errno = 6824 + ERROR_CANT_CROSS_RM_BOUNDARY syscall.Errno = 6825 + ERROR_TXF_DIR_NOT_EMPTY syscall.Errno = 6826 + ERROR_INDOUBT_TRANSACTIONS_EXIST syscall.Errno = 6827 + ERROR_TM_VOLATILE syscall.Errno = 6828 + ERROR_ROLLBACK_TIMER_EXPIRED syscall.Errno = 6829 + ERROR_TXF_ATTRIBUTE_CORRUPT syscall.Errno = 6830 + ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6831 + ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED syscall.Errno = 6832 + ERROR_LOG_GROWTH_FAILED syscall.Errno = 6833 + ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE syscall.Errno = 6834 + ERROR_TXF_METADATA_ALREADY_PRESENT syscall.Errno = 6835 + ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET syscall.Errno = 6836 + ERROR_TRANSACTION_REQUIRED_PROMOTION syscall.Errno = 6837 + ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION syscall.Errno = 6838 + ERROR_TRANSACTIONS_NOT_FROZEN syscall.Errno = 6839 + ERROR_TRANSACTION_FREEZE_IN_PROGRESS syscall.Errno = 6840 + ERROR_NOT_SNAPSHOT_VOLUME syscall.Errno = 6841 + ERROR_NO_SAVEPOINT_WITH_OPEN_FILES syscall.Errno = 6842 + ERROR_DATA_LOST_REPAIR syscall.Errno = 6843 + ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6844 + ERROR_TM_IDENTITY_MISMATCH syscall.Errno = 6845 + ERROR_FLOATED_SECTION syscall.Errno = 6846 + ERROR_CANNOT_ACCEPT_TRANSACTED_WORK syscall.Errno = 6847 + ERROR_CANNOT_ABORT_TRANSACTIONS syscall.Errno = 6848 + ERROR_BAD_CLUSTERS syscall.Errno = 6849 + ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6850 + ERROR_VOLUME_DIRTY syscall.Errno = 6851 + ERROR_NO_LINK_TRACKING_IN_TRANSACTION syscall.Errno = 6852 + ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION syscall.Errno = 6853 + ERROR_EXPIRED_HANDLE syscall.Errno = 6854 + ERROR_TRANSACTION_NOT_ENLISTED syscall.Errno = 6855 + ERROR_CTX_WINSTATION_NAME_INVALID syscall.Errno = 7001 + ERROR_CTX_INVALID_PD syscall.Errno = 7002 + ERROR_CTX_PD_NOT_FOUND syscall.Errno = 7003 + ERROR_CTX_WD_NOT_FOUND syscall.Errno = 7004 + ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY syscall.Errno = 7005 + ERROR_CTX_SERVICE_NAME_COLLISION syscall.Errno = 7006 + ERROR_CTX_CLOSE_PENDING syscall.Errno = 7007 + ERROR_CTX_NO_OUTBUF syscall.Errno = 7008 + ERROR_CTX_MODEM_INF_NOT_FOUND syscall.Errno = 7009 + ERROR_CTX_INVALID_MODEMNAME syscall.Errno = 7010 + ERROR_CTX_MODEM_RESPONSE_ERROR syscall.Errno = 7011 + ERROR_CTX_MODEM_RESPONSE_TIMEOUT syscall.Errno = 7012 + ERROR_CTX_MODEM_RESPONSE_NO_CARRIER syscall.Errno = 7013 + ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE syscall.Errno = 7014 + ERROR_CTX_MODEM_RESPONSE_BUSY syscall.Errno = 7015 + ERROR_CTX_MODEM_RESPONSE_VOICE syscall.Errno = 7016 + ERROR_CTX_TD_ERROR syscall.Errno = 7017 + ERROR_CTX_WINSTATION_NOT_FOUND syscall.Errno = 7022 + ERROR_CTX_WINSTATION_ALREADY_EXISTS syscall.Errno = 7023 + ERROR_CTX_WINSTATION_BUSY syscall.Errno = 7024 + ERROR_CTX_BAD_VIDEO_MODE syscall.Errno = 7025 + ERROR_CTX_GRAPHICS_INVALID syscall.Errno = 7035 + ERROR_CTX_LOGON_DISABLED syscall.Errno = 7037 + ERROR_CTX_NOT_CONSOLE syscall.Errno = 7038 + ERROR_CTX_CLIENT_QUERY_TIMEOUT syscall.Errno = 7040 + ERROR_CTX_CONSOLE_DISCONNECT syscall.Errno = 7041 + ERROR_CTX_CONSOLE_CONNECT syscall.Errno = 7042 + ERROR_CTX_SHADOW_DENIED syscall.Errno = 7044 + ERROR_CTX_WINSTATION_ACCESS_DENIED syscall.Errno = 7045 + ERROR_CTX_INVALID_WD syscall.Errno = 7049 + ERROR_CTX_SHADOW_INVALID syscall.Errno = 7050 + ERROR_CTX_SHADOW_DISABLED syscall.Errno = 7051 + ERROR_CTX_CLIENT_LICENSE_IN_USE syscall.Errno = 7052 + ERROR_CTX_CLIENT_LICENSE_NOT_SET syscall.Errno = 7053 + ERROR_CTX_LICENSE_NOT_AVAILABLE syscall.Errno = 7054 + ERROR_CTX_LICENSE_CLIENT_INVALID syscall.Errno = 7055 + ERROR_CTX_LICENSE_EXPIRED syscall.Errno = 7056 + ERROR_CTX_SHADOW_NOT_RUNNING syscall.Errno = 7057 + ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE syscall.Errno = 7058 + ERROR_ACTIVATION_COUNT_EXCEEDED syscall.Errno = 7059 + ERROR_CTX_WINSTATIONS_DISABLED syscall.Errno = 7060 + ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED syscall.Errno = 7061 + ERROR_CTX_SESSION_IN_USE syscall.Errno = 7062 + ERROR_CTX_NO_FORCE_LOGOFF syscall.Errno = 7063 + ERROR_CTX_ACCOUNT_RESTRICTION syscall.Errno = 7064 + ERROR_RDP_PROTOCOL_ERROR syscall.Errno = 7065 + ERROR_CTX_CDM_CONNECT syscall.Errno = 7066 + ERROR_CTX_CDM_DISCONNECT syscall.Errno = 7067 + ERROR_CTX_SECURITY_LAYER_ERROR syscall.Errno = 7068 + ERROR_TS_INCOMPATIBLE_SESSIONS syscall.Errno = 7069 + ERROR_TS_VIDEO_SUBSYSTEM_ERROR syscall.Errno = 7070 + FRS_ERR_INVALID_API_SEQUENCE syscall.Errno = 8001 + FRS_ERR_STARTING_SERVICE syscall.Errno = 8002 + FRS_ERR_STOPPING_SERVICE syscall.Errno = 8003 + FRS_ERR_INTERNAL_API syscall.Errno = 8004 + FRS_ERR_INTERNAL syscall.Errno = 8005 + FRS_ERR_SERVICE_COMM syscall.Errno = 8006 + FRS_ERR_INSUFFICIENT_PRIV syscall.Errno = 8007 + FRS_ERR_AUTHENTICATION syscall.Errno = 8008 + FRS_ERR_PARENT_INSUFFICIENT_PRIV syscall.Errno = 8009 + FRS_ERR_PARENT_AUTHENTICATION syscall.Errno = 8010 + FRS_ERR_CHILD_TO_PARENT_COMM syscall.Errno = 8011 + FRS_ERR_PARENT_TO_CHILD_COMM syscall.Errno = 8012 + FRS_ERR_SYSVOL_POPULATE syscall.Errno = 8013 + FRS_ERR_SYSVOL_POPULATE_TIMEOUT syscall.Errno = 8014 + FRS_ERR_SYSVOL_IS_BUSY syscall.Errno = 8015 + FRS_ERR_SYSVOL_DEMOTE syscall.Errno = 8016 + FRS_ERR_INVALID_SERVICE_PARAMETER syscall.Errno = 8017 + DS_S_SUCCESS = ERROR_SUCCESS + ERROR_DS_NOT_INSTALLED syscall.Errno = 8200 + ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY syscall.Errno = 8201 + ERROR_DS_NO_ATTRIBUTE_OR_VALUE syscall.Errno = 8202 + ERROR_DS_INVALID_ATTRIBUTE_SYNTAX syscall.Errno = 8203 + ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED syscall.Errno = 8204 + ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS syscall.Errno = 8205 + ERROR_DS_BUSY syscall.Errno = 8206 + ERROR_DS_UNAVAILABLE syscall.Errno = 8207 + ERROR_DS_NO_RIDS_ALLOCATED syscall.Errno = 8208 + ERROR_DS_NO_MORE_RIDS syscall.Errno = 8209 + ERROR_DS_INCORRECT_ROLE_OWNER syscall.Errno = 8210 + ERROR_DS_RIDMGR_INIT_ERROR syscall.Errno = 8211 + ERROR_DS_OBJ_CLASS_VIOLATION syscall.Errno = 8212 + ERROR_DS_CANT_ON_NON_LEAF syscall.Errno = 8213 + ERROR_DS_CANT_ON_RDN syscall.Errno = 8214 + ERROR_DS_CANT_MOD_OBJ_CLASS syscall.Errno = 8215 + ERROR_DS_CROSS_DOM_MOVE_ERROR syscall.Errno = 8216 + ERROR_DS_GC_NOT_AVAILABLE syscall.Errno = 8217 + ERROR_SHARED_POLICY syscall.Errno = 8218 + ERROR_POLICY_OBJECT_NOT_FOUND syscall.Errno = 8219 + ERROR_POLICY_ONLY_IN_DS syscall.Errno = 8220 + ERROR_PROMOTION_ACTIVE syscall.Errno = 8221 + ERROR_NO_PROMOTION_ACTIVE syscall.Errno = 8222 + ERROR_DS_OPERATIONS_ERROR syscall.Errno = 8224 + ERROR_DS_PROTOCOL_ERROR syscall.Errno = 8225 + ERROR_DS_TIMELIMIT_EXCEEDED syscall.Errno = 8226 + ERROR_DS_SIZELIMIT_EXCEEDED syscall.Errno = 8227 + ERROR_DS_ADMIN_LIMIT_EXCEEDED syscall.Errno = 8228 + ERROR_DS_COMPARE_FALSE syscall.Errno = 8229 + ERROR_DS_COMPARE_TRUE syscall.Errno = 8230 + ERROR_DS_AUTH_METHOD_NOT_SUPPORTED syscall.Errno = 8231 + ERROR_DS_STRONG_AUTH_REQUIRED syscall.Errno = 8232 + ERROR_DS_INAPPROPRIATE_AUTH syscall.Errno = 8233 + ERROR_DS_AUTH_UNKNOWN syscall.Errno = 8234 + ERROR_DS_REFERRAL syscall.Errno = 8235 + ERROR_DS_UNAVAILABLE_CRIT_EXTENSION syscall.Errno = 8236 + ERROR_DS_CONFIDENTIALITY_REQUIRED syscall.Errno = 8237 + ERROR_DS_INAPPROPRIATE_MATCHING syscall.Errno = 8238 + ERROR_DS_CONSTRAINT_VIOLATION syscall.Errno = 8239 + ERROR_DS_NO_SUCH_OBJECT syscall.Errno = 8240 + ERROR_DS_ALIAS_PROBLEM syscall.Errno = 8241 + ERROR_DS_INVALID_DN_SYNTAX syscall.Errno = 8242 + ERROR_DS_IS_LEAF syscall.Errno = 8243 + ERROR_DS_ALIAS_DEREF_PROBLEM syscall.Errno = 8244 + ERROR_DS_UNWILLING_TO_PERFORM syscall.Errno = 8245 + ERROR_DS_LOOP_DETECT syscall.Errno = 8246 + ERROR_DS_NAMING_VIOLATION syscall.Errno = 8247 + ERROR_DS_OBJECT_RESULTS_TOO_LARGE syscall.Errno = 8248 + ERROR_DS_AFFECTS_MULTIPLE_DSAS syscall.Errno = 8249 + ERROR_DS_SERVER_DOWN syscall.Errno = 8250 + ERROR_DS_LOCAL_ERROR syscall.Errno = 8251 + ERROR_DS_ENCODING_ERROR syscall.Errno = 8252 + ERROR_DS_DECODING_ERROR syscall.Errno = 8253 + ERROR_DS_FILTER_UNKNOWN syscall.Errno = 8254 + ERROR_DS_PARAM_ERROR syscall.Errno = 8255 + ERROR_DS_NOT_SUPPORTED syscall.Errno = 8256 + ERROR_DS_NO_RESULTS_RETURNED syscall.Errno = 8257 + ERROR_DS_CONTROL_NOT_FOUND syscall.Errno = 8258 + ERROR_DS_CLIENT_LOOP syscall.Errno = 8259 + ERROR_DS_REFERRAL_LIMIT_EXCEEDED syscall.Errno = 8260 + ERROR_DS_SORT_CONTROL_MISSING syscall.Errno = 8261 + ERROR_DS_OFFSET_RANGE_ERROR syscall.Errno = 8262 + ERROR_DS_RIDMGR_DISABLED syscall.Errno = 8263 + ERROR_DS_ROOT_MUST_BE_NC syscall.Errno = 8301 + ERROR_DS_ADD_REPLICA_INHIBITED syscall.Errno = 8302 + ERROR_DS_ATT_NOT_DEF_IN_SCHEMA syscall.Errno = 8303 + ERROR_DS_MAX_OBJ_SIZE_EXCEEDED syscall.Errno = 8304 + ERROR_DS_OBJ_STRING_NAME_EXISTS syscall.Errno = 8305 + ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA syscall.Errno = 8306 + ERROR_DS_RDN_DOESNT_MATCH_SCHEMA syscall.Errno = 8307 + ERROR_DS_NO_REQUESTED_ATTS_FOUND syscall.Errno = 8308 + ERROR_DS_USER_BUFFER_TO_SMALL syscall.Errno = 8309 + ERROR_DS_ATT_IS_NOT_ON_OBJ syscall.Errno = 8310 + ERROR_DS_ILLEGAL_MOD_OPERATION syscall.Errno = 8311 + ERROR_DS_OBJ_TOO_LARGE syscall.Errno = 8312 + ERROR_DS_BAD_INSTANCE_TYPE syscall.Errno = 8313 + ERROR_DS_MASTERDSA_REQUIRED syscall.Errno = 8314 + ERROR_DS_OBJECT_CLASS_REQUIRED syscall.Errno = 8315 + ERROR_DS_MISSING_REQUIRED_ATT syscall.Errno = 8316 + ERROR_DS_ATT_NOT_DEF_FOR_CLASS syscall.Errno = 8317 + ERROR_DS_ATT_ALREADY_EXISTS syscall.Errno = 8318 + ERROR_DS_CANT_ADD_ATT_VALUES syscall.Errno = 8320 + ERROR_DS_SINGLE_VALUE_CONSTRAINT syscall.Errno = 8321 + ERROR_DS_RANGE_CONSTRAINT syscall.Errno = 8322 + ERROR_DS_ATT_VAL_ALREADY_EXISTS syscall.Errno = 8323 + ERROR_DS_CANT_REM_MISSING_ATT syscall.Errno = 8324 + ERROR_DS_CANT_REM_MISSING_ATT_VAL syscall.Errno = 8325 + ERROR_DS_ROOT_CANT_BE_SUBREF syscall.Errno = 8326 + ERROR_DS_NO_CHAINING syscall.Errno = 8327 + ERROR_DS_NO_CHAINED_EVAL syscall.Errno = 8328 + ERROR_DS_NO_PARENT_OBJECT syscall.Errno = 8329 + ERROR_DS_PARENT_IS_AN_ALIAS syscall.Errno = 8330 + ERROR_DS_CANT_MIX_MASTER_AND_REPS syscall.Errno = 8331 + ERROR_DS_CHILDREN_EXIST syscall.Errno = 8332 + ERROR_DS_OBJ_NOT_FOUND syscall.Errno = 8333 + ERROR_DS_ALIASED_OBJ_MISSING syscall.Errno = 8334 + ERROR_DS_BAD_NAME_SYNTAX syscall.Errno = 8335 + ERROR_DS_ALIAS_POINTS_TO_ALIAS syscall.Errno = 8336 + ERROR_DS_CANT_DEREF_ALIAS syscall.Errno = 8337 + ERROR_DS_OUT_OF_SCOPE syscall.Errno = 8338 + ERROR_DS_OBJECT_BEING_REMOVED syscall.Errno = 8339 + ERROR_DS_CANT_DELETE_DSA_OBJ syscall.Errno = 8340 + ERROR_DS_GENERIC_ERROR syscall.Errno = 8341 + ERROR_DS_DSA_MUST_BE_INT_MASTER syscall.Errno = 8342 + ERROR_DS_CLASS_NOT_DSA syscall.Errno = 8343 + ERROR_DS_INSUFF_ACCESS_RIGHTS syscall.Errno = 8344 + ERROR_DS_ILLEGAL_SUPERIOR syscall.Errno = 8345 + ERROR_DS_ATTRIBUTE_OWNED_BY_SAM syscall.Errno = 8346 + ERROR_DS_NAME_TOO_MANY_PARTS syscall.Errno = 8347 + ERROR_DS_NAME_TOO_LONG syscall.Errno = 8348 + ERROR_DS_NAME_VALUE_TOO_LONG syscall.Errno = 8349 + ERROR_DS_NAME_UNPARSEABLE syscall.Errno = 8350 + ERROR_DS_NAME_TYPE_UNKNOWN syscall.Errno = 8351 + ERROR_DS_NOT_AN_OBJECT syscall.Errno = 8352 + ERROR_DS_SEC_DESC_TOO_SHORT syscall.Errno = 8353 + ERROR_DS_SEC_DESC_INVALID syscall.Errno = 8354 + ERROR_DS_NO_DELETED_NAME syscall.Errno = 8355 + ERROR_DS_SUBREF_MUST_HAVE_PARENT syscall.Errno = 8356 + ERROR_DS_NCNAME_MUST_BE_NC syscall.Errno = 8357 + ERROR_DS_CANT_ADD_SYSTEM_ONLY syscall.Errno = 8358 + ERROR_DS_CLASS_MUST_BE_CONCRETE syscall.Errno = 8359 + ERROR_DS_INVALID_DMD syscall.Errno = 8360 + ERROR_DS_OBJ_GUID_EXISTS syscall.Errno = 8361 + ERROR_DS_NOT_ON_BACKLINK syscall.Errno = 8362 + ERROR_DS_NO_CROSSREF_FOR_NC syscall.Errno = 8363 + ERROR_DS_SHUTTING_DOWN syscall.Errno = 8364 + ERROR_DS_UNKNOWN_OPERATION syscall.Errno = 8365 + ERROR_DS_INVALID_ROLE_OWNER syscall.Errno = 8366 + ERROR_DS_COULDNT_CONTACT_FSMO syscall.Errno = 8367 + ERROR_DS_CROSS_NC_DN_RENAME syscall.Errno = 8368 + ERROR_DS_CANT_MOD_SYSTEM_ONLY syscall.Errno = 8369 + ERROR_DS_REPLICATOR_ONLY syscall.Errno = 8370 + ERROR_DS_OBJ_CLASS_NOT_DEFINED syscall.Errno = 8371 + ERROR_DS_OBJ_CLASS_NOT_SUBCLASS syscall.Errno = 8372 + ERROR_DS_NAME_REFERENCE_INVALID syscall.Errno = 8373 + ERROR_DS_CROSS_REF_EXISTS syscall.Errno = 8374 + ERROR_DS_CANT_DEL_MASTER_CROSSREF syscall.Errno = 8375 + ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD syscall.Errno = 8376 + ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX syscall.Errno = 8377 + ERROR_DS_DUP_RDN syscall.Errno = 8378 + ERROR_DS_DUP_OID syscall.Errno = 8379 + ERROR_DS_DUP_MAPI_ID syscall.Errno = 8380 + ERROR_DS_DUP_SCHEMA_ID_GUID syscall.Errno = 8381 + ERROR_DS_DUP_LDAP_DISPLAY_NAME syscall.Errno = 8382 + ERROR_DS_SEMANTIC_ATT_TEST syscall.Errno = 8383 + ERROR_DS_SYNTAX_MISMATCH syscall.Errno = 8384 + ERROR_DS_EXISTS_IN_MUST_HAVE syscall.Errno = 8385 + ERROR_DS_EXISTS_IN_MAY_HAVE syscall.Errno = 8386 + ERROR_DS_NONEXISTENT_MAY_HAVE syscall.Errno = 8387 + ERROR_DS_NONEXISTENT_MUST_HAVE syscall.Errno = 8388 + ERROR_DS_AUX_CLS_TEST_FAIL syscall.Errno = 8389 + ERROR_DS_NONEXISTENT_POSS_SUP syscall.Errno = 8390 + ERROR_DS_SUB_CLS_TEST_FAIL syscall.Errno = 8391 + ERROR_DS_BAD_RDN_ATT_ID_SYNTAX syscall.Errno = 8392 + ERROR_DS_EXISTS_IN_AUX_CLS syscall.Errno = 8393 + ERROR_DS_EXISTS_IN_SUB_CLS syscall.Errno = 8394 + ERROR_DS_EXISTS_IN_POSS_SUP syscall.Errno = 8395 + ERROR_DS_RECALCSCHEMA_FAILED syscall.Errno = 8396 + ERROR_DS_TREE_DELETE_NOT_FINISHED syscall.Errno = 8397 + ERROR_DS_CANT_DELETE syscall.Errno = 8398 + ERROR_DS_ATT_SCHEMA_REQ_ID syscall.Errno = 8399 + ERROR_DS_BAD_ATT_SCHEMA_SYNTAX syscall.Errno = 8400 + ERROR_DS_CANT_CACHE_ATT syscall.Errno = 8401 + ERROR_DS_CANT_CACHE_CLASS syscall.Errno = 8402 + ERROR_DS_CANT_REMOVE_ATT_CACHE syscall.Errno = 8403 + ERROR_DS_CANT_REMOVE_CLASS_CACHE syscall.Errno = 8404 + ERROR_DS_CANT_RETRIEVE_DN syscall.Errno = 8405 + ERROR_DS_MISSING_SUPREF syscall.Errno = 8406 + ERROR_DS_CANT_RETRIEVE_INSTANCE syscall.Errno = 8407 + ERROR_DS_CODE_INCONSISTENCY syscall.Errno = 8408 + ERROR_DS_DATABASE_ERROR syscall.Errno = 8409 + ERROR_DS_GOVERNSID_MISSING syscall.Errno = 8410 + ERROR_DS_MISSING_EXPECTED_ATT syscall.Errno = 8411 + ERROR_DS_NCNAME_MISSING_CR_REF syscall.Errno = 8412 + ERROR_DS_SECURITY_CHECKING_ERROR syscall.Errno = 8413 + ERROR_DS_SCHEMA_NOT_LOADED syscall.Errno = 8414 + ERROR_DS_SCHEMA_ALLOC_FAILED syscall.Errno = 8415 + ERROR_DS_ATT_SCHEMA_REQ_SYNTAX syscall.Errno = 8416 + ERROR_DS_GCVERIFY_ERROR syscall.Errno = 8417 + ERROR_DS_DRA_SCHEMA_MISMATCH syscall.Errno = 8418 + ERROR_DS_CANT_FIND_DSA_OBJ syscall.Errno = 8419 + ERROR_DS_CANT_FIND_EXPECTED_NC syscall.Errno = 8420 + ERROR_DS_CANT_FIND_NC_IN_CACHE syscall.Errno = 8421 + ERROR_DS_CANT_RETRIEVE_CHILD syscall.Errno = 8422 + ERROR_DS_SECURITY_ILLEGAL_MODIFY syscall.Errno = 8423 + ERROR_DS_CANT_REPLACE_HIDDEN_REC syscall.Errno = 8424 + ERROR_DS_BAD_HIERARCHY_FILE syscall.Errno = 8425 + ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED syscall.Errno = 8426 + ERROR_DS_CONFIG_PARAM_MISSING syscall.Errno = 8427 + ERROR_DS_COUNTING_AB_INDICES_FAILED syscall.Errno = 8428 + ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED syscall.Errno = 8429 + ERROR_DS_INTERNAL_FAILURE syscall.Errno = 8430 + ERROR_DS_UNKNOWN_ERROR syscall.Errno = 8431 + ERROR_DS_ROOT_REQUIRES_CLASS_TOP syscall.Errno = 8432 + ERROR_DS_REFUSING_FSMO_ROLES syscall.Errno = 8433 + ERROR_DS_MISSING_FSMO_SETTINGS syscall.Errno = 8434 + ERROR_DS_UNABLE_TO_SURRENDER_ROLES syscall.Errno = 8435 + ERROR_DS_DRA_GENERIC syscall.Errno = 8436 + ERROR_DS_DRA_INVALID_PARAMETER syscall.Errno = 8437 + ERROR_DS_DRA_BUSY syscall.Errno = 8438 + ERROR_DS_DRA_BAD_DN syscall.Errno = 8439 + ERROR_DS_DRA_BAD_NC syscall.Errno = 8440 + ERROR_DS_DRA_DN_EXISTS syscall.Errno = 8441 + ERROR_DS_DRA_INTERNAL_ERROR syscall.Errno = 8442 + ERROR_DS_DRA_INCONSISTENT_DIT syscall.Errno = 8443 + ERROR_DS_DRA_CONNECTION_FAILED syscall.Errno = 8444 + ERROR_DS_DRA_BAD_INSTANCE_TYPE syscall.Errno = 8445 + ERROR_DS_DRA_OUT_OF_MEM syscall.Errno = 8446 + ERROR_DS_DRA_MAIL_PROBLEM syscall.Errno = 8447 + ERROR_DS_DRA_REF_ALREADY_EXISTS syscall.Errno = 8448 + ERROR_DS_DRA_REF_NOT_FOUND syscall.Errno = 8449 + ERROR_DS_DRA_OBJ_IS_REP_SOURCE syscall.Errno = 8450 + ERROR_DS_DRA_DB_ERROR syscall.Errno = 8451 + ERROR_DS_DRA_NO_REPLICA syscall.Errno = 8452 + ERROR_DS_DRA_ACCESS_DENIED syscall.Errno = 8453 + ERROR_DS_DRA_NOT_SUPPORTED syscall.Errno = 8454 + ERROR_DS_DRA_RPC_CANCELLED syscall.Errno = 8455 + ERROR_DS_DRA_SOURCE_DISABLED syscall.Errno = 8456 + ERROR_DS_DRA_SINK_DISABLED syscall.Errno = 8457 + ERROR_DS_DRA_NAME_COLLISION syscall.Errno = 8458 + ERROR_DS_DRA_SOURCE_REINSTALLED syscall.Errno = 8459 + ERROR_DS_DRA_MISSING_PARENT syscall.Errno = 8460 + ERROR_DS_DRA_PREEMPTED syscall.Errno = 8461 + ERROR_DS_DRA_ABANDON_SYNC syscall.Errno = 8462 + ERROR_DS_DRA_SHUTDOWN syscall.Errno = 8463 + ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET syscall.Errno = 8464 + ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA syscall.Errno = 8465 + ERROR_DS_DRA_EXTN_CONNECTION_FAILED syscall.Errno = 8466 + ERROR_DS_INSTALL_SCHEMA_MISMATCH syscall.Errno = 8467 + ERROR_DS_DUP_LINK_ID syscall.Errno = 8468 + ERROR_DS_NAME_ERROR_RESOLVING syscall.Errno = 8469 + ERROR_DS_NAME_ERROR_NOT_FOUND syscall.Errno = 8470 + ERROR_DS_NAME_ERROR_NOT_UNIQUE syscall.Errno = 8471 + ERROR_DS_NAME_ERROR_NO_MAPPING syscall.Errno = 8472 + ERROR_DS_NAME_ERROR_DOMAIN_ONLY syscall.Errno = 8473 + ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING syscall.Errno = 8474 + ERROR_DS_CONSTRUCTED_ATT_MOD syscall.Errno = 8475 + ERROR_DS_WRONG_OM_OBJ_CLASS syscall.Errno = 8476 + ERROR_DS_DRA_REPL_PENDING syscall.Errno = 8477 + ERROR_DS_DS_REQUIRED syscall.Errno = 8478 + ERROR_DS_INVALID_LDAP_DISPLAY_NAME syscall.Errno = 8479 + ERROR_DS_NON_BASE_SEARCH syscall.Errno = 8480 + ERROR_DS_CANT_RETRIEVE_ATTS syscall.Errno = 8481 + ERROR_DS_BACKLINK_WITHOUT_LINK syscall.Errno = 8482 + ERROR_DS_EPOCH_MISMATCH syscall.Errno = 8483 + ERROR_DS_SRC_NAME_MISMATCH syscall.Errno = 8484 + ERROR_DS_SRC_AND_DST_NC_IDENTICAL syscall.Errno = 8485 + ERROR_DS_DST_NC_MISMATCH syscall.Errno = 8486 + ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC syscall.Errno = 8487 + ERROR_DS_SRC_GUID_MISMATCH syscall.Errno = 8488 + ERROR_DS_CANT_MOVE_DELETED_OBJECT syscall.Errno = 8489 + ERROR_DS_PDC_OPERATION_IN_PROGRESS syscall.Errno = 8490 + ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD syscall.Errno = 8491 + ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION syscall.Errno = 8492 + ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS syscall.Errno = 8493 + ERROR_DS_NC_MUST_HAVE_NC_PARENT syscall.Errno = 8494 + ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE syscall.Errno = 8495 + ERROR_DS_DST_DOMAIN_NOT_NATIVE syscall.Errno = 8496 + ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER syscall.Errno = 8497 + ERROR_DS_CANT_MOVE_ACCOUNT_GROUP syscall.Errno = 8498 + ERROR_DS_CANT_MOVE_RESOURCE_GROUP syscall.Errno = 8499 + ERROR_DS_INVALID_SEARCH_FLAG syscall.Errno = 8500 + ERROR_DS_NO_TREE_DELETE_ABOVE_NC syscall.Errno = 8501 + ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE syscall.Errno = 8502 + ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE syscall.Errno = 8503 + ERROR_DS_SAM_INIT_FAILURE syscall.Errno = 8504 + ERROR_DS_SENSITIVE_GROUP_VIOLATION syscall.Errno = 8505 + ERROR_DS_CANT_MOD_PRIMARYGROUPID syscall.Errno = 8506 + ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD syscall.Errno = 8507 + ERROR_DS_NONSAFE_SCHEMA_CHANGE syscall.Errno = 8508 + ERROR_DS_SCHEMA_UPDATE_DISALLOWED syscall.Errno = 8509 + ERROR_DS_CANT_CREATE_UNDER_SCHEMA syscall.Errno = 8510 + ERROR_DS_INSTALL_NO_SRC_SCH_VERSION syscall.Errno = 8511 + ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE syscall.Errno = 8512 + ERROR_DS_INVALID_GROUP_TYPE syscall.Errno = 8513 + ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN syscall.Errno = 8514 + ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN syscall.Errno = 8515 + ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER syscall.Errno = 8516 + ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER syscall.Errno = 8517 + ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER syscall.Errno = 8518 + ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER syscall.Errno = 8519 + ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER syscall.Errno = 8520 + ERROR_DS_HAVE_PRIMARY_MEMBERS syscall.Errno = 8521 + ERROR_DS_STRING_SD_CONVERSION_FAILED syscall.Errno = 8522 + ERROR_DS_NAMING_MASTER_GC syscall.Errno = 8523 + ERROR_DS_DNS_LOOKUP_FAILURE syscall.Errno = 8524 + ERROR_DS_COULDNT_UPDATE_SPNS syscall.Errno = 8525 + ERROR_DS_CANT_RETRIEVE_SD syscall.Errno = 8526 + ERROR_DS_KEY_NOT_UNIQUE syscall.Errno = 8527 + ERROR_DS_WRONG_LINKED_ATT_SYNTAX syscall.Errno = 8528 + ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD syscall.Errno = 8529 + ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY syscall.Errno = 8530 + ERROR_DS_CANT_START syscall.Errno = 8531 + ERROR_DS_INIT_FAILURE syscall.Errno = 8532 + ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION syscall.Errno = 8533 + ERROR_DS_SOURCE_DOMAIN_IN_FOREST syscall.Errno = 8534 + ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST syscall.Errno = 8535 + ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED syscall.Errno = 8536 + ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN syscall.Errno = 8537 + ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER syscall.Errno = 8538 + ERROR_DS_SRC_SID_EXISTS_IN_FOREST syscall.Errno = 8539 + ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH syscall.Errno = 8540 + ERROR_SAM_INIT_FAILURE syscall.Errno = 8541 + ERROR_DS_DRA_SCHEMA_INFO_SHIP syscall.Errno = 8542 + ERROR_DS_DRA_SCHEMA_CONFLICT syscall.Errno = 8543 + ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT syscall.Errno = 8544 + ERROR_DS_DRA_OBJ_NC_MISMATCH syscall.Errno = 8545 + ERROR_DS_NC_STILL_HAS_DSAS syscall.Errno = 8546 + ERROR_DS_GC_REQUIRED syscall.Errno = 8547 + ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY syscall.Errno = 8548 + ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS syscall.Errno = 8549 + ERROR_DS_CANT_ADD_TO_GC syscall.Errno = 8550 + ERROR_DS_NO_CHECKPOINT_WITH_PDC syscall.Errno = 8551 + ERROR_DS_SOURCE_AUDITING_NOT_ENABLED syscall.Errno = 8552 + ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC syscall.Errno = 8553 + ERROR_DS_INVALID_NAME_FOR_SPN syscall.Errno = 8554 + ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS syscall.Errno = 8555 + ERROR_DS_UNICODEPWD_NOT_IN_QUOTES syscall.Errno = 8556 + ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED syscall.Errno = 8557 + ERROR_DS_MUST_BE_RUN_ON_DST_DC syscall.Errno = 8558 + ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER syscall.Errno = 8559 + ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ syscall.Errno = 8560 + ERROR_DS_INIT_FAILURE_CONSOLE syscall.Errno = 8561 + ERROR_DS_SAM_INIT_FAILURE_CONSOLE syscall.Errno = 8562 + ERROR_DS_FOREST_VERSION_TOO_HIGH syscall.Errno = 8563 + ERROR_DS_DOMAIN_VERSION_TOO_HIGH syscall.Errno = 8564 + ERROR_DS_FOREST_VERSION_TOO_LOW syscall.Errno = 8565 + ERROR_DS_DOMAIN_VERSION_TOO_LOW syscall.Errno = 8566 + ERROR_DS_INCOMPATIBLE_VERSION syscall.Errno = 8567 + ERROR_DS_LOW_DSA_VERSION syscall.Errno = 8568 + ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN syscall.Errno = 8569 + ERROR_DS_NOT_SUPPORTED_SORT_ORDER syscall.Errno = 8570 + ERROR_DS_NAME_NOT_UNIQUE syscall.Errno = 8571 + ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 syscall.Errno = 8572 + ERROR_DS_OUT_OF_VERSION_STORE syscall.Errno = 8573 + ERROR_DS_INCOMPATIBLE_CONTROLS_USED syscall.Errno = 8574 + ERROR_DS_NO_REF_DOMAIN syscall.Errno = 8575 + ERROR_DS_RESERVED_LINK_ID syscall.Errno = 8576 + ERROR_DS_LINK_ID_NOT_AVAILABLE syscall.Errno = 8577 + ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER syscall.Errno = 8578 + ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE syscall.Errno = 8579 + ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC syscall.Errno = 8580 + ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG syscall.Errno = 8581 + ERROR_DS_MODIFYDN_WRONG_GRANDPARENT syscall.Errno = 8582 + ERROR_DS_NAME_ERROR_TRUST_REFERRAL syscall.Errno = 8583 + ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER syscall.Errno = 8584 + ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD syscall.Errno = 8585 + ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 syscall.Errno = 8586 + ERROR_DS_THREAD_LIMIT_EXCEEDED syscall.Errno = 8587 + ERROR_DS_NOT_CLOSEST syscall.Errno = 8588 + ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF syscall.Errno = 8589 + ERROR_DS_SINGLE_USER_MODE_FAILED syscall.Errno = 8590 + ERROR_DS_NTDSCRIPT_SYNTAX_ERROR syscall.Errno = 8591 + ERROR_DS_NTDSCRIPT_PROCESS_ERROR syscall.Errno = 8592 + ERROR_DS_DIFFERENT_REPL_EPOCHS syscall.Errno = 8593 + ERROR_DS_DRS_EXTENSIONS_CHANGED syscall.Errno = 8594 + ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR syscall.Errno = 8595 + ERROR_DS_NO_MSDS_INTID syscall.Errno = 8596 + ERROR_DS_DUP_MSDS_INTID syscall.Errno = 8597 + ERROR_DS_EXISTS_IN_RDNATTID syscall.Errno = 8598 + ERROR_DS_AUTHORIZATION_FAILED syscall.Errno = 8599 + ERROR_DS_INVALID_SCRIPT syscall.Errno = 8600 + ERROR_DS_REMOTE_CROSSREF_OP_FAILED syscall.Errno = 8601 + ERROR_DS_CROSS_REF_BUSY syscall.Errno = 8602 + ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN syscall.Errno = 8603 + ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC syscall.Errno = 8604 + ERROR_DS_DUPLICATE_ID_FOUND syscall.Errno = 8605 + ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT syscall.Errno = 8606 + ERROR_DS_GROUP_CONVERSION_ERROR syscall.Errno = 8607 + ERROR_DS_CANT_MOVE_APP_BASIC_GROUP syscall.Errno = 8608 + ERROR_DS_CANT_MOVE_APP_QUERY_GROUP syscall.Errno = 8609 + ERROR_DS_ROLE_NOT_VERIFIED syscall.Errno = 8610 + ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL syscall.Errno = 8611 + ERROR_DS_DOMAIN_RENAME_IN_PROGRESS syscall.Errno = 8612 + ERROR_DS_EXISTING_AD_CHILD_NC syscall.Errno = 8613 + ERROR_DS_REPL_LIFETIME_EXCEEDED syscall.Errno = 8614 + ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER syscall.Errno = 8615 + ERROR_DS_LDAP_SEND_QUEUE_FULL syscall.Errno = 8616 + ERROR_DS_DRA_OUT_SCHEDULE_WINDOW syscall.Errno = 8617 + ERROR_DS_POLICY_NOT_KNOWN syscall.Errno = 8618 + ERROR_NO_SITE_SETTINGS_OBJECT syscall.Errno = 8619 + ERROR_NO_SECRETS syscall.Errno = 8620 + ERROR_NO_WRITABLE_DC_FOUND syscall.Errno = 8621 + ERROR_DS_NO_SERVER_OBJECT syscall.Errno = 8622 + ERROR_DS_NO_NTDSA_OBJECT syscall.Errno = 8623 + ERROR_DS_NON_ASQ_SEARCH syscall.Errno = 8624 + ERROR_DS_AUDIT_FAILURE syscall.Errno = 8625 + ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE syscall.Errno = 8626 + ERROR_DS_INVALID_SEARCH_FLAG_TUPLE syscall.Errno = 8627 + ERROR_DS_HIERARCHY_TABLE_TOO_DEEP syscall.Errno = 8628 + ERROR_DS_DRA_CORRUPT_UTD_VECTOR syscall.Errno = 8629 + ERROR_DS_DRA_SECRETS_DENIED syscall.Errno = 8630 + ERROR_DS_RESERVED_MAPI_ID syscall.Errno = 8631 + ERROR_DS_MAPI_ID_NOT_AVAILABLE syscall.Errno = 8632 + ERROR_DS_DRA_MISSING_KRBTGT_SECRET syscall.Errno = 8633 + ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST syscall.Errno = 8634 + ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST syscall.Errno = 8635 + ERROR_INVALID_USER_PRINCIPAL_NAME syscall.Errno = 8636 + ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS syscall.Errno = 8637 + ERROR_DS_OID_NOT_FOUND syscall.Errno = 8638 + ERROR_DS_DRA_RECYCLED_TARGET syscall.Errno = 8639 + ERROR_DS_DISALLOWED_NC_REDIRECT syscall.Errno = 8640 + ERROR_DS_HIGH_ADLDS_FFL syscall.Errno = 8641 + ERROR_DS_HIGH_DSA_VERSION syscall.Errno = 8642 + ERROR_DS_LOW_ADLDS_FFL syscall.Errno = 8643 + ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION syscall.Errno = 8644 + ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED syscall.Errno = 8645 + ERROR_INCORRECT_ACCOUNT_TYPE syscall.Errno = 8646 + ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST syscall.Errno = 8647 + ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST syscall.Errno = 8648 + ERROR_DS_MISSING_FOREST_TRUST syscall.Errno = 8649 + ERROR_DS_VALUE_KEY_NOT_UNIQUE syscall.Errno = 8650 + DNS_ERROR_RESPONSE_CODES_BASE syscall.Errno = 9000 + DNS_ERROR_RCODE_NO_ERROR = ERROR_SUCCESS + DNS_ERROR_MASK syscall.Errno = 0x00002328 + DNS_ERROR_RCODE_FORMAT_ERROR syscall.Errno = 9001 + DNS_ERROR_RCODE_SERVER_FAILURE syscall.Errno = 9002 + DNS_ERROR_RCODE_NAME_ERROR syscall.Errno = 9003 + DNS_ERROR_RCODE_NOT_IMPLEMENTED syscall.Errno = 9004 + DNS_ERROR_RCODE_REFUSED syscall.Errno = 9005 + DNS_ERROR_RCODE_YXDOMAIN syscall.Errno = 9006 + DNS_ERROR_RCODE_YXRRSET syscall.Errno = 9007 + DNS_ERROR_RCODE_NXRRSET syscall.Errno = 9008 + DNS_ERROR_RCODE_NOTAUTH syscall.Errno = 9009 + DNS_ERROR_RCODE_NOTZONE syscall.Errno = 9010 + DNS_ERROR_RCODE_BADSIG syscall.Errno = 9016 + DNS_ERROR_RCODE_BADKEY syscall.Errno = 9017 + DNS_ERROR_RCODE_BADTIME syscall.Errno = 9018 + DNS_ERROR_RCODE_LAST = DNS_ERROR_RCODE_BADTIME + DNS_ERROR_DNSSEC_BASE syscall.Errno = 9100 + DNS_ERROR_KEYMASTER_REQUIRED syscall.Errno = 9101 + DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE syscall.Errno = 9102 + DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1 syscall.Errno = 9103 + DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS syscall.Errno = 9104 + DNS_ERROR_UNSUPPORTED_ALGORITHM syscall.Errno = 9105 + DNS_ERROR_INVALID_KEY_SIZE syscall.Errno = 9106 + DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE syscall.Errno = 9107 + DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION syscall.Errno = 9108 + DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR syscall.Errno = 9109 + DNS_ERROR_UNEXPECTED_CNG_ERROR syscall.Errno = 9110 + DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION syscall.Errno = 9111 + DNS_ERROR_KSP_NOT_ACCESSIBLE syscall.Errno = 9112 + DNS_ERROR_TOO_MANY_SKDS syscall.Errno = 9113 + DNS_ERROR_INVALID_ROLLOVER_PERIOD syscall.Errno = 9114 + DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET syscall.Errno = 9115 + DNS_ERROR_ROLLOVER_IN_PROGRESS syscall.Errno = 9116 + DNS_ERROR_STANDBY_KEY_NOT_PRESENT syscall.Errno = 9117 + DNS_ERROR_NOT_ALLOWED_ON_ZSK syscall.Errno = 9118 + DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD syscall.Errno = 9119 + DNS_ERROR_ROLLOVER_ALREADY_QUEUED syscall.Errno = 9120 + DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE syscall.Errno = 9121 + DNS_ERROR_BAD_KEYMASTER syscall.Errno = 9122 + DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD syscall.Errno = 9123 + DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT syscall.Errno = 9124 + DNS_ERROR_DNSSEC_IS_DISABLED syscall.Errno = 9125 + DNS_ERROR_INVALID_XML syscall.Errno = 9126 + DNS_ERROR_NO_VALID_TRUST_ANCHORS syscall.Errno = 9127 + DNS_ERROR_ROLLOVER_NOT_POKEABLE syscall.Errno = 9128 + DNS_ERROR_NSEC3_NAME_COLLISION syscall.Errno = 9129 + DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1 syscall.Errno = 9130 + DNS_ERROR_PACKET_FMT_BASE syscall.Errno = 9500 + DNS_INFO_NO_RECORDS syscall.Errno = 9501 + DNS_ERROR_BAD_PACKET syscall.Errno = 9502 + DNS_ERROR_NO_PACKET syscall.Errno = 9503 + DNS_ERROR_RCODE syscall.Errno = 9504 + DNS_ERROR_UNSECURE_PACKET syscall.Errno = 9505 + DNS_STATUS_PACKET_UNSECURE = DNS_ERROR_UNSECURE_PACKET + DNS_REQUEST_PENDING syscall.Errno = 9506 + DNS_ERROR_NO_MEMORY = ERROR_OUTOFMEMORY + DNS_ERROR_INVALID_NAME = ERROR_INVALID_NAME + DNS_ERROR_INVALID_DATA = ERROR_INVALID_DATA + DNS_ERROR_GENERAL_API_BASE syscall.Errno = 9550 + DNS_ERROR_INVALID_TYPE syscall.Errno = 9551 + DNS_ERROR_INVALID_IP_ADDRESS syscall.Errno = 9552 + DNS_ERROR_INVALID_PROPERTY syscall.Errno = 9553 + DNS_ERROR_TRY_AGAIN_LATER syscall.Errno = 9554 + DNS_ERROR_NOT_UNIQUE syscall.Errno = 9555 + DNS_ERROR_NON_RFC_NAME syscall.Errno = 9556 + DNS_STATUS_FQDN syscall.Errno = 9557 + DNS_STATUS_DOTTED_NAME syscall.Errno = 9558 + DNS_STATUS_SINGLE_PART_NAME syscall.Errno = 9559 + DNS_ERROR_INVALID_NAME_CHAR syscall.Errno = 9560 + DNS_ERROR_NUMERIC_NAME syscall.Errno = 9561 + DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER syscall.Errno = 9562 + DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION syscall.Errno = 9563 + DNS_ERROR_CANNOT_FIND_ROOT_HINTS syscall.Errno = 9564 + DNS_ERROR_INCONSISTENT_ROOT_HINTS syscall.Errno = 9565 + DNS_ERROR_DWORD_VALUE_TOO_SMALL syscall.Errno = 9566 + DNS_ERROR_DWORD_VALUE_TOO_LARGE syscall.Errno = 9567 + DNS_ERROR_BACKGROUND_LOADING syscall.Errno = 9568 + DNS_ERROR_NOT_ALLOWED_ON_RODC syscall.Errno = 9569 + DNS_ERROR_NOT_ALLOWED_UNDER_DNAME syscall.Errno = 9570 + DNS_ERROR_DELEGATION_REQUIRED syscall.Errno = 9571 + DNS_ERROR_INVALID_POLICY_TABLE syscall.Errno = 9572 + DNS_ERROR_ADDRESS_REQUIRED syscall.Errno = 9573 + DNS_ERROR_ZONE_BASE syscall.Errno = 9600 + DNS_ERROR_ZONE_DOES_NOT_EXIST syscall.Errno = 9601 + DNS_ERROR_NO_ZONE_INFO syscall.Errno = 9602 + DNS_ERROR_INVALID_ZONE_OPERATION syscall.Errno = 9603 + DNS_ERROR_ZONE_CONFIGURATION_ERROR syscall.Errno = 9604 + DNS_ERROR_ZONE_HAS_NO_SOA_RECORD syscall.Errno = 9605 + DNS_ERROR_ZONE_HAS_NO_NS_RECORDS syscall.Errno = 9606 + DNS_ERROR_ZONE_LOCKED syscall.Errno = 9607 + DNS_ERROR_ZONE_CREATION_FAILED syscall.Errno = 9608 + DNS_ERROR_ZONE_ALREADY_EXISTS syscall.Errno = 9609 + DNS_ERROR_AUTOZONE_ALREADY_EXISTS syscall.Errno = 9610 + DNS_ERROR_INVALID_ZONE_TYPE syscall.Errno = 9611 + DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP syscall.Errno = 9612 + DNS_ERROR_ZONE_NOT_SECONDARY syscall.Errno = 9613 + DNS_ERROR_NEED_SECONDARY_ADDRESSES syscall.Errno = 9614 + DNS_ERROR_WINS_INIT_FAILED syscall.Errno = 9615 + DNS_ERROR_NEED_WINS_SERVERS syscall.Errno = 9616 + DNS_ERROR_NBSTAT_INIT_FAILED syscall.Errno = 9617 + DNS_ERROR_SOA_DELETE_INVALID syscall.Errno = 9618 + DNS_ERROR_FORWARDER_ALREADY_EXISTS syscall.Errno = 9619 + DNS_ERROR_ZONE_REQUIRES_MASTER_IP syscall.Errno = 9620 + DNS_ERROR_ZONE_IS_SHUTDOWN syscall.Errno = 9621 + DNS_ERROR_ZONE_LOCKED_FOR_SIGNING syscall.Errno = 9622 + DNS_ERROR_DATAFILE_BASE syscall.Errno = 9650 + DNS_ERROR_PRIMARY_REQUIRES_DATAFILE syscall.Errno = 9651 + DNS_ERROR_INVALID_DATAFILE_NAME syscall.Errno = 9652 + DNS_ERROR_DATAFILE_OPEN_FAILURE syscall.Errno = 9653 + DNS_ERROR_FILE_WRITEBACK_FAILED syscall.Errno = 9654 + DNS_ERROR_DATAFILE_PARSING syscall.Errno = 9655 + DNS_ERROR_DATABASE_BASE syscall.Errno = 9700 + DNS_ERROR_RECORD_DOES_NOT_EXIST syscall.Errno = 9701 + DNS_ERROR_RECORD_FORMAT syscall.Errno = 9702 + DNS_ERROR_NODE_CREATION_FAILED syscall.Errno = 9703 + DNS_ERROR_UNKNOWN_RECORD_TYPE syscall.Errno = 9704 + DNS_ERROR_RECORD_TIMED_OUT syscall.Errno = 9705 + DNS_ERROR_NAME_NOT_IN_ZONE syscall.Errno = 9706 + DNS_ERROR_CNAME_LOOP syscall.Errno = 9707 + DNS_ERROR_NODE_IS_CNAME syscall.Errno = 9708 + DNS_ERROR_CNAME_COLLISION syscall.Errno = 9709 + DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT syscall.Errno = 9710 + DNS_ERROR_RECORD_ALREADY_EXISTS syscall.Errno = 9711 + DNS_ERROR_SECONDARY_DATA syscall.Errno = 9712 + DNS_ERROR_NO_CREATE_CACHE_DATA syscall.Errno = 9713 + DNS_ERROR_NAME_DOES_NOT_EXIST syscall.Errno = 9714 + DNS_WARNING_PTR_CREATE_FAILED syscall.Errno = 9715 + DNS_WARNING_DOMAIN_UNDELETED syscall.Errno = 9716 + DNS_ERROR_DS_UNAVAILABLE syscall.Errno = 9717 + DNS_ERROR_DS_ZONE_ALREADY_EXISTS syscall.Errno = 9718 + DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE syscall.Errno = 9719 + DNS_ERROR_NODE_IS_DNAME syscall.Errno = 9720 + DNS_ERROR_DNAME_COLLISION syscall.Errno = 9721 + DNS_ERROR_ALIAS_LOOP syscall.Errno = 9722 + DNS_ERROR_OPERATION_BASE syscall.Errno = 9750 + DNS_INFO_AXFR_COMPLETE syscall.Errno = 9751 + DNS_ERROR_AXFR syscall.Errno = 9752 + DNS_INFO_ADDED_LOCAL_WINS syscall.Errno = 9753 + DNS_ERROR_SECURE_BASE syscall.Errno = 9800 + DNS_STATUS_CONTINUE_NEEDED syscall.Errno = 9801 + DNS_ERROR_SETUP_BASE syscall.Errno = 9850 + DNS_ERROR_NO_TCPIP syscall.Errno = 9851 + DNS_ERROR_NO_DNS_SERVERS syscall.Errno = 9852 + DNS_ERROR_DP_BASE syscall.Errno = 9900 + DNS_ERROR_DP_DOES_NOT_EXIST syscall.Errno = 9901 + DNS_ERROR_DP_ALREADY_EXISTS syscall.Errno = 9902 + DNS_ERROR_DP_NOT_ENLISTED syscall.Errno = 9903 + DNS_ERROR_DP_ALREADY_ENLISTED syscall.Errno = 9904 + DNS_ERROR_DP_NOT_AVAILABLE syscall.Errno = 9905 + DNS_ERROR_DP_FSMO_ERROR syscall.Errno = 9906 + DNS_ERROR_RRL_NOT_ENABLED syscall.Errno = 9911 + DNS_ERROR_RRL_INVALID_WINDOW_SIZE syscall.Errno = 9912 + DNS_ERROR_RRL_INVALID_IPV4_PREFIX syscall.Errno = 9913 + DNS_ERROR_RRL_INVALID_IPV6_PREFIX syscall.Errno = 9914 + DNS_ERROR_RRL_INVALID_TC_RATE syscall.Errno = 9915 + DNS_ERROR_RRL_INVALID_LEAK_RATE syscall.Errno = 9916 + DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE syscall.Errno = 9917 + DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS syscall.Errno = 9921 + DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST syscall.Errno = 9922 + DNS_ERROR_VIRTUALIZATION_TREE_LOCKED syscall.Errno = 9923 + DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME syscall.Errno = 9924 + DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE syscall.Errno = 9925 + DNS_ERROR_ZONESCOPE_ALREADY_EXISTS syscall.Errno = 9951 + DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST syscall.Errno = 9952 + DNS_ERROR_DEFAULT_ZONESCOPE syscall.Errno = 9953 + DNS_ERROR_INVALID_ZONESCOPE_NAME syscall.Errno = 9954 + DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES syscall.Errno = 9955 + DNS_ERROR_LOAD_ZONESCOPE_FAILED syscall.Errno = 9956 + DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED syscall.Errno = 9957 + DNS_ERROR_INVALID_SCOPE_NAME syscall.Errno = 9958 + DNS_ERROR_SCOPE_DOES_NOT_EXIST syscall.Errno = 9959 + DNS_ERROR_DEFAULT_SCOPE syscall.Errno = 9960 + DNS_ERROR_INVALID_SCOPE_OPERATION syscall.Errno = 9961 + DNS_ERROR_SCOPE_LOCKED syscall.Errno = 9962 + DNS_ERROR_SCOPE_ALREADY_EXISTS syscall.Errno = 9963 + DNS_ERROR_POLICY_ALREADY_EXISTS syscall.Errno = 9971 + DNS_ERROR_POLICY_DOES_NOT_EXIST syscall.Errno = 9972 + DNS_ERROR_POLICY_INVALID_CRITERIA syscall.Errno = 9973 + DNS_ERROR_POLICY_INVALID_SETTINGS syscall.Errno = 9974 + DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED syscall.Errno = 9975 + DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST syscall.Errno = 9976 + DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS syscall.Errno = 9977 + DNS_ERROR_SUBNET_DOES_NOT_EXIST syscall.Errno = 9978 + DNS_ERROR_SUBNET_ALREADY_EXISTS syscall.Errno = 9979 + DNS_ERROR_POLICY_LOCKED syscall.Errno = 9980 + DNS_ERROR_POLICY_INVALID_WEIGHT syscall.Errno = 9981 + DNS_ERROR_POLICY_INVALID_NAME syscall.Errno = 9982 + DNS_ERROR_POLICY_MISSING_CRITERIA syscall.Errno = 9983 + DNS_ERROR_INVALID_CLIENT_SUBNET_NAME syscall.Errno = 9984 + DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID syscall.Errno = 9985 + DNS_ERROR_POLICY_SCOPE_MISSING syscall.Errno = 9986 + DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED syscall.Errno = 9987 + DNS_ERROR_SERVERSCOPE_IS_REFERENCED syscall.Errno = 9988 + DNS_ERROR_ZONESCOPE_IS_REFERENCED syscall.Errno = 9989 + DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET syscall.Errno = 9990 + DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL syscall.Errno = 9991 + DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL syscall.Errno = 9992 + DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE syscall.Errno = 9993 + DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN syscall.Errno = 9994 + DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE syscall.Errno = 9995 + DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY syscall.Errno = 9996 + WSABASEERR syscall.Errno = 10000 + WSAEINTR syscall.Errno = 10004 + WSAEBADF syscall.Errno = 10009 + WSAEACCES syscall.Errno = 10013 + WSAEFAULT syscall.Errno = 10014 + WSAEINVAL syscall.Errno = 10022 + WSAEMFILE syscall.Errno = 10024 + WSAEWOULDBLOCK syscall.Errno = 10035 + WSAEINPROGRESS syscall.Errno = 10036 + WSAEALREADY syscall.Errno = 10037 + WSAENOTSOCK syscall.Errno = 10038 + WSAEDESTADDRREQ syscall.Errno = 10039 + WSAEMSGSIZE syscall.Errno = 10040 + WSAEPROTOTYPE syscall.Errno = 10041 + WSAENOPROTOOPT syscall.Errno = 10042 + WSAEPROTONOSUPPORT syscall.Errno = 10043 + WSAESOCKTNOSUPPORT syscall.Errno = 10044 + WSAEOPNOTSUPP syscall.Errno = 10045 + WSAEPFNOSUPPORT syscall.Errno = 10046 + WSAEAFNOSUPPORT syscall.Errno = 10047 + WSAEADDRINUSE syscall.Errno = 10048 + WSAEADDRNOTAVAIL syscall.Errno = 10049 + WSAENETDOWN syscall.Errno = 10050 + WSAENETUNREACH syscall.Errno = 10051 + WSAENETRESET syscall.Errno = 10052 + WSAECONNABORTED syscall.Errno = 10053 + WSAECONNRESET syscall.Errno = 10054 + WSAENOBUFS syscall.Errno = 10055 + WSAEISCONN syscall.Errno = 10056 + WSAENOTCONN syscall.Errno = 10057 + WSAESHUTDOWN syscall.Errno = 10058 + WSAETOOMANYREFS syscall.Errno = 10059 + WSAETIMEDOUT syscall.Errno = 10060 + WSAECONNREFUSED syscall.Errno = 10061 + WSAELOOP syscall.Errno = 10062 + WSAENAMETOOLONG syscall.Errno = 10063 + WSAEHOSTDOWN syscall.Errno = 10064 + WSAEHOSTUNREACH syscall.Errno = 10065 + WSAENOTEMPTY syscall.Errno = 10066 + WSAEPROCLIM syscall.Errno = 10067 + WSAEUSERS syscall.Errno = 10068 + WSAEDQUOT syscall.Errno = 10069 + WSAESTALE syscall.Errno = 10070 + WSAEREMOTE syscall.Errno = 10071 + WSASYSNOTREADY syscall.Errno = 10091 + WSAVERNOTSUPPORTED syscall.Errno = 10092 + WSANOTINITIALISED syscall.Errno = 10093 + WSAEDISCON syscall.Errno = 10101 + WSAENOMORE syscall.Errno = 10102 + WSAECANCELLED syscall.Errno = 10103 + WSAEINVALIDPROCTABLE syscall.Errno = 10104 + WSAEINVALIDPROVIDER syscall.Errno = 10105 + WSAEPROVIDERFAILEDINIT syscall.Errno = 10106 + WSASYSCALLFAILURE syscall.Errno = 10107 + WSASERVICE_NOT_FOUND syscall.Errno = 10108 + WSATYPE_NOT_FOUND syscall.Errno = 10109 + WSA_E_NO_MORE syscall.Errno = 10110 + WSA_E_CANCELLED syscall.Errno = 10111 + WSAEREFUSED syscall.Errno = 10112 + WSAHOST_NOT_FOUND syscall.Errno = 11001 + WSATRY_AGAIN syscall.Errno = 11002 + WSANO_RECOVERY syscall.Errno = 11003 + WSANO_DATA syscall.Errno = 11004 + WSA_QOS_RECEIVERS syscall.Errno = 11005 + WSA_QOS_SENDERS syscall.Errno = 11006 + WSA_QOS_NO_SENDERS syscall.Errno = 11007 + WSA_QOS_NO_RECEIVERS syscall.Errno = 11008 + WSA_QOS_REQUEST_CONFIRMED syscall.Errno = 11009 + WSA_QOS_ADMISSION_FAILURE syscall.Errno = 11010 + WSA_QOS_POLICY_FAILURE syscall.Errno = 11011 + WSA_QOS_BAD_STYLE syscall.Errno = 11012 + WSA_QOS_BAD_OBJECT syscall.Errno = 11013 + WSA_QOS_TRAFFIC_CTRL_ERROR syscall.Errno = 11014 + WSA_QOS_GENERIC_ERROR syscall.Errno = 11015 + WSA_QOS_ESERVICETYPE syscall.Errno = 11016 + WSA_QOS_EFLOWSPEC syscall.Errno = 11017 + WSA_QOS_EPROVSPECBUF syscall.Errno = 11018 + WSA_QOS_EFILTERSTYLE syscall.Errno = 11019 + WSA_QOS_EFILTERTYPE syscall.Errno = 11020 + WSA_QOS_EFILTERCOUNT syscall.Errno = 11021 + WSA_QOS_EOBJLENGTH syscall.Errno = 11022 + WSA_QOS_EFLOWCOUNT syscall.Errno = 11023 + WSA_QOS_EUNKOWNPSOBJ syscall.Errno = 11024 + WSA_QOS_EPOLICYOBJ syscall.Errno = 11025 + WSA_QOS_EFLOWDESC syscall.Errno = 11026 + WSA_QOS_EPSFLOWSPEC syscall.Errno = 11027 + WSA_QOS_EPSFILTERSPEC syscall.Errno = 11028 + WSA_QOS_ESDMODEOBJ syscall.Errno = 11029 + WSA_QOS_ESHAPERATEOBJ syscall.Errno = 11030 + WSA_QOS_RESERVED_PETYPE syscall.Errno = 11031 + WSA_SECURE_HOST_NOT_FOUND syscall.Errno = 11032 + WSA_IPSEC_NAME_POLICY_ERROR syscall.Errno = 11033 + ERROR_IPSEC_QM_POLICY_EXISTS syscall.Errno = 13000 + ERROR_IPSEC_QM_POLICY_NOT_FOUND syscall.Errno = 13001 + ERROR_IPSEC_QM_POLICY_IN_USE syscall.Errno = 13002 + ERROR_IPSEC_MM_POLICY_EXISTS syscall.Errno = 13003 + ERROR_IPSEC_MM_POLICY_NOT_FOUND syscall.Errno = 13004 + ERROR_IPSEC_MM_POLICY_IN_USE syscall.Errno = 13005 + ERROR_IPSEC_MM_FILTER_EXISTS syscall.Errno = 13006 + ERROR_IPSEC_MM_FILTER_NOT_FOUND syscall.Errno = 13007 + ERROR_IPSEC_TRANSPORT_FILTER_EXISTS syscall.Errno = 13008 + ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND syscall.Errno = 13009 + ERROR_IPSEC_MM_AUTH_EXISTS syscall.Errno = 13010 + ERROR_IPSEC_MM_AUTH_NOT_FOUND syscall.Errno = 13011 + ERROR_IPSEC_MM_AUTH_IN_USE syscall.Errno = 13012 + ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND syscall.Errno = 13013 + ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND syscall.Errno = 13014 + ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND syscall.Errno = 13015 + ERROR_IPSEC_TUNNEL_FILTER_EXISTS syscall.Errno = 13016 + ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND syscall.Errno = 13017 + ERROR_IPSEC_MM_FILTER_PENDING_DELETION syscall.Errno = 13018 + ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION syscall.Errno = 13019 + ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION syscall.Errno = 13020 + ERROR_IPSEC_MM_POLICY_PENDING_DELETION syscall.Errno = 13021 + ERROR_IPSEC_MM_AUTH_PENDING_DELETION syscall.Errno = 13022 + ERROR_IPSEC_QM_POLICY_PENDING_DELETION syscall.Errno = 13023 + WARNING_IPSEC_MM_POLICY_PRUNED syscall.Errno = 13024 + WARNING_IPSEC_QM_POLICY_PRUNED syscall.Errno = 13025 + ERROR_IPSEC_IKE_NEG_STATUS_BEGIN syscall.Errno = 13800 + ERROR_IPSEC_IKE_AUTH_FAIL syscall.Errno = 13801 + ERROR_IPSEC_IKE_ATTRIB_FAIL syscall.Errno = 13802 + ERROR_IPSEC_IKE_NEGOTIATION_PENDING syscall.Errno = 13803 + ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR syscall.Errno = 13804 + ERROR_IPSEC_IKE_TIMED_OUT syscall.Errno = 13805 + ERROR_IPSEC_IKE_NO_CERT syscall.Errno = 13806 + ERROR_IPSEC_IKE_SA_DELETED syscall.Errno = 13807 + ERROR_IPSEC_IKE_SA_REAPED syscall.Errno = 13808 + ERROR_IPSEC_IKE_MM_ACQUIRE_DROP syscall.Errno = 13809 + ERROR_IPSEC_IKE_QM_ACQUIRE_DROP syscall.Errno = 13810 + ERROR_IPSEC_IKE_QUEUE_DROP_MM syscall.Errno = 13811 + ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM syscall.Errno = 13812 + ERROR_IPSEC_IKE_DROP_NO_RESPONSE syscall.Errno = 13813 + ERROR_IPSEC_IKE_MM_DELAY_DROP syscall.Errno = 13814 + ERROR_IPSEC_IKE_QM_DELAY_DROP syscall.Errno = 13815 + ERROR_IPSEC_IKE_ERROR syscall.Errno = 13816 + ERROR_IPSEC_IKE_CRL_FAILED syscall.Errno = 13817 + ERROR_IPSEC_IKE_INVALID_KEY_USAGE syscall.Errno = 13818 + ERROR_IPSEC_IKE_INVALID_CERT_TYPE syscall.Errno = 13819 + ERROR_IPSEC_IKE_NO_PRIVATE_KEY syscall.Errno = 13820 + ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY syscall.Errno = 13821 + ERROR_IPSEC_IKE_DH_FAIL syscall.Errno = 13822 + ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED syscall.Errno = 13823 + ERROR_IPSEC_IKE_INVALID_HEADER syscall.Errno = 13824 + ERROR_IPSEC_IKE_NO_POLICY syscall.Errno = 13825 + ERROR_IPSEC_IKE_INVALID_SIGNATURE syscall.Errno = 13826 + ERROR_IPSEC_IKE_KERBEROS_ERROR syscall.Errno = 13827 + ERROR_IPSEC_IKE_NO_PUBLIC_KEY syscall.Errno = 13828 + ERROR_IPSEC_IKE_PROCESS_ERR syscall.Errno = 13829 + ERROR_IPSEC_IKE_PROCESS_ERR_SA syscall.Errno = 13830 + ERROR_IPSEC_IKE_PROCESS_ERR_PROP syscall.Errno = 13831 + ERROR_IPSEC_IKE_PROCESS_ERR_TRANS syscall.Errno = 13832 + ERROR_IPSEC_IKE_PROCESS_ERR_KE syscall.Errno = 13833 + ERROR_IPSEC_IKE_PROCESS_ERR_ID syscall.Errno = 13834 + ERROR_IPSEC_IKE_PROCESS_ERR_CERT syscall.Errno = 13835 + ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ syscall.Errno = 13836 + ERROR_IPSEC_IKE_PROCESS_ERR_HASH syscall.Errno = 13837 + ERROR_IPSEC_IKE_PROCESS_ERR_SIG syscall.Errno = 13838 + ERROR_IPSEC_IKE_PROCESS_ERR_NONCE syscall.Errno = 13839 + ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY syscall.Errno = 13840 + ERROR_IPSEC_IKE_PROCESS_ERR_DELETE syscall.Errno = 13841 + ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR syscall.Errno = 13842 + ERROR_IPSEC_IKE_INVALID_PAYLOAD syscall.Errno = 13843 + ERROR_IPSEC_IKE_LOAD_SOFT_SA syscall.Errno = 13844 + ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN syscall.Errno = 13845 + ERROR_IPSEC_IKE_INVALID_COOKIE syscall.Errno = 13846 + ERROR_IPSEC_IKE_NO_PEER_CERT syscall.Errno = 13847 + ERROR_IPSEC_IKE_PEER_CRL_FAILED syscall.Errno = 13848 + ERROR_IPSEC_IKE_POLICY_CHANGE syscall.Errno = 13849 + ERROR_IPSEC_IKE_NO_MM_POLICY syscall.Errno = 13850 + ERROR_IPSEC_IKE_NOTCBPRIV syscall.Errno = 13851 + ERROR_IPSEC_IKE_SECLOADFAIL syscall.Errno = 13852 + ERROR_IPSEC_IKE_FAILSSPINIT syscall.Errno = 13853 + ERROR_IPSEC_IKE_FAILQUERYSSP syscall.Errno = 13854 + ERROR_IPSEC_IKE_SRVACQFAIL syscall.Errno = 13855 + ERROR_IPSEC_IKE_SRVQUERYCRED syscall.Errno = 13856 + ERROR_IPSEC_IKE_GETSPIFAIL syscall.Errno = 13857 + ERROR_IPSEC_IKE_INVALID_FILTER syscall.Errno = 13858 + ERROR_IPSEC_IKE_OUT_OF_MEMORY syscall.Errno = 13859 + ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED syscall.Errno = 13860 + ERROR_IPSEC_IKE_INVALID_POLICY syscall.Errno = 13861 + ERROR_IPSEC_IKE_UNKNOWN_DOI syscall.Errno = 13862 + ERROR_IPSEC_IKE_INVALID_SITUATION syscall.Errno = 13863 + ERROR_IPSEC_IKE_DH_FAILURE syscall.Errno = 13864 + ERROR_IPSEC_IKE_INVALID_GROUP syscall.Errno = 13865 + ERROR_IPSEC_IKE_ENCRYPT syscall.Errno = 13866 + ERROR_IPSEC_IKE_DECRYPT syscall.Errno = 13867 + ERROR_IPSEC_IKE_POLICY_MATCH syscall.Errno = 13868 + ERROR_IPSEC_IKE_UNSUPPORTED_ID syscall.Errno = 13869 + ERROR_IPSEC_IKE_INVALID_HASH syscall.Errno = 13870 + ERROR_IPSEC_IKE_INVALID_HASH_ALG syscall.Errno = 13871 + ERROR_IPSEC_IKE_INVALID_HASH_SIZE syscall.Errno = 13872 + ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG syscall.Errno = 13873 + ERROR_IPSEC_IKE_INVALID_AUTH_ALG syscall.Errno = 13874 + ERROR_IPSEC_IKE_INVALID_SIG syscall.Errno = 13875 + ERROR_IPSEC_IKE_LOAD_FAILED syscall.Errno = 13876 + ERROR_IPSEC_IKE_RPC_DELETE syscall.Errno = 13877 + ERROR_IPSEC_IKE_BENIGN_REINIT syscall.Errno = 13878 + ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY syscall.Errno = 13879 + ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION syscall.Errno = 13880 + ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN syscall.Errno = 13881 + ERROR_IPSEC_IKE_MM_LIMIT syscall.Errno = 13882 + ERROR_IPSEC_IKE_NEGOTIATION_DISABLED syscall.Errno = 13883 + ERROR_IPSEC_IKE_QM_LIMIT syscall.Errno = 13884 + ERROR_IPSEC_IKE_MM_EXPIRED syscall.Errno = 13885 + ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID syscall.Errno = 13886 + ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH syscall.Errno = 13887 + ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID syscall.Errno = 13888 + ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD syscall.Errno = 13889 + ERROR_IPSEC_IKE_DOS_COOKIE_SENT syscall.Errno = 13890 + ERROR_IPSEC_IKE_SHUTTING_DOWN syscall.Errno = 13891 + ERROR_IPSEC_IKE_CGA_AUTH_FAILED syscall.Errno = 13892 + ERROR_IPSEC_IKE_PROCESS_ERR_NATOA syscall.Errno = 13893 + ERROR_IPSEC_IKE_INVALID_MM_FOR_QM syscall.Errno = 13894 + ERROR_IPSEC_IKE_QM_EXPIRED syscall.Errno = 13895 + ERROR_IPSEC_IKE_TOO_MANY_FILTERS syscall.Errno = 13896 + ERROR_IPSEC_IKE_NEG_STATUS_END syscall.Errno = 13897 + ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL syscall.Errno = 13898 + ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE syscall.Errno = 13899 + ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING syscall.Errno = 13900 + ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING syscall.Errno = 13901 + ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS syscall.Errno = 13902 + ERROR_IPSEC_IKE_RATELIMIT_DROP syscall.Errno = 13903 + ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE syscall.Errno = 13904 + ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE syscall.Errno = 13905 + ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE syscall.Errno = 13906 + ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY syscall.Errno = 13907 + ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE syscall.Errno = 13908 + ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END syscall.Errno = 13909 + ERROR_IPSEC_BAD_SPI syscall.Errno = 13910 + ERROR_IPSEC_SA_LIFETIME_EXPIRED syscall.Errno = 13911 + ERROR_IPSEC_WRONG_SA syscall.Errno = 13912 + ERROR_IPSEC_REPLAY_CHECK_FAILED syscall.Errno = 13913 + ERROR_IPSEC_INVALID_PACKET syscall.Errno = 13914 + ERROR_IPSEC_INTEGRITY_CHECK_FAILED syscall.Errno = 13915 + ERROR_IPSEC_CLEAR_TEXT_DROP syscall.Errno = 13916 + ERROR_IPSEC_AUTH_FIREWALL_DROP syscall.Errno = 13917 + ERROR_IPSEC_THROTTLE_DROP syscall.Errno = 13918 + ERROR_IPSEC_DOSP_BLOCK syscall.Errno = 13925 + ERROR_IPSEC_DOSP_RECEIVED_MULTICAST syscall.Errno = 13926 + ERROR_IPSEC_DOSP_INVALID_PACKET syscall.Errno = 13927 + ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED syscall.Errno = 13928 + ERROR_IPSEC_DOSP_MAX_ENTRIES syscall.Errno = 13929 + ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED syscall.Errno = 13930 + ERROR_IPSEC_DOSP_NOT_INSTALLED syscall.Errno = 13931 + ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES syscall.Errno = 13932 + ERROR_SXS_SECTION_NOT_FOUND syscall.Errno = 14000 + ERROR_SXS_CANT_GEN_ACTCTX syscall.Errno = 14001 + ERROR_SXS_INVALID_ACTCTXDATA_FORMAT syscall.Errno = 14002 + ERROR_SXS_ASSEMBLY_NOT_FOUND syscall.Errno = 14003 + ERROR_SXS_MANIFEST_FORMAT_ERROR syscall.Errno = 14004 + ERROR_SXS_MANIFEST_PARSE_ERROR syscall.Errno = 14005 + ERROR_SXS_ACTIVATION_CONTEXT_DISABLED syscall.Errno = 14006 + ERROR_SXS_KEY_NOT_FOUND syscall.Errno = 14007 + ERROR_SXS_VERSION_CONFLICT syscall.Errno = 14008 + ERROR_SXS_WRONG_SECTION_TYPE syscall.Errno = 14009 + ERROR_SXS_THREAD_QUERIES_DISABLED syscall.Errno = 14010 + ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET syscall.Errno = 14011 + ERROR_SXS_UNKNOWN_ENCODING_GROUP syscall.Errno = 14012 + ERROR_SXS_UNKNOWN_ENCODING syscall.Errno = 14013 + ERROR_SXS_INVALID_XML_NAMESPACE_URI syscall.Errno = 14014 + ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED syscall.Errno = 14015 + ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED syscall.Errno = 14016 + ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE syscall.Errno = 14017 + ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE syscall.Errno = 14018 + ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE syscall.Errno = 14019 + ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT syscall.Errno = 14020 + ERROR_SXS_DUPLICATE_DLL_NAME syscall.Errno = 14021 + ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME syscall.Errno = 14022 + ERROR_SXS_DUPLICATE_CLSID syscall.Errno = 14023 + ERROR_SXS_DUPLICATE_IID syscall.Errno = 14024 + ERROR_SXS_DUPLICATE_TLBID syscall.Errno = 14025 + ERROR_SXS_DUPLICATE_PROGID syscall.Errno = 14026 + ERROR_SXS_DUPLICATE_ASSEMBLY_NAME syscall.Errno = 14027 + ERROR_SXS_FILE_HASH_MISMATCH syscall.Errno = 14028 + ERROR_SXS_POLICY_PARSE_ERROR syscall.Errno = 14029 + ERROR_SXS_XML_E_MISSINGQUOTE syscall.Errno = 14030 + ERROR_SXS_XML_E_COMMENTSYNTAX syscall.Errno = 14031 + ERROR_SXS_XML_E_BADSTARTNAMECHAR syscall.Errno = 14032 + ERROR_SXS_XML_E_BADNAMECHAR syscall.Errno = 14033 + ERROR_SXS_XML_E_BADCHARINSTRING syscall.Errno = 14034 + ERROR_SXS_XML_E_XMLDECLSYNTAX syscall.Errno = 14035 + ERROR_SXS_XML_E_BADCHARDATA syscall.Errno = 14036 + ERROR_SXS_XML_E_MISSINGWHITESPACE syscall.Errno = 14037 + ERROR_SXS_XML_E_EXPECTINGTAGEND syscall.Errno = 14038 + ERROR_SXS_XML_E_MISSINGSEMICOLON syscall.Errno = 14039 + ERROR_SXS_XML_E_UNBALANCEDPAREN syscall.Errno = 14040 + ERROR_SXS_XML_E_INTERNALERROR syscall.Errno = 14041 + ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE syscall.Errno = 14042 + ERROR_SXS_XML_E_INCOMPLETE_ENCODING syscall.Errno = 14043 + ERROR_SXS_XML_E_MISSING_PAREN syscall.Errno = 14044 + ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE syscall.Errno = 14045 + ERROR_SXS_XML_E_MULTIPLE_COLONS syscall.Errno = 14046 + ERROR_SXS_XML_E_INVALID_DECIMAL syscall.Errno = 14047 + ERROR_SXS_XML_E_INVALID_HEXIDECIMAL syscall.Errno = 14048 + ERROR_SXS_XML_E_INVALID_UNICODE syscall.Errno = 14049 + ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK syscall.Errno = 14050 + ERROR_SXS_XML_E_UNEXPECTEDENDTAG syscall.Errno = 14051 + ERROR_SXS_XML_E_UNCLOSEDTAG syscall.Errno = 14052 + ERROR_SXS_XML_E_DUPLICATEATTRIBUTE syscall.Errno = 14053 + ERROR_SXS_XML_E_MULTIPLEROOTS syscall.Errno = 14054 + ERROR_SXS_XML_E_INVALIDATROOTLEVEL syscall.Errno = 14055 + ERROR_SXS_XML_E_BADXMLDECL syscall.Errno = 14056 + ERROR_SXS_XML_E_MISSINGROOT syscall.Errno = 14057 + ERROR_SXS_XML_E_UNEXPECTEDEOF syscall.Errno = 14058 + ERROR_SXS_XML_E_BADPEREFINSUBSET syscall.Errno = 14059 + ERROR_SXS_XML_E_UNCLOSEDSTARTTAG syscall.Errno = 14060 + ERROR_SXS_XML_E_UNCLOSEDENDTAG syscall.Errno = 14061 + ERROR_SXS_XML_E_UNCLOSEDSTRING syscall.Errno = 14062 + ERROR_SXS_XML_E_UNCLOSEDCOMMENT syscall.Errno = 14063 + ERROR_SXS_XML_E_UNCLOSEDDECL syscall.Errno = 14064 + ERROR_SXS_XML_E_UNCLOSEDCDATA syscall.Errno = 14065 + ERROR_SXS_XML_E_RESERVEDNAMESPACE syscall.Errno = 14066 + ERROR_SXS_XML_E_INVALIDENCODING syscall.Errno = 14067 + ERROR_SXS_XML_E_INVALIDSWITCH syscall.Errno = 14068 + ERROR_SXS_XML_E_BADXMLCASE syscall.Errno = 14069 + ERROR_SXS_XML_E_INVALID_STANDALONE syscall.Errno = 14070 + ERROR_SXS_XML_E_UNEXPECTED_STANDALONE syscall.Errno = 14071 + ERROR_SXS_XML_E_INVALID_VERSION syscall.Errno = 14072 + ERROR_SXS_XML_E_MISSINGEQUALS syscall.Errno = 14073 + ERROR_SXS_PROTECTION_RECOVERY_FAILED syscall.Errno = 14074 + ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT syscall.Errno = 14075 + ERROR_SXS_PROTECTION_CATALOG_NOT_VALID syscall.Errno = 14076 + ERROR_SXS_UNTRANSLATABLE_HRESULT syscall.Errno = 14077 + ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING syscall.Errno = 14078 + ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE syscall.Errno = 14079 + ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME syscall.Errno = 14080 + ERROR_SXS_ASSEMBLY_MISSING syscall.Errno = 14081 + ERROR_SXS_CORRUPT_ACTIVATION_STACK syscall.Errno = 14082 + ERROR_SXS_CORRUPTION syscall.Errno = 14083 + ERROR_SXS_EARLY_DEACTIVATION syscall.Errno = 14084 + ERROR_SXS_INVALID_DEACTIVATION syscall.Errno = 14085 + ERROR_SXS_MULTIPLE_DEACTIVATION syscall.Errno = 14086 + ERROR_SXS_PROCESS_TERMINATION_REQUESTED syscall.Errno = 14087 + ERROR_SXS_RELEASE_ACTIVATION_CONTEXT syscall.Errno = 14088 + ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY syscall.Errno = 14089 + ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE syscall.Errno = 14090 + ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME syscall.Errno = 14091 + ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE syscall.Errno = 14092 + ERROR_SXS_IDENTITY_PARSE_ERROR syscall.Errno = 14093 + ERROR_MALFORMED_SUBSTITUTION_STRING syscall.Errno = 14094 + ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN syscall.Errno = 14095 + ERROR_UNMAPPED_SUBSTITUTION_STRING syscall.Errno = 14096 + ERROR_SXS_ASSEMBLY_NOT_LOCKED syscall.Errno = 14097 + ERROR_SXS_COMPONENT_STORE_CORRUPT syscall.Errno = 14098 + ERROR_ADVANCED_INSTALLER_FAILED syscall.Errno = 14099 + ERROR_XML_ENCODING_MISMATCH syscall.Errno = 14100 + ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT syscall.Errno = 14101 + ERROR_SXS_IDENTITIES_DIFFERENT syscall.Errno = 14102 + ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT syscall.Errno = 14103 + ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY syscall.Errno = 14104 + ERROR_SXS_MANIFEST_TOO_BIG syscall.Errno = 14105 + ERROR_SXS_SETTING_NOT_REGISTERED syscall.Errno = 14106 + ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE syscall.Errno = 14107 + ERROR_SMI_PRIMITIVE_INSTALLER_FAILED syscall.Errno = 14108 + ERROR_GENERIC_COMMAND_FAILED syscall.Errno = 14109 + ERROR_SXS_FILE_HASH_MISSING syscall.Errno = 14110 + ERROR_SXS_DUPLICATE_ACTIVATABLE_CLASS syscall.Errno = 14111 + ERROR_EVT_INVALID_CHANNEL_PATH syscall.Errno = 15000 + ERROR_EVT_INVALID_QUERY syscall.Errno = 15001 + ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND syscall.Errno = 15002 + ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND syscall.Errno = 15003 + ERROR_EVT_INVALID_PUBLISHER_NAME syscall.Errno = 15004 + ERROR_EVT_INVALID_EVENT_DATA syscall.Errno = 15005 + ERROR_EVT_CHANNEL_NOT_FOUND syscall.Errno = 15007 + ERROR_EVT_MALFORMED_XML_TEXT syscall.Errno = 15008 + ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL syscall.Errno = 15009 + ERROR_EVT_CONFIGURATION_ERROR syscall.Errno = 15010 + ERROR_EVT_QUERY_RESULT_STALE syscall.Errno = 15011 + ERROR_EVT_QUERY_RESULT_INVALID_POSITION syscall.Errno = 15012 + ERROR_EVT_NON_VALIDATING_MSXML syscall.Errno = 15013 + ERROR_EVT_FILTER_ALREADYSCOPED syscall.Errno = 15014 + ERROR_EVT_FILTER_NOTELTSET syscall.Errno = 15015 + ERROR_EVT_FILTER_INVARG syscall.Errno = 15016 + ERROR_EVT_FILTER_INVTEST syscall.Errno = 15017 + ERROR_EVT_FILTER_INVTYPE syscall.Errno = 15018 + ERROR_EVT_FILTER_PARSEERR syscall.Errno = 15019 + ERROR_EVT_FILTER_UNSUPPORTEDOP syscall.Errno = 15020 + ERROR_EVT_FILTER_UNEXPECTEDTOKEN syscall.Errno = 15021 + ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL syscall.Errno = 15022 + ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE syscall.Errno = 15023 + ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE syscall.Errno = 15024 + ERROR_EVT_CHANNEL_CANNOT_ACTIVATE syscall.Errno = 15025 + ERROR_EVT_FILTER_TOO_COMPLEX syscall.Errno = 15026 + ERROR_EVT_MESSAGE_NOT_FOUND syscall.Errno = 15027 + ERROR_EVT_MESSAGE_ID_NOT_FOUND syscall.Errno = 15028 + ERROR_EVT_UNRESOLVED_VALUE_INSERT syscall.Errno = 15029 + ERROR_EVT_UNRESOLVED_PARAMETER_INSERT syscall.Errno = 15030 + ERROR_EVT_MAX_INSERTS_REACHED syscall.Errno = 15031 + ERROR_EVT_EVENT_DEFINITION_NOT_FOUND syscall.Errno = 15032 + ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND syscall.Errno = 15033 + ERROR_EVT_VERSION_TOO_OLD syscall.Errno = 15034 + ERROR_EVT_VERSION_TOO_NEW syscall.Errno = 15035 + ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY syscall.Errno = 15036 + ERROR_EVT_PUBLISHER_DISABLED syscall.Errno = 15037 + ERROR_EVT_FILTER_OUT_OF_RANGE syscall.Errno = 15038 + ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE syscall.Errno = 15080 + ERROR_EC_LOG_DISABLED syscall.Errno = 15081 + ERROR_EC_CIRCULAR_FORWARDING syscall.Errno = 15082 + ERROR_EC_CREDSTORE_FULL syscall.Errno = 15083 + ERROR_EC_CRED_NOT_FOUND syscall.Errno = 15084 + ERROR_EC_NO_ACTIVE_CHANNEL syscall.Errno = 15085 + ERROR_MUI_FILE_NOT_FOUND syscall.Errno = 15100 + ERROR_MUI_INVALID_FILE syscall.Errno = 15101 + ERROR_MUI_INVALID_RC_CONFIG syscall.Errno = 15102 + ERROR_MUI_INVALID_LOCALE_NAME syscall.Errno = 15103 + ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME syscall.Errno = 15104 + ERROR_MUI_FILE_NOT_LOADED syscall.Errno = 15105 + ERROR_RESOURCE_ENUM_USER_STOP syscall.Errno = 15106 + ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED syscall.Errno = 15107 + ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME syscall.Errno = 15108 + ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE syscall.Errno = 15110 + ERROR_MRM_INVALID_PRICONFIG syscall.Errno = 15111 + ERROR_MRM_INVALID_FILE_TYPE syscall.Errno = 15112 + ERROR_MRM_UNKNOWN_QUALIFIER syscall.Errno = 15113 + ERROR_MRM_INVALID_QUALIFIER_VALUE syscall.Errno = 15114 + ERROR_MRM_NO_CANDIDATE syscall.Errno = 15115 + ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE syscall.Errno = 15116 + ERROR_MRM_RESOURCE_TYPE_MISMATCH syscall.Errno = 15117 + ERROR_MRM_DUPLICATE_MAP_NAME syscall.Errno = 15118 + ERROR_MRM_DUPLICATE_ENTRY syscall.Errno = 15119 + ERROR_MRM_INVALID_RESOURCE_IDENTIFIER syscall.Errno = 15120 + ERROR_MRM_FILEPATH_TOO_LONG syscall.Errno = 15121 + ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE syscall.Errno = 15122 + ERROR_MRM_INVALID_PRI_FILE syscall.Errno = 15126 + ERROR_MRM_NAMED_RESOURCE_NOT_FOUND syscall.Errno = 15127 + ERROR_MRM_MAP_NOT_FOUND syscall.Errno = 15135 + ERROR_MRM_UNSUPPORTED_PROFILE_TYPE syscall.Errno = 15136 + ERROR_MRM_INVALID_QUALIFIER_OPERATOR syscall.Errno = 15137 + ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE syscall.Errno = 15138 + ERROR_MRM_AUTOMERGE_ENABLED syscall.Errno = 15139 + ERROR_MRM_TOO_MANY_RESOURCES syscall.Errno = 15140 + ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE syscall.Errno = 15141 + ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE syscall.Errno = 15142 + ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD syscall.Errno = 15143 + ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST syscall.Errno = 15144 + ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT syscall.Errno = 15145 + ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE syscall.Errno = 15146 + ERROR_MRM_GENERATION_COUNT_MISMATCH syscall.Errno = 15147 + ERROR_PRI_MERGE_VERSION_MISMATCH syscall.Errno = 15148 + ERROR_PRI_MERGE_MISSING_SCHEMA syscall.Errno = 15149 + ERROR_PRI_MERGE_LOAD_FILE_FAILED syscall.Errno = 15150 + ERROR_PRI_MERGE_ADD_FILE_FAILED syscall.Errno = 15151 + ERROR_PRI_MERGE_WRITE_FILE_FAILED syscall.Errno = 15152 + ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED syscall.Errno = 15153 + ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED syscall.Errno = 15154 + ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED syscall.Errno = 15155 + ERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED syscall.Errno = 15156 + ERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED syscall.Errno = 15157 + ERROR_PRI_MERGE_INVALID_FILE_NAME syscall.Errno = 15158 + ERROR_MRM_PACKAGE_NOT_FOUND syscall.Errno = 15159 + ERROR_MRM_MISSING_DEFAULT_LANGUAGE syscall.Errno = 15160 + ERROR_MCA_INVALID_CAPABILITIES_STRING syscall.Errno = 15200 + ERROR_MCA_INVALID_VCP_VERSION syscall.Errno = 15201 + ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION syscall.Errno = 15202 + ERROR_MCA_MCCS_VERSION_MISMATCH syscall.Errno = 15203 + ERROR_MCA_UNSUPPORTED_MCCS_VERSION syscall.Errno = 15204 + ERROR_MCA_INTERNAL_ERROR syscall.Errno = 15205 + ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED syscall.Errno = 15206 + ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE syscall.Errno = 15207 + ERROR_AMBIGUOUS_SYSTEM_DEVICE syscall.Errno = 15250 + ERROR_SYSTEM_DEVICE_NOT_FOUND syscall.Errno = 15299 + ERROR_HASH_NOT_SUPPORTED syscall.Errno = 15300 + ERROR_HASH_NOT_PRESENT syscall.Errno = 15301 + ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED syscall.Errno = 15321 + ERROR_GPIO_CLIENT_INFORMATION_INVALID syscall.Errno = 15322 + ERROR_GPIO_VERSION_NOT_SUPPORTED syscall.Errno = 15323 + ERROR_GPIO_INVALID_REGISTRATION_PACKET syscall.Errno = 15324 + ERROR_GPIO_OPERATION_DENIED syscall.Errno = 15325 + ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE syscall.Errno = 15326 + ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED syscall.Errno = 15327 + ERROR_CANNOT_SWITCH_RUNLEVEL syscall.Errno = 15400 + ERROR_INVALID_RUNLEVEL_SETTING syscall.Errno = 15401 + ERROR_RUNLEVEL_SWITCH_TIMEOUT syscall.Errno = 15402 + ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT syscall.Errno = 15403 + ERROR_RUNLEVEL_SWITCH_IN_PROGRESS syscall.Errno = 15404 + ERROR_SERVICES_FAILED_AUTOSTART syscall.Errno = 15405 + ERROR_COM_TASK_STOP_PENDING syscall.Errno = 15501 + ERROR_INSTALL_OPEN_PACKAGE_FAILED syscall.Errno = 15600 + ERROR_INSTALL_PACKAGE_NOT_FOUND syscall.Errno = 15601 + ERROR_INSTALL_INVALID_PACKAGE syscall.Errno = 15602 + ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED syscall.Errno = 15603 + ERROR_INSTALL_OUT_OF_DISK_SPACE syscall.Errno = 15604 + ERROR_INSTALL_NETWORK_FAILURE syscall.Errno = 15605 + ERROR_INSTALL_REGISTRATION_FAILURE syscall.Errno = 15606 + ERROR_INSTALL_DEREGISTRATION_FAILURE syscall.Errno = 15607 + ERROR_INSTALL_CANCEL syscall.Errno = 15608 + ERROR_INSTALL_FAILED syscall.Errno = 15609 + ERROR_REMOVE_FAILED syscall.Errno = 15610 + ERROR_PACKAGE_ALREADY_EXISTS syscall.Errno = 15611 + ERROR_NEEDS_REMEDIATION syscall.Errno = 15612 + ERROR_INSTALL_PREREQUISITE_FAILED syscall.Errno = 15613 + ERROR_PACKAGE_REPOSITORY_CORRUPTED syscall.Errno = 15614 + ERROR_INSTALL_POLICY_FAILURE syscall.Errno = 15615 + ERROR_PACKAGE_UPDATING syscall.Errno = 15616 + ERROR_DEPLOYMENT_BLOCKED_BY_POLICY syscall.Errno = 15617 + ERROR_PACKAGES_IN_USE syscall.Errno = 15618 + ERROR_RECOVERY_FILE_CORRUPT syscall.Errno = 15619 + ERROR_INVALID_STAGED_SIGNATURE syscall.Errno = 15620 + ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED syscall.Errno = 15621 + ERROR_INSTALL_PACKAGE_DOWNGRADE syscall.Errno = 15622 + ERROR_SYSTEM_NEEDS_REMEDIATION syscall.Errno = 15623 + ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN syscall.Errno = 15624 + ERROR_RESILIENCY_FILE_CORRUPT syscall.Errno = 15625 + ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING syscall.Errno = 15626 + ERROR_PACKAGE_MOVE_FAILED syscall.Errno = 15627 + ERROR_INSTALL_VOLUME_NOT_EMPTY syscall.Errno = 15628 + ERROR_INSTALL_VOLUME_OFFLINE syscall.Errno = 15629 + ERROR_INSTALL_VOLUME_CORRUPT syscall.Errno = 15630 + ERROR_NEEDS_REGISTRATION syscall.Errno = 15631 + ERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE syscall.Errno = 15632 + ERROR_DEV_SIDELOAD_LIMIT_EXCEEDED syscall.Errno = 15633 + ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE syscall.Errno = 15634 + ERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM syscall.Errno = 15635 + ERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING syscall.Errno = 15636 + ERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE syscall.Errno = 15637 + ERROR_PACKAGE_STAGING_ONHOLD syscall.Errno = 15638 + ERROR_INSTALL_INVALID_RELATED_SET_UPDATE syscall.Errno = 15639 + ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY syscall.Errno = 15640 + ERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF syscall.Errno = 15641 + ERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED syscall.Errno = 15642 + ERROR_PACKAGES_REPUTATION_CHECK_FAILED syscall.Errno = 15643 + ERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT syscall.Errno = 15644 + ERROR_DEPLOYMENT_OPTION_NOT_SUPPORTED syscall.Errno = 15645 + ERROR_APPINSTALLER_ACTIVATION_BLOCKED syscall.Errno = 15646 + ERROR_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED syscall.Errno = 15647 + ERROR_APPX_RAW_DATA_WRITE_FAILED syscall.Errno = 15648 + ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE syscall.Errno = 15649 + ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE syscall.Errno = 15650 + ERROR_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY syscall.Errno = 15651 + ERROR_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY syscall.Errno = 15652 + ERROR_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER syscall.Errno = 15653 + ERROR_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED syscall.Errno = 15654 + ERROR_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE syscall.Errno = 15655 + ERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES syscall.Errno = 15656 + APPMODEL_ERROR_NO_PACKAGE syscall.Errno = 15700 + APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT syscall.Errno = 15701 + APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT syscall.Errno = 15702 + APPMODEL_ERROR_NO_APPLICATION syscall.Errno = 15703 + APPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED syscall.Errno = 15704 + APPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID syscall.Errno = 15705 + APPMODEL_ERROR_PACKAGE_NOT_AVAILABLE syscall.Errno = 15706 + APPMODEL_ERROR_NO_MUTABLE_DIRECTORY syscall.Errno = 15707 + ERROR_STATE_LOAD_STORE_FAILED syscall.Errno = 15800 + ERROR_STATE_GET_VERSION_FAILED syscall.Errno = 15801 + ERROR_STATE_SET_VERSION_FAILED syscall.Errno = 15802 + ERROR_STATE_STRUCTURED_RESET_FAILED syscall.Errno = 15803 + ERROR_STATE_OPEN_CONTAINER_FAILED syscall.Errno = 15804 + ERROR_STATE_CREATE_CONTAINER_FAILED syscall.Errno = 15805 + ERROR_STATE_DELETE_CONTAINER_FAILED syscall.Errno = 15806 + ERROR_STATE_READ_SETTING_FAILED syscall.Errno = 15807 + ERROR_STATE_WRITE_SETTING_FAILED syscall.Errno = 15808 + ERROR_STATE_DELETE_SETTING_FAILED syscall.Errno = 15809 + ERROR_STATE_QUERY_SETTING_FAILED syscall.Errno = 15810 + ERROR_STATE_READ_COMPOSITE_SETTING_FAILED syscall.Errno = 15811 + ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED syscall.Errno = 15812 + ERROR_STATE_ENUMERATE_CONTAINER_FAILED syscall.Errno = 15813 + ERROR_STATE_ENUMERATE_SETTINGS_FAILED syscall.Errno = 15814 + ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED syscall.Errno = 15815 + ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED syscall.Errno = 15816 + ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED syscall.Errno = 15817 + ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED syscall.Errno = 15818 + ERROR_API_UNAVAILABLE syscall.Errno = 15841 + STORE_ERROR_UNLICENSED syscall.Errno = 15861 + STORE_ERROR_UNLICENSED_USER syscall.Errno = 15862 + STORE_ERROR_PENDING_COM_TRANSACTION syscall.Errno = 15863 + STORE_ERROR_LICENSE_REVOKED syscall.Errno = 15864 + SEVERITY_SUCCESS syscall.Errno = 0 + SEVERITY_ERROR syscall.Errno = 1 + FACILITY_NT_BIT = 0x10000000 + E_NOT_SET = ERROR_NOT_FOUND + E_NOT_VALID_STATE = ERROR_INVALID_STATE + E_NOT_SUFFICIENT_BUFFER = ERROR_INSUFFICIENT_BUFFER + E_TIME_SENSITIVE_THREAD = ERROR_TIME_SENSITIVE_THREAD + E_NO_TASK_QUEUE = ERROR_NO_TASK_QUEUE + NOERROR syscall.Errno = 0 + E_UNEXPECTED Handle = 0x8000FFFF + E_NOTIMPL Handle = 0x80004001 + E_OUTOFMEMORY Handle = 0x8007000E + E_INVALIDARG Handle = 0x80070057 + E_NOINTERFACE Handle = 0x80004002 + E_POINTER Handle = 0x80004003 + E_HANDLE Handle = 0x80070006 + E_ABORT Handle = 0x80004004 + E_FAIL Handle = 0x80004005 + E_ACCESSDENIED Handle = 0x80070005 + E_PENDING Handle = 0x8000000A + E_BOUNDS Handle = 0x8000000B + E_CHANGED_STATE Handle = 0x8000000C + E_ILLEGAL_STATE_CHANGE Handle = 0x8000000D + E_ILLEGAL_METHOD_CALL Handle = 0x8000000E + RO_E_METADATA_NAME_NOT_FOUND Handle = 0x8000000F + RO_E_METADATA_NAME_IS_NAMESPACE Handle = 0x80000010 + RO_E_METADATA_INVALID_TYPE_FORMAT Handle = 0x80000011 + RO_E_INVALID_METADATA_FILE Handle = 0x80000012 + RO_E_CLOSED Handle = 0x80000013 + RO_E_EXCLUSIVE_WRITE Handle = 0x80000014 + RO_E_CHANGE_NOTIFICATION_IN_PROGRESS Handle = 0x80000015 + RO_E_ERROR_STRING_NOT_FOUND Handle = 0x80000016 + E_STRING_NOT_NULL_TERMINATED Handle = 0x80000017 + E_ILLEGAL_DELEGATE_ASSIGNMENT Handle = 0x80000018 + E_ASYNC_OPERATION_NOT_STARTED Handle = 0x80000019 + E_APPLICATION_EXITING Handle = 0x8000001A + E_APPLICATION_VIEW_EXITING Handle = 0x8000001B + RO_E_MUST_BE_AGILE Handle = 0x8000001C + RO_E_UNSUPPORTED_FROM_MTA Handle = 0x8000001D + RO_E_COMMITTED Handle = 0x8000001E + RO_E_BLOCKED_CROSS_ASTA_CALL Handle = 0x8000001F + RO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER Handle = 0x80000020 + RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER Handle = 0x80000021 + CO_E_INIT_TLS Handle = 0x80004006 + CO_E_INIT_SHARED_ALLOCATOR Handle = 0x80004007 + CO_E_INIT_MEMORY_ALLOCATOR Handle = 0x80004008 + CO_E_INIT_CLASS_CACHE Handle = 0x80004009 + CO_E_INIT_RPC_CHANNEL Handle = 0x8000400A + CO_E_INIT_TLS_SET_CHANNEL_CONTROL Handle = 0x8000400B + CO_E_INIT_TLS_CHANNEL_CONTROL Handle = 0x8000400C + CO_E_INIT_UNACCEPTED_USER_ALLOCATOR Handle = 0x8000400D + CO_E_INIT_SCM_MUTEX_EXISTS Handle = 0x8000400E + CO_E_INIT_SCM_FILE_MAPPING_EXISTS Handle = 0x8000400F + CO_E_INIT_SCM_MAP_VIEW_OF_FILE Handle = 0x80004010 + CO_E_INIT_SCM_EXEC_FAILURE Handle = 0x80004011 + CO_E_INIT_ONLY_SINGLE_THREADED Handle = 0x80004012 + CO_E_CANT_REMOTE Handle = 0x80004013 + CO_E_BAD_SERVER_NAME Handle = 0x80004014 + CO_E_WRONG_SERVER_IDENTITY Handle = 0x80004015 + CO_E_OLE1DDE_DISABLED Handle = 0x80004016 + CO_E_RUNAS_SYNTAX Handle = 0x80004017 + CO_E_CREATEPROCESS_FAILURE Handle = 0x80004018 + CO_E_RUNAS_CREATEPROCESS_FAILURE Handle = 0x80004019 + CO_E_RUNAS_LOGON_FAILURE Handle = 0x8000401A + CO_E_LAUNCH_PERMSSION_DENIED Handle = 0x8000401B + CO_E_START_SERVICE_FAILURE Handle = 0x8000401C + CO_E_REMOTE_COMMUNICATION_FAILURE Handle = 0x8000401D + CO_E_SERVER_START_TIMEOUT Handle = 0x8000401E + CO_E_CLSREG_INCONSISTENT Handle = 0x8000401F + CO_E_IIDREG_INCONSISTENT Handle = 0x80004020 + CO_E_NOT_SUPPORTED Handle = 0x80004021 + CO_E_RELOAD_DLL Handle = 0x80004022 + CO_E_MSI_ERROR Handle = 0x80004023 + CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT Handle = 0x80004024 + CO_E_SERVER_PAUSED Handle = 0x80004025 + CO_E_SERVER_NOT_PAUSED Handle = 0x80004026 + CO_E_CLASS_DISABLED Handle = 0x80004027 + CO_E_CLRNOTAVAILABLE Handle = 0x80004028 + CO_E_ASYNC_WORK_REJECTED Handle = 0x80004029 + CO_E_SERVER_INIT_TIMEOUT Handle = 0x8000402A + CO_E_NO_SECCTX_IN_ACTIVATE Handle = 0x8000402B + CO_E_TRACKER_CONFIG Handle = 0x80004030 + CO_E_THREADPOOL_CONFIG Handle = 0x80004031 + CO_E_SXS_CONFIG Handle = 0x80004032 + CO_E_MALFORMED_SPN Handle = 0x80004033 + CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN Handle = 0x80004034 + CO_E_PREMATURE_STUB_RUNDOWN Handle = 0x80004035 + S_OK Handle = 0 + S_FALSE Handle = 1 + OLE_E_FIRST Handle = 0x80040000 + OLE_E_LAST Handle = 0x800400FF + OLE_S_FIRST Handle = 0x00040000 + OLE_S_LAST Handle = 0x000400FF + OLE_E_OLEVERB Handle = 0x80040000 + OLE_E_ADVF Handle = 0x80040001 + OLE_E_ENUM_NOMORE Handle = 0x80040002 + OLE_E_ADVISENOTSUPPORTED Handle = 0x80040003 + OLE_E_NOCONNECTION Handle = 0x80040004 + OLE_E_NOTRUNNING Handle = 0x80040005 + OLE_E_NOCACHE Handle = 0x80040006 + OLE_E_BLANK Handle = 0x80040007 + OLE_E_CLASSDIFF Handle = 0x80040008 + OLE_E_CANT_GETMONIKER Handle = 0x80040009 + OLE_E_CANT_BINDTOSOURCE Handle = 0x8004000A + OLE_E_STATIC Handle = 0x8004000B + OLE_E_PROMPTSAVECANCELLED Handle = 0x8004000C + OLE_E_INVALIDRECT Handle = 0x8004000D + OLE_E_WRONGCOMPOBJ Handle = 0x8004000E + OLE_E_INVALIDHWND Handle = 0x8004000F + OLE_E_NOT_INPLACEACTIVE Handle = 0x80040010 + OLE_E_CANTCONVERT Handle = 0x80040011 + OLE_E_NOSTORAGE Handle = 0x80040012 + DV_E_FORMATETC Handle = 0x80040064 + DV_E_DVTARGETDEVICE Handle = 0x80040065 + DV_E_STGMEDIUM Handle = 0x80040066 + DV_E_STATDATA Handle = 0x80040067 + DV_E_LINDEX Handle = 0x80040068 + DV_E_TYMED Handle = 0x80040069 + DV_E_CLIPFORMAT Handle = 0x8004006A + DV_E_DVASPECT Handle = 0x8004006B + DV_E_DVTARGETDEVICE_SIZE Handle = 0x8004006C + DV_E_NOIVIEWOBJECT Handle = 0x8004006D + DRAGDROP_E_FIRST syscall.Errno = 0x80040100 + DRAGDROP_E_LAST syscall.Errno = 0x8004010F + DRAGDROP_S_FIRST syscall.Errno = 0x00040100 + DRAGDROP_S_LAST syscall.Errno = 0x0004010F + DRAGDROP_E_NOTREGISTERED Handle = 0x80040100 + DRAGDROP_E_ALREADYREGISTERED Handle = 0x80040101 + DRAGDROP_E_INVALIDHWND Handle = 0x80040102 + DRAGDROP_E_CONCURRENT_DRAG_ATTEMPTED Handle = 0x80040103 + CLASSFACTORY_E_FIRST syscall.Errno = 0x80040110 + CLASSFACTORY_E_LAST syscall.Errno = 0x8004011F + CLASSFACTORY_S_FIRST syscall.Errno = 0x00040110 + CLASSFACTORY_S_LAST syscall.Errno = 0x0004011F + CLASS_E_NOAGGREGATION Handle = 0x80040110 + CLASS_E_CLASSNOTAVAILABLE Handle = 0x80040111 + CLASS_E_NOTLICENSED Handle = 0x80040112 + MARSHAL_E_FIRST syscall.Errno = 0x80040120 + MARSHAL_E_LAST syscall.Errno = 0x8004012F + MARSHAL_S_FIRST syscall.Errno = 0x00040120 + MARSHAL_S_LAST syscall.Errno = 0x0004012F + DATA_E_FIRST syscall.Errno = 0x80040130 + DATA_E_LAST syscall.Errno = 0x8004013F + DATA_S_FIRST syscall.Errno = 0x00040130 + DATA_S_LAST syscall.Errno = 0x0004013F + VIEW_E_FIRST syscall.Errno = 0x80040140 + VIEW_E_LAST syscall.Errno = 0x8004014F + VIEW_S_FIRST syscall.Errno = 0x00040140 + VIEW_S_LAST syscall.Errno = 0x0004014F + VIEW_E_DRAW Handle = 0x80040140 + REGDB_E_FIRST syscall.Errno = 0x80040150 + REGDB_E_LAST syscall.Errno = 0x8004015F + REGDB_S_FIRST syscall.Errno = 0x00040150 + REGDB_S_LAST syscall.Errno = 0x0004015F + REGDB_E_READREGDB Handle = 0x80040150 + REGDB_E_WRITEREGDB Handle = 0x80040151 + REGDB_E_KEYMISSING Handle = 0x80040152 + REGDB_E_INVALIDVALUE Handle = 0x80040153 + REGDB_E_CLASSNOTREG Handle = 0x80040154 + REGDB_E_IIDNOTREG Handle = 0x80040155 + REGDB_E_BADTHREADINGMODEL Handle = 0x80040156 + REGDB_E_PACKAGEPOLICYVIOLATION Handle = 0x80040157 + CAT_E_FIRST syscall.Errno = 0x80040160 + CAT_E_LAST syscall.Errno = 0x80040161 + CAT_E_CATIDNOEXIST Handle = 0x80040160 + CAT_E_NODESCRIPTION Handle = 0x80040161 + CS_E_FIRST syscall.Errno = 0x80040164 + CS_E_LAST syscall.Errno = 0x8004016F + CS_E_PACKAGE_NOTFOUND Handle = 0x80040164 + CS_E_NOT_DELETABLE Handle = 0x80040165 + CS_E_CLASS_NOTFOUND Handle = 0x80040166 + CS_E_INVALID_VERSION Handle = 0x80040167 + CS_E_NO_CLASSSTORE Handle = 0x80040168 + CS_E_OBJECT_NOTFOUND Handle = 0x80040169 + CS_E_OBJECT_ALREADY_EXISTS Handle = 0x8004016A + CS_E_INVALID_PATH Handle = 0x8004016B + CS_E_NETWORK_ERROR Handle = 0x8004016C + CS_E_ADMIN_LIMIT_EXCEEDED Handle = 0x8004016D + CS_E_SCHEMA_MISMATCH Handle = 0x8004016E + CS_E_INTERNAL_ERROR Handle = 0x8004016F + CACHE_E_FIRST syscall.Errno = 0x80040170 + CACHE_E_LAST syscall.Errno = 0x8004017F + CACHE_S_FIRST syscall.Errno = 0x00040170 + CACHE_S_LAST syscall.Errno = 0x0004017F + CACHE_E_NOCACHE_UPDATED Handle = 0x80040170 + OLEOBJ_E_FIRST syscall.Errno = 0x80040180 + OLEOBJ_E_LAST syscall.Errno = 0x8004018F + OLEOBJ_S_FIRST syscall.Errno = 0x00040180 + OLEOBJ_S_LAST syscall.Errno = 0x0004018F + OLEOBJ_E_NOVERBS Handle = 0x80040180 + OLEOBJ_E_INVALIDVERB Handle = 0x80040181 + CLIENTSITE_E_FIRST syscall.Errno = 0x80040190 + CLIENTSITE_E_LAST syscall.Errno = 0x8004019F + CLIENTSITE_S_FIRST syscall.Errno = 0x00040190 + CLIENTSITE_S_LAST syscall.Errno = 0x0004019F + INPLACE_E_NOTUNDOABLE Handle = 0x800401A0 + INPLACE_E_NOTOOLSPACE Handle = 0x800401A1 + INPLACE_E_FIRST syscall.Errno = 0x800401A0 + INPLACE_E_LAST syscall.Errno = 0x800401AF + INPLACE_S_FIRST syscall.Errno = 0x000401A0 + INPLACE_S_LAST syscall.Errno = 0x000401AF + ENUM_E_FIRST syscall.Errno = 0x800401B0 + ENUM_E_LAST syscall.Errno = 0x800401BF + ENUM_S_FIRST syscall.Errno = 0x000401B0 + ENUM_S_LAST syscall.Errno = 0x000401BF + CONVERT10_E_FIRST syscall.Errno = 0x800401C0 + CONVERT10_E_LAST syscall.Errno = 0x800401CF + CONVERT10_S_FIRST syscall.Errno = 0x000401C0 + CONVERT10_S_LAST syscall.Errno = 0x000401CF + CONVERT10_E_OLESTREAM_GET Handle = 0x800401C0 + CONVERT10_E_OLESTREAM_PUT Handle = 0x800401C1 + CONVERT10_E_OLESTREAM_FMT Handle = 0x800401C2 + CONVERT10_E_OLESTREAM_BITMAP_TO_DIB Handle = 0x800401C3 + CONVERT10_E_STG_FMT Handle = 0x800401C4 + CONVERT10_E_STG_NO_STD_STREAM Handle = 0x800401C5 + CONVERT10_E_STG_DIB_TO_BITMAP Handle = 0x800401C6 + CLIPBRD_E_FIRST syscall.Errno = 0x800401D0 + CLIPBRD_E_LAST syscall.Errno = 0x800401DF + CLIPBRD_S_FIRST syscall.Errno = 0x000401D0 + CLIPBRD_S_LAST syscall.Errno = 0x000401DF + CLIPBRD_E_CANT_OPEN Handle = 0x800401D0 + CLIPBRD_E_CANT_EMPTY Handle = 0x800401D1 + CLIPBRD_E_CANT_SET Handle = 0x800401D2 + CLIPBRD_E_BAD_DATA Handle = 0x800401D3 + CLIPBRD_E_CANT_CLOSE Handle = 0x800401D4 + MK_E_FIRST syscall.Errno = 0x800401E0 + MK_E_LAST syscall.Errno = 0x800401EF + MK_S_FIRST syscall.Errno = 0x000401E0 + MK_S_LAST syscall.Errno = 0x000401EF + MK_E_CONNECTMANUALLY Handle = 0x800401E0 + MK_E_EXCEEDEDDEADLINE Handle = 0x800401E1 + MK_E_NEEDGENERIC Handle = 0x800401E2 + MK_E_UNAVAILABLE Handle = 0x800401E3 + MK_E_SYNTAX Handle = 0x800401E4 + MK_E_NOOBJECT Handle = 0x800401E5 + MK_E_INVALIDEXTENSION Handle = 0x800401E6 + MK_E_INTERMEDIATEINTERFACENOTSUPPORTED Handle = 0x800401E7 + MK_E_NOTBINDABLE Handle = 0x800401E8 + MK_E_NOTBOUND Handle = 0x800401E9 + MK_E_CANTOPENFILE Handle = 0x800401EA + MK_E_MUSTBOTHERUSER Handle = 0x800401EB + MK_E_NOINVERSE Handle = 0x800401EC + MK_E_NOSTORAGE Handle = 0x800401ED + MK_E_NOPREFIX Handle = 0x800401EE + MK_E_ENUMERATION_FAILED Handle = 0x800401EF + CO_E_FIRST syscall.Errno = 0x800401F0 + CO_E_LAST syscall.Errno = 0x800401FF + CO_S_FIRST syscall.Errno = 0x000401F0 + CO_S_LAST syscall.Errno = 0x000401FF + CO_E_NOTINITIALIZED Handle = 0x800401F0 + CO_E_ALREADYINITIALIZED Handle = 0x800401F1 + CO_E_CANTDETERMINECLASS Handle = 0x800401F2 + CO_E_CLASSSTRING Handle = 0x800401F3 + CO_E_IIDSTRING Handle = 0x800401F4 + CO_E_APPNOTFOUND Handle = 0x800401F5 + CO_E_APPSINGLEUSE Handle = 0x800401F6 + CO_E_ERRORINAPP Handle = 0x800401F7 + CO_E_DLLNOTFOUND Handle = 0x800401F8 + CO_E_ERRORINDLL Handle = 0x800401F9 + CO_E_WRONGOSFORAPP Handle = 0x800401FA + CO_E_OBJNOTREG Handle = 0x800401FB + CO_E_OBJISREG Handle = 0x800401FC + CO_E_OBJNOTCONNECTED Handle = 0x800401FD + CO_E_APPDIDNTREG Handle = 0x800401FE + CO_E_RELEASED Handle = 0x800401FF + EVENT_E_FIRST syscall.Errno = 0x80040200 + EVENT_E_LAST syscall.Errno = 0x8004021F + EVENT_S_FIRST syscall.Errno = 0x00040200 + EVENT_S_LAST syscall.Errno = 0x0004021F + EVENT_S_SOME_SUBSCRIBERS_FAILED Handle = 0x00040200 + EVENT_E_ALL_SUBSCRIBERS_FAILED Handle = 0x80040201 + EVENT_S_NOSUBSCRIBERS Handle = 0x00040202 + EVENT_E_QUERYSYNTAX Handle = 0x80040203 + EVENT_E_QUERYFIELD Handle = 0x80040204 + EVENT_E_INTERNALEXCEPTION Handle = 0x80040205 + EVENT_E_INTERNALERROR Handle = 0x80040206 + EVENT_E_INVALID_PER_USER_SID Handle = 0x80040207 + EVENT_E_USER_EXCEPTION Handle = 0x80040208 + EVENT_E_TOO_MANY_METHODS Handle = 0x80040209 + EVENT_E_MISSING_EVENTCLASS Handle = 0x8004020A + EVENT_E_NOT_ALL_REMOVED Handle = 0x8004020B + EVENT_E_COMPLUS_NOT_INSTALLED Handle = 0x8004020C + EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT Handle = 0x8004020D + EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT Handle = 0x8004020E + EVENT_E_INVALID_EVENT_CLASS_PARTITION Handle = 0x8004020F + EVENT_E_PER_USER_SID_NOT_LOGGED_ON Handle = 0x80040210 + TPC_E_INVALID_PROPERTY Handle = 0x80040241 + TPC_E_NO_DEFAULT_TABLET Handle = 0x80040212 + TPC_E_UNKNOWN_PROPERTY Handle = 0x8004021B + TPC_E_INVALID_INPUT_RECT Handle = 0x80040219 + TPC_E_INVALID_STROKE Handle = 0x80040222 + TPC_E_INITIALIZE_FAIL Handle = 0x80040223 + TPC_E_NOT_RELEVANT Handle = 0x80040232 + TPC_E_INVALID_PACKET_DESCRIPTION Handle = 0x80040233 + TPC_E_RECOGNIZER_NOT_REGISTERED Handle = 0x80040235 + TPC_E_INVALID_RIGHTS Handle = 0x80040236 + TPC_E_OUT_OF_ORDER_CALL Handle = 0x80040237 + TPC_E_QUEUE_FULL Handle = 0x80040238 + TPC_E_INVALID_CONFIGURATION Handle = 0x80040239 + TPC_E_INVALID_DATA_FROM_RECOGNIZER Handle = 0x8004023A + TPC_S_TRUNCATED Handle = 0x00040252 + TPC_S_INTERRUPTED Handle = 0x00040253 + TPC_S_NO_DATA_TO_PROCESS Handle = 0x00040254 + XACT_E_FIRST syscall.Errno = 0x8004D000 + XACT_E_LAST syscall.Errno = 0x8004D02B + XACT_S_FIRST syscall.Errno = 0x0004D000 + XACT_S_LAST syscall.Errno = 0x0004D010 + XACT_E_ALREADYOTHERSINGLEPHASE Handle = 0x8004D000 + XACT_E_CANTRETAIN Handle = 0x8004D001 + XACT_E_COMMITFAILED Handle = 0x8004D002 + XACT_E_COMMITPREVENTED Handle = 0x8004D003 + XACT_E_HEURISTICABORT Handle = 0x8004D004 + XACT_E_HEURISTICCOMMIT Handle = 0x8004D005 + XACT_E_HEURISTICDAMAGE Handle = 0x8004D006 + XACT_E_HEURISTICDANGER Handle = 0x8004D007 + XACT_E_ISOLATIONLEVEL Handle = 0x8004D008 + XACT_E_NOASYNC Handle = 0x8004D009 + XACT_E_NOENLIST Handle = 0x8004D00A + XACT_E_NOISORETAIN Handle = 0x8004D00B + XACT_E_NORESOURCE Handle = 0x8004D00C + XACT_E_NOTCURRENT Handle = 0x8004D00D + XACT_E_NOTRANSACTION Handle = 0x8004D00E + XACT_E_NOTSUPPORTED Handle = 0x8004D00F + XACT_E_UNKNOWNRMGRID Handle = 0x8004D010 + XACT_E_WRONGSTATE Handle = 0x8004D011 + XACT_E_WRONGUOW Handle = 0x8004D012 + XACT_E_XTIONEXISTS Handle = 0x8004D013 + XACT_E_NOIMPORTOBJECT Handle = 0x8004D014 + XACT_E_INVALIDCOOKIE Handle = 0x8004D015 + XACT_E_INDOUBT Handle = 0x8004D016 + XACT_E_NOTIMEOUT Handle = 0x8004D017 + XACT_E_ALREADYINPROGRESS Handle = 0x8004D018 + XACT_E_ABORTED Handle = 0x8004D019 + XACT_E_LOGFULL Handle = 0x8004D01A + XACT_E_TMNOTAVAILABLE Handle = 0x8004D01B + XACT_E_CONNECTION_DOWN Handle = 0x8004D01C + XACT_E_CONNECTION_DENIED Handle = 0x8004D01D + XACT_E_REENLISTTIMEOUT Handle = 0x8004D01E + XACT_E_TIP_CONNECT_FAILED Handle = 0x8004D01F + XACT_E_TIP_PROTOCOL_ERROR Handle = 0x8004D020 + XACT_E_TIP_PULL_FAILED Handle = 0x8004D021 + XACT_E_DEST_TMNOTAVAILABLE Handle = 0x8004D022 + XACT_E_TIP_DISABLED Handle = 0x8004D023 + XACT_E_NETWORK_TX_DISABLED Handle = 0x8004D024 + XACT_E_PARTNER_NETWORK_TX_DISABLED Handle = 0x8004D025 + XACT_E_XA_TX_DISABLED Handle = 0x8004D026 + XACT_E_UNABLE_TO_READ_DTC_CONFIG Handle = 0x8004D027 + XACT_E_UNABLE_TO_LOAD_DTC_PROXY Handle = 0x8004D028 + XACT_E_ABORTING Handle = 0x8004D029 + XACT_E_PUSH_COMM_FAILURE Handle = 0x8004D02A + XACT_E_PULL_COMM_FAILURE Handle = 0x8004D02B + XACT_E_LU_TX_DISABLED Handle = 0x8004D02C + XACT_E_CLERKNOTFOUND Handle = 0x8004D080 + XACT_E_CLERKEXISTS Handle = 0x8004D081 + XACT_E_RECOVERYINPROGRESS Handle = 0x8004D082 + XACT_E_TRANSACTIONCLOSED Handle = 0x8004D083 + XACT_E_INVALIDLSN Handle = 0x8004D084 + XACT_E_REPLAYREQUEST Handle = 0x8004D085 + XACT_S_ASYNC Handle = 0x0004D000 + XACT_S_DEFECT Handle = 0x0004D001 + XACT_S_READONLY Handle = 0x0004D002 + XACT_S_SOMENORETAIN Handle = 0x0004D003 + XACT_S_OKINFORM Handle = 0x0004D004 + XACT_S_MADECHANGESCONTENT Handle = 0x0004D005 + XACT_S_MADECHANGESINFORM Handle = 0x0004D006 + XACT_S_ALLNORETAIN Handle = 0x0004D007 + XACT_S_ABORTING Handle = 0x0004D008 + XACT_S_SINGLEPHASE Handle = 0x0004D009 + XACT_S_LOCALLY_OK Handle = 0x0004D00A + XACT_S_LASTRESOURCEMANAGER Handle = 0x0004D010 + CONTEXT_E_FIRST syscall.Errno = 0x8004E000 + CONTEXT_E_LAST syscall.Errno = 0x8004E02F + CONTEXT_S_FIRST syscall.Errno = 0x0004E000 + CONTEXT_S_LAST syscall.Errno = 0x0004E02F + CONTEXT_E_ABORTED Handle = 0x8004E002 + CONTEXT_E_ABORTING Handle = 0x8004E003 + CONTEXT_E_NOCONTEXT Handle = 0x8004E004 + CONTEXT_E_WOULD_DEADLOCK Handle = 0x8004E005 + CONTEXT_E_SYNCH_TIMEOUT Handle = 0x8004E006 + CONTEXT_E_OLDREF Handle = 0x8004E007 + CONTEXT_E_ROLENOTFOUND Handle = 0x8004E00C + CONTEXT_E_TMNOTAVAILABLE Handle = 0x8004E00F + CO_E_ACTIVATIONFAILED Handle = 0x8004E021 + CO_E_ACTIVATIONFAILED_EVENTLOGGED Handle = 0x8004E022 + CO_E_ACTIVATIONFAILED_CATALOGERROR Handle = 0x8004E023 + CO_E_ACTIVATIONFAILED_TIMEOUT Handle = 0x8004E024 + CO_E_INITIALIZATIONFAILED Handle = 0x8004E025 + CONTEXT_E_NOJIT Handle = 0x8004E026 + CONTEXT_E_NOTRANSACTION Handle = 0x8004E027 + CO_E_THREADINGMODEL_CHANGED Handle = 0x8004E028 + CO_E_NOIISINTRINSICS Handle = 0x8004E029 + CO_E_NOCOOKIES Handle = 0x8004E02A + CO_E_DBERROR Handle = 0x8004E02B + CO_E_NOTPOOLED Handle = 0x8004E02C + CO_E_NOTCONSTRUCTED Handle = 0x8004E02D + CO_E_NOSYNCHRONIZATION Handle = 0x8004E02E + CO_E_ISOLEVELMISMATCH Handle = 0x8004E02F + CO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED Handle = 0x8004E030 + CO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED Handle = 0x8004E031 + OLE_S_USEREG Handle = 0x00040000 + OLE_S_STATIC Handle = 0x00040001 + OLE_S_MAC_CLIPFORMAT Handle = 0x00040002 + DRAGDROP_S_DROP Handle = 0x00040100 + DRAGDROP_S_CANCEL Handle = 0x00040101 + DRAGDROP_S_USEDEFAULTCURSORS Handle = 0x00040102 + DATA_S_SAMEFORMATETC Handle = 0x00040130 + VIEW_S_ALREADY_FROZEN Handle = 0x00040140 + CACHE_S_FORMATETC_NOTSUPPORTED Handle = 0x00040170 + CACHE_S_SAMECACHE Handle = 0x00040171 + CACHE_S_SOMECACHES_NOTUPDATED Handle = 0x00040172 + OLEOBJ_S_INVALIDVERB Handle = 0x00040180 + OLEOBJ_S_CANNOT_DOVERB_NOW Handle = 0x00040181 + OLEOBJ_S_INVALIDHWND Handle = 0x00040182 + INPLACE_S_TRUNCATED Handle = 0x000401A0 + CONVERT10_S_NO_PRESENTATION Handle = 0x000401C0 + MK_S_REDUCED_TO_SELF Handle = 0x000401E2 + MK_S_ME Handle = 0x000401E4 + MK_S_HIM Handle = 0x000401E5 + MK_S_US Handle = 0x000401E6 + MK_S_MONIKERALREADYREGISTERED Handle = 0x000401E7 + SCHED_S_TASK_READY Handle = 0x00041300 + SCHED_S_TASK_RUNNING Handle = 0x00041301 + SCHED_S_TASK_DISABLED Handle = 0x00041302 + SCHED_S_TASK_HAS_NOT_RUN Handle = 0x00041303 + SCHED_S_TASK_NO_MORE_RUNS Handle = 0x00041304 + SCHED_S_TASK_NOT_SCHEDULED Handle = 0x00041305 + SCHED_S_TASK_TERMINATED Handle = 0x00041306 + SCHED_S_TASK_NO_VALID_TRIGGERS Handle = 0x00041307 + SCHED_S_EVENT_TRIGGER Handle = 0x00041308 + SCHED_E_TRIGGER_NOT_FOUND Handle = 0x80041309 + SCHED_E_TASK_NOT_READY Handle = 0x8004130A + SCHED_E_TASK_NOT_RUNNING Handle = 0x8004130B + SCHED_E_SERVICE_NOT_INSTALLED Handle = 0x8004130C + SCHED_E_CANNOT_OPEN_TASK Handle = 0x8004130D + SCHED_E_INVALID_TASK Handle = 0x8004130E + SCHED_E_ACCOUNT_INFORMATION_NOT_SET Handle = 0x8004130F + SCHED_E_ACCOUNT_NAME_NOT_FOUND Handle = 0x80041310 + SCHED_E_ACCOUNT_DBASE_CORRUPT Handle = 0x80041311 + SCHED_E_NO_SECURITY_SERVICES Handle = 0x80041312 + SCHED_E_UNKNOWN_OBJECT_VERSION Handle = 0x80041313 + SCHED_E_UNSUPPORTED_ACCOUNT_OPTION Handle = 0x80041314 + SCHED_E_SERVICE_NOT_RUNNING Handle = 0x80041315 + SCHED_E_UNEXPECTEDNODE Handle = 0x80041316 + SCHED_E_NAMESPACE Handle = 0x80041317 + SCHED_E_INVALIDVALUE Handle = 0x80041318 + SCHED_E_MISSINGNODE Handle = 0x80041319 + SCHED_E_MALFORMEDXML Handle = 0x8004131A + SCHED_S_SOME_TRIGGERS_FAILED Handle = 0x0004131B + SCHED_S_BATCH_LOGON_PROBLEM Handle = 0x0004131C + SCHED_E_TOO_MANY_NODES Handle = 0x8004131D + SCHED_E_PAST_END_BOUNDARY Handle = 0x8004131E + SCHED_E_ALREADY_RUNNING Handle = 0x8004131F + SCHED_E_USER_NOT_LOGGED_ON Handle = 0x80041320 + SCHED_E_INVALID_TASK_HASH Handle = 0x80041321 + SCHED_E_SERVICE_NOT_AVAILABLE Handle = 0x80041322 + SCHED_E_SERVICE_TOO_BUSY Handle = 0x80041323 + SCHED_E_TASK_ATTEMPTED Handle = 0x80041324 + SCHED_S_TASK_QUEUED Handle = 0x00041325 + SCHED_E_TASK_DISABLED Handle = 0x80041326 + SCHED_E_TASK_NOT_V1_COMPAT Handle = 0x80041327 + SCHED_E_START_ON_DEMAND Handle = 0x80041328 + SCHED_E_TASK_NOT_UBPM_COMPAT Handle = 0x80041329 + SCHED_E_DEPRECATED_FEATURE_USED Handle = 0x80041330 + CO_E_CLASS_CREATE_FAILED Handle = 0x80080001 + CO_E_SCM_ERROR Handle = 0x80080002 + CO_E_SCM_RPC_FAILURE Handle = 0x80080003 + CO_E_BAD_PATH Handle = 0x80080004 + CO_E_SERVER_EXEC_FAILURE Handle = 0x80080005 + CO_E_OBJSRV_RPC_FAILURE Handle = 0x80080006 + MK_E_NO_NORMALIZED Handle = 0x80080007 + CO_E_SERVER_STOPPING Handle = 0x80080008 + MEM_E_INVALID_ROOT Handle = 0x80080009 + MEM_E_INVALID_LINK Handle = 0x80080010 + MEM_E_INVALID_SIZE Handle = 0x80080011 + CO_S_NOTALLINTERFACES Handle = 0x00080012 + CO_S_MACHINENAMENOTFOUND Handle = 0x00080013 + CO_E_MISSING_DISPLAYNAME Handle = 0x80080015 + CO_E_RUNAS_VALUE_MUST_BE_AAA Handle = 0x80080016 + CO_E_ELEVATION_DISABLED Handle = 0x80080017 + APPX_E_PACKAGING_INTERNAL Handle = 0x80080200 + APPX_E_INTERLEAVING_NOT_ALLOWED Handle = 0x80080201 + APPX_E_RELATIONSHIPS_NOT_ALLOWED Handle = 0x80080202 + APPX_E_MISSING_REQUIRED_FILE Handle = 0x80080203 + APPX_E_INVALID_MANIFEST Handle = 0x80080204 + APPX_E_INVALID_BLOCKMAP Handle = 0x80080205 + APPX_E_CORRUPT_CONTENT Handle = 0x80080206 + APPX_E_BLOCK_HASH_INVALID Handle = 0x80080207 + APPX_E_REQUESTED_RANGE_TOO_LARGE Handle = 0x80080208 + APPX_E_INVALID_SIP_CLIENT_DATA Handle = 0x80080209 + APPX_E_INVALID_KEY_INFO Handle = 0x8008020A + APPX_E_INVALID_CONTENTGROUPMAP Handle = 0x8008020B + APPX_E_INVALID_APPINSTALLER Handle = 0x8008020C + APPX_E_DELTA_BASELINE_VERSION_MISMATCH Handle = 0x8008020D + APPX_E_DELTA_PACKAGE_MISSING_FILE Handle = 0x8008020E + APPX_E_INVALID_DELTA_PACKAGE Handle = 0x8008020F + APPX_E_DELTA_APPENDED_PACKAGE_NOT_ALLOWED Handle = 0x80080210 + APPX_E_INVALID_PACKAGING_LAYOUT Handle = 0x80080211 + APPX_E_INVALID_PACKAGESIGNCONFIG Handle = 0x80080212 + APPX_E_RESOURCESPRI_NOT_ALLOWED Handle = 0x80080213 + APPX_E_FILE_COMPRESSION_MISMATCH Handle = 0x80080214 + APPX_E_INVALID_PAYLOAD_PACKAGE_EXTENSION Handle = 0x80080215 + APPX_E_INVALID_ENCRYPTION_EXCLUSION_FILE_LIST Handle = 0x80080216 + BT_E_SPURIOUS_ACTIVATION Handle = 0x80080300 + DISP_E_UNKNOWNINTERFACE Handle = 0x80020001 + DISP_E_MEMBERNOTFOUND Handle = 0x80020003 + DISP_E_PARAMNOTFOUND Handle = 0x80020004 + DISP_E_TYPEMISMATCH Handle = 0x80020005 + DISP_E_UNKNOWNNAME Handle = 0x80020006 + DISP_E_NONAMEDARGS Handle = 0x80020007 + DISP_E_BADVARTYPE Handle = 0x80020008 + DISP_E_EXCEPTION Handle = 0x80020009 + DISP_E_OVERFLOW Handle = 0x8002000A + DISP_E_BADINDEX Handle = 0x8002000B + DISP_E_UNKNOWNLCID Handle = 0x8002000C + DISP_E_ARRAYISLOCKED Handle = 0x8002000D + DISP_E_BADPARAMCOUNT Handle = 0x8002000E + DISP_E_PARAMNOTOPTIONAL Handle = 0x8002000F + DISP_E_BADCALLEE Handle = 0x80020010 + DISP_E_NOTACOLLECTION Handle = 0x80020011 + DISP_E_DIVBYZERO Handle = 0x80020012 + DISP_E_BUFFERTOOSMALL Handle = 0x80020013 + TYPE_E_BUFFERTOOSMALL Handle = 0x80028016 + TYPE_E_FIELDNOTFOUND Handle = 0x80028017 + TYPE_E_INVDATAREAD Handle = 0x80028018 + TYPE_E_UNSUPFORMAT Handle = 0x80028019 + TYPE_E_REGISTRYACCESS Handle = 0x8002801C + TYPE_E_LIBNOTREGISTERED Handle = 0x8002801D + TYPE_E_UNDEFINEDTYPE Handle = 0x80028027 + TYPE_E_QUALIFIEDNAMEDISALLOWED Handle = 0x80028028 + TYPE_E_INVALIDSTATE Handle = 0x80028029 + TYPE_E_WRONGTYPEKIND Handle = 0x8002802A + TYPE_E_ELEMENTNOTFOUND Handle = 0x8002802B + TYPE_E_AMBIGUOUSNAME Handle = 0x8002802C + TYPE_E_NAMECONFLICT Handle = 0x8002802D + TYPE_E_UNKNOWNLCID Handle = 0x8002802E + TYPE_E_DLLFUNCTIONNOTFOUND Handle = 0x8002802F + TYPE_E_BADMODULEKIND Handle = 0x800288BD + TYPE_E_SIZETOOBIG Handle = 0x800288C5 + TYPE_E_DUPLICATEID Handle = 0x800288C6 + TYPE_E_INVALIDID Handle = 0x800288CF + TYPE_E_TYPEMISMATCH Handle = 0x80028CA0 + TYPE_E_OUTOFBOUNDS Handle = 0x80028CA1 + TYPE_E_IOERROR Handle = 0x80028CA2 + TYPE_E_CANTCREATETMPFILE Handle = 0x80028CA3 + TYPE_E_CANTLOADLIBRARY Handle = 0x80029C4A + TYPE_E_INCONSISTENTPROPFUNCS Handle = 0x80029C83 + TYPE_E_CIRCULARTYPE Handle = 0x80029C84 + STG_E_INVALIDFUNCTION Handle = 0x80030001 + STG_E_FILENOTFOUND Handle = 0x80030002 + STG_E_PATHNOTFOUND Handle = 0x80030003 + STG_E_TOOMANYOPENFILES Handle = 0x80030004 + STG_E_ACCESSDENIED Handle = 0x80030005 + STG_E_INVALIDHANDLE Handle = 0x80030006 + STG_E_INSUFFICIENTMEMORY Handle = 0x80030008 + STG_E_INVALIDPOINTER Handle = 0x80030009 + STG_E_NOMOREFILES Handle = 0x80030012 + STG_E_DISKISWRITEPROTECTED Handle = 0x80030013 + STG_E_SEEKERROR Handle = 0x80030019 + STG_E_WRITEFAULT Handle = 0x8003001D + STG_E_READFAULT Handle = 0x8003001E + STG_E_SHAREVIOLATION Handle = 0x80030020 + STG_E_LOCKVIOLATION Handle = 0x80030021 + STG_E_FILEALREADYEXISTS Handle = 0x80030050 + STG_E_INVALIDPARAMETER Handle = 0x80030057 + STG_E_MEDIUMFULL Handle = 0x80030070 + STG_E_PROPSETMISMATCHED Handle = 0x800300F0 + STG_E_ABNORMALAPIEXIT Handle = 0x800300FA + STG_E_INVALIDHEADER Handle = 0x800300FB + STG_E_INVALIDNAME Handle = 0x800300FC + STG_E_UNKNOWN Handle = 0x800300FD + STG_E_UNIMPLEMENTEDFUNCTION Handle = 0x800300FE + STG_E_INVALIDFLAG Handle = 0x800300FF + STG_E_INUSE Handle = 0x80030100 + STG_E_NOTCURRENT Handle = 0x80030101 + STG_E_REVERTED Handle = 0x80030102 + STG_E_CANTSAVE Handle = 0x80030103 + STG_E_OLDFORMAT Handle = 0x80030104 + STG_E_OLDDLL Handle = 0x80030105 + STG_E_SHAREREQUIRED Handle = 0x80030106 + STG_E_NOTFILEBASEDSTORAGE Handle = 0x80030107 + STG_E_EXTANTMARSHALLINGS Handle = 0x80030108 + STG_E_DOCFILECORRUPT Handle = 0x80030109 + STG_E_BADBASEADDRESS Handle = 0x80030110 + STG_E_DOCFILETOOLARGE Handle = 0x80030111 + STG_E_NOTSIMPLEFORMAT Handle = 0x80030112 + STG_E_INCOMPLETE Handle = 0x80030201 + STG_E_TERMINATED Handle = 0x80030202 + STG_S_CONVERTED Handle = 0x00030200 + STG_S_BLOCK Handle = 0x00030201 + STG_S_RETRYNOW Handle = 0x00030202 + STG_S_MONITORING Handle = 0x00030203 + STG_S_MULTIPLEOPENS Handle = 0x00030204 + STG_S_CONSOLIDATIONFAILED Handle = 0x00030205 + STG_S_CANNOTCONSOLIDATE Handle = 0x00030206 + STG_S_POWER_CYCLE_REQUIRED Handle = 0x00030207 + STG_E_FIRMWARE_SLOT_INVALID Handle = 0x80030208 + STG_E_FIRMWARE_IMAGE_INVALID Handle = 0x80030209 + STG_E_DEVICE_UNRESPONSIVE Handle = 0x8003020A + STG_E_STATUS_COPY_PROTECTION_FAILURE Handle = 0x80030305 + STG_E_CSS_AUTHENTICATION_FAILURE Handle = 0x80030306 + STG_E_CSS_KEY_NOT_PRESENT Handle = 0x80030307 + STG_E_CSS_KEY_NOT_ESTABLISHED Handle = 0x80030308 + STG_E_CSS_SCRAMBLED_SECTOR Handle = 0x80030309 + STG_E_CSS_REGION_MISMATCH Handle = 0x8003030A + STG_E_RESETS_EXHAUSTED Handle = 0x8003030B + RPC_E_CALL_REJECTED Handle = 0x80010001 + RPC_E_CALL_CANCELED Handle = 0x80010002 + RPC_E_CANTPOST_INSENDCALL Handle = 0x80010003 + RPC_E_CANTCALLOUT_INASYNCCALL Handle = 0x80010004 + RPC_E_CANTCALLOUT_INEXTERNALCALL Handle = 0x80010005 + RPC_E_CONNECTION_TERMINATED Handle = 0x80010006 + RPC_E_SERVER_DIED Handle = 0x80010007 + RPC_E_CLIENT_DIED Handle = 0x80010008 + RPC_E_INVALID_DATAPACKET Handle = 0x80010009 + RPC_E_CANTTRANSMIT_CALL Handle = 0x8001000A + RPC_E_CLIENT_CANTMARSHAL_DATA Handle = 0x8001000B + RPC_E_CLIENT_CANTUNMARSHAL_DATA Handle = 0x8001000C + RPC_E_SERVER_CANTMARSHAL_DATA Handle = 0x8001000D + RPC_E_SERVER_CANTUNMARSHAL_DATA Handle = 0x8001000E + RPC_E_INVALID_DATA Handle = 0x8001000F + RPC_E_INVALID_PARAMETER Handle = 0x80010010 + RPC_E_CANTCALLOUT_AGAIN Handle = 0x80010011 + RPC_E_SERVER_DIED_DNE Handle = 0x80010012 + RPC_E_SYS_CALL_FAILED Handle = 0x80010100 + RPC_E_OUT_OF_RESOURCES Handle = 0x80010101 + RPC_E_ATTEMPTED_MULTITHREAD Handle = 0x80010102 + RPC_E_NOT_REGISTERED Handle = 0x80010103 + RPC_E_FAULT Handle = 0x80010104 + RPC_E_SERVERFAULT Handle = 0x80010105 + RPC_E_CHANGED_MODE Handle = 0x80010106 + RPC_E_INVALIDMETHOD Handle = 0x80010107 + RPC_E_DISCONNECTED Handle = 0x80010108 + RPC_E_RETRY Handle = 0x80010109 + RPC_E_SERVERCALL_RETRYLATER Handle = 0x8001010A + RPC_E_SERVERCALL_REJECTED Handle = 0x8001010B + RPC_E_INVALID_CALLDATA Handle = 0x8001010C + RPC_E_CANTCALLOUT_ININPUTSYNCCALL Handle = 0x8001010D + RPC_E_WRONG_THREAD Handle = 0x8001010E + RPC_E_THREAD_NOT_INIT Handle = 0x8001010F + RPC_E_VERSION_MISMATCH Handle = 0x80010110 + RPC_E_INVALID_HEADER Handle = 0x80010111 + RPC_E_INVALID_EXTENSION Handle = 0x80010112 + RPC_E_INVALID_IPID Handle = 0x80010113 + RPC_E_INVALID_OBJECT Handle = 0x80010114 + RPC_S_CALLPENDING Handle = 0x80010115 + RPC_S_WAITONTIMER Handle = 0x80010116 + RPC_E_CALL_COMPLETE Handle = 0x80010117 + RPC_E_UNSECURE_CALL Handle = 0x80010118 + RPC_E_TOO_LATE Handle = 0x80010119 + RPC_E_NO_GOOD_SECURITY_PACKAGES Handle = 0x8001011A + RPC_E_ACCESS_DENIED Handle = 0x8001011B + RPC_E_REMOTE_DISABLED Handle = 0x8001011C + RPC_E_INVALID_OBJREF Handle = 0x8001011D + RPC_E_NO_CONTEXT Handle = 0x8001011E + RPC_E_TIMEOUT Handle = 0x8001011F + RPC_E_NO_SYNC Handle = 0x80010120 + RPC_E_FULLSIC_REQUIRED Handle = 0x80010121 + RPC_E_INVALID_STD_NAME Handle = 0x80010122 + CO_E_FAILEDTOIMPERSONATE Handle = 0x80010123 + CO_E_FAILEDTOGETSECCTX Handle = 0x80010124 + CO_E_FAILEDTOOPENTHREADTOKEN Handle = 0x80010125 + CO_E_FAILEDTOGETTOKENINFO Handle = 0x80010126 + CO_E_TRUSTEEDOESNTMATCHCLIENT Handle = 0x80010127 + CO_E_FAILEDTOQUERYCLIENTBLANKET Handle = 0x80010128 + CO_E_FAILEDTOSETDACL Handle = 0x80010129 + CO_E_ACCESSCHECKFAILED Handle = 0x8001012A + CO_E_NETACCESSAPIFAILED Handle = 0x8001012B + CO_E_WRONGTRUSTEENAMESYNTAX Handle = 0x8001012C + CO_E_INVALIDSID Handle = 0x8001012D + CO_E_CONVERSIONFAILED Handle = 0x8001012E + CO_E_NOMATCHINGSIDFOUND Handle = 0x8001012F + CO_E_LOOKUPACCSIDFAILED Handle = 0x80010130 + CO_E_NOMATCHINGNAMEFOUND Handle = 0x80010131 + CO_E_LOOKUPACCNAMEFAILED Handle = 0x80010132 + CO_E_SETSERLHNDLFAILED Handle = 0x80010133 + CO_E_FAILEDTOGETWINDIR Handle = 0x80010134 + CO_E_PATHTOOLONG Handle = 0x80010135 + CO_E_FAILEDTOGENUUID Handle = 0x80010136 + CO_E_FAILEDTOCREATEFILE Handle = 0x80010137 + CO_E_FAILEDTOCLOSEHANDLE Handle = 0x80010138 + CO_E_EXCEEDSYSACLLIMIT Handle = 0x80010139 + CO_E_ACESINWRONGORDER Handle = 0x8001013A + CO_E_INCOMPATIBLESTREAMVERSION Handle = 0x8001013B + CO_E_FAILEDTOOPENPROCESSTOKEN Handle = 0x8001013C + CO_E_DECODEFAILED Handle = 0x8001013D + CO_E_ACNOTINITIALIZED Handle = 0x8001013F + CO_E_CANCEL_DISABLED Handle = 0x80010140 + RPC_E_UNEXPECTED Handle = 0x8001FFFF + ERROR_AUDITING_DISABLED Handle = 0xC0090001 + ERROR_ALL_SIDS_FILTERED Handle = 0xC0090002 + ERROR_BIZRULES_NOT_ENABLED Handle = 0xC0090003 + NTE_BAD_UID Handle = 0x80090001 + NTE_BAD_HASH Handle = 0x80090002 + NTE_BAD_KEY Handle = 0x80090003 + NTE_BAD_LEN Handle = 0x80090004 + NTE_BAD_DATA Handle = 0x80090005 + NTE_BAD_SIGNATURE Handle = 0x80090006 + NTE_BAD_VER Handle = 0x80090007 + NTE_BAD_ALGID Handle = 0x80090008 + NTE_BAD_FLAGS Handle = 0x80090009 + NTE_BAD_TYPE Handle = 0x8009000A + NTE_BAD_KEY_STATE Handle = 0x8009000B + NTE_BAD_HASH_STATE Handle = 0x8009000C + NTE_NO_KEY Handle = 0x8009000D + NTE_NO_MEMORY Handle = 0x8009000E + NTE_EXISTS Handle = 0x8009000F + NTE_PERM Handle = 0x80090010 + NTE_NOT_FOUND Handle = 0x80090011 + NTE_DOUBLE_ENCRYPT Handle = 0x80090012 + NTE_BAD_PROVIDER Handle = 0x80090013 + NTE_BAD_PROV_TYPE Handle = 0x80090014 + NTE_BAD_PUBLIC_KEY Handle = 0x80090015 + NTE_BAD_KEYSET Handle = 0x80090016 + NTE_PROV_TYPE_NOT_DEF Handle = 0x80090017 + NTE_PROV_TYPE_ENTRY_BAD Handle = 0x80090018 + NTE_KEYSET_NOT_DEF Handle = 0x80090019 + NTE_KEYSET_ENTRY_BAD Handle = 0x8009001A + NTE_PROV_TYPE_NO_MATCH Handle = 0x8009001B + NTE_SIGNATURE_FILE_BAD Handle = 0x8009001C + NTE_PROVIDER_DLL_FAIL Handle = 0x8009001D + NTE_PROV_DLL_NOT_FOUND Handle = 0x8009001E + NTE_BAD_KEYSET_PARAM Handle = 0x8009001F + NTE_FAIL Handle = 0x80090020 + NTE_SYS_ERR Handle = 0x80090021 + NTE_SILENT_CONTEXT Handle = 0x80090022 + NTE_TOKEN_KEYSET_STORAGE_FULL Handle = 0x80090023 + NTE_TEMPORARY_PROFILE Handle = 0x80090024 + NTE_FIXEDPARAMETER Handle = 0x80090025 + NTE_INVALID_HANDLE Handle = 0x80090026 + NTE_INVALID_PARAMETER Handle = 0x80090027 + NTE_BUFFER_TOO_SMALL Handle = 0x80090028 + NTE_NOT_SUPPORTED Handle = 0x80090029 + NTE_NO_MORE_ITEMS Handle = 0x8009002A + NTE_BUFFERS_OVERLAP Handle = 0x8009002B + NTE_DECRYPTION_FAILURE Handle = 0x8009002C + NTE_INTERNAL_ERROR Handle = 0x8009002D + NTE_UI_REQUIRED Handle = 0x8009002E + NTE_HMAC_NOT_SUPPORTED Handle = 0x8009002F + NTE_DEVICE_NOT_READY Handle = 0x80090030 + NTE_AUTHENTICATION_IGNORED Handle = 0x80090031 + NTE_VALIDATION_FAILED Handle = 0x80090032 + NTE_INCORRECT_PASSWORD Handle = 0x80090033 + NTE_ENCRYPTION_FAILURE Handle = 0x80090034 + NTE_DEVICE_NOT_FOUND Handle = 0x80090035 + NTE_USER_CANCELLED Handle = 0x80090036 + NTE_PASSWORD_CHANGE_REQUIRED Handle = 0x80090037 + NTE_NOT_ACTIVE_CONSOLE Handle = 0x80090038 + SEC_E_INSUFFICIENT_MEMORY Handle = 0x80090300 + SEC_E_INVALID_HANDLE Handle = 0x80090301 + SEC_E_UNSUPPORTED_FUNCTION Handle = 0x80090302 + SEC_E_TARGET_UNKNOWN Handle = 0x80090303 + SEC_E_INTERNAL_ERROR Handle = 0x80090304 + SEC_E_SECPKG_NOT_FOUND Handle = 0x80090305 + SEC_E_NOT_OWNER Handle = 0x80090306 + SEC_E_CANNOT_INSTALL Handle = 0x80090307 + SEC_E_INVALID_TOKEN Handle = 0x80090308 + SEC_E_CANNOT_PACK Handle = 0x80090309 + SEC_E_QOP_NOT_SUPPORTED Handle = 0x8009030A + SEC_E_NO_IMPERSONATION Handle = 0x8009030B + SEC_E_LOGON_DENIED Handle = 0x8009030C + SEC_E_UNKNOWN_CREDENTIALS Handle = 0x8009030D + SEC_E_NO_CREDENTIALS Handle = 0x8009030E + SEC_E_MESSAGE_ALTERED Handle = 0x8009030F + SEC_E_OUT_OF_SEQUENCE Handle = 0x80090310 + SEC_E_NO_AUTHENTICATING_AUTHORITY Handle = 0x80090311 + SEC_I_CONTINUE_NEEDED Handle = 0x00090312 + SEC_I_COMPLETE_NEEDED Handle = 0x00090313 + SEC_I_COMPLETE_AND_CONTINUE Handle = 0x00090314 + SEC_I_LOCAL_LOGON Handle = 0x00090315 + SEC_I_GENERIC_EXTENSION_RECEIVED Handle = 0x00090316 + SEC_E_BAD_PKGID Handle = 0x80090316 + SEC_E_CONTEXT_EXPIRED Handle = 0x80090317 + SEC_I_CONTEXT_EXPIRED Handle = 0x00090317 + SEC_E_INCOMPLETE_MESSAGE Handle = 0x80090318 + SEC_E_INCOMPLETE_CREDENTIALS Handle = 0x80090320 + SEC_E_BUFFER_TOO_SMALL Handle = 0x80090321 + SEC_I_INCOMPLETE_CREDENTIALS Handle = 0x00090320 + SEC_I_RENEGOTIATE Handle = 0x00090321 + SEC_E_WRONG_PRINCIPAL Handle = 0x80090322 + SEC_I_NO_LSA_CONTEXT Handle = 0x00090323 + SEC_E_TIME_SKEW Handle = 0x80090324 + SEC_E_UNTRUSTED_ROOT Handle = 0x80090325 + SEC_E_ILLEGAL_MESSAGE Handle = 0x80090326 + SEC_E_CERT_UNKNOWN Handle = 0x80090327 + SEC_E_CERT_EXPIRED Handle = 0x80090328 + SEC_E_ENCRYPT_FAILURE Handle = 0x80090329 + SEC_E_DECRYPT_FAILURE Handle = 0x80090330 + SEC_E_ALGORITHM_MISMATCH Handle = 0x80090331 + SEC_E_SECURITY_QOS_FAILED Handle = 0x80090332 + SEC_E_UNFINISHED_CONTEXT_DELETED Handle = 0x80090333 + SEC_E_NO_TGT_REPLY Handle = 0x80090334 + SEC_E_NO_IP_ADDRESSES Handle = 0x80090335 + SEC_E_WRONG_CREDENTIAL_HANDLE Handle = 0x80090336 + SEC_E_CRYPTO_SYSTEM_INVALID Handle = 0x80090337 + SEC_E_MAX_REFERRALS_EXCEEDED Handle = 0x80090338 + SEC_E_MUST_BE_KDC Handle = 0x80090339 + SEC_E_STRONG_CRYPTO_NOT_SUPPORTED Handle = 0x8009033A + SEC_E_TOO_MANY_PRINCIPALS Handle = 0x8009033B + SEC_E_NO_PA_DATA Handle = 0x8009033C + SEC_E_PKINIT_NAME_MISMATCH Handle = 0x8009033D + SEC_E_SMARTCARD_LOGON_REQUIRED Handle = 0x8009033E + SEC_E_SHUTDOWN_IN_PROGRESS Handle = 0x8009033F + SEC_E_KDC_INVALID_REQUEST Handle = 0x80090340 + SEC_E_KDC_UNABLE_TO_REFER Handle = 0x80090341 + SEC_E_KDC_UNKNOWN_ETYPE Handle = 0x80090342 + SEC_E_UNSUPPORTED_PREAUTH Handle = 0x80090343 + SEC_E_DELEGATION_REQUIRED Handle = 0x80090345 + SEC_E_BAD_BINDINGS Handle = 0x80090346 + SEC_E_MULTIPLE_ACCOUNTS Handle = 0x80090347 + SEC_E_NO_KERB_KEY Handle = 0x80090348 + SEC_E_CERT_WRONG_USAGE Handle = 0x80090349 + SEC_E_DOWNGRADE_DETECTED Handle = 0x80090350 + SEC_E_SMARTCARD_CERT_REVOKED Handle = 0x80090351 + SEC_E_ISSUING_CA_UNTRUSTED Handle = 0x80090352 + SEC_E_REVOCATION_OFFLINE_C Handle = 0x80090353 + SEC_E_PKINIT_CLIENT_FAILURE Handle = 0x80090354 + SEC_E_SMARTCARD_CERT_EXPIRED Handle = 0x80090355 + SEC_E_NO_S4U_PROT_SUPPORT Handle = 0x80090356 + SEC_E_CROSSREALM_DELEGATION_FAILURE Handle = 0x80090357 + SEC_E_REVOCATION_OFFLINE_KDC Handle = 0x80090358 + SEC_E_ISSUING_CA_UNTRUSTED_KDC Handle = 0x80090359 + SEC_E_KDC_CERT_EXPIRED Handle = 0x8009035A + SEC_E_KDC_CERT_REVOKED Handle = 0x8009035B + SEC_I_SIGNATURE_NEEDED Handle = 0x0009035C + SEC_E_INVALID_PARAMETER Handle = 0x8009035D + SEC_E_DELEGATION_POLICY Handle = 0x8009035E + SEC_E_POLICY_NLTM_ONLY Handle = 0x8009035F + SEC_I_NO_RENEGOTIATION Handle = 0x00090360 + SEC_E_NO_CONTEXT Handle = 0x80090361 + SEC_E_PKU2U_CERT_FAILURE Handle = 0x80090362 + SEC_E_MUTUAL_AUTH_FAILED Handle = 0x80090363 + SEC_I_MESSAGE_FRAGMENT Handle = 0x00090364 + SEC_E_ONLY_HTTPS_ALLOWED Handle = 0x80090365 + SEC_I_CONTINUE_NEEDED_MESSAGE_OK Handle = 0x00090366 + SEC_E_APPLICATION_PROTOCOL_MISMATCH Handle = 0x80090367 + SEC_I_ASYNC_CALL_PENDING Handle = 0x00090368 + SEC_E_INVALID_UPN_NAME Handle = 0x80090369 + SEC_E_EXT_BUFFER_TOO_SMALL Handle = 0x8009036A + SEC_E_INSUFFICIENT_BUFFERS Handle = 0x8009036B + SEC_E_NO_SPM = SEC_E_INTERNAL_ERROR + SEC_E_NOT_SUPPORTED = SEC_E_UNSUPPORTED_FUNCTION + CRYPT_E_MSG_ERROR Handle = 0x80091001 + CRYPT_E_UNKNOWN_ALGO Handle = 0x80091002 + CRYPT_E_OID_FORMAT Handle = 0x80091003 + CRYPT_E_INVALID_MSG_TYPE Handle = 0x80091004 + CRYPT_E_UNEXPECTED_ENCODING Handle = 0x80091005 + CRYPT_E_AUTH_ATTR_MISSING Handle = 0x80091006 + CRYPT_E_HASH_VALUE Handle = 0x80091007 + CRYPT_E_INVALID_INDEX Handle = 0x80091008 + CRYPT_E_ALREADY_DECRYPTED Handle = 0x80091009 + CRYPT_E_NOT_DECRYPTED Handle = 0x8009100A + CRYPT_E_RECIPIENT_NOT_FOUND Handle = 0x8009100B + CRYPT_E_CONTROL_TYPE Handle = 0x8009100C + CRYPT_E_ISSUER_SERIALNUMBER Handle = 0x8009100D + CRYPT_E_SIGNER_NOT_FOUND Handle = 0x8009100E + CRYPT_E_ATTRIBUTES_MISSING Handle = 0x8009100F + CRYPT_E_STREAM_MSG_NOT_READY Handle = 0x80091010 + CRYPT_E_STREAM_INSUFFICIENT_DATA Handle = 0x80091011 + CRYPT_I_NEW_PROTECTION_REQUIRED Handle = 0x00091012 + CRYPT_E_BAD_LEN Handle = 0x80092001 + CRYPT_E_BAD_ENCODE Handle = 0x80092002 + CRYPT_E_FILE_ERROR Handle = 0x80092003 + CRYPT_E_NOT_FOUND Handle = 0x80092004 + CRYPT_E_EXISTS Handle = 0x80092005 + CRYPT_E_NO_PROVIDER Handle = 0x80092006 + CRYPT_E_SELF_SIGNED Handle = 0x80092007 + CRYPT_E_DELETED_PREV Handle = 0x80092008 + CRYPT_E_NO_MATCH Handle = 0x80092009 + CRYPT_E_UNEXPECTED_MSG_TYPE Handle = 0x8009200A + CRYPT_E_NO_KEY_PROPERTY Handle = 0x8009200B + CRYPT_E_NO_DECRYPT_CERT Handle = 0x8009200C + CRYPT_E_BAD_MSG Handle = 0x8009200D + CRYPT_E_NO_SIGNER Handle = 0x8009200E + CRYPT_E_PENDING_CLOSE Handle = 0x8009200F + CRYPT_E_REVOKED Handle = 0x80092010 + CRYPT_E_NO_REVOCATION_DLL Handle = 0x80092011 + CRYPT_E_NO_REVOCATION_CHECK Handle = 0x80092012 + CRYPT_E_REVOCATION_OFFLINE Handle = 0x80092013 + CRYPT_E_NOT_IN_REVOCATION_DATABASE Handle = 0x80092014 + CRYPT_E_INVALID_NUMERIC_STRING Handle = 0x80092020 + CRYPT_E_INVALID_PRINTABLE_STRING Handle = 0x80092021 + CRYPT_E_INVALID_IA5_STRING Handle = 0x80092022 + CRYPT_E_INVALID_X500_STRING Handle = 0x80092023 + CRYPT_E_NOT_CHAR_STRING Handle = 0x80092024 + CRYPT_E_FILERESIZED Handle = 0x80092025 + CRYPT_E_SECURITY_SETTINGS Handle = 0x80092026 + CRYPT_E_NO_VERIFY_USAGE_DLL Handle = 0x80092027 + CRYPT_E_NO_VERIFY_USAGE_CHECK Handle = 0x80092028 + CRYPT_E_VERIFY_USAGE_OFFLINE Handle = 0x80092029 + CRYPT_E_NOT_IN_CTL Handle = 0x8009202A + CRYPT_E_NO_TRUSTED_SIGNER Handle = 0x8009202B + CRYPT_E_MISSING_PUBKEY_PARA Handle = 0x8009202C + CRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND Handle = 0x8009202D + CRYPT_E_OSS_ERROR Handle = 0x80093000 + OSS_MORE_BUF Handle = 0x80093001 + OSS_NEGATIVE_UINTEGER Handle = 0x80093002 + OSS_PDU_RANGE Handle = 0x80093003 + OSS_MORE_INPUT Handle = 0x80093004 + OSS_DATA_ERROR Handle = 0x80093005 + OSS_BAD_ARG Handle = 0x80093006 + OSS_BAD_VERSION Handle = 0x80093007 + OSS_OUT_MEMORY Handle = 0x80093008 + OSS_PDU_MISMATCH Handle = 0x80093009 + OSS_LIMITED Handle = 0x8009300A + OSS_BAD_PTR Handle = 0x8009300B + OSS_BAD_TIME Handle = 0x8009300C + OSS_INDEFINITE_NOT_SUPPORTED Handle = 0x8009300D + OSS_MEM_ERROR Handle = 0x8009300E + OSS_BAD_TABLE Handle = 0x8009300F + OSS_TOO_LONG Handle = 0x80093010 + OSS_CONSTRAINT_VIOLATED Handle = 0x80093011 + OSS_FATAL_ERROR Handle = 0x80093012 + OSS_ACCESS_SERIALIZATION_ERROR Handle = 0x80093013 + OSS_NULL_TBL Handle = 0x80093014 + OSS_NULL_FCN Handle = 0x80093015 + OSS_BAD_ENCRULES Handle = 0x80093016 + OSS_UNAVAIL_ENCRULES Handle = 0x80093017 + OSS_CANT_OPEN_TRACE_WINDOW Handle = 0x80093018 + OSS_UNIMPLEMENTED Handle = 0x80093019 + OSS_OID_DLL_NOT_LINKED Handle = 0x8009301A + OSS_CANT_OPEN_TRACE_FILE Handle = 0x8009301B + OSS_TRACE_FILE_ALREADY_OPEN Handle = 0x8009301C + OSS_TABLE_MISMATCH Handle = 0x8009301D + OSS_TYPE_NOT_SUPPORTED Handle = 0x8009301E + OSS_REAL_DLL_NOT_LINKED Handle = 0x8009301F + OSS_REAL_CODE_NOT_LINKED Handle = 0x80093020 + OSS_OUT_OF_RANGE Handle = 0x80093021 + OSS_COPIER_DLL_NOT_LINKED Handle = 0x80093022 + OSS_CONSTRAINT_DLL_NOT_LINKED Handle = 0x80093023 + OSS_COMPARATOR_DLL_NOT_LINKED Handle = 0x80093024 + OSS_COMPARATOR_CODE_NOT_LINKED Handle = 0x80093025 + OSS_MEM_MGR_DLL_NOT_LINKED Handle = 0x80093026 + OSS_PDV_DLL_NOT_LINKED Handle = 0x80093027 + OSS_PDV_CODE_NOT_LINKED Handle = 0x80093028 + OSS_API_DLL_NOT_LINKED Handle = 0x80093029 + OSS_BERDER_DLL_NOT_LINKED Handle = 0x8009302A + OSS_PER_DLL_NOT_LINKED Handle = 0x8009302B + OSS_OPEN_TYPE_ERROR Handle = 0x8009302C + OSS_MUTEX_NOT_CREATED Handle = 0x8009302D + OSS_CANT_CLOSE_TRACE_FILE Handle = 0x8009302E + CRYPT_E_ASN1_ERROR Handle = 0x80093100 + CRYPT_E_ASN1_INTERNAL Handle = 0x80093101 + CRYPT_E_ASN1_EOD Handle = 0x80093102 + CRYPT_E_ASN1_CORRUPT Handle = 0x80093103 + CRYPT_E_ASN1_LARGE Handle = 0x80093104 + CRYPT_E_ASN1_CONSTRAINT Handle = 0x80093105 + CRYPT_E_ASN1_MEMORY Handle = 0x80093106 + CRYPT_E_ASN1_OVERFLOW Handle = 0x80093107 + CRYPT_E_ASN1_BADPDU Handle = 0x80093108 + CRYPT_E_ASN1_BADARGS Handle = 0x80093109 + CRYPT_E_ASN1_BADREAL Handle = 0x8009310A + CRYPT_E_ASN1_BADTAG Handle = 0x8009310B + CRYPT_E_ASN1_CHOICE Handle = 0x8009310C + CRYPT_E_ASN1_RULE Handle = 0x8009310D + CRYPT_E_ASN1_UTF8 Handle = 0x8009310E + CRYPT_E_ASN1_PDU_TYPE Handle = 0x80093133 + CRYPT_E_ASN1_NYI Handle = 0x80093134 + CRYPT_E_ASN1_EXTENDED Handle = 0x80093201 + CRYPT_E_ASN1_NOEOD Handle = 0x80093202 + CERTSRV_E_BAD_REQUESTSUBJECT Handle = 0x80094001 + CERTSRV_E_NO_REQUEST Handle = 0x80094002 + CERTSRV_E_BAD_REQUESTSTATUS Handle = 0x80094003 + CERTSRV_E_PROPERTY_EMPTY Handle = 0x80094004 + CERTSRV_E_INVALID_CA_CERTIFICATE Handle = 0x80094005 + CERTSRV_E_SERVER_SUSPENDED Handle = 0x80094006 + CERTSRV_E_ENCODING_LENGTH Handle = 0x80094007 + CERTSRV_E_ROLECONFLICT Handle = 0x80094008 + CERTSRV_E_RESTRICTEDOFFICER Handle = 0x80094009 + CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED Handle = 0x8009400A + CERTSRV_E_NO_VALID_KRA Handle = 0x8009400B + CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL Handle = 0x8009400C + CERTSRV_E_NO_CAADMIN_DEFINED Handle = 0x8009400D + CERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE Handle = 0x8009400E + CERTSRV_E_NO_DB_SESSIONS Handle = 0x8009400F + CERTSRV_E_ALIGNMENT_FAULT Handle = 0x80094010 + CERTSRV_E_ENROLL_DENIED Handle = 0x80094011 + CERTSRV_E_TEMPLATE_DENIED Handle = 0x80094012 + CERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE Handle = 0x80094013 + CERTSRV_E_ADMIN_DENIED_REQUEST Handle = 0x80094014 + CERTSRV_E_NO_POLICY_SERVER Handle = 0x80094015 + CERTSRV_E_WEAK_SIGNATURE_OR_KEY Handle = 0x80094016 + CERTSRV_E_KEY_ATTESTATION_NOT_SUPPORTED Handle = 0x80094017 + CERTSRV_E_ENCRYPTION_CERT_REQUIRED Handle = 0x80094018 + CERTSRV_E_UNSUPPORTED_CERT_TYPE Handle = 0x80094800 + CERTSRV_E_NO_CERT_TYPE Handle = 0x80094801 + CERTSRV_E_TEMPLATE_CONFLICT Handle = 0x80094802 + CERTSRV_E_SUBJECT_ALT_NAME_REQUIRED Handle = 0x80094803 + CERTSRV_E_ARCHIVED_KEY_REQUIRED Handle = 0x80094804 + CERTSRV_E_SMIME_REQUIRED Handle = 0x80094805 + CERTSRV_E_BAD_RENEWAL_SUBJECT Handle = 0x80094806 + CERTSRV_E_BAD_TEMPLATE_VERSION Handle = 0x80094807 + CERTSRV_E_TEMPLATE_POLICY_REQUIRED Handle = 0x80094808 + CERTSRV_E_SIGNATURE_POLICY_REQUIRED Handle = 0x80094809 + CERTSRV_E_SIGNATURE_COUNT Handle = 0x8009480A + CERTSRV_E_SIGNATURE_REJECTED Handle = 0x8009480B + CERTSRV_E_ISSUANCE_POLICY_REQUIRED Handle = 0x8009480C + CERTSRV_E_SUBJECT_UPN_REQUIRED Handle = 0x8009480D + CERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED Handle = 0x8009480E + CERTSRV_E_SUBJECT_DNS_REQUIRED Handle = 0x8009480F + CERTSRV_E_ARCHIVED_KEY_UNEXPECTED Handle = 0x80094810 + CERTSRV_E_KEY_LENGTH Handle = 0x80094811 + CERTSRV_E_SUBJECT_EMAIL_REQUIRED Handle = 0x80094812 + CERTSRV_E_UNKNOWN_CERT_TYPE Handle = 0x80094813 + CERTSRV_E_CERT_TYPE_OVERLAP Handle = 0x80094814 + CERTSRV_E_TOO_MANY_SIGNATURES Handle = 0x80094815 + CERTSRV_E_RENEWAL_BAD_PUBLIC_KEY Handle = 0x80094816 + CERTSRV_E_INVALID_EK Handle = 0x80094817 + CERTSRV_E_INVALID_IDBINDING Handle = 0x80094818 + CERTSRV_E_INVALID_ATTESTATION Handle = 0x80094819 + CERTSRV_E_KEY_ATTESTATION Handle = 0x8009481A + CERTSRV_E_CORRUPT_KEY_ATTESTATION Handle = 0x8009481B + CERTSRV_E_EXPIRED_CHALLENGE Handle = 0x8009481C + CERTSRV_E_INVALID_RESPONSE Handle = 0x8009481D + CERTSRV_E_INVALID_REQUESTID Handle = 0x8009481E + CERTSRV_E_REQUEST_PRECERTIFICATE_MISMATCH Handle = 0x8009481F + CERTSRV_E_PENDING_CLIENT_RESPONSE Handle = 0x80094820 + XENROLL_E_KEY_NOT_EXPORTABLE Handle = 0x80095000 + XENROLL_E_CANNOT_ADD_ROOT_CERT Handle = 0x80095001 + XENROLL_E_RESPONSE_KA_HASH_NOT_FOUND Handle = 0x80095002 + XENROLL_E_RESPONSE_UNEXPECTED_KA_HASH Handle = 0x80095003 + XENROLL_E_RESPONSE_KA_HASH_MISMATCH Handle = 0x80095004 + XENROLL_E_KEYSPEC_SMIME_MISMATCH Handle = 0x80095005 + TRUST_E_SYSTEM_ERROR Handle = 0x80096001 + TRUST_E_NO_SIGNER_CERT Handle = 0x80096002 + TRUST_E_COUNTER_SIGNER Handle = 0x80096003 + TRUST_E_CERT_SIGNATURE Handle = 0x80096004 + TRUST_E_TIME_STAMP Handle = 0x80096005 + TRUST_E_BAD_DIGEST Handle = 0x80096010 + TRUST_E_MALFORMED_SIGNATURE Handle = 0x80096011 + TRUST_E_BASIC_CONSTRAINTS Handle = 0x80096019 + TRUST_E_FINANCIAL_CRITERIA Handle = 0x8009601E + MSSIPOTF_E_OUTOFMEMRANGE Handle = 0x80097001 + MSSIPOTF_E_CANTGETOBJECT Handle = 0x80097002 + MSSIPOTF_E_NOHEADTABLE Handle = 0x80097003 + MSSIPOTF_E_BAD_MAGICNUMBER Handle = 0x80097004 + MSSIPOTF_E_BAD_OFFSET_TABLE Handle = 0x80097005 + MSSIPOTF_E_TABLE_TAGORDER Handle = 0x80097006 + MSSIPOTF_E_TABLE_LONGWORD Handle = 0x80097007 + MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT Handle = 0x80097008 + MSSIPOTF_E_TABLES_OVERLAP Handle = 0x80097009 + MSSIPOTF_E_TABLE_PADBYTES Handle = 0x8009700A + MSSIPOTF_E_FILETOOSMALL Handle = 0x8009700B + MSSIPOTF_E_TABLE_CHECKSUM Handle = 0x8009700C + MSSIPOTF_E_FILE_CHECKSUM Handle = 0x8009700D + MSSIPOTF_E_FAILED_POLICY Handle = 0x80097010 + MSSIPOTF_E_FAILED_HINTS_CHECK Handle = 0x80097011 + MSSIPOTF_E_NOT_OPENTYPE Handle = 0x80097012 + MSSIPOTF_E_FILE Handle = 0x80097013 + MSSIPOTF_E_CRYPT Handle = 0x80097014 + MSSIPOTF_E_BADVERSION Handle = 0x80097015 + MSSIPOTF_E_DSIG_STRUCTURE Handle = 0x80097016 + MSSIPOTF_E_PCONST_CHECK Handle = 0x80097017 + MSSIPOTF_E_STRUCTURE Handle = 0x80097018 + ERROR_CRED_REQUIRES_CONFIRMATION Handle = 0x80097019 + NTE_OP_OK syscall.Errno = 0 + TRUST_E_PROVIDER_UNKNOWN Handle = 0x800B0001 + TRUST_E_ACTION_UNKNOWN Handle = 0x800B0002 + TRUST_E_SUBJECT_FORM_UNKNOWN Handle = 0x800B0003 + TRUST_E_SUBJECT_NOT_TRUSTED Handle = 0x800B0004 + DIGSIG_E_ENCODE Handle = 0x800B0005 + DIGSIG_E_DECODE Handle = 0x800B0006 + DIGSIG_E_EXTENSIBILITY Handle = 0x800B0007 + DIGSIG_E_CRYPTO Handle = 0x800B0008 + PERSIST_E_SIZEDEFINITE Handle = 0x800B0009 + PERSIST_E_SIZEINDEFINITE Handle = 0x800B000A + PERSIST_E_NOTSELFSIZING Handle = 0x800B000B + TRUST_E_NOSIGNATURE Handle = 0x800B0100 + CERT_E_EXPIRED Handle = 0x800B0101 + CERT_E_VALIDITYPERIODNESTING Handle = 0x800B0102 + CERT_E_ROLE Handle = 0x800B0103 + CERT_E_PATHLENCONST Handle = 0x800B0104 + CERT_E_CRITICAL Handle = 0x800B0105 + CERT_E_PURPOSE Handle = 0x800B0106 + CERT_E_ISSUERCHAINING Handle = 0x800B0107 + CERT_E_MALFORMED Handle = 0x800B0108 + CERT_E_UNTRUSTEDROOT Handle = 0x800B0109 + CERT_E_CHAINING Handle = 0x800B010A + TRUST_E_FAIL Handle = 0x800B010B + CERT_E_REVOKED Handle = 0x800B010C + CERT_E_UNTRUSTEDTESTROOT Handle = 0x800B010D + CERT_E_REVOCATION_FAILURE Handle = 0x800B010E + CERT_E_CN_NO_MATCH Handle = 0x800B010F + CERT_E_WRONG_USAGE Handle = 0x800B0110 + TRUST_E_EXPLICIT_DISTRUST Handle = 0x800B0111 + CERT_E_UNTRUSTEDCA Handle = 0x800B0112 + CERT_E_INVALID_POLICY Handle = 0x800B0113 + CERT_E_INVALID_NAME Handle = 0x800B0114 + SPAPI_E_EXPECTED_SECTION_NAME Handle = 0x800F0000 + SPAPI_E_BAD_SECTION_NAME_LINE Handle = 0x800F0001 + SPAPI_E_SECTION_NAME_TOO_LONG Handle = 0x800F0002 + SPAPI_E_GENERAL_SYNTAX Handle = 0x800F0003 + SPAPI_E_WRONG_INF_STYLE Handle = 0x800F0100 + SPAPI_E_SECTION_NOT_FOUND Handle = 0x800F0101 + SPAPI_E_LINE_NOT_FOUND Handle = 0x800F0102 + SPAPI_E_NO_BACKUP Handle = 0x800F0103 + SPAPI_E_NO_ASSOCIATED_CLASS Handle = 0x800F0200 + SPAPI_E_CLASS_MISMATCH Handle = 0x800F0201 + SPAPI_E_DUPLICATE_FOUND Handle = 0x800F0202 + SPAPI_E_NO_DRIVER_SELECTED Handle = 0x800F0203 + SPAPI_E_KEY_DOES_NOT_EXIST Handle = 0x800F0204 + SPAPI_E_INVALID_DEVINST_NAME Handle = 0x800F0205 + SPAPI_E_INVALID_CLASS Handle = 0x800F0206 + SPAPI_E_DEVINST_ALREADY_EXISTS Handle = 0x800F0207 + SPAPI_E_DEVINFO_NOT_REGISTERED Handle = 0x800F0208 + SPAPI_E_INVALID_REG_PROPERTY Handle = 0x800F0209 + SPAPI_E_NO_INF Handle = 0x800F020A + SPAPI_E_NO_SUCH_DEVINST Handle = 0x800F020B + SPAPI_E_CANT_LOAD_CLASS_ICON Handle = 0x800F020C + SPAPI_E_INVALID_CLASS_INSTALLER Handle = 0x800F020D + SPAPI_E_DI_DO_DEFAULT Handle = 0x800F020E + SPAPI_E_DI_NOFILECOPY Handle = 0x800F020F + SPAPI_E_INVALID_HWPROFILE Handle = 0x800F0210 + SPAPI_E_NO_DEVICE_SELECTED Handle = 0x800F0211 + SPAPI_E_DEVINFO_LIST_LOCKED Handle = 0x800F0212 + SPAPI_E_DEVINFO_DATA_LOCKED Handle = 0x800F0213 + SPAPI_E_DI_BAD_PATH Handle = 0x800F0214 + SPAPI_E_NO_CLASSINSTALL_PARAMS Handle = 0x800F0215 + SPAPI_E_FILEQUEUE_LOCKED Handle = 0x800F0216 + SPAPI_E_BAD_SERVICE_INSTALLSECT Handle = 0x800F0217 + SPAPI_E_NO_CLASS_DRIVER_LIST Handle = 0x800F0218 + SPAPI_E_NO_ASSOCIATED_SERVICE Handle = 0x800F0219 + SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE Handle = 0x800F021A + SPAPI_E_DEVICE_INTERFACE_ACTIVE Handle = 0x800F021B + SPAPI_E_DEVICE_INTERFACE_REMOVED Handle = 0x800F021C + SPAPI_E_BAD_INTERFACE_INSTALLSECT Handle = 0x800F021D + SPAPI_E_NO_SUCH_INTERFACE_CLASS Handle = 0x800F021E + SPAPI_E_INVALID_REFERENCE_STRING Handle = 0x800F021F + SPAPI_E_INVALID_MACHINENAME Handle = 0x800F0220 + SPAPI_E_REMOTE_COMM_FAILURE Handle = 0x800F0221 + SPAPI_E_MACHINE_UNAVAILABLE Handle = 0x800F0222 + SPAPI_E_NO_CONFIGMGR_SERVICES Handle = 0x800F0223 + SPAPI_E_INVALID_PROPPAGE_PROVIDER Handle = 0x800F0224 + SPAPI_E_NO_SUCH_DEVICE_INTERFACE Handle = 0x800F0225 + SPAPI_E_DI_POSTPROCESSING_REQUIRED Handle = 0x800F0226 + SPAPI_E_INVALID_COINSTALLER Handle = 0x800F0227 + SPAPI_E_NO_COMPAT_DRIVERS Handle = 0x800F0228 + SPAPI_E_NO_DEVICE_ICON Handle = 0x800F0229 + SPAPI_E_INVALID_INF_LOGCONFIG Handle = 0x800F022A + SPAPI_E_DI_DONT_INSTALL Handle = 0x800F022B + SPAPI_E_INVALID_FILTER_DRIVER Handle = 0x800F022C + SPAPI_E_NON_WINDOWS_NT_DRIVER Handle = 0x800F022D + SPAPI_E_NON_WINDOWS_DRIVER Handle = 0x800F022E + SPAPI_E_NO_CATALOG_FOR_OEM_INF Handle = 0x800F022F + SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE Handle = 0x800F0230 + SPAPI_E_NOT_DISABLEABLE Handle = 0x800F0231 + SPAPI_E_CANT_REMOVE_DEVINST Handle = 0x800F0232 + SPAPI_E_INVALID_TARGET Handle = 0x800F0233 + SPAPI_E_DRIVER_NONNATIVE Handle = 0x800F0234 + SPAPI_E_IN_WOW64 Handle = 0x800F0235 + SPAPI_E_SET_SYSTEM_RESTORE_POINT Handle = 0x800F0236 + SPAPI_E_INCORRECTLY_COPIED_INF Handle = 0x800F0237 + SPAPI_E_SCE_DISABLED Handle = 0x800F0238 + SPAPI_E_UNKNOWN_EXCEPTION Handle = 0x800F0239 + SPAPI_E_PNP_REGISTRY_ERROR Handle = 0x800F023A + SPAPI_E_REMOTE_REQUEST_UNSUPPORTED Handle = 0x800F023B + SPAPI_E_NOT_AN_INSTALLED_OEM_INF Handle = 0x800F023C + SPAPI_E_INF_IN_USE_BY_DEVICES Handle = 0x800F023D + SPAPI_E_DI_FUNCTION_OBSOLETE Handle = 0x800F023E + SPAPI_E_NO_AUTHENTICODE_CATALOG Handle = 0x800F023F + SPAPI_E_AUTHENTICODE_DISALLOWED Handle = 0x800F0240 + SPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER Handle = 0x800F0241 + SPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED Handle = 0x800F0242 + SPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED Handle = 0x800F0243 + SPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH Handle = 0x800F0244 + SPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE Handle = 0x800F0245 + SPAPI_E_DEVICE_INSTALLER_NOT_READY Handle = 0x800F0246 + SPAPI_E_DRIVER_STORE_ADD_FAILED Handle = 0x800F0247 + SPAPI_E_DEVICE_INSTALL_BLOCKED Handle = 0x800F0248 + SPAPI_E_DRIVER_INSTALL_BLOCKED Handle = 0x800F0249 + SPAPI_E_WRONG_INF_TYPE Handle = 0x800F024A + SPAPI_E_FILE_HASH_NOT_IN_CATALOG Handle = 0x800F024B + SPAPI_E_DRIVER_STORE_DELETE_FAILED Handle = 0x800F024C + SPAPI_E_UNRECOVERABLE_STACK_OVERFLOW Handle = 0x800F0300 + SPAPI_E_ERROR_NOT_INSTALLED Handle = 0x800F1000 + SCARD_S_SUCCESS = S_OK + SCARD_F_INTERNAL_ERROR Handle = 0x80100001 + SCARD_E_CANCELLED Handle = 0x80100002 + SCARD_E_INVALID_HANDLE Handle = 0x80100003 + SCARD_E_INVALID_PARAMETER Handle = 0x80100004 + SCARD_E_INVALID_TARGET Handle = 0x80100005 + SCARD_E_NO_MEMORY Handle = 0x80100006 + SCARD_F_WAITED_TOO_LONG Handle = 0x80100007 + SCARD_E_INSUFFICIENT_BUFFER Handle = 0x80100008 + SCARD_E_UNKNOWN_READER Handle = 0x80100009 + SCARD_E_TIMEOUT Handle = 0x8010000A + SCARD_E_SHARING_VIOLATION Handle = 0x8010000B + SCARD_E_NO_SMARTCARD Handle = 0x8010000C + SCARD_E_UNKNOWN_CARD Handle = 0x8010000D + SCARD_E_CANT_DISPOSE Handle = 0x8010000E + SCARD_E_PROTO_MISMATCH Handle = 0x8010000F + SCARD_E_NOT_READY Handle = 0x80100010 + SCARD_E_INVALID_VALUE Handle = 0x80100011 + SCARD_E_SYSTEM_CANCELLED Handle = 0x80100012 + SCARD_F_COMM_ERROR Handle = 0x80100013 + SCARD_F_UNKNOWN_ERROR Handle = 0x80100014 + SCARD_E_INVALID_ATR Handle = 0x80100015 + SCARD_E_NOT_TRANSACTED Handle = 0x80100016 + SCARD_E_READER_UNAVAILABLE Handle = 0x80100017 + SCARD_P_SHUTDOWN Handle = 0x80100018 + SCARD_E_PCI_TOO_SMALL Handle = 0x80100019 + SCARD_E_READER_UNSUPPORTED Handle = 0x8010001A + SCARD_E_DUPLICATE_READER Handle = 0x8010001B + SCARD_E_CARD_UNSUPPORTED Handle = 0x8010001C + SCARD_E_NO_SERVICE Handle = 0x8010001D + SCARD_E_SERVICE_STOPPED Handle = 0x8010001E + SCARD_E_UNEXPECTED Handle = 0x8010001F + SCARD_E_ICC_INSTALLATION Handle = 0x80100020 + SCARD_E_ICC_CREATEORDER Handle = 0x80100021 + SCARD_E_UNSUPPORTED_FEATURE Handle = 0x80100022 + SCARD_E_DIR_NOT_FOUND Handle = 0x80100023 + SCARD_E_FILE_NOT_FOUND Handle = 0x80100024 + SCARD_E_NO_DIR Handle = 0x80100025 + SCARD_E_NO_FILE Handle = 0x80100026 + SCARD_E_NO_ACCESS Handle = 0x80100027 + SCARD_E_WRITE_TOO_MANY Handle = 0x80100028 + SCARD_E_BAD_SEEK Handle = 0x80100029 + SCARD_E_INVALID_CHV Handle = 0x8010002A + SCARD_E_UNKNOWN_RES_MNG Handle = 0x8010002B + SCARD_E_NO_SUCH_CERTIFICATE Handle = 0x8010002C + SCARD_E_CERTIFICATE_UNAVAILABLE Handle = 0x8010002D + SCARD_E_NO_READERS_AVAILABLE Handle = 0x8010002E + SCARD_E_COMM_DATA_LOST Handle = 0x8010002F + SCARD_E_NO_KEY_CONTAINER Handle = 0x80100030 + SCARD_E_SERVER_TOO_BUSY Handle = 0x80100031 + SCARD_E_PIN_CACHE_EXPIRED Handle = 0x80100032 + SCARD_E_NO_PIN_CACHE Handle = 0x80100033 + SCARD_E_READ_ONLY_CARD Handle = 0x80100034 + SCARD_W_UNSUPPORTED_CARD Handle = 0x80100065 + SCARD_W_UNRESPONSIVE_CARD Handle = 0x80100066 + SCARD_W_UNPOWERED_CARD Handle = 0x80100067 + SCARD_W_RESET_CARD Handle = 0x80100068 + SCARD_W_REMOVED_CARD Handle = 0x80100069 + SCARD_W_SECURITY_VIOLATION Handle = 0x8010006A + SCARD_W_WRONG_CHV Handle = 0x8010006B + SCARD_W_CHV_BLOCKED Handle = 0x8010006C + SCARD_W_EOF Handle = 0x8010006D + SCARD_W_CANCELLED_BY_USER Handle = 0x8010006E + SCARD_W_CARD_NOT_AUTHENTICATED Handle = 0x8010006F + SCARD_W_CACHE_ITEM_NOT_FOUND Handle = 0x80100070 + SCARD_W_CACHE_ITEM_STALE Handle = 0x80100071 + SCARD_W_CACHE_ITEM_TOO_BIG Handle = 0x80100072 + COMADMIN_E_OBJECTERRORS Handle = 0x80110401 + COMADMIN_E_OBJECTINVALID Handle = 0x80110402 + COMADMIN_E_KEYMISSING Handle = 0x80110403 + COMADMIN_E_ALREADYINSTALLED Handle = 0x80110404 + COMADMIN_E_APP_FILE_WRITEFAIL Handle = 0x80110407 + COMADMIN_E_APP_FILE_READFAIL Handle = 0x80110408 + COMADMIN_E_APP_FILE_VERSION Handle = 0x80110409 + COMADMIN_E_BADPATH Handle = 0x8011040A + COMADMIN_E_APPLICATIONEXISTS Handle = 0x8011040B + COMADMIN_E_ROLEEXISTS Handle = 0x8011040C + COMADMIN_E_CANTCOPYFILE Handle = 0x8011040D + COMADMIN_E_NOUSER Handle = 0x8011040F + COMADMIN_E_INVALIDUSERIDS Handle = 0x80110410 + COMADMIN_E_NOREGISTRYCLSID Handle = 0x80110411 + COMADMIN_E_BADREGISTRYPROGID Handle = 0x80110412 + COMADMIN_E_AUTHENTICATIONLEVEL Handle = 0x80110413 + COMADMIN_E_USERPASSWDNOTVALID Handle = 0x80110414 + COMADMIN_E_CLSIDORIIDMISMATCH Handle = 0x80110418 + COMADMIN_E_REMOTEINTERFACE Handle = 0x80110419 + COMADMIN_E_DLLREGISTERSERVER Handle = 0x8011041A + COMADMIN_E_NOSERVERSHARE Handle = 0x8011041B + COMADMIN_E_DLLLOADFAILED Handle = 0x8011041D + COMADMIN_E_BADREGISTRYLIBID Handle = 0x8011041E + COMADMIN_E_APPDIRNOTFOUND Handle = 0x8011041F + COMADMIN_E_REGISTRARFAILED Handle = 0x80110423 + COMADMIN_E_COMPFILE_DOESNOTEXIST Handle = 0x80110424 + COMADMIN_E_COMPFILE_LOADDLLFAIL Handle = 0x80110425 + COMADMIN_E_COMPFILE_GETCLASSOBJ Handle = 0x80110426 + COMADMIN_E_COMPFILE_CLASSNOTAVAIL Handle = 0x80110427 + COMADMIN_E_COMPFILE_BADTLB Handle = 0x80110428 + COMADMIN_E_COMPFILE_NOTINSTALLABLE Handle = 0x80110429 + COMADMIN_E_NOTCHANGEABLE Handle = 0x8011042A + COMADMIN_E_NOTDELETEABLE Handle = 0x8011042B + COMADMIN_E_SESSION Handle = 0x8011042C + COMADMIN_E_COMP_MOVE_LOCKED Handle = 0x8011042D + COMADMIN_E_COMP_MOVE_BAD_DEST Handle = 0x8011042E + COMADMIN_E_REGISTERTLB Handle = 0x80110430 + COMADMIN_E_SYSTEMAPP Handle = 0x80110433 + COMADMIN_E_COMPFILE_NOREGISTRAR Handle = 0x80110434 + COMADMIN_E_COREQCOMPINSTALLED Handle = 0x80110435 + COMADMIN_E_SERVICENOTINSTALLED Handle = 0x80110436 + COMADMIN_E_PROPERTYSAVEFAILED Handle = 0x80110437 + COMADMIN_E_OBJECTEXISTS Handle = 0x80110438 + COMADMIN_E_COMPONENTEXISTS Handle = 0x80110439 + COMADMIN_E_REGFILE_CORRUPT Handle = 0x8011043B + COMADMIN_E_PROPERTY_OVERFLOW Handle = 0x8011043C + COMADMIN_E_NOTINREGISTRY Handle = 0x8011043E + COMADMIN_E_OBJECTNOTPOOLABLE Handle = 0x8011043F + COMADMIN_E_APPLID_MATCHES_CLSID Handle = 0x80110446 + COMADMIN_E_ROLE_DOES_NOT_EXIST Handle = 0x80110447 + COMADMIN_E_START_APP_NEEDS_COMPONENTS Handle = 0x80110448 + COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM Handle = 0x80110449 + COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY Handle = 0x8011044A + COMADMIN_E_CAN_NOT_START_APP Handle = 0x8011044B + COMADMIN_E_CAN_NOT_EXPORT_SYS_APP Handle = 0x8011044C + COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT Handle = 0x8011044D + COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER Handle = 0x8011044E + COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE Handle = 0x8011044F + COMADMIN_E_BASE_PARTITION_ONLY Handle = 0x80110450 + COMADMIN_E_START_APP_DISABLED Handle = 0x80110451 + COMADMIN_E_CAT_DUPLICATE_PARTITION_NAME Handle = 0x80110457 + COMADMIN_E_CAT_INVALID_PARTITION_NAME Handle = 0x80110458 + COMADMIN_E_CAT_PARTITION_IN_USE Handle = 0x80110459 + COMADMIN_E_FILE_PARTITION_DUPLICATE_FILES Handle = 0x8011045A + COMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED Handle = 0x8011045B + COMADMIN_E_AMBIGUOUS_APPLICATION_NAME Handle = 0x8011045C + COMADMIN_E_AMBIGUOUS_PARTITION_NAME Handle = 0x8011045D + COMADMIN_E_REGDB_NOTINITIALIZED Handle = 0x80110472 + COMADMIN_E_REGDB_NOTOPEN Handle = 0x80110473 + COMADMIN_E_REGDB_SYSTEMERR Handle = 0x80110474 + COMADMIN_E_REGDB_ALREADYRUNNING Handle = 0x80110475 + COMADMIN_E_MIG_VERSIONNOTSUPPORTED Handle = 0x80110480 + COMADMIN_E_MIG_SCHEMANOTFOUND Handle = 0x80110481 + COMADMIN_E_CAT_BITNESSMISMATCH Handle = 0x80110482 + COMADMIN_E_CAT_UNACCEPTABLEBITNESS Handle = 0x80110483 + COMADMIN_E_CAT_WRONGAPPBITNESS Handle = 0x80110484 + COMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED Handle = 0x80110485 + COMADMIN_E_CAT_SERVERFAULT Handle = 0x80110486 + COMQC_E_APPLICATION_NOT_QUEUED Handle = 0x80110600 + COMQC_E_NO_QUEUEABLE_INTERFACES Handle = 0x80110601 + COMQC_E_QUEUING_SERVICE_NOT_AVAILABLE Handle = 0x80110602 + COMQC_E_NO_IPERSISTSTREAM Handle = 0x80110603 + COMQC_E_BAD_MESSAGE Handle = 0x80110604 + COMQC_E_UNAUTHENTICATED Handle = 0x80110605 + COMQC_E_UNTRUSTED_ENQUEUER Handle = 0x80110606 + MSDTC_E_DUPLICATE_RESOURCE Handle = 0x80110701 + COMADMIN_E_OBJECT_PARENT_MISSING Handle = 0x80110808 + COMADMIN_E_OBJECT_DOES_NOT_EXIST Handle = 0x80110809 + COMADMIN_E_APP_NOT_RUNNING Handle = 0x8011080A + COMADMIN_E_INVALID_PARTITION Handle = 0x8011080B + COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE Handle = 0x8011080D + COMADMIN_E_USER_IN_SET Handle = 0x8011080E + COMADMIN_E_CANTRECYCLELIBRARYAPPS Handle = 0x8011080F + COMADMIN_E_CANTRECYCLESERVICEAPPS Handle = 0x80110811 + COMADMIN_E_PROCESSALREADYRECYCLED Handle = 0x80110812 + COMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED Handle = 0x80110813 + COMADMIN_E_CANTMAKEINPROCSERVICE Handle = 0x80110814 + COMADMIN_E_PROGIDINUSEBYCLSID Handle = 0x80110815 + COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET Handle = 0x80110816 + COMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED Handle = 0x80110817 + COMADMIN_E_PARTITION_ACCESSDENIED Handle = 0x80110818 + COMADMIN_E_PARTITION_MSI_ONLY Handle = 0x80110819 + COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT Handle = 0x8011081A + COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS Handle = 0x8011081B + COMADMIN_E_COMP_MOVE_SOURCE Handle = 0x8011081C + COMADMIN_E_COMP_MOVE_DEST Handle = 0x8011081D + COMADMIN_E_COMP_MOVE_PRIVATE Handle = 0x8011081E + COMADMIN_E_BASEPARTITION_REQUIRED_IN_SET Handle = 0x8011081F + COMADMIN_E_CANNOT_ALIAS_EVENTCLASS Handle = 0x80110820 + COMADMIN_E_PRIVATE_ACCESSDENIED Handle = 0x80110821 + COMADMIN_E_SAFERINVALID Handle = 0x80110822 + COMADMIN_E_REGISTRY_ACCESSDENIED Handle = 0x80110823 + COMADMIN_E_PARTITIONS_DISABLED Handle = 0x80110824 + WER_S_REPORT_DEBUG Handle = 0x001B0000 + WER_S_REPORT_UPLOADED Handle = 0x001B0001 + WER_S_REPORT_QUEUED Handle = 0x001B0002 + WER_S_DISABLED Handle = 0x001B0003 + WER_S_SUSPENDED_UPLOAD Handle = 0x001B0004 + WER_S_DISABLED_QUEUE Handle = 0x001B0005 + WER_S_DISABLED_ARCHIVE Handle = 0x001B0006 + WER_S_REPORT_ASYNC Handle = 0x001B0007 + WER_S_IGNORE_ASSERT_INSTANCE Handle = 0x001B0008 + WER_S_IGNORE_ALL_ASSERTS Handle = 0x001B0009 + WER_S_ASSERT_CONTINUE Handle = 0x001B000A + WER_S_THROTTLED Handle = 0x001B000B + WER_S_REPORT_UPLOADED_CAB Handle = 0x001B000C + WER_E_CRASH_FAILURE Handle = 0x801B8000 + WER_E_CANCELED Handle = 0x801B8001 + WER_E_NETWORK_FAILURE Handle = 0x801B8002 + WER_E_NOT_INITIALIZED Handle = 0x801B8003 + WER_E_ALREADY_REPORTING Handle = 0x801B8004 + WER_E_DUMP_THROTTLED Handle = 0x801B8005 + WER_E_INSUFFICIENT_CONSENT Handle = 0x801B8006 + WER_E_TOO_HEAVY Handle = 0x801B8007 + ERROR_FLT_IO_COMPLETE Handle = 0x001F0001 + ERROR_FLT_NO_HANDLER_DEFINED Handle = 0x801F0001 + ERROR_FLT_CONTEXT_ALREADY_DEFINED Handle = 0x801F0002 + ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST Handle = 0x801F0003 + ERROR_FLT_DISALLOW_FAST_IO Handle = 0x801F0004 + ERROR_FLT_INVALID_NAME_REQUEST Handle = 0x801F0005 + ERROR_FLT_NOT_SAFE_TO_POST_OPERATION Handle = 0x801F0006 + ERROR_FLT_NOT_INITIALIZED Handle = 0x801F0007 + ERROR_FLT_FILTER_NOT_READY Handle = 0x801F0008 + ERROR_FLT_POST_OPERATION_CLEANUP Handle = 0x801F0009 + ERROR_FLT_INTERNAL_ERROR Handle = 0x801F000A + ERROR_FLT_DELETING_OBJECT Handle = 0x801F000B + ERROR_FLT_MUST_BE_NONPAGED_POOL Handle = 0x801F000C + ERROR_FLT_DUPLICATE_ENTRY Handle = 0x801F000D + ERROR_FLT_CBDQ_DISABLED Handle = 0x801F000E + ERROR_FLT_DO_NOT_ATTACH Handle = 0x801F000F + ERROR_FLT_DO_NOT_DETACH Handle = 0x801F0010 + ERROR_FLT_INSTANCE_ALTITUDE_COLLISION Handle = 0x801F0011 + ERROR_FLT_INSTANCE_NAME_COLLISION Handle = 0x801F0012 + ERROR_FLT_FILTER_NOT_FOUND Handle = 0x801F0013 + ERROR_FLT_VOLUME_NOT_FOUND Handle = 0x801F0014 + ERROR_FLT_INSTANCE_NOT_FOUND Handle = 0x801F0015 + ERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND Handle = 0x801F0016 + ERROR_FLT_INVALID_CONTEXT_REGISTRATION Handle = 0x801F0017 + ERROR_FLT_NAME_CACHE_MISS Handle = 0x801F0018 + ERROR_FLT_NO_DEVICE_OBJECT Handle = 0x801F0019 + ERROR_FLT_VOLUME_ALREADY_MOUNTED Handle = 0x801F001A + ERROR_FLT_ALREADY_ENLISTED Handle = 0x801F001B + ERROR_FLT_CONTEXT_ALREADY_LINKED Handle = 0x801F001C + ERROR_FLT_NO_WAITER_FOR_REPLY Handle = 0x801F0020 + ERROR_FLT_REGISTRATION_BUSY Handle = 0x801F0023 + ERROR_HUNG_DISPLAY_DRIVER_THREAD Handle = 0x80260001 + DWM_E_COMPOSITIONDISABLED Handle = 0x80263001 + DWM_E_REMOTING_NOT_SUPPORTED Handle = 0x80263002 + DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE Handle = 0x80263003 + DWM_E_NOT_QUEUING_PRESENTS Handle = 0x80263004 + DWM_E_ADAPTER_NOT_FOUND Handle = 0x80263005 + DWM_S_GDI_REDIRECTION_SURFACE Handle = 0x00263005 + DWM_E_TEXTURE_TOO_LARGE Handle = 0x80263007 + DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI Handle = 0x00263008 + ERROR_MONITOR_NO_DESCRIPTOR Handle = 0x00261001 + ERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT Handle = 0x00261002 + ERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM Handle = 0xC0261003 + ERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK Handle = 0xC0261004 + ERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED Handle = 0xC0261005 + ERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK Handle = 0xC0261006 + ERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK Handle = 0xC0261007 + ERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA Handle = 0xC0261008 + ERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK Handle = 0xC0261009 + ERROR_MONITOR_INVALID_MANUFACTURE_DATE Handle = 0xC026100A + ERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER Handle = 0xC0262000 + ERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER Handle = 0xC0262001 + ERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER Handle = 0xC0262002 + ERROR_GRAPHICS_ADAPTER_WAS_RESET Handle = 0xC0262003 + ERROR_GRAPHICS_INVALID_DRIVER_MODEL Handle = 0xC0262004 + ERROR_GRAPHICS_PRESENT_MODE_CHANGED Handle = 0xC0262005 + ERROR_GRAPHICS_PRESENT_OCCLUDED Handle = 0xC0262006 + ERROR_GRAPHICS_PRESENT_DENIED Handle = 0xC0262007 + ERROR_GRAPHICS_CANNOTCOLORCONVERT Handle = 0xC0262008 + ERROR_GRAPHICS_DRIVER_MISMATCH Handle = 0xC0262009 + ERROR_GRAPHICS_PARTIAL_DATA_POPULATED Handle = 0x4026200A + ERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED Handle = 0xC026200B + ERROR_GRAPHICS_PRESENT_UNOCCLUDED Handle = 0xC026200C + ERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE Handle = 0xC026200D + ERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED Handle = 0xC026200E + ERROR_GRAPHICS_PRESENT_INVALID_WINDOW Handle = 0xC026200F + ERROR_GRAPHICS_PRESENT_BUFFER_NOT_BOUND Handle = 0xC0262010 + ERROR_GRAPHICS_VAIL_STATE_CHANGED Handle = 0xC0262011 + ERROR_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN Handle = 0xC0262012 + ERROR_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED Handle = 0xC0262013 + ERROR_GRAPHICS_NO_VIDEO_MEMORY Handle = 0xC0262100 + ERROR_GRAPHICS_CANT_LOCK_MEMORY Handle = 0xC0262101 + ERROR_GRAPHICS_ALLOCATION_BUSY Handle = 0xC0262102 + ERROR_GRAPHICS_TOO_MANY_REFERENCES Handle = 0xC0262103 + ERROR_GRAPHICS_TRY_AGAIN_LATER Handle = 0xC0262104 + ERROR_GRAPHICS_TRY_AGAIN_NOW Handle = 0xC0262105 + ERROR_GRAPHICS_ALLOCATION_INVALID Handle = 0xC0262106 + ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE Handle = 0xC0262107 + ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED Handle = 0xC0262108 + ERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION Handle = 0xC0262109 + ERROR_GRAPHICS_INVALID_ALLOCATION_USAGE Handle = 0xC0262110 + ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION Handle = 0xC0262111 + ERROR_GRAPHICS_ALLOCATION_CLOSED Handle = 0xC0262112 + ERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE Handle = 0xC0262113 + ERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE Handle = 0xC0262114 + ERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE Handle = 0xC0262115 + ERROR_GRAPHICS_ALLOCATION_CONTENT_LOST Handle = 0xC0262116 + ERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE Handle = 0xC0262200 + ERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION Handle = 0x40262201 + ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY Handle = 0xC0262300 + ERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED Handle = 0xC0262301 + ERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED Handle = 0xC0262302 + ERROR_GRAPHICS_INVALID_VIDPN Handle = 0xC0262303 + ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE Handle = 0xC0262304 + ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET Handle = 0xC0262305 + ERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED Handle = 0xC0262306 + ERROR_GRAPHICS_MODE_NOT_PINNED Handle = 0x00262307 + ERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET Handle = 0xC0262308 + ERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET Handle = 0xC0262309 + ERROR_GRAPHICS_INVALID_FREQUENCY Handle = 0xC026230A + ERROR_GRAPHICS_INVALID_ACTIVE_REGION Handle = 0xC026230B + ERROR_GRAPHICS_INVALID_TOTAL_REGION Handle = 0xC026230C + ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE Handle = 0xC0262310 + ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE Handle = 0xC0262311 + ERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET Handle = 0xC0262312 + ERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY Handle = 0xC0262313 + ERROR_GRAPHICS_MODE_ALREADY_IN_MODESET Handle = 0xC0262314 + ERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET Handle = 0xC0262315 + ERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET Handle = 0xC0262316 + ERROR_GRAPHICS_SOURCE_ALREADY_IN_SET Handle = 0xC0262317 + ERROR_GRAPHICS_TARGET_ALREADY_IN_SET Handle = 0xC0262318 + ERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH Handle = 0xC0262319 + ERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY Handle = 0xC026231A + ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET Handle = 0xC026231B + ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE Handle = 0xC026231C + ERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET Handle = 0xC026231D + ERROR_GRAPHICS_NO_PREFERRED_MODE Handle = 0x0026231E + ERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET Handle = 0xC026231F + ERROR_GRAPHICS_STALE_MODESET Handle = 0xC0262320 + ERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET Handle = 0xC0262321 + ERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE Handle = 0xC0262322 + ERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN Handle = 0xC0262323 + ERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE Handle = 0xC0262324 + ERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION Handle = 0xC0262325 + ERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES Handle = 0xC0262326 + ERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY Handle = 0xC0262327 + ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE Handle = 0xC0262328 + ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET Handle = 0xC0262329 + ERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET Handle = 0xC026232A + ERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR Handle = 0xC026232B + ERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET Handle = 0xC026232C + ERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET Handle = 0xC026232D + ERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE Handle = 0xC026232E + ERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE Handle = 0xC026232F + ERROR_GRAPHICS_RESOURCES_NOT_RELATED Handle = 0xC0262330 + ERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE Handle = 0xC0262331 + ERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE Handle = 0xC0262332 + ERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET Handle = 0xC0262333 + ERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER Handle = 0xC0262334 + ERROR_GRAPHICS_NO_VIDPNMGR Handle = 0xC0262335 + ERROR_GRAPHICS_NO_ACTIVE_VIDPN Handle = 0xC0262336 + ERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY Handle = 0xC0262337 + ERROR_GRAPHICS_MONITOR_NOT_CONNECTED Handle = 0xC0262338 + ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY Handle = 0xC0262339 + ERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE Handle = 0xC026233A + ERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE Handle = 0xC026233B + ERROR_GRAPHICS_INVALID_STRIDE Handle = 0xC026233C + ERROR_GRAPHICS_INVALID_PIXELFORMAT Handle = 0xC026233D + ERROR_GRAPHICS_INVALID_COLORBASIS Handle = 0xC026233E + ERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE Handle = 0xC026233F + ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY Handle = 0xC0262340 + ERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT Handle = 0xC0262341 + ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0xC0262342 + ERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN Handle = 0xC0262343 + ERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL Handle = 0xC0262344 + ERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION Handle = 0xC0262345 + ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED Handle = 0xC0262346 + ERROR_GRAPHICS_INVALID_GAMMA_RAMP Handle = 0xC0262347 + ERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED Handle = 0xC0262348 + ERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED Handle = 0xC0262349 + ERROR_GRAPHICS_MODE_NOT_IN_MODESET Handle = 0xC026234A + ERROR_GRAPHICS_DATASET_IS_EMPTY Handle = 0x0026234B + ERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET Handle = 0x0026234C + ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON Handle = 0xC026234D + ERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE Handle = 0xC026234E + ERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE Handle = 0xC026234F + ERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS Handle = 0xC0262350 + ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED Handle = 0x00262351 + ERROR_GRAPHICS_INVALID_SCANLINE_ORDERING Handle = 0xC0262352 + ERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED Handle = 0xC0262353 + ERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS Handle = 0xC0262354 + ERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT Handle = 0xC0262355 + ERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM Handle = 0xC0262356 + ERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN Handle = 0xC0262357 + ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT Handle = 0xC0262358 + ERROR_GRAPHICS_MAX_NUM_PATHS_REACHED Handle = 0xC0262359 + ERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION Handle = 0xC026235A + ERROR_GRAPHICS_INVALID_CLIENT_TYPE Handle = 0xC026235B + ERROR_GRAPHICS_CLIENTVIDPN_NOT_SET Handle = 0xC026235C + ERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED Handle = 0xC0262400 + ERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED Handle = 0xC0262401 + ERROR_GRAPHICS_UNKNOWN_CHILD_STATUS Handle = 0x4026242F + ERROR_GRAPHICS_NOT_A_LINKED_ADAPTER Handle = 0xC0262430 + ERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED Handle = 0xC0262431 + ERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED Handle = 0xC0262432 + ERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY Handle = 0xC0262433 + ERROR_GRAPHICS_CHAINLINKS_NOT_STARTED Handle = 0xC0262434 + ERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON Handle = 0xC0262435 + ERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE Handle = 0xC0262436 + ERROR_GRAPHICS_LEADLINK_START_DEFERRED Handle = 0x40262437 + ERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER Handle = 0xC0262438 + ERROR_GRAPHICS_POLLING_TOO_FREQUENTLY Handle = 0x40262439 + ERROR_GRAPHICS_START_DEFERRED Handle = 0x4026243A + ERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED Handle = 0xC026243B + ERROR_GRAPHICS_DEPENDABLE_CHILD_STATUS Handle = 0x4026243C + ERROR_GRAPHICS_OPM_NOT_SUPPORTED Handle = 0xC0262500 + ERROR_GRAPHICS_COPP_NOT_SUPPORTED Handle = 0xC0262501 + ERROR_GRAPHICS_UAB_NOT_SUPPORTED Handle = 0xC0262502 + ERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS Handle = 0xC0262503 + ERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST Handle = 0xC0262505 + ERROR_GRAPHICS_OPM_INTERNAL_ERROR Handle = 0xC026250B + ERROR_GRAPHICS_OPM_INVALID_HANDLE Handle = 0xC026250C + ERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH Handle = 0xC026250E + ERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED Handle = 0xC026250F + ERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED Handle = 0xC0262510 + ERROR_GRAPHICS_PVP_HFS_FAILED Handle = 0xC0262511 + ERROR_GRAPHICS_OPM_INVALID_SRM Handle = 0xC0262512 + ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP Handle = 0xC0262513 + ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP Handle = 0xC0262514 + ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA Handle = 0xC0262515 + ERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET Handle = 0xC0262516 + ERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH Handle = 0xC0262517 + ERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE Handle = 0xC0262518 + ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS Handle = 0xC026251A + ERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS Handle = 0xC026251B + ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS Handle = 0xC026251C + ERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST Handle = 0xC026251D + ERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR Handle = 0xC026251E + ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS Handle = 0xC026251F + ERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED Handle = 0xC0262520 + ERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST Handle = 0xC0262521 + ERROR_GRAPHICS_I2C_NOT_SUPPORTED Handle = 0xC0262580 + ERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST Handle = 0xC0262581 + ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA Handle = 0xC0262582 + ERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA Handle = 0xC0262583 + ERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED Handle = 0xC0262584 + ERROR_GRAPHICS_DDCCI_INVALID_DATA Handle = 0xC0262585 + ERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE Handle = 0xC0262586 + ERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING Handle = 0xC0262587 + ERROR_GRAPHICS_MCA_INTERNAL_ERROR Handle = 0xC0262588 + ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND Handle = 0xC0262589 + ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH Handle = 0xC026258A + ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM Handle = 0xC026258B + ERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE Handle = 0xC026258C + ERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS Handle = 0xC026258D + ERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE Handle = 0xC02625D8 + ERROR_GRAPHICS_MCA_INVALID_VCP_VERSION Handle = 0xC02625D9 + ERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION Handle = 0xC02625DA + ERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH Handle = 0xC02625DB + ERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION Handle = 0xC02625DC + ERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED Handle = 0xC02625DE + ERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE Handle = 0xC02625DF + ERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED Handle = 0xC02625E0 + ERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME Handle = 0xC02625E1 + ERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP Handle = 0xC02625E2 + ERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED Handle = 0xC02625E3 + ERROR_GRAPHICS_INVALID_POINTER Handle = 0xC02625E4 + ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE Handle = 0xC02625E5 + ERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL Handle = 0xC02625E6 + ERROR_GRAPHICS_INTERNAL_ERROR Handle = 0xC02625E7 + ERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS Handle = 0xC02605E8 + NAP_E_INVALID_PACKET Handle = 0x80270001 + NAP_E_MISSING_SOH Handle = 0x80270002 + NAP_E_CONFLICTING_ID Handle = 0x80270003 + NAP_E_NO_CACHED_SOH Handle = 0x80270004 + NAP_E_STILL_BOUND Handle = 0x80270005 + NAP_E_NOT_REGISTERED Handle = 0x80270006 + NAP_E_NOT_INITIALIZED Handle = 0x80270007 + NAP_E_MISMATCHED_ID Handle = 0x80270008 + NAP_E_NOT_PENDING Handle = 0x80270009 + NAP_E_ID_NOT_FOUND Handle = 0x8027000A + NAP_E_MAXSIZE_TOO_SMALL Handle = 0x8027000B + NAP_E_SERVICE_NOT_RUNNING Handle = 0x8027000C + NAP_S_CERT_ALREADY_PRESENT Handle = 0x0027000D + NAP_E_ENTITY_DISABLED Handle = 0x8027000E + NAP_E_NETSH_GROUPPOLICY_ERROR Handle = 0x8027000F + NAP_E_TOO_MANY_CALLS Handle = 0x80270010 + NAP_E_SHV_CONFIG_EXISTED Handle = 0x80270011 + NAP_E_SHV_CONFIG_NOT_FOUND Handle = 0x80270012 + NAP_E_SHV_TIMEOUT Handle = 0x80270013 + TPM_E_ERROR_MASK Handle = 0x80280000 + TPM_E_AUTHFAIL Handle = 0x80280001 + TPM_E_BADINDEX Handle = 0x80280002 + TPM_E_BAD_PARAMETER Handle = 0x80280003 + TPM_E_AUDITFAILURE Handle = 0x80280004 + TPM_E_CLEAR_DISABLED Handle = 0x80280005 + TPM_E_DEACTIVATED Handle = 0x80280006 + TPM_E_DISABLED Handle = 0x80280007 + TPM_E_DISABLED_CMD Handle = 0x80280008 + TPM_E_FAIL Handle = 0x80280009 + TPM_E_BAD_ORDINAL Handle = 0x8028000A + TPM_E_INSTALL_DISABLED Handle = 0x8028000B + TPM_E_INVALID_KEYHANDLE Handle = 0x8028000C + TPM_E_KEYNOTFOUND Handle = 0x8028000D + TPM_E_INAPPROPRIATE_ENC Handle = 0x8028000E + TPM_E_MIGRATEFAIL Handle = 0x8028000F + TPM_E_INVALID_PCR_INFO Handle = 0x80280010 + TPM_E_NOSPACE Handle = 0x80280011 + TPM_E_NOSRK Handle = 0x80280012 + TPM_E_NOTSEALED_BLOB Handle = 0x80280013 + TPM_E_OWNER_SET Handle = 0x80280014 + TPM_E_RESOURCES Handle = 0x80280015 + TPM_E_SHORTRANDOM Handle = 0x80280016 + TPM_E_SIZE Handle = 0x80280017 + TPM_E_WRONGPCRVAL Handle = 0x80280018 + TPM_E_BAD_PARAM_SIZE Handle = 0x80280019 + TPM_E_SHA_THREAD Handle = 0x8028001A + TPM_E_SHA_ERROR Handle = 0x8028001B + TPM_E_FAILEDSELFTEST Handle = 0x8028001C + TPM_E_AUTH2FAIL Handle = 0x8028001D + TPM_E_BADTAG Handle = 0x8028001E + TPM_E_IOERROR Handle = 0x8028001F + TPM_E_ENCRYPT_ERROR Handle = 0x80280020 + TPM_E_DECRYPT_ERROR Handle = 0x80280021 + TPM_E_INVALID_AUTHHANDLE Handle = 0x80280022 + TPM_E_NO_ENDORSEMENT Handle = 0x80280023 + TPM_E_INVALID_KEYUSAGE Handle = 0x80280024 + TPM_E_WRONG_ENTITYTYPE Handle = 0x80280025 + TPM_E_INVALID_POSTINIT Handle = 0x80280026 + TPM_E_INAPPROPRIATE_SIG Handle = 0x80280027 + TPM_E_BAD_KEY_PROPERTY Handle = 0x80280028 + TPM_E_BAD_MIGRATION Handle = 0x80280029 + TPM_E_BAD_SCHEME Handle = 0x8028002A + TPM_E_BAD_DATASIZE Handle = 0x8028002B + TPM_E_BAD_MODE Handle = 0x8028002C + TPM_E_BAD_PRESENCE Handle = 0x8028002D + TPM_E_BAD_VERSION Handle = 0x8028002E + TPM_E_NO_WRAP_TRANSPORT Handle = 0x8028002F + TPM_E_AUDITFAIL_UNSUCCESSFUL Handle = 0x80280030 + TPM_E_AUDITFAIL_SUCCESSFUL Handle = 0x80280031 + TPM_E_NOTRESETABLE Handle = 0x80280032 + TPM_E_NOTLOCAL Handle = 0x80280033 + TPM_E_BAD_TYPE Handle = 0x80280034 + TPM_E_INVALID_RESOURCE Handle = 0x80280035 + TPM_E_NOTFIPS Handle = 0x80280036 + TPM_E_INVALID_FAMILY Handle = 0x80280037 + TPM_E_NO_NV_PERMISSION Handle = 0x80280038 + TPM_E_REQUIRES_SIGN Handle = 0x80280039 + TPM_E_KEY_NOTSUPPORTED Handle = 0x8028003A + TPM_E_AUTH_CONFLICT Handle = 0x8028003B + TPM_E_AREA_LOCKED Handle = 0x8028003C + TPM_E_BAD_LOCALITY Handle = 0x8028003D + TPM_E_READ_ONLY Handle = 0x8028003E + TPM_E_PER_NOWRITE Handle = 0x8028003F + TPM_E_FAMILYCOUNT Handle = 0x80280040 + TPM_E_WRITE_LOCKED Handle = 0x80280041 + TPM_E_BAD_ATTRIBUTES Handle = 0x80280042 + TPM_E_INVALID_STRUCTURE Handle = 0x80280043 + TPM_E_KEY_OWNER_CONTROL Handle = 0x80280044 + TPM_E_BAD_COUNTER Handle = 0x80280045 + TPM_E_NOT_FULLWRITE Handle = 0x80280046 + TPM_E_CONTEXT_GAP Handle = 0x80280047 + TPM_E_MAXNVWRITES Handle = 0x80280048 + TPM_E_NOOPERATOR Handle = 0x80280049 + TPM_E_RESOURCEMISSING Handle = 0x8028004A + TPM_E_DELEGATE_LOCK Handle = 0x8028004B + TPM_E_DELEGATE_FAMILY Handle = 0x8028004C + TPM_E_DELEGATE_ADMIN Handle = 0x8028004D + TPM_E_TRANSPORT_NOTEXCLUSIVE Handle = 0x8028004E + TPM_E_OWNER_CONTROL Handle = 0x8028004F + TPM_E_DAA_RESOURCES Handle = 0x80280050 + TPM_E_DAA_INPUT_DATA0 Handle = 0x80280051 + TPM_E_DAA_INPUT_DATA1 Handle = 0x80280052 + TPM_E_DAA_ISSUER_SETTINGS Handle = 0x80280053 + TPM_E_DAA_TPM_SETTINGS Handle = 0x80280054 + TPM_E_DAA_STAGE Handle = 0x80280055 + TPM_E_DAA_ISSUER_VALIDITY Handle = 0x80280056 + TPM_E_DAA_WRONG_W Handle = 0x80280057 + TPM_E_BAD_HANDLE Handle = 0x80280058 + TPM_E_BAD_DELEGATE Handle = 0x80280059 + TPM_E_BADCONTEXT Handle = 0x8028005A + TPM_E_TOOMANYCONTEXTS Handle = 0x8028005B + TPM_E_MA_TICKET_SIGNATURE Handle = 0x8028005C + TPM_E_MA_DESTINATION Handle = 0x8028005D + TPM_E_MA_SOURCE Handle = 0x8028005E + TPM_E_MA_AUTHORITY Handle = 0x8028005F + TPM_E_PERMANENTEK Handle = 0x80280061 + TPM_E_BAD_SIGNATURE Handle = 0x80280062 + TPM_E_NOCONTEXTSPACE Handle = 0x80280063 + TPM_20_E_ASYMMETRIC Handle = 0x80280081 + TPM_20_E_ATTRIBUTES Handle = 0x80280082 + TPM_20_E_HASH Handle = 0x80280083 + TPM_20_E_VALUE Handle = 0x80280084 + TPM_20_E_HIERARCHY Handle = 0x80280085 + TPM_20_E_KEY_SIZE Handle = 0x80280087 + TPM_20_E_MGF Handle = 0x80280088 + TPM_20_E_MODE Handle = 0x80280089 + TPM_20_E_TYPE Handle = 0x8028008A + TPM_20_E_HANDLE Handle = 0x8028008B + TPM_20_E_KDF Handle = 0x8028008C + TPM_20_E_RANGE Handle = 0x8028008D + TPM_20_E_AUTH_FAIL Handle = 0x8028008E + TPM_20_E_NONCE Handle = 0x8028008F + TPM_20_E_PP Handle = 0x80280090 + TPM_20_E_SCHEME Handle = 0x80280092 + TPM_20_E_SIZE Handle = 0x80280095 + TPM_20_E_SYMMETRIC Handle = 0x80280096 + TPM_20_E_TAG Handle = 0x80280097 + TPM_20_E_SELECTOR Handle = 0x80280098 + TPM_20_E_INSUFFICIENT Handle = 0x8028009A + TPM_20_E_SIGNATURE Handle = 0x8028009B + TPM_20_E_KEY Handle = 0x8028009C + TPM_20_E_POLICY_FAIL Handle = 0x8028009D + TPM_20_E_INTEGRITY Handle = 0x8028009F + TPM_20_E_TICKET Handle = 0x802800A0 + TPM_20_E_RESERVED_BITS Handle = 0x802800A1 + TPM_20_E_BAD_AUTH Handle = 0x802800A2 + TPM_20_E_EXPIRED Handle = 0x802800A3 + TPM_20_E_POLICY_CC Handle = 0x802800A4 + TPM_20_E_BINDING Handle = 0x802800A5 + TPM_20_E_CURVE Handle = 0x802800A6 + TPM_20_E_ECC_POINT Handle = 0x802800A7 + TPM_20_E_INITIALIZE Handle = 0x80280100 + TPM_20_E_FAILURE Handle = 0x80280101 + TPM_20_E_SEQUENCE Handle = 0x80280103 + TPM_20_E_PRIVATE Handle = 0x8028010B + TPM_20_E_HMAC Handle = 0x80280119 + TPM_20_E_DISABLED Handle = 0x80280120 + TPM_20_E_EXCLUSIVE Handle = 0x80280121 + TPM_20_E_ECC_CURVE Handle = 0x80280123 + TPM_20_E_AUTH_TYPE Handle = 0x80280124 + TPM_20_E_AUTH_MISSING Handle = 0x80280125 + TPM_20_E_POLICY Handle = 0x80280126 + TPM_20_E_PCR Handle = 0x80280127 + TPM_20_E_PCR_CHANGED Handle = 0x80280128 + TPM_20_E_UPGRADE Handle = 0x8028012D + TPM_20_E_TOO_MANY_CONTEXTS Handle = 0x8028012E + TPM_20_E_AUTH_UNAVAILABLE Handle = 0x8028012F + TPM_20_E_REBOOT Handle = 0x80280130 + TPM_20_E_UNBALANCED Handle = 0x80280131 + TPM_20_E_COMMAND_SIZE Handle = 0x80280142 + TPM_20_E_COMMAND_CODE Handle = 0x80280143 + TPM_20_E_AUTHSIZE Handle = 0x80280144 + TPM_20_E_AUTH_CONTEXT Handle = 0x80280145 + TPM_20_E_NV_RANGE Handle = 0x80280146 + TPM_20_E_NV_SIZE Handle = 0x80280147 + TPM_20_E_NV_LOCKED Handle = 0x80280148 + TPM_20_E_NV_AUTHORIZATION Handle = 0x80280149 + TPM_20_E_NV_UNINITIALIZED Handle = 0x8028014A + TPM_20_E_NV_SPACE Handle = 0x8028014B + TPM_20_E_NV_DEFINED Handle = 0x8028014C + TPM_20_E_BAD_CONTEXT Handle = 0x80280150 + TPM_20_E_CPHASH Handle = 0x80280151 + TPM_20_E_PARENT Handle = 0x80280152 + TPM_20_E_NEEDS_TEST Handle = 0x80280153 + TPM_20_E_NO_RESULT Handle = 0x80280154 + TPM_20_E_SENSITIVE Handle = 0x80280155 + TPM_E_COMMAND_BLOCKED Handle = 0x80280400 + TPM_E_INVALID_HANDLE Handle = 0x80280401 + TPM_E_DUPLICATE_VHANDLE Handle = 0x80280402 + TPM_E_EMBEDDED_COMMAND_BLOCKED Handle = 0x80280403 + TPM_E_EMBEDDED_COMMAND_UNSUPPORTED Handle = 0x80280404 + TPM_E_RETRY Handle = 0x80280800 + TPM_E_NEEDS_SELFTEST Handle = 0x80280801 + TPM_E_DOING_SELFTEST Handle = 0x80280802 + TPM_E_DEFEND_LOCK_RUNNING Handle = 0x80280803 + TPM_20_E_CONTEXT_GAP Handle = 0x80280901 + TPM_20_E_OBJECT_MEMORY Handle = 0x80280902 + TPM_20_E_SESSION_MEMORY Handle = 0x80280903 + TPM_20_E_MEMORY Handle = 0x80280904 + TPM_20_E_SESSION_HANDLES Handle = 0x80280905 + TPM_20_E_OBJECT_HANDLES Handle = 0x80280906 + TPM_20_E_LOCALITY Handle = 0x80280907 + TPM_20_E_YIELDED Handle = 0x80280908 + TPM_20_E_CANCELED Handle = 0x80280909 + TPM_20_E_TESTING Handle = 0x8028090A + TPM_20_E_NV_RATE Handle = 0x80280920 + TPM_20_E_LOCKOUT Handle = 0x80280921 + TPM_20_E_RETRY Handle = 0x80280922 + TPM_20_E_NV_UNAVAILABLE Handle = 0x80280923 + TBS_E_INTERNAL_ERROR Handle = 0x80284001 + TBS_E_BAD_PARAMETER Handle = 0x80284002 + TBS_E_INVALID_OUTPUT_POINTER Handle = 0x80284003 + TBS_E_INVALID_CONTEXT Handle = 0x80284004 + TBS_E_INSUFFICIENT_BUFFER Handle = 0x80284005 + TBS_E_IOERROR Handle = 0x80284006 + TBS_E_INVALID_CONTEXT_PARAM Handle = 0x80284007 + TBS_E_SERVICE_NOT_RUNNING Handle = 0x80284008 + TBS_E_TOO_MANY_TBS_CONTEXTS Handle = 0x80284009 + TBS_E_TOO_MANY_RESOURCES Handle = 0x8028400A + TBS_E_SERVICE_START_PENDING Handle = 0x8028400B + TBS_E_PPI_NOT_SUPPORTED Handle = 0x8028400C + TBS_E_COMMAND_CANCELED Handle = 0x8028400D + TBS_E_BUFFER_TOO_LARGE Handle = 0x8028400E + TBS_E_TPM_NOT_FOUND Handle = 0x8028400F + TBS_E_SERVICE_DISABLED Handle = 0x80284010 + TBS_E_NO_EVENT_LOG Handle = 0x80284011 + TBS_E_ACCESS_DENIED Handle = 0x80284012 + TBS_E_PROVISIONING_NOT_ALLOWED Handle = 0x80284013 + TBS_E_PPI_FUNCTION_UNSUPPORTED Handle = 0x80284014 + TBS_E_OWNERAUTH_NOT_FOUND Handle = 0x80284015 + TBS_E_PROVISIONING_INCOMPLETE Handle = 0x80284016 + TPMAPI_E_INVALID_STATE Handle = 0x80290100 + TPMAPI_E_NOT_ENOUGH_DATA Handle = 0x80290101 + TPMAPI_E_TOO_MUCH_DATA Handle = 0x80290102 + TPMAPI_E_INVALID_OUTPUT_POINTER Handle = 0x80290103 + TPMAPI_E_INVALID_PARAMETER Handle = 0x80290104 + TPMAPI_E_OUT_OF_MEMORY Handle = 0x80290105 + TPMAPI_E_BUFFER_TOO_SMALL Handle = 0x80290106 + TPMAPI_E_INTERNAL_ERROR Handle = 0x80290107 + TPMAPI_E_ACCESS_DENIED Handle = 0x80290108 + TPMAPI_E_AUTHORIZATION_FAILED Handle = 0x80290109 + TPMAPI_E_INVALID_CONTEXT_HANDLE Handle = 0x8029010A + TPMAPI_E_TBS_COMMUNICATION_ERROR Handle = 0x8029010B + TPMAPI_E_TPM_COMMAND_ERROR Handle = 0x8029010C + TPMAPI_E_MESSAGE_TOO_LARGE Handle = 0x8029010D + TPMAPI_E_INVALID_ENCODING Handle = 0x8029010E + TPMAPI_E_INVALID_KEY_SIZE Handle = 0x8029010F + TPMAPI_E_ENCRYPTION_FAILED Handle = 0x80290110 + TPMAPI_E_INVALID_KEY_PARAMS Handle = 0x80290111 + TPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB Handle = 0x80290112 + TPMAPI_E_INVALID_PCR_INDEX Handle = 0x80290113 + TPMAPI_E_INVALID_DELEGATE_BLOB Handle = 0x80290114 + TPMAPI_E_INVALID_CONTEXT_PARAMS Handle = 0x80290115 + TPMAPI_E_INVALID_KEY_BLOB Handle = 0x80290116 + TPMAPI_E_INVALID_PCR_DATA Handle = 0x80290117 + TPMAPI_E_INVALID_OWNER_AUTH Handle = 0x80290118 + TPMAPI_E_FIPS_RNG_CHECK_FAILED Handle = 0x80290119 + TPMAPI_E_EMPTY_TCG_LOG Handle = 0x8029011A + TPMAPI_E_INVALID_TCG_LOG_ENTRY Handle = 0x8029011B + TPMAPI_E_TCG_SEPARATOR_ABSENT Handle = 0x8029011C + TPMAPI_E_TCG_INVALID_DIGEST_ENTRY Handle = 0x8029011D + TPMAPI_E_POLICY_DENIES_OPERATION Handle = 0x8029011E + TPMAPI_E_NV_BITS_NOT_DEFINED Handle = 0x8029011F + TPMAPI_E_NV_BITS_NOT_READY Handle = 0x80290120 + TPMAPI_E_SEALING_KEY_NOT_AVAILABLE Handle = 0x80290121 + TPMAPI_E_NO_AUTHORIZATION_CHAIN_FOUND Handle = 0x80290122 + TPMAPI_E_SVN_COUNTER_NOT_AVAILABLE Handle = 0x80290123 + TPMAPI_E_OWNER_AUTH_NOT_NULL Handle = 0x80290124 + TPMAPI_E_ENDORSEMENT_AUTH_NOT_NULL Handle = 0x80290125 + TPMAPI_E_AUTHORIZATION_REVOKED Handle = 0x80290126 + TPMAPI_E_MALFORMED_AUTHORIZATION_KEY Handle = 0x80290127 + TPMAPI_E_AUTHORIZING_KEY_NOT_SUPPORTED Handle = 0x80290128 + TPMAPI_E_INVALID_AUTHORIZATION_SIGNATURE Handle = 0x80290129 + TPMAPI_E_MALFORMED_AUTHORIZATION_POLICY Handle = 0x8029012A + TPMAPI_E_MALFORMED_AUTHORIZATION_OTHER Handle = 0x8029012B + TPMAPI_E_SEALING_KEY_CHANGED Handle = 0x8029012C + TBSIMP_E_BUFFER_TOO_SMALL Handle = 0x80290200 + TBSIMP_E_CLEANUP_FAILED Handle = 0x80290201 + TBSIMP_E_INVALID_CONTEXT_HANDLE Handle = 0x80290202 + TBSIMP_E_INVALID_CONTEXT_PARAM Handle = 0x80290203 + TBSIMP_E_TPM_ERROR Handle = 0x80290204 + TBSIMP_E_HASH_BAD_KEY Handle = 0x80290205 + TBSIMP_E_DUPLICATE_VHANDLE Handle = 0x80290206 + TBSIMP_E_INVALID_OUTPUT_POINTER Handle = 0x80290207 + TBSIMP_E_INVALID_PARAMETER Handle = 0x80290208 + TBSIMP_E_RPC_INIT_FAILED Handle = 0x80290209 + TBSIMP_E_SCHEDULER_NOT_RUNNING Handle = 0x8029020A + TBSIMP_E_COMMAND_CANCELED Handle = 0x8029020B + TBSIMP_E_OUT_OF_MEMORY Handle = 0x8029020C + TBSIMP_E_LIST_NO_MORE_ITEMS Handle = 0x8029020D + TBSIMP_E_LIST_NOT_FOUND Handle = 0x8029020E + TBSIMP_E_NOT_ENOUGH_SPACE Handle = 0x8029020F + TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS Handle = 0x80290210 + TBSIMP_E_COMMAND_FAILED Handle = 0x80290211 + TBSIMP_E_UNKNOWN_ORDINAL Handle = 0x80290212 + TBSIMP_E_RESOURCE_EXPIRED Handle = 0x80290213 + TBSIMP_E_INVALID_RESOURCE Handle = 0x80290214 + TBSIMP_E_NOTHING_TO_UNLOAD Handle = 0x80290215 + TBSIMP_E_HASH_TABLE_FULL Handle = 0x80290216 + TBSIMP_E_TOO_MANY_TBS_CONTEXTS Handle = 0x80290217 + TBSIMP_E_TOO_MANY_RESOURCES Handle = 0x80290218 + TBSIMP_E_PPI_NOT_SUPPORTED Handle = 0x80290219 + TBSIMP_E_TPM_INCOMPATIBLE Handle = 0x8029021A + TBSIMP_E_NO_EVENT_LOG Handle = 0x8029021B + TPM_E_PPI_ACPI_FAILURE Handle = 0x80290300 + TPM_E_PPI_USER_ABORT Handle = 0x80290301 + TPM_E_PPI_BIOS_FAILURE Handle = 0x80290302 + TPM_E_PPI_NOT_SUPPORTED Handle = 0x80290303 + TPM_E_PPI_BLOCKED_IN_BIOS Handle = 0x80290304 + TPM_E_PCP_ERROR_MASK Handle = 0x80290400 + TPM_E_PCP_DEVICE_NOT_READY Handle = 0x80290401 + TPM_E_PCP_INVALID_HANDLE Handle = 0x80290402 + TPM_E_PCP_INVALID_PARAMETER Handle = 0x80290403 + TPM_E_PCP_FLAG_NOT_SUPPORTED Handle = 0x80290404 + TPM_E_PCP_NOT_SUPPORTED Handle = 0x80290405 + TPM_E_PCP_BUFFER_TOO_SMALL Handle = 0x80290406 + TPM_E_PCP_INTERNAL_ERROR Handle = 0x80290407 + TPM_E_PCP_AUTHENTICATION_FAILED Handle = 0x80290408 + TPM_E_PCP_AUTHENTICATION_IGNORED Handle = 0x80290409 + TPM_E_PCP_POLICY_NOT_FOUND Handle = 0x8029040A + TPM_E_PCP_PROFILE_NOT_FOUND Handle = 0x8029040B + TPM_E_PCP_VALIDATION_FAILED Handle = 0x8029040C + TPM_E_PCP_WRONG_PARENT Handle = 0x8029040E + TPM_E_KEY_NOT_LOADED Handle = 0x8029040F + TPM_E_NO_KEY_CERTIFICATION Handle = 0x80290410 + TPM_E_KEY_NOT_FINALIZED Handle = 0x80290411 + TPM_E_ATTESTATION_CHALLENGE_NOT_SET Handle = 0x80290412 + TPM_E_NOT_PCR_BOUND Handle = 0x80290413 + TPM_E_KEY_ALREADY_FINALIZED Handle = 0x80290414 + TPM_E_KEY_USAGE_POLICY_NOT_SUPPORTED Handle = 0x80290415 + TPM_E_KEY_USAGE_POLICY_INVALID Handle = 0x80290416 + TPM_E_SOFT_KEY_ERROR Handle = 0x80290417 + TPM_E_KEY_NOT_AUTHENTICATED Handle = 0x80290418 + TPM_E_PCP_KEY_NOT_AIK Handle = 0x80290419 + TPM_E_KEY_NOT_SIGNING_KEY Handle = 0x8029041A + TPM_E_LOCKED_OUT Handle = 0x8029041B + TPM_E_CLAIM_TYPE_NOT_SUPPORTED Handle = 0x8029041C + TPM_E_VERSION_NOT_SUPPORTED Handle = 0x8029041D + TPM_E_BUFFER_LENGTH_MISMATCH Handle = 0x8029041E + TPM_E_PCP_IFX_RSA_KEY_CREATION_BLOCKED Handle = 0x8029041F + TPM_E_PCP_TICKET_MISSING Handle = 0x80290420 + TPM_E_PCP_RAW_POLICY_NOT_SUPPORTED Handle = 0x80290421 + TPM_E_PCP_KEY_HANDLE_INVALIDATED Handle = 0x80290422 + TPM_E_PCP_UNSUPPORTED_PSS_SALT Handle = 0x40290423 + TPM_E_ZERO_EXHAUST_ENABLED Handle = 0x80290500 + PLA_E_DCS_NOT_FOUND Handle = 0x80300002 + PLA_E_DCS_IN_USE Handle = 0x803000AA + PLA_E_TOO_MANY_FOLDERS Handle = 0x80300045 + PLA_E_NO_MIN_DISK Handle = 0x80300070 + PLA_E_DCS_ALREADY_EXISTS Handle = 0x803000B7 + PLA_S_PROPERTY_IGNORED Handle = 0x00300100 + PLA_E_PROPERTY_CONFLICT Handle = 0x80300101 + PLA_E_DCS_SINGLETON_REQUIRED Handle = 0x80300102 + PLA_E_CREDENTIALS_REQUIRED Handle = 0x80300103 + PLA_E_DCS_NOT_RUNNING Handle = 0x80300104 + PLA_E_CONFLICT_INCL_EXCL_API Handle = 0x80300105 + PLA_E_NETWORK_EXE_NOT_VALID Handle = 0x80300106 + PLA_E_EXE_ALREADY_CONFIGURED Handle = 0x80300107 + PLA_E_EXE_PATH_NOT_VALID Handle = 0x80300108 + PLA_E_DC_ALREADY_EXISTS Handle = 0x80300109 + PLA_E_DCS_START_WAIT_TIMEOUT Handle = 0x8030010A + PLA_E_DC_START_WAIT_TIMEOUT Handle = 0x8030010B + PLA_E_REPORT_WAIT_TIMEOUT Handle = 0x8030010C + PLA_E_NO_DUPLICATES Handle = 0x8030010D + PLA_E_EXE_FULL_PATH_REQUIRED Handle = 0x8030010E + PLA_E_INVALID_SESSION_NAME Handle = 0x8030010F + PLA_E_PLA_CHANNEL_NOT_ENABLED Handle = 0x80300110 + PLA_E_TASKSCHED_CHANNEL_NOT_ENABLED Handle = 0x80300111 + PLA_E_RULES_MANAGER_FAILED Handle = 0x80300112 + PLA_E_CABAPI_FAILURE Handle = 0x80300113 + FVE_E_LOCKED_VOLUME Handle = 0x80310000 + FVE_E_NOT_ENCRYPTED Handle = 0x80310001 + FVE_E_NO_TPM_BIOS Handle = 0x80310002 + FVE_E_NO_MBR_METRIC Handle = 0x80310003 + FVE_E_NO_BOOTSECTOR_METRIC Handle = 0x80310004 + FVE_E_NO_BOOTMGR_METRIC Handle = 0x80310005 + FVE_E_WRONG_BOOTMGR Handle = 0x80310006 + FVE_E_SECURE_KEY_REQUIRED Handle = 0x80310007 + FVE_E_NOT_ACTIVATED Handle = 0x80310008 + FVE_E_ACTION_NOT_ALLOWED Handle = 0x80310009 + FVE_E_AD_SCHEMA_NOT_INSTALLED Handle = 0x8031000A + FVE_E_AD_INVALID_DATATYPE Handle = 0x8031000B + FVE_E_AD_INVALID_DATASIZE Handle = 0x8031000C + FVE_E_AD_NO_VALUES Handle = 0x8031000D + FVE_E_AD_ATTR_NOT_SET Handle = 0x8031000E + FVE_E_AD_GUID_NOT_FOUND Handle = 0x8031000F + FVE_E_BAD_INFORMATION Handle = 0x80310010 + FVE_E_TOO_SMALL Handle = 0x80310011 + FVE_E_SYSTEM_VOLUME Handle = 0x80310012 + FVE_E_FAILED_WRONG_FS Handle = 0x80310013 + FVE_E_BAD_PARTITION_SIZE Handle = 0x80310014 + FVE_E_NOT_SUPPORTED Handle = 0x80310015 + FVE_E_BAD_DATA Handle = 0x80310016 + FVE_E_VOLUME_NOT_BOUND Handle = 0x80310017 + FVE_E_TPM_NOT_OWNED Handle = 0x80310018 + FVE_E_NOT_DATA_VOLUME Handle = 0x80310019 + FVE_E_AD_INSUFFICIENT_BUFFER Handle = 0x8031001A + FVE_E_CONV_READ Handle = 0x8031001B + FVE_E_CONV_WRITE Handle = 0x8031001C + FVE_E_KEY_REQUIRED Handle = 0x8031001D + FVE_E_CLUSTERING_NOT_SUPPORTED Handle = 0x8031001E + FVE_E_VOLUME_BOUND_ALREADY Handle = 0x8031001F + FVE_E_OS_NOT_PROTECTED Handle = 0x80310020 + FVE_E_PROTECTION_DISABLED Handle = 0x80310021 + FVE_E_RECOVERY_KEY_REQUIRED Handle = 0x80310022 + FVE_E_FOREIGN_VOLUME Handle = 0x80310023 + FVE_E_OVERLAPPED_UPDATE Handle = 0x80310024 + FVE_E_TPM_SRK_AUTH_NOT_ZERO Handle = 0x80310025 + FVE_E_FAILED_SECTOR_SIZE Handle = 0x80310026 + FVE_E_FAILED_AUTHENTICATION Handle = 0x80310027 + FVE_E_NOT_OS_VOLUME Handle = 0x80310028 + FVE_E_AUTOUNLOCK_ENABLED Handle = 0x80310029 + FVE_E_WRONG_BOOTSECTOR Handle = 0x8031002A + FVE_E_WRONG_SYSTEM_FS Handle = 0x8031002B + FVE_E_POLICY_PASSWORD_REQUIRED Handle = 0x8031002C + FVE_E_CANNOT_SET_FVEK_ENCRYPTED Handle = 0x8031002D + FVE_E_CANNOT_ENCRYPT_NO_KEY Handle = 0x8031002E + FVE_E_BOOTABLE_CDDVD Handle = 0x80310030 + FVE_E_PROTECTOR_EXISTS Handle = 0x80310031 + FVE_E_RELATIVE_PATH Handle = 0x80310032 + FVE_E_PROTECTOR_NOT_FOUND Handle = 0x80310033 + FVE_E_INVALID_KEY_FORMAT Handle = 0x80310034 + FVE_E_INVALID_PASSWORD_FORMAT Handle = 0x80310035 + FVE_E_FIPS_RNG_CHECK_FAILED Handle = 0x80310036 + FVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD Handle = 0x80310037 + FVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT Handle = 0x80310038 + FVE_E_NOT_DECRYPTED Handle = 0x80310039 + FVE_E_INVALID_PROTECTOR_TYPE Handle = 0x8031003A + FVE_E_NO_PROTECTORS_TO_TEST Handle = 0x8031003B + FVE_E_KEYFILE_NOT_FOUND Handle = 0x8031003C + FVE_E_KEYFILE_INVALID Handle = 0x8031003D + FVE_E_KEYFILE_NO_VMK Handle = 0x8031003E + FVE_E_TPM_DISABLED Handle = 0x8031003F + FVE_E_NOT_ALLOWED_IN_SAFE_MODE Handle = 0x80310040 + FVE_E_TPM_INVALID_PCR Handle = 0x80310041 + FVE_E_TPM_NO_VMK Handle = 0x80310042 + FVE_E_PIN_INVALID Handle = 0x80310043 + FVE_E_AUTH_INVALID_APPLICATION Handle = 0x80310044 + FVE_E_AUTH_INVALID_CONFIG Handle = 0x80310045 + FVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED Handle = 0x80310046 + FVE_E_FS_NOT_EXTENDED Handle = 0x80310047 + FVE_E_FIRMWARE_TYPE_NOT_SUPPORTED Handle = 0x80310048 + FVE_E_NO_LICENSE Handle = 0x80310049 + FVE_E_NOT_ON_STACK Handle = 0x8031004A + FVE_E_FS_MOUNTED Handle = 0x8031004B + FVE_E_TOKEN_NOT_IMPERSONATED Handle = 0x8031004C + FVE_E_DRY_RUN_FAILED Handle = 0x8031004D + FVE_E_REBOOT_REQUIRED Handle = 0x8031004E + FVE_E_DEBUGGER_ENABLED Handle = 0x8031004F + FVE_E_RAW_ACCESS Handle = 0x80310050 + FVE_E_RAW_BLOCKED Handle = 0x80310051 + FVE_E_BCD_APPLICATIONS_PATH_INCORRECT Handle = 0x80310052 + FVE_E_NOT_ALLOWED_IN_VERSION Handle = 0x80310053 + FVE_E_NO_AUTOUNLOCK_MASTER_KEY Handle = 0x80310054 + FVE_E_MOR_FAILED Handle = 0x80310055 + FVE_E_HIDDEN_VOLUME Handle = 0x80310056 + FVE_E_TRANSIENT_STATE Handle = 0x80310057 + FVE_E_PUBKEY_NOT_ALLOWED Handle = 0x80310058 + FVE_E_VOLUME_HANDLE_OPEN Handle = 0x80310059 + FVE_E_NO_FEATURE_LICENSE Handle = 0x8031005A + FVE_E_INVALID_STARTUP_OPTIONS Handle = 0x8031005B + FVE_E_POLICY_RECOVERY_PASSWORD_NOT_ALLOWED Handle = 0x8031005C + FVE_E_POLICY_RECOVERY_PASSWORD_REQUIRED Handle = 0x8031005D + FVE_E_POLICY_RECOVERY_KEY_NOT_ALLOWED Handle = 0x8031005E + FVE_E_POLICY_RECOVERY_KEY_REQUIRED Handle = 0x8031005F + FVE_E_POLICY_STARTUP_PIN_NOT_ALLOWED Handle = 0x80310060 + FVE_E_POLICY_STARTUP_PIN_REQUIRED Handle = 0x80310061 + FVE_E_POLICY_STARTUP_KEY_NOT_ALLOWED Handle = 0x80310062 + FVE_E_POLICY_STARTUP_KEY_REQUIRED Handle = 0x80310063 + FVE_E_POLICY_STARTUP_PIN_KEY_NOT_ALLOWED Handle = 0x80310064 + FVE_E_POLICY_STARTUP_PIN_KEY_REQUIRED Handle = 0x80310065 + FVE_E_POLICY_STARTUP_TPM_NOT_ALLOWED Handle = 0x80310066 + FVE_E_POLICY_STARTUP_TPM_REQUIRED Handle = 0x80310067 + FVE_E_POLICY_INVALID_PIN_LENGTH Handle = 0x80310068 + FVE_E_KEY_PROTECTOR_NOT_SUPPORTED Handle = 0x80310069 + FVE_E_POLICY_PASSPHRASE_NOT_ALLOWED Handle = 0x8031006A + FVE_E_POLICY_PASSPHRASE_REQUIRED Handle = 0x8031006B + FVE_E_FIPS_PREVENTS_PASSPHRASE Handle = 0x8031006C + FVE_E_OS_VOLUME_PASSPHRASE_NOT_ALLOWED Handle = 0x8031006D + FVE_E_INVALID_BITLOCKER_OID Handle = 0x8031006E + FVE_E_VOLUME_TOO_SMALL Handle = 0x8031006F + FVE_E_DV_NOT_SUPPORTED_ON_FS Handle = 0x80310070 + FVE_E_DV_NOT_ALLOWED_BY_GP Handle = 0x80310071 + FVE_E_POLICY_USER_CERTIFICATE_NOT_ALLOWED Handle = 0x80310072 + FVE_E_POLICY_USER_CERTIFICATE_REQUIRED Handle = 0x80310073 + FVE_E_POLICY_USER_CERT_MUST_BE_HW Handle = 0x80310074 + FVE_E_POLICY_USER_CONFIGURE_FDV_AUTOUNLOCK_NOT_ALLOWED Handle = 0x80310075 + FVE_E_POLICY_USER_CONFIGURE_RDV_AUTOUNLOCK_NOT_ALLOWED Handle = 0x80310076 + FVE_E_POLICY_USER_CONFIGURE_RDV_NOT_ALLOWED Handle = 0x80310077 + FVE_E_POLICY_USER_ENABLE_RDV_NOT_ALLOWED Handle = 0x80310078 + FVE_E_POLICY_USER_DISABLE_RDV_NOT_ALLOWED Handle = 0x80310079 + FVE_E_POLICY_INVALID_PASSPHRASE_LENGTH Handle = 0x80310080 + FVE_E_POLICY_PASSPHRASE_TOO_SIMPLE Handle = 0x80310081 + FVE_E_RECOVERY_PARTITION Handle = 0x80310082 + FVE_E_POLICY_CONFLICT_FDV_RK_OFF_AUK_ON Handle = 0x80310083 + FVE_E_POLICY_CONFLICT_RDV_RK_OFF_AUK_ON Handle = 0x80310084 + FVE_E_NON_BITLOCKER_OID Handle = 0x80310085 + FVE_E_POLICY_PROHIBITS_SELFSIGNED Handle = 0x80310086 + FVE_E_POLICY_CONFLICT_RO_AND_STARTUP_KEY_REQUIRED Handle = 0x80310087 + FVE_E_CONV_RECOVERY_FAILED Handle = 0x80310088 + FVE_E_VIRTUALIZED_SPACE_TOO_BIG Handle = 0x80310089 + FVE_E_POLICY_CONFLICT_OSV_RP_OFF_ADB_ON Handle = 0x80310090 + FVE_E_POLICY_CONFLICT_FDV_RP_OFF_ADB_ON Handle = 0x80310091 + FVE_E_POLICY_CONFLICT_RDV_RP_OFF_ADB_ON Handle = 0x80310092 + FVE_E_NON_BITLOCKER_KU Handle = 0x80310093 + FVE_E_PRIVATEKEY_AUTH_FAILED Handle = 0x80310094 + FVE_E_REMOVAL_OF_DRA_FAILED Handle = 0x80310095 + FVE_E_OPERATION_NOT_SUPPORTED_ON_VISTA_VOLUME Handle = 0x80310096 + FVE_E_CANT_LOCK_AUTOUNLOCK_ENABLED_VOLUME Handle = 0x80310097 + FVE_E_FIPS_HASH_KDF_NOT_ALLOWED Handle = 0x80310098 + FVE_E_ENH_PIN_INVALID Handle = 0x80310099 + FVE_E_INVALID_PIN_CHARS Handle = 0x8031009A + FVE_E_INVALID_DATUM_TYPE Handle = 0x8031009B + FVE_E_EFI_ONLY Handle = 0x8031009C + FVE_E_MULTIPLE_NKP_CERTS Handle = 0x8031009D + FVE_E_REMOVAL_OF_NKP_FAILED Handle = 0x8031009E + FVE_E_INVALID_NKP_CERT Handle = 0x8031009F + FVE_E_NO_EXISTING_PIN Handle = 0x803100A0 + FVE_E_PROTECTOR_CHANGE_PIN_MISMATCH Handle = 0x803100A1 + FVE_E_PIN_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED Handle = 0x803100A2 + FVE_E_PROTECTOR_CHANGE_MAX_PIN_CHANGE_ATTEMPTS_REACHED Handle = 0x803100A3 + FVE_E_POLICY_PASSPHRASE_REQUIRES_ASCII Handle = 0x803100A4 + FVE_E_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE Handle = 0x803100A5 + FVE_E_WIPE_NOT_ALLOWED_ON_TP_STORAGE Handle = 0x803100A6 + FVE_E_KEY_LENGTH_NOT_SUPPORTED_BY_EDRIVE Handle = 0x803100A7 + FVE_E_NO_EXISTING_PASSPHRASE Handle = 0x803100A8 + FVE_E_PROTECTOR_CHANGE_PASSPHRASE_MISMATCH Handle = 0x803100A9 + FVE_E_PASSPHRASE_TOO_LONG Handle = 0x803100AA + FVE_E_NO_PASSPHRASE_WITH_TPM Handle = 0x803100AB + FVE_E_NO_TPM_WITH_PASSPHRASE Handle = 0x803100AC + FVE_E_NOT_ALLOWED_ON_CSV_STACK Handle = 0x803100AD + FVE_E_NOT_ALLOWED_ON_CLUSTER Handle = 0x803100AE + FVE_E_EDRIVE_NO_FAILOVER_TO_SW Handle = 0x803100AF + FVE_E_EDRIVE_BAND_IN_USE Handle = 0x803100B0 + FVE_E_EDRIVE_DISALLOWED_BY_GP Handle = 0x803100B1 + FVE_E_EDRIVE_INCOMPATIBLE_VOLUME Handle = 0x803100B2 + FVE_E_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING Handle = 0x803100B3 + FVE_E_EDRIVE_DV_NOT_SUPPORTED Handle = 0x803100B4 + FVE_E_NO_PREBOOT_KEYBOARD_DETECTED Handle = 0x803100B5 + FVE_E_NO_PREBOOT_KEYBOARD_OR_WINRE_DETECTED Handle = 0x803100B6 + FVE_E_POLICY_REQUIRES_STARTUP_PIN_ON_TOUCH_DEVICE Handle = 0x803100B7 + FVE_E_POLICY_REQUIRES_RECOVERY_PASSWORD_ON_TOUCH_DEVICE Handle = 0x803100B8 + FVE_E_WIPE_CANCEL_NOT_APPLICABLE Handle = 0x803100B9 + FVE_E_SECUREBOOT_DISABLED Handle = 0x803100BA + FVE_E_SECUREBOOT_CONFIGURATION_INVALID Handle = 0x803100BB + FVE_E_EDRIVE_DRY_RUN_FAILED Handle = 0x803100BC + FVE_E_SHADOW_COPY_PRESENT Handle = 0x803100BD + FVE_E_POLICY_INVALID_ENHANCED_BCD_SETTINGS Handle = 0x803100BE + FVE_E_EDRIVE_INCOMPATIBLE_FIRMWARE Handle = 0x803100BF + FVE_E_PROTECTOR_CHANGE_MAX_PASSPHRASE_CHANGE_ATTEMPTS_REACHED Handle = 0x803100C0 + FVE_E_PASSPHRASE_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED Handle = 0x803100C1 + FVE_E_LIVEID_ACCOUNT_SUSPENDED Handle = 0x803100C2 + FVE_E_LIVEID_ACCOUNT_BLOCKED Handle = 0x803100C3 + FVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES Handle = 0x803100C4 + FVE_E_DE_FIXED_DATA_NOT_SUPPORTED Handle = 0x803100C5 + FVE_E_DE_HARDWARE_NOT_COMPLIANT Handle = 0x803100C6 + FVE_E_DE_WINRE_NOT_CONFIGURED Handle = 0x803100C7 + FVE_E_DE_PROTECTION_SUSPENDED Handle = 0x803100C8 + FVE_E_DE_OS_VOLUME_NOT_PROTECTED Handle = 0x803100C9 + FVE_E_DE_DEVICE_LOCKEDOUT Handle = 0x803100CA + FVE_E_DE_PROTECTION_NOT_YET_ENABLED Handle = 0x803100CB + FVE_E_INVALID_PIN_CHARS_DETAILED Handle = 0x803100CC + FVE_E_DEVICE_LOCKOUT_COUNTER_UNAVAILABLE Handle = 0x803100CD + FVE_E_DEVICELOCKOUT_COUNTER_MISMATCH Handle = 0x803100CE + FVE_E_BUFFER_TOO_LARGE Handle = 0x803100CF + FVE_E_NO_SUCH_CAPABILITY_ON_TARGET Handle = 0x803100D0 + FVE_E_DE_PREVENTED_FOR_OS Handle = 0x803100D1 + FVE_E_DE_VOLUME_OPTED_OUT Handle = 0x803100D2 + FVE_E_DE_VOLUME_NOT_SUPPORTED Handle = 0x803100D3 + FVE_E_EOW_NOT_SUPPORTED_IN_VERSION Handle = 0x803100D4 + FVE_E_ADBACKUP_NOT_ENABLED Handle = 0x803100D5 + FVE_E_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT Handle = 0x803100D6 + FVE_E_NOT_DE_VOLUME Handle = 0x803100D7 + FVE_E_PROTECTION_CANNOT_BE_DISABLED Handle = 0x803100D8 + FVE_E_OSV_KSR_NOT_ALLOWED Handle = 0x803100D9 + FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_OS_DRIVE Handle = 0x803100DA + FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_FIXED_DRIVE Handle = 0x803100DB + FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_REMOVABLE_DRIVE Handle = 0x803100DC + FVE_E_KEY_ROTATION_NOT_SUPPORTED Handle = 0x803100DD + FVE_E_EXECUTE_REQUEST_SENT_TOO_SOON Handle = 0x803100DE + FVE_E_KEY_ROTATION_NOT_ENABLED Handle = 0x803100DF + FVE_E_DEVICE_NOT_JOINED Handle = 0x803100E0 + FWP_E_CALLOUT_NOT_FOUND Handle = 0x80320001 + FWP_E_CONDITION_NOT_FOUND Handle = 0x80320002 + FWP_E_FILTER_NOT_FOUND Handle = 0x80320003 + FWP_E_LAYER_NOT_FOUND Handle = 0x80320004 + FWP_E_PROVIDER_NOT_FOUND Handle = 0x80320005 + FWP_E_PROVIDER_CONTEXT_NOT_FOUND Handle = 0x80320006 + FWP_E_SUBLAYER_NOT_FOUND Handle = 0x80320007 + FWP_E_NOT_FOUND Handle = 0x80320008 + FWP_E_ALREADY_EXISTS Handle = 0x80320009 + FWP_E_IN_USE Handle = 0x8032000A + FWP_E_DYNAMIC_SESSION_IN_PROGRESS Handle = 0x8032000B + FWP_E_WRONG_SESSION Handle = 0x8032000C + FWP_E_NO_TXN_IN_PROGRESS Handle = 0x8032000D + FWP_E_TXN_IN_PROGRESS Handle = 0x8032000E + FWP_E_TXN_ABORTED Handle = 0x8032000F + FWP_E_SESSION_ABORTED Handle = 0x80320010 + FWP_E_INCOMPATIBLE_TXN Handle = 0x80320011 + FWP_E_TIMEOUT Handle = 0x80320012 + FWP_E_NET_EVENTS_DISABLED Handle = 0x80320013 + FWP_E_INCOMPATIBLE_LAYER Handle = 0x80320014 + FWP_E_KM_CLIENTS_ONLY Handle = 0x80320015 + FWP_E_LIFETIME_MISMATCH Handle = 0x80320016 + FWP_E_BUILTIN_OBJECT Handle = 0x80320017 + FWP_E_TOO_MANY_CALLOUTS Handle = 0x80320018 + FWP_E_NOTIFICATION_DROPPED Handle = 0x80320019 + FWP_E_TRAFFIC_MISMATCH Handle = 0x8032001A + FWP_E_INCOMPATIBLE_SA_STATE Handle = 0x8032001B + FWP_E_NULL_POINTER Handle = 0x8032001C + FWP_E_INVALID_ENUMERATOR Handle = 0x8032001D + FWP_E_INVALID_FLAGS Handle = 0x8032001E + FWP_E_INVALID_NET_MASK Handle = 0x8032001F + FWP_E_INVALID_RANGE Handle = 0x80320020 + FWP_E_INVALID_INTERVAL Handle = 0x80320021 + FWP_E_ZERO_LENGTH_ARRAY Handle = 0x80320022 + FWP_E_NULL_DISPLAY_NAME Handle = 0x80320023 + FWP_E_INVALID_ACTION_TYPE Handle = 0x80320024 + FWP_E_INVALID_WEIGHT Handle = 0x80320025 + FWP_E_MATCH_TYPE_MISMATCH Handle = 0x80320026 + FWP_E_TYPE_MISMATCH Handle = 0x80320027 + FWP_E_OUT_OF_BOUNDS Handle = 0x80320028 + FWP_E_RESERVED Handle = 0x80320029 + FWP_E_DUPLICATE_CONDITION Handle = 0x8032002A + FWP_E_DUPLICATE_KEYMOD Handle = 0x8032002B + FWP_E_ACTION_INCOMPATIBLE_WITH_LAYER Handle = 0x8032002C + FWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER Handle = 0x8032002D + FWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER Handle = 0x8032002E + FWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT Handle = 0x8032002F + FWP_E_INCOMPATIBLE_AUTH_METHOD Handle = 0x80320030 + FWP_E_INCOMPATIBLE_DH_GROUP Handle = 0x80320031 + FWP_E_EM_NOT_SUPPORTED Handle = 0x80320032 + FWP_E_NEVER_MATCH Handle = 0x80320033 + FWP_E_PROVIDER_CONTEXT_MISMATCH Handle = 0x80320034 + FWP_E_INVALID_PARAMETER Handle = 0x80320035 + FWP_E_TOO_MANY_SUBLAYERS Handle = 0x80320036 + FWP_E_CALLOUT_NOTIFICATION_FAILED Handle = 0x80320037 + FWP_E_INVALID_AUTH_TRANSFORM Handle = 0x80320038 + FWP_E_INVALID_CIPHER_TRANSFORM Handle = 0x80320039 + FWP_E_INCOMPATIBLE_CIPHER_TRANSFORM Handle = 0x8032003A + FWP_E_INVALID_TRANSFORM_COMBINATION Handle = 0x8032003B + FWP_E_DUPLICATE_AUTH_METHOD Handle = 0x8032003C + FWP_E_INVALID_TUNNEL_ENDPOINT Handle = 0x8032003D + FWP_E_L2_DRIVER_NOT_READY Handle = 0x8032003E + FWP_E_KEY_DICTATOR_ALREADY_REGISTERED Handle = 0x8032003F + FWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL Handle = 0x80320040 + FWP_E_CONNECTIONS_DISABLED Handle = 0x80320041 + FWP_E_INVALID_DNS_NAME Handle = 0x80320042 + FWP_E_STILL_ON Handle = 0x80320043 + FWP_E_IKEEXT_NOT_RUNNING Handle = 0x80320044 + FWP_E_DROP_NOICMP Handle = 0x80320104 + WS_S_ASYNC Handle = 0x003D0000 + WS_S_END Handle = 0x003D0001 + WS_E_INVALID_FORMAT Handle = 0x803D0000 + WS_E_OBJECT_FAULTED Handle = 0x803D0001 + WS_E_NUMERIC_OVERFLOW Handle = 0x803D0002 + WS_E_INVALID_OPERATION Handle = 0x803D0003 + WS_E_OPERATION_ABORTED Handle = 0x803D0004 + WS_E_ENDPOINT_ACCESS_DENIED Handle = 0x803D0005 + WS_E_OPERATION_TIMED_OUT Handle = 0x803D0006 + WS_E_OPERATION_ABANDONED Handle = 0x803D0007 + WS_E_QUOTA_EXCEEDED Handle = 0x803D0008 + WS_E_NO_TRANSLATION_AVAILABLE Handle = 0x803D0009 + WS_E_SECURITY_VERIFICATION_FAILURE Handle = 0x803D000A + WS_E_ADDRESS_IN_USE Handle = 0x803D000B + WS_E_ADDRESS_NOT_AVAILABLE Handle = 0x803D000C + WS_E_ENDPOINT_NOT_FOUND Handle = 0x803D000D + WS_E_ENDPOINT_NOT_AVAILABLE Handle = 0x803D000E + WS_E_ENDPOINT_FAILURE Handle = 0x803D000F + WS_E_ENDPOINT_UNREACHABLE Handle = 0x803D0010 + WS_E_ENDPOINT_ACTION_NOT_SUPPORTED Handle = 0x803D0011 + WS_E_ENDPOINT_TOO_BUSY Handle = 0x803D0012 + WS_E_ENDPOINT_FAULT_RECEIVED Handle = 0x803D0013 + WS_E_ENDPOINT_DISCONNECTED Handle = 0x803D0014 + WS_E_PROXY_FAILURE Handle = 0x803D0015 + WS_E_PROXY_ACCESS_DENIED Handle = 0x803D0016 + WS_E_NOT_SUPPORTED Handle = 0x803D0017 + WS_E_PROXY_REQUIRES_BASIC_AUTH Handle = 0x803D0018 + WS_E_PROXY_REQUIRES_DIGEST_AUTH Handle = 0x803D0019 + WS_E_PROXY_REQUIRES_NTLM_AUTH Handle = 0x803D001A + WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH Handle = 0x803D001B + WS_E_SERVER_REQUIRES_BASIC_AUTH Handle = 0x803D001C + WS_E_SERVER_REQUIRES_DIGEST_AUTH Handle = 0x803D001D + WS_E_SERVER_REQUIRES_NTLM_AUTH Handle = 0x803D001E + WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH Handle = 0x803D001F + WS_E_INVALID_ENDPOINT_URL Handle = 0x803D0020 + WS_E_OTHER Handle = 0x803D0021 + WS_E_SECURITY_TOKEN_EXPIRED Handle = 0x803D0022 + WS_E_SECURITY_SYSTEM_FAILURE Handle = 0x803D0023 + ERROR_NDIS_INTERFACE_CLOSING syscall.Errno = 0x80340002 + ERROR_NDIS_BAD_VERSION syscall.Errno = 0x80340004 + ERROR_NDIS_BAD_CHARACTERISTICS syscall.Errno = 0x80340005 + ERROR_NDIS_ADAPTER_NOT_FOUND syscall.Errno = 0x80340006 + ERROR_NDIS_OPEN_FAILED syscall.Errno = 0x80340007 + ERROR_NDIS_DEVICE_FAILED syscall.Errno = 0x80340008 + ERROR_NDIS_MULTICAST_FULL syscall.Errno = 0x80340009 + ERROR_NDIS_MULTICAST_EXISTS syscall.Errno = 0x8034000A + ERROR_NDIS_MULTICAST_NOT_FOUND syscall.Errno = 0x8034000B + ERROR_NDIS_REQUEST_ABORTED syscall.Errno = 0x8034000C + ERROR_NDIS_RESET_IN_PROGRESS syscall.Errno = 0x8034000D + ERROR_NDIS_NOT_SUPPORTED syscall.Errno = 0x803400BB + ERROR_NDIS_INVALID_PACKET syscall.Errno = 0x8034000F + ERROR_NDIS_ADAPTER_NOT_READY syscall.Errno = 0x80340011 + ERROR_NDIS_INVALID_LENGTH syscall.Errno = 0x80340014 + ERROR_NDIS_INVALID_DATA syscall.Errno = 0x80340015 + ERROR_NDIS_BUFFER_TOO_SHORT syscall.Errno = 0x80340016 + ERROR_NDIS_INVALID_OID syscall.Errno = 0x80340017 + ERROR_NDIS_ADAPTER_REMOVED syscall.Errno = 0x80340018 + ERROR_NDIS_UNSUPPORTED_MEDIA syscall.Errno = 0x80340019 + ERROR_NDIS_GROUP_ADDRESS_IN_USE syscall.Errno = 0x8034001A + ERROR_NDIS_FILE_NOT_FOUND syscall.Errno = 0x8034001B + ERROR_NDIS_ERROR_READING_FILE syscall.Errno = 0x8034001C + ERROR_NDIS_ALREADY_MAPPED syscall.Errno = 0x8034001D + ERROR_NDIS_RESOURCE_CONFLICT syscall.Errno = 0x8034001E + ERROR_NDIS_MEDIA_DISCONNECTED syscall.Errno = 0x8034001F + ERROR_NDIS_INVALID_ADDRESS syscall.Errno = 0x80340022 + ERROR_NDIS_INVALID_DEVICE_REQUEST syscall.Errno = 0x80340010 + ERROR_NDIS_PAUSED syscall.Errno = 0x8034002A + ERROR_NDIS_INTERFACE_NOT_FOUND syscall.Errno = 0x8034002B + ERROR_NDIS_UNSUPPORTED_REVISION syscall.Errno = 0x8034002C + ERROR_NDIS_INVALID_PORT syscall.Errno = 0x8034002D + ERROR_NDIS_INVALID_PORT_STATE syscall.Errno = 0x8034002E + ERROR_NDIS_LOW_POWER_STATE syscall.Errno = 0x8034002F + ERROR_NDIS_REINIT_REQUIRED syscall.Errno = 0x80340030 + ERROR_NDIS_NO_QUEUES syscall.Errno = 0x80340031 + ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED syscall.Errno = 0x80342000 + ERROR_NDIS_DOT11_MEDIA_IN_USE syscall.Errno = 0x80342001 + ERROR_NDIS_DOT11_POWER_STATE_INVALID syscall.Errno = 0x80342002 + ERROR_NDIS_PM_WOL_PATTERN_LIST_FULL syscall.Errno = 0x80342003 + ERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL syscall.Errno = 0x80342004 + ERROR_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE syscall.Errno = 0x80342005 + ERROR_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE syscall.Errno = 0x80342006 + ERROR_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED syscall.Errno = 0x80342007 + ERROR_NDIS_DOT11_AP_BAND_NOT_ALLOWED syscall.Errno = 0x80342008 + ERROR_NDIS_INDICATION_REQUIRED syscall.Errno = 0x00340001 + ERROR_NDIS_OFFLOAD_POLICY syscall.Errno = 0xC034100F + ERROR_NDIS_OFFLOAD_CONNECTION_REJECTED syscall.Errno = 0xC0341012 + ERROR_NDIS_OFFLOAD_PATH_REJECTED syscall.Errno = 0xC0341013 + ERROR_HV_INVALID_HYPERCALL_CODE syscall.Errno = 0xC0350002 + ERROR_HV_INVALID_HYPERCALL_INPUT syscall.Errno = 0xC0350003 + ERROR_HV_INVALID_ALIGNMENT syscall.Errno = 0xC0350004 + ERROR_HV_INVALID_PARAMETER syscall.Errno = 0xC0350005 + ERROR_HV_ACCESS_DENIED syscall.Errno = 0xC0350006 + ERROR_HV_INVALID_PARTITION_STATE syscall.Errno = 0xC0350007 + ERROR_HV_OPERATION_DENIED syscall.Errno = 0xC0350008 + ERROR_HV_UNKNOWN_PROPERTY syscall.Errno = 0xC0350009 + ERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE syscall.Errno = 0xC035000A + ERROR_HV_INSUFFICIENT_MEMORY syscall.Errno = 0xC035000B + ERROR_HV_PARTITION_TOO_DEEP syscall.Errno = 0xC035000C + ERROR_HV_INVALID_PARTITION_ID syscall.Errno = 0xC035000D + ERROR_HV_INVALID_VP_INDEX syscall.Errno = 0xC035000E + ERROR_HV_INVALID_PORT_ID syscall.Errno = 0xC0350011 + ERROR_HV_INVALID_CONNECTION_ID syscall.Errno = 0xC0350012 + ERROR_HV_INSUFFICIENT_BUFFERS syscall.Errno = 0xC0350013 + ERROR_HV_NOT_ACKNOWLEDGED syscall.Errno = 0xC0350014 + ERROR_HV_INVALID_VP_STATE syscall.Errno = 0xC0350015 + ERROR_HV_ACKNOWLEDGED syscall.Errno = 0xC0350016 + ERROR_HV_INVALID_SAVE_RESTORE_STATE syscall.Errno = 0xC0350017 + ERROR_HV_INVALID_SYNIC_STATE syscall.Errno = 0xC0350018 + ERROR_HV_OBJECT_IN_USE syscall.Errno = 0xC0350019 + ERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO syscall.Errno = 0xC035001A + ERROR_HV_NO_DATA syscall.Errno = 0xC035001B + ERROR_HV_INACTIVE syscall.Errno = 0xC035001C + ERROR_HV_NO_RESOURCES syscall.Errno = 0xC035001D + ERROR_HV_FEATURE_UNAVAILABLE syscall.Errno = 0xC035001E + ERROR_HV_INSUFFICIENT_BUFFER syscall.Errno = 0xC0350033 + ERROR_HV_INSUFFICIENT_DEVICE_DOMAINS syscall.Errno = 0xC0350038 + ERROR_HV_CPUID_FEATURE_VALIDATION syscall.Errno = 0xC035003C + ERROR_HV_CPUID_XSAVE_FEATURE_VALIDATION syscall.Errno = 0xC035003D + ERROR_HV_PROCESSOR_STARTUP_TIMEOUT syscall.Errno = 0xC035003E + ERROR_HV_SMX_ENABLED syscall.Errno = 0xC035003F + ERROR_HV_INVALID_LP_INDEX syscall.Errno = 0xC0350041 + ERROR_HV_INVALID_REGISTER_VALUE syscall.Errno = 0xC0350050 + ERROR_HV_INVALID_VTL_STATE syscall.Errno = 0xC0350051 + ERROR_HV_NX_NOT_DETECTED syscall.Errno = 0xC0350055 + ERROR_HV_INVALID_DEVICE_ID syscall.Errno = 0xC0350057 + ERROR_HV_INVALID_DEVICE_STATE syscall.Errno = 0xC0350058 + ERROR_HV_PENDING_PAGE_REQUESTS syscall.Errno = 0x00350059 + ERROR_HV_PAGE_REQUEST_INVALID syscall.Errno = 0xC0350060 + ERROR_HV_INVALID_CPU_GROUP_ID syscall.Errno = 0xC035006F + ERROR_HV_INVALID_CPU_GROUP_STATE syscall.Errno = 0xC0350070 + ERROR_HV_OPERATION_FAILED syscall.Errno = 0xC0350071 + ERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE syscall.Errno = 0xC0350072 + ERROR_HV_INSUFFICIENT_ROOT_MEMORY syscall.Errno = 0xC0350073 + ERROR_HV_NOT_PRESENT syscall.Errno = 0xC0351000 + ERROR_VID_DUPLICATE_HANDLER syscall.Errno = 0xC0370001 + ERROR_VID_TOO_MANY_HANDLERS syscall.Errno = 0xC0370002 + ERROR_VID_QUEUE_FULL syscall.Errno = 0xC0370003 + ERROR_VID_HANDLER_NOT_PRESENT syscall.Errno = 0xC0370004 + ERROR_VID_INVALID_OBJECT_NAME syscall.Errno = 0xC0370005 + ERROR_VID_PARTITION_NAME_TOO_LONG syscall.Errno = 0xC0370006 + ERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG syscall.Errno = 0xC0370007 + ERROR_VID_PARTITION_ALREADY_EXISTS syscall.Errno = 0xC0370008 + ERROR_VID_PARTITION_DOES_NOT_EXIST syscall.Errno = 0xC0370009 + ERROR_VID_PARTITION_NAME_NOT_FOUND syscall.Errno = 0xC037000A + ERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS syscall.Errno = 0xC037000B + ERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT syscall.Errno = 0xC037000C + ERROR_VID_MB_STILL_REFERENCED syscall.Errno = 0xC037000D + ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED syscall.Errno = 0xC037000E + ERROR_VID_INVALID_NUMA_SETTINGS syscall.Errno = 0xC037000F + ERROR_VID_INVALID_NUMA_NODE_INDEX syscall.Errno = 0xC0370010 + ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED syscall.Errno = 0xC0370011 + ERROR_VID_INVALID_MEMORY_BLOCK_HANDLE syscall.Errno = 0xC0370012 + ERROR_VID_PAGE_RANGE_OVERFLOW syscall.Errno = 0xC0370013 + ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE syscall.Errno = 0xC0370014 + ERROR_VID_INVALID_GPA_RANGE_HANDLE syscall.Errno = 0xC0370015 + ERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE syscall.Errno = 0xC0370016 + ERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED syscall.Errno = 0xC0370017 + ERROR_VID_INVALID_PPM_HANDLE syscall.Errno = 0xC0370018 + ERROR_VID_MBPS_ARE_LOCKED syscall.Errno = 0xC0370019 + ERROR_VID_MESSAGE_QUEUE_CLOSED syscall.Errno = 0xC037001A + ERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED syscall.Errno = 0xC037001B + ERROR_VID_STOP_PENDING syscall.Errno = 0xC037001C + ERROR_VID_INVALID_PROCESSOR_STATE syscall.Errno = 0xC037001D + ERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT syscall.Errno = 0xC037001E + ERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED syscall.Errno = 0xC037001F + ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET syscall.Errno = 0xC0370020 + ERROR_VID_MMIO_RANGE_DESTROYED syscall.Errno = 0xC0370021 + ERROR_VID_INVALID_CHILD_GPA_PAGE_SET syscall.Errno = 0xC0370022 + ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED syscall.Errno = 0xC0370023 + ERROR_VID_RESERVE_PAGE_SET_TOO_SMALL syscall.Errno = 0xC0370024 + ERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE syscall.Errno = 0xC0370025 + ERROR_VID_MBP_COUNT_EXCEEDED_LIMIT syscall.Errno = 0xC0370026 + ERROR_VID_SAVED_STATE_CORRUPT syscall.Errno = 0xC0370027 + ERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM syscall.Errno = 0xC0370028 + ERROR_VID_SAVED_STATE_INCOMPATIBLE syscall.Errno = 0xC0370029 + ERROR_VID_VTL_ACCESS_DENIED syscall.Errno = 0xC037002A + ERROR_VMCOMPUTE_TERMINATED_DURING_START syscall.Errno = 0xC0370100 + ERROR_VMCOMPUTE_IMAGE_MISMATCH syscall.Errno = 0xC0370101 + ERROR_VMCOMPUTE_HYPERV_NOT_INSTALLED syscall.Errno = 0xC0370102 + ERROR_VMCOMPUTE_OPERATION_PENDING syscall.Errno = 0xC0370103 + ERROR_VMCOMPUTE_TOO_MANY_NOTIFICATIONS syscall.Errno = 0xC0370104 + ERROR_VMCOMPUTE_INVALID_STATE syscall.Errno = 0xC0370105 + ERROR_VMCOMPUTE_UNEXPECTED_EXIT syscall.Errno = 0xC0370106 + ERROR_VMCOMPUTE_TERMINATED syscall.Errno = 0xC0370107 + ERROR_VMCOMPUTE_CONNECT_FAILED syscall.Errno = 0xC0370108 + ERROR_VMCOMPUTE_TIMEOUT syscall.Errno = 0xC0370109 + ERROR_VMCOMPUTE_CONNECTION_CLOSED syscall.Errno = 0xC037010A + ERROR_VMCOMPUTE_UNKNOWN_MESSAGE syscall.Errno = 0xC037010B + ERROR_VMCOMPUTE_UNSUPPORTED_PROTOCOL_VERSION syscall.Errno = 0xC037010C + ERROR_VMCOMPUTE_INVALID_JSON syscall.Errno = 0xC037010D + ERROR_VMCOMPUTE_SYSTEM_NOT_FOUND syscall.Errno = 0xC037010E + ERROR_VMCOMPUTE_SYSTEM_ALREADY_EXISTS syscall.Errno = 0xC037010F + ERROR_VMCOMPUTE_SYSTEM_ALREADY_STOPPED syscall.Errno = 0xC0370110 + ERROR_VMCOMPUTE_PROTOCOL_ERROR syscall.Errno = 0xC0370111 + ERROR_VMCOMPUTE_INVALID_LAYER syscall.Errno = 0xC0370112 + ERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED syscall.Errno = 0xC0370113 + HCS_E_TERMINATED_DURING_START Handle = 0x80370100 + HCS_E_IMAGE_MISMATCH Handle = 0x80370101 + HCS_E_HYPERV_NOT_INSTALLED Handle = 0x80370102 + HCS_E_INVALID_STATE Handle = 0x80370105 + HCS_E_UNEXPECTED_EXIT Handle = 0x80370106 + HCS_E_TERMINATED Handle = 0x80370107 + HCS_E_CONNECT_FAILED Handle = 0x80370108 + HCS_E_CONNECTION_TIMEOUT Handle = 0x80370109 + HCS_E_CONNECTION_CLOSED Handle = 0x8037010A + HCS_E_UNKNOWN_MESSAGE Handle = 0x8037010B + HCS_E_UNSUPPORTED_PROTOCOL_VERSION Handle = 0x8037010C + HCS_E_INVALID_JSON Handle = 0x8037010D + HCS_E_SYSTEM_NOT_FOUND Handle = 0x8037010E + HCS_E_SYSTEM_ALREADY_EXISTS Handle = 0x8037010F + HCS_E_SYSTEM_ALREADY_STOPPED Handle = 0x80370110 + HCS_E_PROTOCOL_ERROR Handle = 0x80370111 + HCS_E_INVALID_LAYER Handle = 0x80370112 + HCS_E_WINDOWS_INSIDER_REQUIRED Handle = 0x80370113 + HCS_E_SERVICE_NOT_AVAILABLE Handle = 0x80370114 + HCS_E_OPERATION_NOT_STARTED Handle = 0x80370115 + HCS_E_OPERATION_ALREADY_STARTED Handle = 0x80370116 + HCS_E_OPERATION_PENDING Handle = 0x80370117 + HCS_E_OPERATION_TIMEOUT Handle = 0x80370118 + HCS_E_OPERATION_SYSTEM_CALLBACK_ALREADY_SET Handle = 0x80370119 + HCS_E_OPERATION_RESULT_ALLOCATION_FAILED Handle = 0x8037011A + HCS_E_ACCESS_DENIED Handle = 0x8037011B + HCS_E_GUEST_CRITICAL_ERROR Handle = 0x8037011C + ERROR_VNET_VIRTUAL_SWITCH_NAME_NOT_FOUND syscall.Errno = 0xC0370200 + ERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED syscall.Errno = 0x80370001 + WHV_E_UNKNOWN_CAPABILITY Handle = 0x80370300 + WHV_E_INSUFFICIENT_BUFFER Handle = 0x80370301 + WHV_E_UNKNOWN_PROPERTY Handle = 0x80370302 + WHV_E_UNSUPPORTED_HYPERVISOR_CONFIG Handle = 0x80370303 + WHV_E_INVALID_PARTITION_CONFIG Handle = 0x80370304 + WHV_E_GPA_RANGE_NOT_FOUND Handle = 0x80370305 + WHV_E_VP_ALREADY_EXISTS Handle = 0x80370306 + WHV_E_VP_DOES_NOT_EXIST Handle = 0x80370307 + WHV_E_INVALID_VP_STATE Handle = 0x80370308 + WHV_E_INVALID_VP_REGISTER_NAME Handle = 0x80370309 + ERROR_VSMB_SAVED_STATE_FILE_NOT_FOUND syscall.Errno = 0xC0370400 + ERROR_VSMB_SAVED_STATE_CORRUPT syscall.Errno = 0xC0370401 + ERROR_VOLMGR_INCOMPLETE_REGENERATION syscall.Errno = 0x80380001 + ERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION syscall.Errno = 0x80380002 + ERROR_VOLMGR_DATABASE_FULL syscall.Errno = 0xC0380001 + ERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED syscall.Errno = 0xC0380002 + ERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC syscall.Errno = 0xC0380003 + ERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED syscall.Errno = 0xC0380004 + ERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME syscall.Errno = 0xC0380005 + ERROR_VOLMGR_DISK_DUPLICATE syscall.Errno = 0xC0380006 + ERROR_VOLMGR_DISK_DYNAMIC syscall.Errno = 0xC0380007 + ERROR_VOLMGR_DISK_ID_INVALID syscall.Errno = 0xC0380008 + ERROR_VOLMGR_DISK_INVALID syscall.Errno = 0xC0380009 + ERROR_VOLMGR_DISK_LAST_VOTER syscall.Errno = 0xC038000A + ERROR_VOLMGR_DISK_LAYOUT_INVALID syscall.Errno = 0xC038000B + ERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS syscall.Errno = 0xC038000C + ERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED syscall.Errno = 0xC038000D + ERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL syscall.Errno = 0xC038000E + ERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS syscall.Errno = 0xC038000F + ERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS syscall.Errno = 0xC0380010 + ERROR_VOLMGR_DISK_MISSING syscall.Errno = 0xC0380011 + ERROR_VOLMGR_DISK_NOT_EMPTY syscall.Errno = 0xC0380012 + ERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE syscall.Errno = 0xC0380013 + ERROR_VOLMGR_DISK_REVECTORING_FAILED syscall.Errno = 0xC0380014 + ERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID syscall.Errno = 0xC0380015 + ERROR_VOLMGR_DISK_SET_NOT_CONTAINED syscall.Errno = 0xC0380016 + ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS syscall.Errno = 0xC0380017 + ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES syscall.Errno = 0xC0380018 + ERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED syscall.Errno = 0xC0380019 + ERROR_VOLMGR_EXTENT_ALREADY_USED syscall.Errno = 0xC038001A + ERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS syscall.Errno = 0xC038001B + ERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION syscall.Errno = 0xC038001C + ERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED syscall.Errno = 0xC038001D + ERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION syscall.Errno = 0xC038001E + ERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH syscall.Errno = 0xC038001F + ERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED syscall.Errno = 0xC0380020 + ERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID syscall.Errno = 0xC0380021 + ERROR_VOLMGR_MAXIMUM_REGISTERED_USERS syscall.Errno = 0xC0380022 + ERROR_VOLMGR_MEMBER_IN_SYNC syscall.Errno = 0xC0380023 + ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE syscall.Errno = 0xC0380024 + ERROR_VOLMGR_MEMBER_INDEX_INVALID syscall.Errno = 0xC0380025 + ERROR_VOLMGR_MEMBER_MISSING syscall.Errno = 0xC0380026 + ERROR_VOLMGR_MEMBER_NOT_DETACHED syscall.Errno = 0xC0380027 + ERROR_VOLMGR_MEMBER_REGENERATING syscall.Errno = 0xC0380028 + ERROR_VOLMGR_ALL_DISKS_FAILED syscall.Errno = 0xC0380029 + ERROR_VOLMGR_NO_REGISTERED_USERS syscall.Errno = 0xC038002A + ERROR_VOLMGR_NO_SUCH_USER syscall.Errno = 0xC038002B + ERROR_VOLMGR_NOTIFICATION_RESET syscall.Errno = 0xC038002C + ERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID syscall.Errno = 0xC038002D + ERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID syscall.Errno = 0xC038002E + ERROR_VOLMGR_PACK_DUPLICATE syscall.Errno = 0xC038002F + ERROR_VOLMGR_PACK_ID_INVALID syscall.Errno = 0xC0380030 + ERROR_VOLMGR_PACK_INVALID syscall.Errno = 0xC0380031 + ERROR_VOLMGR_PACK_NAME_INVALID syscall.Errno = 0xC0380032 + ERROR_VOLMGR_PACK_OFFLINE syscall.Errno = 0xC0380033 + ERROR_VOLMGR_PACK_HAS_QUORUM syscall.Errno = 0xC0380034 + ERROR_VOLMGR_PACK_WITHOUT_QUORUM syscall.Errno = 0xC0380035 + ERROR_VOLMGR_PARTITION_STYLE_INVALID syscall.Errno = 0xC0380036 + ERROR_VOLMGR_PARTITION_UPDATE_FAILED syscall.Errno = 0xC0380037 + ERROR_VOLMGR_PLEX_IN_SYNC syscall.Errno = 0xC0380038 + ERROR_VOLMGR_PLEX_INDEX_DUPLICATE syscall.Errno = 0xC0380039 + ERROR_VOLMGR_PLEX_INDEX_INVALID syscall.Errno = 0xC038003A + ERROR_VOLMGR_PLEX_LAST_ACTIVE syscall.Errno = 0xC038003B + ERROR_VOLMGR_PLEX_MISSING syscall.Errno = 0xC038003C + ERROR_VOLMGR_PLEX_REGENERATING syscall.Errno = 0xC038003D + ERROR_VOLMGR_PLEX_TYPE_INVALID syscall.Errno = 0xC038003E + ERROR_VOLMGR_PLEX_NOT_RAID5 syscall.Errno = 0xC038003F + ERROR_VOLMGR_PLEX_NOT_SIMPLE syscall.Errno = 0xC0380040 + ERROR_VOLMGR_STRUCTURE_SIZE_INVALID syscall.Errno = 0xC0380041 + ERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS syscall.Errno = 0xC0380042 + ERROR_VOLMGR_TRANSACTION_IN_PROGRESS syscall.Errno = 0xC0380043 + ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE syscall.Errno = 0xC0380044 + ERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK syscall.Errno = 0xC0380045 + ERROR_VOLMGR_VOLUME_ID_INVALID syscall.Errno = 0xC0380046 + ERROR_VOLMGR_VOLUME_LENGTH_INVALID syscall.Errno = 0xC0380047 + ERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE syscall.Errno = 0xC0380048 + ERROR_VOLMGR_VOLUME_NOT_MIRRORED syscall.Errno = 0xC0380049 + ERROR_VOLMGR_VOLUME_NOT_RETAINED syscall.Errno = 0xC038004A + ERROR_VOLMGR_VOLUME_OFFLINE syscall.Errno = 0xC038004B + ERROR_VOLMGR_VOLUME_RETAINED syscall.Errno = 0xC038004C + ERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID syscall.Errno = 0xC038004D + ERROR_VOLMGR_DIFFERENT_SECTOR_SIZE syscall.Errno = 0xC038004E + ERROR_VOLMGR_BAD_BOOT_DISK syscall.Errno = 0xC038004F + ERROR_VOLMGR_PACK_CONFIG_OFFLINE syscall.Errno = 0xC0380050 + ERROR_VOLMGR_PACK_CONFIG_ONLINE syscall.Errno = 0xC0380051 + ERROR_VOLMGR_NOT_PRIMARY_PACK syscall.Errno = 0xC0380052 + ERROR_VOLMGR_PACK_LOG_UPDATE_FAILED syscall.Errno = 0xC0380053 + ERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID syscall.Errno = 0xC0380054 + ERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID syscall.Errno = 0xC0380055 + ERROR_VOLMGR_VOLUME_MIRRORED syscall.Errno = 0xC0380056 + ERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED syscall.Errno = 0xC0380057 + ERROR_VOLMGR_NO_VALID_LOG_COPIES syscall.Errno = 0xC0380058 + ERROR_VOLMGR_PRIMARY_PACK_PRESENT syscall.Errno = 0xC0380059 + ERROR_VOLMGR_NUMBER_OF_DISKS_INVALID syscall.Errno = 0xC038005A + ERROR_VOLMGR_MIRROR_NOT_SUPPORTED syscall.Errno = 0xC038005B + ERROR_VOLMGR_RAID5_NOT_SUPPORTED syscall.Errno = 0xC038005C + ERROR_BCD_NOT_ALL_ENTRIES_IMPORTED syscall.Errno = 0x80390001 + ERROR_BCD_TOO_MANY_ELEMENTS syscall.Errno = 0xC0390002 + ERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED syscall.Errno = 0x80390003 + ERROR_VHD_DRIVE_FOOTER_MISSING syscall.Errno = 0xC03A0001 + ERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH syscall.Errno = 0xC03A0002 + ERROR_VHD_DRIVE_FOOTER_CORRUPT syscall.Errno = 0xC03A0003 + ERROR_VHD_FORMAT_UNKNOWN syscall.Errno = 0xC03A0004 + ERROR_VHD_FORMAT_UNSUPPORTED_VERSION syscall.Errno = 0xC03A0005 + ERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH syscall.Errno = 0xC03A0006 + ERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION syscall.Errno = 0xC03A0007 + ERROR_VHD_SPARSE_HEADER_CORRUPT syscall.Errno = 0xC03A0008 + ERROR_VHD_BLOCK_ALLOCATION_FAILURE syscall.Errno = 0xC03A0009 + ERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT syscall.Errno = 0xC03A000A + ERROR_VHD_INVALID_BLOCK_SIZE syscall.Errno = 0xC03A000B + ERROR_VHD_BITMAP_MISMATCH syscall.Errno = 0xC03A000C + ERROR_VHD_PARENT_VHD_NOT_FOUND syscall.Errno = 0xC03A000D + ERROR_VHD_CHILD_PARENT_ID_MISMATCH syscall.Errno = 0xC03A000E + ERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH syscall.Errno = 0xC03A000F + ERROR_VHD_METADATA_READ_FAILURE syscall.Errno = 0xC03A0010 + ERROR_VHD_METADATA_WRITE_FAILURE syscall.Errno = 0xC03A0011 + ERROR_VHD_INVALID_SIZE syscall.Errno = 0xC03A0012 + ERROR_VHD_INVALID_FILE_SIZE syscall.Errno = 0xC03A0013 + ERROR_VIRTDISK_PROVIDER_NOT_FOUND syscall.Errno = 0xC03A0014 + ERROR_VIRTDISK_NOT_VIRTUAL_DISK syscall.Errno = 0xC03A0015 + ERROR_VHD_PARENT_VHD_ACCESS_DENIED syscall.Errno = 0xC03A0016 + ERROR_VHD_CHILD_PARENT_SIZE_MISMATCH syscall.Errno = 0xC03A0017 + ERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED syscall.Errno = 0xC03A0018 + ERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT syscall.Errno = 0xC03A0019 + ERROR_VIRTUAL_DISK_LIMITATION syscall.Errno = 0xC03A001A + ERROR_VHD_INVALID_TYPE syscall.Errno = 0xC03A001B + ERROR_VHD_INVALID_STATE syscall.Errno = 0xC03A001C + ERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE syscall.Errno = 0xC03A001D + ERROR_VIRTDISK_DISK_ALREADY_OWNED syscall.Errno = 0xC03A001E + ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE syscall.Errno = 0xC03A001F + ERROR_CTLOG_TRACKING_NOT_INITIALIZED syscall.Errno = 0xC03A0020 + ERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE syscall.Errno = 0xC03A0021 + ERROR_CTLOG_VHD_CHANGED_OFFLINE syscall.Errno = 0xC03A0022 + ERROR_CTLOG_INVALID_TRACKING_STATE syscall.Errno = 0xC03A0023 + ERROR_CTLOG_INCONSISTENT_TRACKING_FILE syscall.Errno = 0xC03A0024 + ERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA syscall.Errno = 0xC03A0025 + ERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE syscall.Errno = 0xC03A0026 + ERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE syscall.Errno = 0xC03A0027 + ERROR_VHD_METADATA_FULL syscall.Errno = 0xC03A0028 + ERROR_VHD_INVALID_CHANGE_TRACKING_ID syscall.Errno = 0xC03A0029 + ERROR_VHD_CHANGE_TRACKING_DISABLED syscall.Errno = 0xC03A002A + ERROR_VHD_MISSING_CHANGE_TRACKING_INFORMATION syscall.Errno = 0xC03A0030 + ERROR_QUERY_STORAGE_ERROR syscall.Errno = 0x803A0001 + HCN_E_NETWORK_NOT_FOUND Handle = 0x803B0001 + HCN_E_ENDPOINT_NOT_FOUND Handle = 0x803B0002 + HCN_E_LAYER_NOT_FOUND Handle = 0x803B0003 + HCN_E_SWITCH_NOT_FOUND Handle = 0x803B0004 + HCN_E_SUBNET_NOT_FOUND Handle = 0x803B0005 + HCN_E_ADAPTER_NOT_FOUND Handle = 0x803B0006 + HCN_E_PORT_NOT_FOUND Handle = 0x803B0007 + HCN_E_POLICY_NOT_FOUND Handle = 0x803B0008 + HCN_E_VFP_PORTSETTING_NOT_FOUND Handle = 0x803B0009 + HCN_E_INVALID_NETWORK Handle = 0x803B000A + HCN_E_INVALID_NETWORK_TYPE Handle = 0x803B000B + HCN_E_INVALID_ENDPOINT Handle = 0x803B000C + HCN_E_INVALID_POLICY Handle = 0x803B000D + HCN_E_INVALID_POLICY_TYPE Handle = 0x803B000E + HCN_E_INVALID_REMOTE_ENDPOINT_OPERATION Handle = 0x803B000F + HCN_E_NETWORK_ALREADY_EXISTS Handle = 0x803B0010 + HCN_E_LAYER_ALREADY_EXISTS Handle = 0x803B0011 + HCN_E_POLICY_ALREADY_EXISTS Handle = 0x803B0012 + HCN_E_PORT_ALREADY_EXISTS Handle = 0x803B0013 + HCN_E_ENDPOINT_ALREADY_ATTACHED Handle = 0x803B0014 + HCN_E_REQUEST_UNSUPPORTED Handle = 0x803B0015 + HCN_E_MAPPING_NOT_SUPPORTED Handle = 0x803B0016 + HCN_E_DEGRADED_OPERATION Handle = 0x803B0017 + HCN_E_SHARED_SWITCH_MODIFICATION Handle = 0x803B0018 + HCN_E_GUID_CONVERSION_FAILURE Handle = 0x803B0019 + HCN_E_REGKEY_FAILURE Handle = 0x803B001A + HCN_E_INVALID_JSON Handle = 0x803B001B + HCN_E_INVALID_JSON_REFERENCE Handle = 0x803B001C + HCN_E_ENDPOINT_SHARING_DISABLED Handle = 0x803B001D + HCN_E_INVALID_IP Handle = 0x803B001E + HCN_E_SWITCH_EXTENSION_NOT_FOUND Handle = 0x803B001F + HCN_E_MANAGER_STOPPED Handle = 0x803B0020 + GCN_E_MODULE_NOT_FOUND Handle = 0x803B0021 + GCN_E_NO_REQUEST_HANDLERS Handle = 0x803B0022 + GCN_E_REQUEST_UNSUPPORTED Handle = 0x803B0023 + GCN_E_RUNTIMEKEYS_FAILED Handle = 0x803B0024 + GCN_E_NETADAPTER_TIMEOUT Handle = 0x803B0025 + GCN_E_NETADAPTER_NOT_FOUND Handle = 0x803B0026 + GCN_E_NETCOMPARTMENT_NOT_FOUND Handle = 0x803B0027 + GCN_E_NETINTERFACE_NOT_FOUND Handle = 0x803B0028 + GCN_E_DEFAULTNAMESPACE_EXISTS Handle = 0x803B0029 + HCN_E_ICS_DISABLED Handle = 0x803B002A + HCN_E_ENDPOINT_NAMESPACE_ALREADY_EXISTS Handle = 0x803B002B + HCN_E_ENTITY_HAS_REFERENCES Handle = 0x803B002C + HCN_E_INVALID_INTERNAL_PORT Handle = 0x803B002D + HCN_E_NAMESPACE_ATTACH_FAILED Handle = 0x803B002E + HCN_E_ADDR_INVALID_OR_RESERVED Handle = 0x803B002F + SDIAG_E_CANCELLED syscall.Errno = 0x803C0100 + SDIAG_E_SCRIPT syscall.Errno = 0x803C0101 + SDIAG_E_POWERSHELL syscall.Errno = 0x803C0102 + SDIAG_E_MANAGEDHOST syscall.Errno = 0x803C0103 + SDIAG_E_NOVERIFIER syscall.Errno = 0x803C0104 + SDIAG_S_CANNOTRUN syscall.Errno = 0x003C0105 + SDIAG_E_DISABLED syscall.Errno = 0x803C0106 + SDIAG_E_TRUST syscall.Errno = 0x803C0107 + SDIAG_E_CANNOTRUN syscall.Errno = 0x803C0108 + SDIAG_E_VERSION syscall.Errno = 0x803C0109 + SDIAG_E_RESOURCE syscall.Errno = 0x803C010A + SDIAG_E_ROOTCAUSE syscall.Errno = 0x803C010B + WPN_E_CHANNEL_CLOSED Handle = 0x803E0100 + WPN_E_CHANNEL_REQUEST_NOT_COMPLETE Handle = 0x803E0101 + WPN_E_INVALID_APP Handle = 0x803E0102 + WPN_E_OUTSTANDING_CHANNEL_REQUEST Handle = 0x803E0103 + WPN_E_DUPLICATE_CHANNEL Handle = 0x803E0104 + WPN_E_PLATFORM_UNAVAILABLE Handle = 0x803E0105 + WPN_E_NOTIFICATION_POSTED Handle = 0x803E0106 + WPN_E_NOTIFICATION_HIDDEN Handle = 0x803E0107 + WPN_E_NOTIFICATION_NOT_POSTED Handle = 0x803E0108 + WPN_E_CLOUD_DISABLED Handle = 0x803E0109 + WPN_E_CLOUD_INCAPABLE Handle = 0x803E0110 + WPN_E_CLOUD_AUTH_UNAVAILABLE Handle = 0x803E011A + WPN_E_CLOUD_SERVICE_UNAVAILABLE Handle = 0x803E011B + WPN_E_FAILED_LOCK_SCREEN_UPDATE_INTIALIZATION Handle = 0x803E011C + WPN_E_NOTIFICATION_DISABLED Handle = 0x803E0111 + WPN_E_NOTIFICATION_INCAPABLE Handle = 0x803E0112 + WPN_E_INTERNET_INCAPABLE Handle = 0x803E0113 + WPN_E_NOTIFICATION_TYPE_DISABLED Handle = 0x803E0114 + WPN_E_NOTIFICATION_SIZE Handle = 0x803E0115 + WPN_E_TAG_SIZE Handle = 0x803E0116 + WPN_E_ACCESS_DENIED Handle = 0x803E0117 + WPN_E_DUPLICATE_REGISTRATION Handle = 0x803E0118 + WPN_E_PUSH_NOTIFICATION_INCAPABLE Handle = 0x803E0119 + WPN_E_DEV_ID_SIZE Handle = 0x803E0120 + WPN_E_TAG_ALPHANUMERIC Handle = 0x803E012A + WPN_E_INVALID_HTTP_STATUS_CODE Handle = 0x803E012B + WPN_E_OUT_OF_SESSION Handle = 0x803E0200 + WPN_E_POWER_SAVE Handle = 0x803E0201 + WPN_E_IMAGE_NOT_FOUND_IN_CACHE Handle = 0x803E0202 + WPN_E_ALL_URL_NOT_COMPLETED Handle = 0x803E0203 + WPN_E_INVALID_CLOUD_IMAGE Handle = 0x803E0204 + WPN_E_NOTIFICATION_ID_MATCHED Handle = 0x803E0205 + WPN_E_CALLBACK_ALREADY_REGISTERED Handle = 0x803E0206 + WPN_E_TOAST_NOTIFICATION_DROPPED Handle = 0x803E0207 + WPN_E_STORAGE_LOCKED Handle = 0x803E0208 + WPN_E_GROUP_SIZE Handle = 0x803E0209 + WPN_E_GROUP_ALPHANUMERIC Handle = 0x803E020A + WPN_E_CLOUD_DISABLED_FOR_APP Handle = 0x803E020B + E_MBN_CONTEXT_NOT_ACTIVATED Handle = 0x80548201 + E_MBN_BAD_SIM Handle = 0x80548202 + E_MBN_DATA_CLASS_NOT_AVAILABLE Handle = 0x80548203 + E_MBN_INVALID_ACCESS_STRING Handle = 0x80548204 + E_MBN_MAX_ACTIVATED_CONTEXTS Handle = 0x80548205 + E_MBN_PACKET_SVC_DETACHED Handle = 0x80548206 + E_MBN_PROVIDER_NOT_VISIBLE Handle = 0x80548207 + E_MBN_RADIO_POWER_OFF Handle = 0x80548208 + E_MBN_SERVICE_NOT_ACTIVATED Handle = 0x80548209 + E_MBN_SIM_NOT_INSERTED Handle = 0x8054820A + E_MBN_VOICE_CALL_IN_PROGRESS Handle = 0x8054820B + E_MBN_INVALID_CACHE Handle = 0x8054820C + E_MBN_NOT_REGISTERED Handle = 0x8054820D + E_MBN_PROVIDERS_NOT_FOUND Handle = 0x8054820E + E_MBN_PIN_NOT_SUPPORTED Handle = 0x8054820F + E_MBN_PIN_REQUIRED Handle = 0x80548210 + E_MBN_PIN_DISABLED Handle = 0x80548211 + E_MBN_FAILURE Handle = 0x80548212 + E_MBN_INVALID_PROFILE Handle = 0x80548218 + E_MBN_DEFAULT_PROFILE_EXIST Handle = 0x80548219 + E_MBN_SMS_ENCODING_NOT_SUPPORTED Handle = 0x80548220 + E_MBN_SMS_FILTER_NOT_SUPPORTED Handle = 0x80548221 + E_MBN_SMS_INVALID_MEMORY_INDEX Handle = 0x80548222 + E_MBN_SMS_LANG_NOT_SUPPORTED Handle = 0x80548223 + E_MBN_SMS_MEMORY_FAILURE Handle = 0x80548224 + E_MBN_SMS_NETWORK_TIMEOUT Handle = 0x80548225 + E_MBN_SMS_UNKNOWN_SMSC_ADDRESS Handle = 0x80548226 + E_MBN_SMS_FORMAT_NOT_SUPPORTED Handle = 0x80548227 + E_MBN_SMS_OPERATION_NOT_ALLOWED Handle = 0x80548228 + E_MBN_SMS_MEMORY_FULL Handle = 0x80548229 + PEER_E_IPV6_NOT_INSTALLED Handle = 0x80630001 + PEER_E_NOT_INITIALIZED Handle = 0x80630002 + PEER_E_CANNOT_START_SERVICE Handle = 0x80630003 + PEER_E_NOT_LICENSED Handle = 0x80630004 + PEER_E_INVALID_GRAPH Handle = 0x80630010 + PEER_E_DBNAME_CHANGED Handle = 0x80630011 + PEER_E_DUPLICATE_GRAPH Handle = 0x80630012 + PEER_E_GRAPH_NOT_READY Handle = 0x80630013 + PEER_E_GRAPH_SHUTTING_DOWN Handle = 0x80630014 + PEER_E_GRAPH_IN_USE Handle = 0x80630015 + PEER_E_INVALID_DATABASE Handle = 0x80630016 + PEER_E_TOO_MANY_ATTRIBUTES Handle = 0x80630017 + PEER_E_CONNECTION_NOT_FOUND Handle = 0x80630103 + PEER_E_CONNECT_SELF Handle = 0x80630106 + PEER_E_ALREADY_LISTENING Handle = 0x80630107 + PEER_E_NODE_NOT_FOUND Handle = 0x80630108 + PEER_E_CONNECTION_FAILED Handle = 0x80630109 + PEER_E_CONNECTION_NOT_AUTHENTICATED Handle = 0x8063010A + PEER_E_CONNECTION_REFUSED Handle = 0x8063010B + PEER_E_CLASSIFIER_TOO_LONG Handle = 0x80630201 + PEER_E_TOO_MANY_IDENTITIES Handle = 0x80630202 + PEER_E_NO_KEY_ACCESS Handle = 0x80630203 + PEER_E_GROUPS_EXIST Handle = 0x80630204 + PEER_E_RECORD_NOT_FOUND Handle = 0x80630301 + PEER_E_DATABASE_ACCESSDENIED Handle = 0x80630302 + PEER_E_DBINITIALIZATION_FAILED Handle = 0x80630303 + PEER_E_MAX_RECORD_SIZE_EXCEEDED Handle = 0x80630304 + PEER_E_DATABASE_ALREADY_PRESENT Handle = 0x80630305 + PEER_E_DATABASE_NOT_PRESENT Handle = 0x80630306 + PEER_E_IDENTITY_NOT_FOUND Handle = 0x80630401 + PEER_E_EVENT_HANDLE_NOT_FOUND Handle = 0x80630501 + PEER_E_INVALID_SEARCH Handle = 0x80630601 + PEER_E_INVALID_ATTRIBUTES Handle = 0x80630602 + PEER_E_INVITATION_NOT_TRUSTED Handle = 0x80630701 + PEER_E_CHAIN_TOO_LONG Handle = 0x80630703 + PEER_E_INVALID_TIME_PERIOD Handle = 0x80630705 + PEER_E_CIRCULAR_CHAIN_DETECTED Handle = 0x80630706 + PEER_E_CERT_STORE_CORRUPTED Handle = 0x80630801 + PEER_E_NO_CLOUD Handle = 0x80631001 + PEER_E_CLOUD_NAME_AMBIGUOUS Handle = 0x80631005 + PEER_E_INVALID_RECORD Handle = 0x80632010 + PEER_E_NOT_AUTHORIZED Handle = 0x80632020 + PEER_E_PASSWORD_DOES_NOT_MEET_POLICY Handle = 0x80632021 + PEER_E_DEFERRED_VALIDATION Handle = 0x80632030 + PEER_E_INVALID_GROUP_PROPERTIES Handle = 0x80632040 + PEER_E_INVALID_PEER_NAME Handle = 0x80632050 + PEER_E_INVALID_CLASSIFIER Handle = 0x80632060 + PEER_E_INVALID_FRIENDLY_NAME Handle = 0x80632070 + PEER_E_INVALID_ROLE_PROPERTY Handle = 0x80632071 + PEER_E_INVALID_CLASSIFIER_PROPERTY Handle = 0x80632072 + PEER_E_INVALID_RECORD_EXPIRATION Handle = 0x80632080 + PEER_E_INVALID_CREDENTIAL_INFO Handle = 0x80632081 + PEER_E_INVALID_CREDENTIAL Handle = 0x80632082 + PEER_E_INVALID_RECORD_SIZE Handle = 0x80632083 + PEER_E_UNSUPPORTED_VERSION Handle = 0x80632090 + PEER_E_GROUP_NOT_READY Handle = 0x80632091 + PEER_E_GROUP_IN_USE Handle = 0x80632092 + PEER_E_INVALID_GROUP Handle = 0x80632093 + PEER_E_NO_MEMBERS_FOUND Handle = 0x80632094 + PEER_E_NO_MEMBER_CONNECTIONS Handle = 0x80632095 + PEER_E_UNABLE_TO_LISTEN Handle = 0x80632096 + PEER_E_IDENTITY_DELETED Handle = 0x806320A0 + PEER_E_SERVICE_NOT_AVAILABLE Handle = 0x806320A1 + PEER_E_CONTACT_NOT_FOUND Handle = 0x80636001 + PEER_S_GRAPH_DATA_CREATED Handle = 0x00630001 + PEER_S_NO_EVENT_DATA Handle = 0x00630002 + PEER_S_ALREADY_CONNECTED Handle = 0x00632000 + PEER_S_SUBSCRIPTION_EXISTS Handle = 0x00636000 + PEER_S_NO_CONNECTIVITY Handle = 0x00630005 + PEER_S_ALREADY_A_MEMBER Handle = 0x00630006 + PEER_E_CANNOT_CONVERT_PEER_NAME Handle = 0x80634001 + PEER_E_INVALID_PEER_HOST_NAME Handle = 0x80634002 + PEER_E_NO_MORE Handle = 0x80634003 + PEER_E_PNRP_DUPLICATE_PEER_NAME Handle = 0x80634005 + PEER_E_INVITE_CANCELLED Handle = 0x80637000 + PEER_E_INVITE_RESPONSE_NOT_AVAILABLE Handle = 0x80637001 + PEER_E_NOT_SIGNED_IN Handle = 0x80637003 + PEER_E_PRIVACY_DECLINED Handle = 0x80637004 + PEER_E_TIMEOUT Handle = 0x80637005 + PEER_E_INVALID_ADDRESS Handle = 0x80637007 + PEER_E_FW_EXCEPTION_DISABLED Handle = 0x80637008 + PEER_E_FW_BLOCKED_BY_POLICY Handle = 0x80637009 + PEER_E_FW_BLOCKED_BY_SHIELDS_UP Handle = 0x8063700A + PEER_E_FW_DECLINED Handle = 0x8063700B + UI_E_CREATE_FAILED Handle = 0x802A0001 + UI_E_SHUTDOWN_CALLED Handle = 0x802A0002 + UI_E_ILLEGAL_REENTRANCY Handle = 0x802A0003 + UI_E_OBJECT_SEALED Handle = 0x802A0004 + UI_E_VALUE_NOT_SET Handle = 0x802A0005 + UI_E_VALUE_NOT_DETERMINED Handle = 0x802A0006 + UI_E_INVALID_OUTPUT Handle = 0x802A0007 + UI_E_BOOLEAN_EXPECTED Handle = 0x802A0008 + UI_E_DIFFERENT_OWNER Handle = 0x802A0009 + UI_E_AMBIGUOUS_MATCH Handle = 0x802A000A + UI_E_FP_OVERFLOW Handle = 0x802A000B + UI_E_WRONG_THREAD Handle = 0x802A000C + UI_E_STORYBOARD_ACTIVE Handle = 0x802A0101 + UI_E_STORYBOARD_NOT_PLAYING Handle = 0x802A0102 + UI_E_START_KEYFRAME_AFTER_END Handle = 0x802A0103 + UI_E_END_KEYFRAME_NOT_DETERMINED Handle = 0x802A0104 + UI_E_LOOPS_OVERLAP Handle = 0x802A0105 + UI_E_TRANSITION_ALREADY_USED Handle = 0x802A0106 + UI_E_TRANSITION_NOT_IN_STORYBOARD Handle = 0x802A0107 + UI_E_TRANSITION_ECLIPSED Handle = 0x802A0108 + UI_E_TIME_BEFORE_LAST_UPDATE Handle = 0x802A0109 + UI_E_TIMER_CLIENT_ALREADY_CONNECTED Handle = 0x802A010A + UI_E_INVALID_DIMENSION Handle = 0x802A010B + UI_E_PRIMITIVE_OUT_OF_BOUNDS Handle = 0x802A010C + UI_E_WINDOW_CLOSED Handle = 0x802A0201 + E_BLUETOOTH_ATT_INVALID_HANDLE Handle = 0x80650001 + E_BLUETOOTH_ATT_READ_NOT_PERMITTED Handle = 0x80650002 + E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED Handle = 0x80650003 + E_BLUETOOTH_ATT_INVALID_PDU Handle = 0x80650004 + E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION Handle = 0x80650005 + E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED Handle = 0x80650006 + E_BLUETOOTH_ATT_INVALID_OFFSET Handle = 0x80650007 + E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION Handle = 0x80650008 + E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL Handle = 0x80650009 + E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND Handle = 0x8065000A + E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG Handle = 0x8065000B + E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE Handle = 0x8065000C + E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH Handle = 0x8065000D + E_BLUETOOTH_ATT_UNLIKELY Handle = 0x8065000E + E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION Handle = 0x8065000F + E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE Handle = 0x80650010 + E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES Handle = 0x80650011 + E_BLUETOOTH_ATT_UNKNOWN_ERROR Handle = 0x80651000 + E_AUDIO_ENGINE_NODE_NOT_FOUND Handle = 0x80660001 + E_HDAUDIO_EMPTY_CONNECTION_LIST Handle = 0x80660002 + E_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED Handle = 0x80660003 + E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED Handle = 0x80660004 + E_HDAUDIO_NULL_LINKED_LIST_ENTRY Handle = 0x80660005 + STATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE Handle = 0x80670001 + STATEREPOSITORY_E_STATEMENT_INPROGRESS Handle = 0x80670002 + STATEREPOSITORY_E_CONFIGURATION_INVALID Handle = 0x80670003 + STATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION Handle = 0x80670004 + STATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED Handle = 0x80670005 + STATEREPOSITORY_E_BLOCKED Handle = 0x80670006 + STATEREPOSITORY_E_BUSY_RETRY Handle = 0x80670007 + STATEREPOSITORY_E_BUSY_RECOVERY_RETRY Handle = 0x80670008 + STATEREPOSITORY_E_LOCKED_RETRY Handle = 0x80670009 + STATEREPOSITORY_E_LOCKED_SHAREDCACHE_RETRY Handle = 0x8067000A + STATEREPOSITORY_E_TRANSACTION_REQUIRED Handle = 0x8067000B + STATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED Handle = 0x8067000C + STATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED Handle = 0x8067000D + STATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED Handle = 0x8067000E + STATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED Handle = 0x8067000F + STATEREPOSITORY_E_SERVICE_STOP_IN_PROGRESS Handle = 0x80670010 + STATEREPOSTORY_E_NESTED_TRANSACTION_NOT_SUPPORTED Handle = 0x80670011 + STATEREPOSITORY_ERROR_CACHE_CORRUPTED Handle = 0x80670012 + STATEREPOSITORY_TRANSACTION_CALLER_ID_CHANGED Handle = 0x00670013 + STATEREPOSITORY_TRANSACTION_IN_PROGRESS Handle = 0x00670014 + ERROR_SPACES_POOL_WAS_DELETED Handle = 0x00E70001 + ERROR_SPACES_FAULT_DOMAIN_TYPE_INVALID Handle = 0x80E70001 + ERROR_SPACES_INTERNAL_ERROR Handle = 0x80E70002 + ERROR_SPACES_RESILIENCY_TYPE_INVALID Handle = 0x80E70003 + ERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID Handle = 0x80E70004 + ERROR_SPACES_DRIVE_REDUNDANCY_INVALID Handle = 0x80E70006 + ERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID Handle = 0x80E70007 + ERROR_SPACES_PARITY_LAYOUT_INVALID Handle = 0x80E70008 + ERROR_SPACES_INTERLEAVE_LENGTH_INVALID Handle = 0x80E70009 + ERROR_SPACES_NUMBER_OF_COLUMNS_INVALID Handle = 0x80E7000A + ERROR_SPACES_NOT_ENOUGH_DRIVES Handle = 0x80E7000B + ERROR_SPACES_EXTENDED_ERROR Handle = 0x80E7000C + ERROR_SPACES_PROVISIONING_TYPE_INVALID Handle = 0x80E7000D + ERROR_SPACES_ALLOCATION_SIZE_INVALID Handle = 0x80E7000E + ERROR_SPACES_ENCLOSURE_AWARE_INVALID Handle = 0x80E7000F + ERROR_SPACES_WRITE_CACHE_SIZE_INVALID Handle = 0x80E70010 + ERROR_SPACES_NUMBER_OF_GROUPS_INVALID Handle = 0x80E70011 + ERROR_SPACES_DRIVE_OPERATIONAL_STATE_INVALID Handle = 0x80E70012 + ERROR_SPACES_ENTRY_INCOMPLETE Handle = 0x80E70013 + ERROR_SPACES_ENTRY_INVALID Handle = 0x80E70014 + ERROR_VOLSNAP_BOOTFILE_NOT_VALID Handle = 0x80820001 + ERROR_VOLSNAP_ACTIVATION_TIMEOUT Handle = 0x80820002 + ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME Handle = 0x80830001 + ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS Handle = 0x80830002 + ERROR_TIERING_STORAGE_TIER_NOT_FOUND Handle = 0x80830003 + ERROR_TIERING_INVALID_FILE_ID Handle = 0x80830004 + ERROR_TIERING_WRONG_CLUSTER_NODE Handle = 0x80830005 + ERROR_TIERING_ALREADY_PROCESSING Handle = 0x80830006 + ERROR_TIERING_CANNOT_PIN_OBJECT Handle = 0x80830007 + ERROR_TIERING_FILE_IS_NOT_PINNED Handle = 0x80830008 + ERROR_NOT_A_TIERED_VOLUME Handle = 0x80830009 + ERROR_ATTRIBUTE_NOT_PRESENT Handle = 0x8083000A + ERROR_SECCORE_INVALID_COMMAND Handle = 0xC0E80000 + ERROR_NO_APPLICABLE_APP_LICENSES_FOUND Handle = 0xC0EA0001 + ERROR_CLIP_LICENSE_NOT_FOUND Handle = 0xC0EA0002 + ERROR_CLIP_DEVICE_LICENSE_MISSING Handle = 0xC0EA0003 + ERROR_CLIP_LICENSE_INVALID_SIGNATURE Handle = 0xC0EA0004 + ERROR_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID Handle = 0xC0EA0005 + ERROR_CLIP_LICENSE_EXPIRED Handle = 0xC0EA0006 + ERROR_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE Handle = 0xC0EA0007 + ERROR_CLIP_LICENSE_NOT_SIGNED Handle = 0xC0EA0008 + ERROR_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE Handle = 0xC0EA0009 + ERROR_CLIP_LICENSE_DEVICE_ID_MISMATCH Handle = 0xC0EA000A + DXGI_STATUS_OCCLUDED Handle = 0x087A0001 + DXGI_STATUS_CLIPPED Handle = 0x087A0002 + DXGI_STATUS_NO_REDIRECTION Handle = 0x087A0004 + DXGI_STATUS_NO_DESKTOP_ACCESS Handle = 0x087A0005 + DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0x087A0006 + DXGI_STATUS_MODE_CHANGED Handle = 0x087A0007 + DXGI_STATUS_MODE_CHANGE_IN_PROGRESS Handle = 0x087A0008 + DXGI_ERROR_INVALID_CALL Handle = 0x887A0001 + DXGI_ERROR_NOT_FOUND Handle = 0x887A0002 + DXGI_ERROR_MORE_DATA Handle = 0x887A0003 + DXGI_ERROR_UNSUPPORTED Handle = 0x887A0004 + DXGI_ERROR_DEVICE_REMOVED Handle = 0x887A0005 + DXGI_ERROR_DEVICE_HUNG Handle = 0x887A0006 + DXGI_ERROR_DEVICE_RESET Handle = 0x887A0007 + DXGI_ERROR_WAS_STILL_DRAWING Handle = 0x887A000A + DXGI_ERROR_FRAME_STATISTICS_DISJOINT Handle = 0x887A000B + DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0x887A000C + DXGI_ERROR_DRIVER_INTERNAL_ERROR Handle = 0x887A0020 + DXGI_ERROR_NONEXCLUSIVE Handle = 0x887A0021 + DXGI_ERROR_NOT_CURRENTLY_AVAILABLE Handle = 0x887A0022 + DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED Handle = 0x887A0023 + DXGI_ERROR_REMOTE_OUTOFMEMORY Handle = 0x887A0024 + DXGI_ERROR_ACCESS_LOST Handle = 0x887A0026 + DXGI_ERROR_WAIT_TIMEOUT Handle = 0x887A0027 + DXGI_ERROR_SESSION_DISCONNECTED Handle = 0x887A0028 + DXGI_ERROR_RESTRICT_TO_OUTPUT_STALE Handle = 0x887A0029 + DXGI_ERROR_CANNOT_PROTECT_CONTENT Handle = 0x887A002A + DXGI_ERROR_ACCESS_DENIED Handle = 0x887A002B + DXGI_ERROR_NAME_ALREADY_EXISTS Handle = 0x887A002C + DXGI_ERROR_SDK_COMPONENT_MISSING Handle = 0x887A002D + DXGI_ERROR_NOT_CURRENT Handle = 0x887A002E + DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY Handle = 0x887A0030 + DXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION Handle = 0x887A0031 + DXGI_ERROR_NON_COMPOSITED_UI Handle = 0x887A0032 + DXGI_STATUS_UNOCCLUDED Handle = 0x087A0009 + DXGI_STATUS_DDA_WAS_STILL_DRAWING Handle = 0x087A000A + DXGI_ERROR_MODE_CHANGE_IN_PROGRESS Handle = 0x887A0025 + DXGI_STATUS_PRESENT_REQUIRED Handle = 0x087A002F + DXGI_ERROR_CACHE_CORRUPT Handle = 0x887A0033 + DXGI_ERROR_CACHE_FULL Handle = 0x887A0034 + DXGI_ERROR_CACHE_HASH_COLLISION Handle = 0x887A0035 + DXGI_ERROR_ALREADY_EXISTS Handle = 0x887A0036 + DXGI_DDI_ERR_WASSTILLDRAWING Handle = 0x887B0001 + DXGI_DDI_ERR_UNSUPPORTED Handle = 0x887B0002 + DXGI_DDI_ERR_NONEXCLUSIVE Handle = 0x887B0003 + D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS Handle = 0x88790001 + D3D10_ERROR_FILE_NOT_FOUND Handle = 0x88790002 + D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS Handle = 0x887C0001 + D3D11_ERROR_FILE_NOT_FOUND Handle = 0x887C0002 + D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS Handle = 0x887C0003 + D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD Handle = 0x887C0004 + D3D12_ERROR_ADAPTER_NOT_FOUND Handle = 0x887E0001 + D3D12_ERROR_DRIVER_VERSION_MISMATCH Handle = 0x887E0002 + D2DERR_WRONG_STATE Handle = 0x88990001 + D2DERR_NOT_INITIALIZED Handle = 0x88990002 + D2DERR_UNSUPPORTED_OPERATION Handle = 0x88990003 + D2DERR_SCANNER_FAILED Handle = 0x88990004 + D2DERR_SCREEN_ACCESS_DENIED Handle = 0x88990005 + D2DERR_DISPLAY_STATE_INVALID Handle = 0x88990006 + D2DERR_ZERO_VECTOR Handle = 0x88990007 + D2DERR_INTERNAL_ERROR Handle = 0x88990008 + D2DERR_DISPLAY_FORMAT_NOT_SUPPORTED Handle = 0x88990009 + D2DERR_INVALID_CALL Handle = 0x8899000A + D2DERR_NO_HARDWARE_DEVICE Handle = 0x8899000B + D2DERR_RECREATE_TARGET Handle = 0x8899000C + D2DERR_TOO_MANY_SHADER_ELEMENTS Handle = 0x8899000D + D2DERR_SHADER_COMPILE_FAILED Handle = 0x8899000E + D2DERR_MAX_TEXTURE_SIZE_EXCEEDED Handle = 0x8899000F + D2DERR_UNSUPPORTED_VERSION Handle = 0x88990010 + D2DERR_BAD_NUMBER Handle = 0x88990011 + D2DERR_WRONG_FACTORY Handle = 0x88990012 + D2DERR_LAYER_ALREADY_IN_USE Handle = 0x88990013 + D2DERR_POP_CALL_DID_NOT_MATCH_PUSH Handle = 0x88990014 + D2DERR_WRONG_RESOURCE_DOMAIN Handle = 0x88990015 + D2DERR_PUSH_POP_UNBALANCED Handle = 0x88990016 + D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT Handle = 0x88990017 + D2DERR_INCOMPATIBLE_BRUSH_TYPES Handle = 0x88990018 + D2DERR_WIN32_ERROR Handle = 0x88990019 + D2DERR_TARGET_NOT_GDI_COMPATIBLE Handle = 0x8899001A + D2DERR_TEXT_EFFECT_IS_WRONG_TYPE Handle = 0x8899001B + D2DERR_TEXT_RENDERER_NOT_RELEASED Handle = 0x8899001C + D2DERR_EXCEEDS_MAX_BITMAP_SIZE Handle = 0x8899001D + D2DERR_INVALID_GRAPH_CONFIGURATION Handle = 0x8899001E + D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION Handle = 0x8899001F + D2DERR_CYCLIC_GRAPH Handle = 0x88990020 + D2DERR_BITMAP_CANNOT_DRAW Handle = 0x88990021 + D2DERR_OUTSTANDING_BITMAP_REFERENCES Handle = 0x88990022 + D2DERR_ORIGINAL_TARGET_NOT_BOUND Handle = 0x88990023 + D2DERR_INVALID_TARGET Handle = 0x88990024 + D2DERR_BITMAP_BOUND_AS_TARGET Handle = 0x88990025 + D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES Handle = 0x88990026 + D2DERR_INTERMEDIATE_TOO_LARGE Handle = 0x88990027 + D2DERR_EFFECT_IS_NOT_REGISTERED Handle = 0x88990028 + D2DERR_INVALID_PROPERTY Handle = 0x88990029 + D2DERR_NO_SUBPROPERTIES Handle = 0x8899002A + D2DERR_PRINT_JOB_CLOSED Handle = 0x8899002B + D2DERR_PRINT_FORMAT_NOT_SUPPORTED Handle = 0x8899002C + D2DERR_TOO_MANY_TRANSFORM_INPUTS Handle = 0x8899002D + D2DERR_INVALID_GLYPH_IMAGE Handle = 0x8899002E + DWRITE_E_FILEFORMAT Handle = 0x88985000 + DWRITE_E_UNEXPECTED Handle = 0x88985001 + DWRITE_E_NOFONT Handle = 0x88985002 + DWRITE_E_FILENOTFOUND Handle = 0x88985003 + DWRITE_E_FILEACCESS Handle = 0x88985004 + DWRITE_E_FONTCOLLECTIONOBSOLETE Handle = 0x88985005 + DWRITE_E_ALREADYREGISTERED Handle = 0x88985006 + DWRITE_E_CACHEFORMAT Handle = 0x88985007 + DWRITE_E_CACHEVERSION Handle = 0x88985008 + DWRITE_E_UNSUPPORTEDOPERATION Handle = 0x88985009 + DWRITE_E_TEXTRENDERERINCOMPATIBLE Handle = 0x8898500A + DWRITE_E_FLOWDIRECTIONCONFLICTS Handle = 0x8898500B + DWRITE_E_NOCOLOR Handle = 0x8898500C + DWRITE_E_REMOTEFONT Handle = 0x8898500D + DWRITE_E_DOWNLOADCANCELLED Handle = 0x8898500E + DWRITE_E_DOWNLOADFAILED Handle = 0x8898500F + DWRITE_E_TOOMANYDOWNLOADS Handle = 0x88985010 + WINCODEC_ERR_WRONGSTATE Handle = 0x88982F04 + WINCODEC_ERR_VALUEOUTOFRANGE Handle = 0x88982F05 + WINCODEC_ERR_UNKNOWNIMAGEFORMAT Handle = 0x88982F07 + WINCODEC_ERR_UNSUPPORTEDVERSION Handle = 0x88982F0B + WINCODEC_ERR_NOTINITIALIZED Handle = 0x88982F0C + WINCODEC_ERR_ALREADYLOCKED Handle = 0x88982F0D + WINCODEC_ERR_PROPERTYNOTFOUND Handle = 0x88982F40 + WINCODEC_ERR_PROPERTYNOTSUPPORTED Handle = 0x88982F41 + WINCODEC_ERR_PROPERTYSIZE Handle = 0x88982F42 + WINCODEC_ERR_CODECPRESENT Handle = 0x88982F43 + WINCODEC_ERR_CODECNOTHUMBNAIL Handle = 0x88982F44 + WINCODEC_ERR_PALETTEUNAVAILABLE Handle = 0x88982F45 + WINCODEC_ERR_CODECTOOMANYSCANLINES Handle = 0x88982F46 + WINCODEC_ERR_INTERNALERROR Handle = 0x88982F48 + WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS Handle = 0x88982F49 + WINCODEC_ERR_COMPONENTNOTFOUND Handle = 0x88982F50 + WINCODEC_ERR_IMAGESIZEOUTOFRANGE Handle = 0x88982F51 + WINCODEC_ERR_TOOMUCHMETADATA Handle = 0x88982F52 + WINCODEC_ERR_BADIMAGE Handle = 0x88982F60 + WINCODEC_ERR_BADHEADER Handle = 0x88982F61 + WINCODEC_ERR_FRAMEMISSING Handle = 0x88982F62 + WINCODEC_ERR_BADMETADATAHEADER Handle = 0x88982F63 + WINCODEC_ERR_BADSTREAMDATA Handle = 0x88982F70 + WINCODEC_ERR_STREAMWRITE Handle = 0x88982F71 + WINCODEC_ERR_STREAMREAD Handle = 0x88982F72 + WINCODEC_ERR_STREAMNOTAVAILABLE Handle = 0x88982F73 + WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT Handle = 0x88982F80 + WINCODEC_ERR_UNSUPPORTEDOPERATION Handle = 0x88982F81 + WINCODEC_ERR_INVALIDREGISTRATION Handle = 0x88982F8A + WINCODEC_ERR_COMPONENTINITIALIZEFAILURE Handle = 0x88982F8B + WINCODEC_ERR_INSUFFICIENTBUFFER Handle = 0x88982F8C + WINCODEC_ERR_DUPLICATEMETADATAPRESENT Handle = 0x88982F8D + WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE Handle = 0x88982F8E + WINCODEC_ERR_UNEXPECTEDSIZE Handle = 0x88982F8F + WINCODEC_ERR_INVALIDQUERYREQUEST Handle = 0x88982F90 + WINCODEC_ERR_UNEXPECTEDMETADATATYPE Handle = 0x88982F91 + WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT Handle = 0x88982F92 + WINCODEC_ERR_INVALIDQUERYCHARACTER Handle = 0x88982F93 + WINCODEC_ERR_WIN32ERROR Handle = 0x88982F94 + WINCODEC_ERR_INVALIDPROGRESSIVELEVEL Handle = 0x88982F95 + WINCODEC_ERR_INVALIDJPEGSCANINDEX Handle = 0x88982F96 + MILERR_OBJECTBUSY Handle = 0x88980001 + MILERR_INSUFFICIENTBUFFER Handle = 0x88980002 + MILERR_WIN32ERROR Handle = 0x88980003 + MILERR_SCANNER_FAILED Handle = 0x88980004 + MILERR_SCREENACCESSDENIED Handle = 0x88980005 + MILERR_DISPLAYSTATEINVALID Handle = 0x88980006 + MILERR_NONINVERTIBLEMATRIX Handle = 0x88980007 + MILERR_ZEROVECTOR Handle = 0x88980008 + MILERR_TERMINATED Handle = 0x88980009 + MILERR_BADNUMBER Handle = 0x8898000A + MILERR_INTERNALERROR Handle = 0x88980080 + MILERR_DISPLAYFORMATNOTSUPPORTED Handle = 0x88980084 + MILERR_INVALIDCALL Handle = 0x88980085 + MILERR_ALREADYLOCKED Handle = 0x88980086 + MILERR_NOTLOCKED Handle = 0x88980087 + MILERR_DEVICECANNOTRENDERTEXT Handle = 0x88980088 + MILERR_GLYPHBITMAPMISSED Handle = 0x88980089 + MILERR_MALFORMEDGLYPHCACHE Handle = 0x8898008A + MILERR_GENERIC_IGNORE Handle = 0x8898008B + MILERR_MALFORMED_GUIDELINE_DATA Handle = 0x8898008C + MILERR_NO_HARDWARE_DEVICE Handle = 0x8898008D + MILERR_NEED_RECREATE_AND_PRESENT Handle = 0x8898008E + MILERR_ALREADY_INITIALIZED Handle = 0x8898008F + MILERR_MISMATCHED_SIZE Handle = 0x88980090 + MILERR_NO_REDIRECTION_SURFACE_AVAILABLE Handle = 0x88980091 + MILERR_REMOTING_NOT_SUPPORTED Handle = 0x88980092 + MILERR_QUEUED_PRESENT_NOT_SUPPORTED Handle = 0x88980093 + MILERR_NOT_QUEUING_PRESENTS Handle = 0x88980094 + MILERR_NO_REDIRECTION_SURFACE_RETRY_LATER Handle = 0x88980095 + MILERR_TOOMANYSHADERELEMNTS Handle = 0x88980096 + MILERR_MROW_READLOCK_FAILED Handle = 0x88980097 + MILERR_MROW_UPDATE_FAILED Handle = 0x88980098 + MILERR_SHADER_COMPILE_FAILED Handle = 0x88980099 + MILERR_MAX_TEXTURE_SIZE_EXCEEDED Handle = 0x8898009A + MILERR_QPC_TIME_WENT_BACKWARD Handle = 0x8898009B + MILERR_DXGI_ENUMERATION_OUT_OF_SYNC Handle = 0x8898009D + MILERR_ADAPTER_NOT_FOUND Handle = 0x8898009E + MILERR_COLORSPACE_NOT_SUPPORTED Handle = 0x8898009F + MILERR_PREFILTER_NOT_SUPPORTED Handle = 0x889800A0 + MILERR_DISPLAYID_ACCESS_DENIED Handle = 0x889800A1 + UCEERR_INVALIDPACKETHEADER Handle = 0x88980400 + UCEERR_UNKNOWNPACKET Handle = 0x88980401 + UCEERR_ILLEGALPACKET Handle = 0x88980402 + UCEERR_MALFORMEDPACKET Handle = 0x88980403 + UCEERR_ILLEGALHANDLE Handle = 0x88980404 + UCEERR_HANDLELOOKUPFAILED Handle = 0x88980405 + UCEERR_RENDERTHREADFAILURE Handle = 0x88980406 + UCEERR_CTXSTACKFRSTTARGETNULL Handle = 0x88980407 + UCEERR_CONNECTIONIDLOOKUPFAILED Handle = 0x88980408 + UCEERR_BLOCKSFULL Handle = 0x88980409 + UCEERR_MEMORYFAILURE Handle = 0x8898040A + UCEERR_PACKETRECORDOUTOFRANGE Handle = 0x8898040B + UCEERR_ILLEGALRECORDTYPE Handle = 0x8898040C + UCEERR_OUTOFHANDLES Handle = 0x8898040D + UCEERR_UNCHANGABLE_UPDATE_ATTEMPTED Handle = 0x8898040E + UCEERR_NO_MULTIPLE_WORKER_THREADS Handle = 0x8898040F + UCEERR_REMOTINGNOTSUPPORTED Handle = 0x88980410 + UCEERR_MISSINGENDCOMMAND Handle = 0x88980411 + UCEERR_MISSINGBEGINCOMMAND Handle = 0x88980412 + UCEERR_CHANNELSYNCTIMEDOUT Handle = 0x88980413 + UCEERR_CHANNELSYNCABANDONED Handle = 0x88980414 + UCEERR_UNSUPPORTEDTRANSPORTVERSION Handle = 0x88980415 + UCEERR_TRANSPORTUNAVAILABLE Handle = 0x88980416 + UCEERR_FEEDBACK_UNSUPPORTED Handle = 0x88980417 + UCEERR_COMMANDTRANSPORTDENIED Handle = 0x88980418 + UCEERR_GRAPHICSSTREAMUNAVAILABLE Handle = 0x88980419 + UCEERR_GRAPHICSSTREAMALREADYOPEN Handle = 0x88980420 + UCEERR_TRANSPORTDISCONNECTED Handle = 0x88980421 + UCEERR_TRANSPORTOVERLOADED Handle = 0x88980422 + UCEERR_PARTITION_ZOMBIED Handle = 0x88980423 + MILAVERR_NOCLOCK Handle = 0x88980500 + MILAVERR_NOMEDIATYPE Handle = 0x88980501 + MILAVERR_NOVIDEOMIXER Handle = 0x88980502 + MILAVERR_NOVIDEOPRESENTER Handle = 0x88980503 + MILAVERR_NOREADYFRAMES Handle = 0x88980504 + MILAVERR_MODULENOTLOADED Handle = 0x88980505 + MILAVERR_WMPFACTORYNOTREGISTERED Handle = 0x88980506 + MILAVERR_INVALIDWMPVERSION Handle = 0x88980507 + MILAVERR_INSUFFICIENTVIDEORESOURCES Handle = 0x88980508 + MILAVERR_VIDEOACCELERATIONNOTAVAILABLE Handle = 0x88980509 + MILAVERR_REQUESTEDTEXTURETOOBIG Handle = 0x8898050A + MILAVERR_SEEKFAILED Handle = 0x8898050B + MILAVERR_UNEXPECTEDWMPFAILURE Handle = 0x8898050C + MILAVERR_MEDIAPLAYERCLOSED Handle = 0x8898050D + MILAVERR_UNKNOWNHARDWAREERROR Handle = 0x8898050E + MILEFFECTSERR_UNKNOWNPROPERTY Handle = 0x8898060E + MILEFFECTSERR_EFFECTNOTPARTOFGROUP Handle = 0x8898060F + MILEFFECTSERR_NOINPUTSOURCEATTACHED Handle = 0x88980610 + MILEFFECTSERR_CONNECTORNOTCONNECTED Handle = 0x88980611 + MILEFFECTSERR_CONNECTORNOTASSOCIATEDWITHEFFECT Handle = 0x88980612 + MILEFFECTSERR_RESERVED Handle = 0x88980613 + MILEFFECTSERR_CYCLEDETECTED Handle = 0x88980614 + MILEFFECTSERR_EFFECTINMORETHANONEGRAPH Handle = 0x88980615 + MILEFFECTSERR_EFFECTALREADYINAGRAPH Handle = 0x88980616 + MILEFFECTSERR_EFFECTHASNOCHILDREN Handle = 0x88980617 + MILEFFECTSERR_ALREADYATTACHEDTOLISTENER Handle = 0x88980618 + MILEFFECTSERR_NOTAFFINETRANSFORM Handle = 0x88980619 + MILEFFECTSERR_EMPTYBOUNDS Handle = 0x8898061A + MILEFFECTSERR_OUTPUTSIZETOOLARGE Handle = 0x8898061B + DWMERR_STATE_TRANSITION_FAILED Handle = 0x88980700 + DWMERR_THEME_FAILED Handle = 0x88980701 + DWMERR_CATASTROPHIC_FAILURE Handle = 0x88980702 + DCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED Handle = 0x88980800 + DCOMPOSITION_ERROR_SURFACE_BEING_RENDERED Handle = 0x88980801 + DCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED Handle = 0x88980802 + ONL_E_INVALID_AUTHENTICATION_TARGET Handle = 0x80860001 + ONL_E_ACCESS_DENIED_BY_TOU Handle = 0x80860002 + ONL_E_INVALID_APPLICATION Handle = 0x80860003 + ONL_E_PASSWORD_UPDATE_REQUIRED Handle = 0x80860004 + ONL_E_ACCOUNT_UPDATE_REQUIRED Handle = 0x80860005 + ONL_E_FORCESIGNIN Handle = 0x80860006 + ONL_E_ACCOUNT_LOCKED Handle = 0x80860007 + ONL_E_PARENTAL_CONSENT_REQUIRED Handle = 0x80860008 + ONL_E_EMAIL_VERIFICATION_REQUIRED Handle = 0x80860009 + ONL_E_ACCOUNT_SUSPENDED_COMPROIMISE Handle = 0x8086000A + ONL_E_ACCOUNT_SUSPENDED_ABUSE Handle = 0x8086000B + ONL_E_ACTION_REQUIRED Handle = 0x8086000C + ONL_CONNECTION_COUNT_LIMIT Handle = 0x8086000D + ONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT Handle = 0x8086000E + ONL_E_USER_AUTHENTICATION_REQUIRED Handle = 0x8086000F + ONL_E_REQUEST_THROTTLED Handle = 0x80860010 + FA_E_MAX_PERSISTED_ITEMS_REACHED Handle = 0x80270220 + FA_E_HOMEGROUP_NOT_AVAILABLE Handle = 0x80270222 + E_MONITOR_RESOLUTION_TOO_LOW Handle = 0x80270250 + E_ELEVATED_ACTIVATION_NOT_SUPPORTED Handle = 0x80270251 + E_UAC_DISABLED Handle = 0x80270252 + E_FULL_ADMIN_NOT_SUPPORTED Handle = 0x80270253 + E_APPLICATION_NOT_REGISTERED Handle = 0x80270254 + E_MULTIPLE_EXTENSIONS_FOR_APPLICATION Handle = 0x80270255 + E_MULTIPLE_PACKAGES_FOR_FAMILY Handle = 0x80270256 + E_APPLICATION_MANAGER_NOT_RUNNING Handle = 0x80270257 + S_STORE_LAUNCHED_FOR_REMEDIATION Handle = 0x00270258 + S_APPLICATION_ACTIVATION_ERROR_HANDLED_BY_DIALOG Handle = 0x00270259 + E_APPLICATION_ACTIVATION_TIMED_OUT Handle = 0x8027025A + E_APPLICATION_ACTIVATION_EXEC_FAILURE Handle = 0x8027025B + E_APPLICATION_TEMPORARY_LICENSE_ERROR Handle = 0x8027025C + E_APPLICATION_TRIAL_LICENSE_EXPIRED Handle = 0x8027025D + E_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED Handle = 0x80270260 + E_SKYDRIVE_ROOT_TARGET_OVERLAP Handle = 0x80270261 + E_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX Handle = 0x80270262 + E_SKYDRIVE_FILE_NOT_UPLOADED Handle = 0x80270263 + E_SKYDRIVE_UPDATE_AVAILABILITY_FAIL Handle = 0x80270264 + E_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED Handle = 0x80270265 + E_SYNCENGINE_FILE_SIZE_OVER_LIMIT Handle = 0x8802B001 + E_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA Handle = 0x8802B002 + E_SYNCENGINE_UNSUPPORTED_FILE_NAME Handle = 0x8802B003 + E_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED Handle = 0x8802B004 + E_SYNCENGINE_FILE_SYNC_PARTNER_ERROR Handle = 0x8802B005 + E_SYNCENGINE_SYNC_PAUSED_BY_SERVICE Handle = 0x8802B006 + E_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN Handle = 0x8802C002 + E_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED Handle = 0x8802C003 + E_SYNCENGINE_UNKNOWN_SERVICE_ERROR Handle = 0x8802C004 + E_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE Handle = 0x8802C005 + E_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE Handle = 0x8802C006 + E_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR Handle = 0x8802C007 + E_SYNCENGINE_FOLDER_INACCESSIBLE Handle = 0x8802D001 + E_SYNCENGINE_UNSUPPORTED_FOLDER_NAME Handle = 0x8802D002 + E_SYNCENGINE_UNSUPPORTED_MARKET Handle = 0x8802D003 + E_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED Handle = 0x8802D004 + E_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED Handle = 0x8802D005 + E_SYNCENGINE_CLIENT_UPDATE_NEEDED Handle = 0x8802D006 + E_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED Handle = 0x8802D007 + E_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED Handle = 0x8802D008 + E_SYNCENGINE_UNSUPPORTED_REPARSE_POINT Handle = 0x8802D009 + E_SYNCENGINE_STORAGE_SERVICE_BLOCKED Handle = 0x8802D00A + E_SYNCENGINE_FOLDER_IN_REDIRECTION Handle = 0x8802D00B + EAS_E_POLICY_NOT_MANAGED_BY_OS Handle = 0x80550001 + EAS_E_POLICY_COMPLIANT_WITH_ACTIONS Handle = 0x80550002 + EAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE Handle = 0x80550003 + EAS_E_CURRENT_USER_HAS_BLANK_PASSWORD Handle = 0x80550004 + EAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE Handle = 0x80550005 + EAS_E_USER_CANNOT_CHANGE_PASSWORD Handle = 0x80550006 + EAS_E_ADMINS_HAVE_BLANK_PASSWORD Handle = 0x80550007 + EAS_E_ADMINS_CANNOT_CHANGE_PASSWORD Handle = 0x80550008 + EAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD Handle = 0x80550009 + EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS Handle = 0x8055000A + EAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD Handle = 0x8055000B + EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER Handle = 0x8055000C + EAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD Handle = 0x8055000D + WEB_E_UNSUPPORTED_FORMAT Handle = 0x83750001 + WEB_E_INVALID_XML Handle = 0x83750002 + WEB_E_MISSING_REQUIRED_ELEMENT Handle = 0x83750003 + WEB_E_MISSING_REQUIRED_ATTRIBUTE Handle = 0x83750004 + WEB_E_UNEXPECTED_CONTENT Handle = 0x83750005 + WEB_E_RESOURCE_TOO_LARGE Handle = 0x83750006 + WEB_E_INVALID_JSON_STRING Handle = 0x83750007 + WEB_E_INVALID_JSON_NUMBER Handle = 0x83750008 + WEB_E_JSON_VALUE_NOT_FOUND Handle = 0x83750009 + HTTP_E_STATUS_UNEXPECTED Handle = 0x80190001 + HTTP_E_STATUS_UNEXPECTED_REDIRECTION Handle = 0x80190003 + HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR Handle = 0x80190004 + HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR Handle = 0x80190005 + HTTP_E_STATUS_AMBIGUOUS Handle = 0x8019012C + HTTP_E_STATUS_MOVED Handle = 0x8019012D + HTTP_E_STATUS_REDIRECT Handle = 0x8019012E + HTTP_E_STATUS_REDIRECT_METHOD Handle = 0x8019012F + HTTP_E_STATUS_NOT_MODIFIED Handle = 0x80190130 + HTTP_E_STATUS_USE_PROXY Handle = 0x80190131 + HTTP_E_STATUS_REDIRECT_KEEP_VERB Handle = 0x80190133 + HTTP_E_STATUS_BAD_REQUEST Handle = 0x80190190 + HTTP_E_STATUS_DENIED Handle = 0x80190191 + HTTP_E_STATUS_PAYMENT_REQ Handle = 0x80190192 + HTTP_E_STATUS_FORBIDDEN Handle = 0x80190193 + HTTP_E_STATUS_NOT_FOUND Handle = 0x80190194 + HTTP_E_STATUS_BAD_METHOD Handle = 0x80190195 + HTTP_E_STATUS_NONE_ACCEPTABLE Handle = 0x80190196 + HTTP_E_STATUS_PROXY_AUTH_REQ Handle = 0x80190197 + HTTP_E_STATUS_REQUEST_TIMEOUT Handle = 0x80190198 + HTTP_E_STATUS_CONFLICT Handle = 0x80190199 + HTTP_E_STATUS_GONE Handle = 0x8019019A + HTTP_E_STATUS_LENGTH_REQUIRED Handle = 0x8019019B + HTTP_E_STATUS_PRECOND_FAILED Handle = 0x8019019C + HTTP_E_STATUS_REQUEST_TOO_LARGE Handle = 0x8019019D + HTTP_E_STATUS_URI_TOO_LONG Handle = 0x8019019E + HTTP_E_STATUS_UNSUPPORTED_MEDIA Handle = 0x8019019F + HTTP_E_STATUS_RANGE_NOT_SATISFIABLE Handle = 0x801901A0 + HTTP_E_STATUS_EXPECTATION_FAILED Handle = 0x801901A1 + HTTP_E_STATUS_SERVER_ERROR Handle = 0x801901F4 + HTTP_E_STATUS_NOT_SUPPORTED Handle = 0x801901F5 + HTTP_E_STATUS_BAD_GATEWAY Handle = 0x801901F6 + HTTP_E_STATUS_SERVICE_UNAVAIL Handle = 0x801901F7 + HTTP_E_STATUS_GATEWAY_TIMEOUT Handle = 0x801901F8 + HTTP_E_STATUS_VERSION_NOT_SUP Handle = 0x801901F9 + E_INVALID_PROTOCOL_OPERATION Handle = 0x83760001 + E_INVALID_PROTOCOL_FORMAT Handle = 0x83760002 + E_PROTOCOL_EXTENSIONS_NOT_SUPPORTED Handle = 0x83760003 + E_SUBPROTOCOL_NOT_SUPPORTED Handle = 0x83760004 + E_PROTOCOL_VERSION_NOT_SUPPORTED Handle = 0x83760005 + INPUT_E_OUT_OF_ORDER Handle = 0x80400000 + INPUT_E_REENTRANCY Handle = 0x80400001 + INPUT_E_MULTIMODAL Handle = 0x80400002 + INPUT_E_PACKET Handle = 0x80400003 + INPUT_E_FRAME Handle = 0x80400004 + INPUT_E_HISTORY Handle = 0x80400005 + INPUT_E_DEVICE_INFO Handle = 0x80400006 + INPUT_E_TRANSFORM Handle = 0x80400007 + INPUT_E_DEVICE_PROPERTY Handle = 0x80400008 + INET_E_INVALID_URL Handle = 0x800C0002 + INET_E_NO_SESSION Handle = 0x800C0003 + INET_E_CANNOT_CONNECT Handle = 0x800C0004 + INET_E_RESOURCE_NOT_FOUND Handle = 0x800C0005 + INET_E_OBJECT_NOT_FOUND Handle = 0x800C0006 + INET_E_DATA_NOT_AVAILABLE Handle = 0x800C0007 + INET_E_DOWNLOAD_FAILURE Handle = 0x800C0008 + INET_E_AUTHENTICATION_REQUIRED Handle = 0x800C0009 + INET_E_NO_VALID_MEDIA Handle = 0x800C000A + INET_E_CONNECTION_TIMEOUT Handle = 0x800C000B + INET_E_INVALID_REQUEST Handle = 0x800C000C + INET_E_UNKNOWN_PROTOCOL Handle = 0x800C000D + INET_E_SECURITY_PROBLEM Handle = 0x800C000E + INET_E_CANNOT_LOAD_DATA Handle = 0x800C000F + INET_E_CANNOT_INSTANTIATE_OBJECT Handle = 0x800C0010 + INET_E_INVALID_CERTIFICATE Handle = 0x800C0019 + INET_E_REDIRECT_FAILED Handle = 0x800C0014 + INET_E_REDIRECT_TO_DIR Handle = 0x800C0015 + ERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN Handle = 0x80B00001 + ERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN Handle = 0x80B00002 + ERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN Handle = 0x80B00003 + ERROR_DBG_START_SERVER_FAILURE_LOCKDOWN Handle = 0x80B00004 + ERROR_IO_PREEMPTED Handle = 0x89010001 + JSCRIPT_E_CANTEXECUTE Handle = 0x89020001 + WEP_E_NOT_PROVISIONED_ON_ALL_VOLUMES Handle = 0x88010001 + WEP_E_FIXED_DATA_NOT_SUPPORTED Handle = 0x88010002 + WEP_E_HARDWARE_NOT_COMPLIANT Handle = 0x88010003 + WEP_E_LOCK_NOT_CONFIGURED Handle = 0x88010004 + WEP_E_PROTECTION_SUSPENDED Handle = 0x88010005 + WEP_E_NO_LICENSE Handle = 0x88010006 + WEP_E_OS_NOT_PROTECTED Handle = 0x88010007 + WEP_E_UNEXPECTED_FAIL Handle = 0x88010008 + WEP_E_BUFFER_TOO_LARGE Handle = 0x88010009 + ERROR_SVHDX_ERROR_STORED Handle = 0xC05C0000 + ERROR_SVHDX_ERROR_NOT_AVAILABLE Handle = 0xC05CFF00 + ERROR_SVHDX_UNIT_ATTENTION_AVAILABLE Handle = 0xC05CFF01 + ERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED Handle = 0xC05CFF02 + ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED Handle = 0xC05CFF03 + ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED Handle = 0xC05CFF04 + ERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED Handle = 0xC05CFF05 + ERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED Handle = 0xC05CFF06 + ERROR_SVHDX_RESERVATION_CONFLICT Handle = 0xC05CFF07 + ERROR_SVHDX_WRONG_FILE_TYPE Handle = 0xC05CFF08 + ERROR_SVHDX_VERSION_MISMATCH Handle = 0xC05CFF09 + ERROR_VHD_SHARED Handle = 0xC05CFF0A + ERROR_SVHDX_NO_INITIATOR Handle = 0xC05CFF0B + ERROR_VHDSET_BACKING_STORAGE_NOT_FOUND Handle = 0xC05CFF0C + ERROR_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP Handle = 0xC05D0000 + ERROR_SMB_BAD_CLUSTER_DIALECT Handle = 0xC05D0001 + WININET_E_OUT_OF_HANDLES Handle = 0x80072EE1 + WININET_E_TIMEOUT Handle = 0x80072EE2 + WININET_E_EXTENDED_ERROR Handle = 0x80072EE3 + WININET_E_INTERNAL_ERROR Handle = 0x80072EE4 + WININET_E_INVALID_URL Handle = 0x80072EE5 + WININET_E_UNRECOGNIZED_SCHEME Handle = 0x80072EE6 + WININET_E_NAME_NOT_RESOLVED Handle = 0x80072EE7 + WININET_E_PROTOCOL_NOT_FOUND Handle = 0x80072EE8 + WININET_E_INVALID_OPTION Handle = 0x80072EE9 + WININET_E_BAD_OPTION_LENGTH Handle = 0x80072EEA + WININET_E_OPTION_NOT_SETTABLE Handle = 0x80072EEB + WININET_E_SHUTDOWN Handle = 0x80072EEC + WININET_E_INCORRECT_USER_NAME Handle = 0x80072EED + WININET_E_INCORRECT_PASSWORD Handle = 0x80072EEE + WININET_E_LOGIN_FAILURE Handle = 0x80072EEF + WININET_E_INVALID_OPERATION Handle = 0x80072EF0 + WININET_E_OPERATION_CANCELLED Handle = 0x80072EF1 + WININET_E_INCORRECT_HANDLE_TYPE Handle = 0x80072EF2 + WININET_E_INCORRECT_HANDLE_STATE Handle = 0x80072EF3 + WININET_E_NOT_PROXY_REQUEST Handle = 0x80072EF4 + WININET_E_REGISTRY_VALUE_NOT_FOUND Handle = 0x80072EF5 + WININET_E_BAD_REGISTRY_PARAMETER Handle = 0x80072EF6 + WININET_E_NO_DIRECT_ACCESS Handle = 0x80072EF7 + WININET_E_NO_CONTEXT Handle = 0x80072EF8 + WININET_E_NO_CALLBACK Handle = 0x80072EF9 + WININET_E_REQUEST_PENDING Handle = 0x80072EFA + WININET_E_INCORRECT_FORMAT Handle = 0x80072EFB + WININET_E_ITEM_NOT_FOUND Handle = 0x80072EFC + WININET_E_CANNOT_CONNECT Handle = 0x80072EFD + WININET_E_CONNECTION_ABORTED Handle = 0x80072EFE + WININET_E_CONNECTION_RESET Handle = 0x80072EFF + WININET_E_FORCE_RETRY Handle = 0x80072F00 + WININET_E_INVALID_PROXY_REQUEST Handle = 0x80072F01 + WININET_E_NEED_UI Handle = 0x80072F02 + WININET_E_HANDLE_EXISTS Handle = 0x80072F04 + WININET_E_SEC_CERT_DATE_INVALID Handle = 0x80072F05 + WININET_E_SEC_CERT_CN_INVALID Handle = 0x80072F06 + WININET_E_HTTP_TO_HTTPS_ON_REDIR Handle = 0x80072F07 + WININET_E_HTTPS_TO_HTTP_ON_REDIR Handle = 0x80072F08 + WININET_E_MIXED_SECURITY Handle = 0x80072F09 + WININET_E_CHG_POST_IS_NON_SECURE Handle = 0x80072F0A + WININET_E_POST_IS_NON_SECURE Handle = 0x80072F0B + WININET_E_CLIENT_AUTH_CERT_NEEDED Handle = 0x80072F0C + WININET_E_INVALID_CA Handle = 0x80072F0D + WININET_E_CLIENT_AUTH_NOT_SETUP Handle = 0x80072F0E + WININET_E_ASYNC_THREAD_FAILED Handle = 0x80072F0F + WININET_E_REDIRECT_SCHEME_CHANGE Handle = 0x80072F10 + WININET_E_DIALOG_PENDING Handle = 0x80072F11 + WININET_E_RETRY_DIALOG Handle = 0x80072F12 + WININET_E_NO_NEW_CONTAINERS Handle = 0x80072F13 + WININET_E_HTTPS_HTTP_SUBMIT_REDIR Handle = 0x80072F14 + WININET_E_SEC_CERT_ERRORS Handle = 0x80072F17 + WININET_E_SEC_CERT_REV_FAILED Handle = 0x80072F19 + WININET_E_HEADER_NOT_FOUND Handle = 0x80072F76 + WININET_E_DOWNLEVEL_SERVER Handle = 0x80072F77 + WININET_E_INVALID_SERVER_RESPONSE Handle = 0x80072F78 + WININET_E_INVALID_HEADER Handle = 0x80072F79 + WININET_E_INVALID_QUERY_REQUEST Handle = 0x80072F7A + WININET_E_HEADER_ALREADY_EXISTS Handle = 0x80072F7B + WININET_E_REDIRECT_FAILED Handle = 0x80072F7C + WININET_E_SECURITY_CHANNEL_ERROR Handle = 0x80072F7D + WININET_E_UNABLE_TO_CACHE_FILE Handle = 0x80072F7E + WININET_E_TCPIP_NOT_INSTALLED Handle = 0x80072F7F + WININET_E_DISCONNECTED Handle = 0x80072F83 + WININET_E_SERVER_UNREACHABLE Handle = 0x80072F84 + WININET_E_PROXY_SERVER_UNREACHABLE Handle = 0x80072F85 + WININET_E_BAD_AUTO_PROXY_SCRIPT Handle = 0x80072F86 + WININET_E_UNABLE_TO_DOWNLOAD_SCRIPT Handle = 0x80072F87 + WININET_E_SEC_INVALID_CERT Handle = 0x80072F89 + WININET_E_SEC_CERT_REVOKED Handle = 0x80072F8A + WININET_E_FAILED_DUETOSECURITYCHECK Handle = 0x80072F8B + WININET_E_NOT_INITIALIZED Handle = 0x80072F8C + WININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY Handle = 0x80072F8E + WININET_E_DECODING_FAILED Handle = 0x80072F8F + WININET_E_NOT_REDIRECTED Handle = 0x80072F80 + WININET_E_COOKIE_NEEDS_CONFIRMATION Handle = 0x80072F81 + WININET_E_COOKIE_DECLINED Handle = 0x80072F82 + WININET_E_REDIRECT_NEEDS_CONFIRMATION Handle = 0x80072F88 + SQLITE_E_ERROR Handle = 0x87AF0001 + SQLITE_E_INTERNAL Handle = 0x87AF0002 + SQLITE_E_PERM Handle = 0x87AF0003 + SQLITE_E_ABORT Handle = 0x87AF0004 + SQLITE_E_BUSY Handle = 0x87AF0005 + SQLITE_E_LOCKED Handle = 0x87AF0006 + SQLITE_E_NOMEM Handle = 0x87AF0007 + SQLITE_E_READONLY Handle = 0x87AF0008 + SQLITE_E_INTERRUPT Handle = 0x87AF0009 + SQLITE_E_IOERR Handle = 0x87AF000A + SQLITE_E_CORRUPT Handle = 0x87AF000B + SQLITE_E_NOTFOUND Handle = 0x87AF000C + SQLITE_E_FULL Handle = 0x87AF000D + SQLITE_E_CANTOPEN Handle = 0x87AF000E + SQLITE_E_PROTOCOL Handle = 0x87AF000F + SQLITE_E_EMPTY Handle = 0x87AF0010 + SQLITE_E_SCHEMA Handle = 0x87AF0011 + SQLITE_E_TOOBIG Handle = 0x87AF0012 + SQLITE_E_CONSTRAINT Handle = 0x87AF0013 + SQLITE_E_MISMATCH Handle = 0x87AF0014 + SQLITE_E_MISUSE Handle = 0x87AF0015 + SQLITE_E_NOLFS Handle = 0x87AF0016 + SQLITE_E_AUTH Handle = 0x87AF0017 + SQLITE_E_FORMAT Handle = 0x87AF0018 + SQLITE_E_RANGE Handle = 0x87AF0019 + SQLITE_E_NOTADB Handle = 0x87AF001A + SQLITE_E_NOTICE Handle = 0x87AF001B + SQLITE_E_WARNING Handle = 0x87AF001C + SQLITE_E_ROW Handle = 0x87AF0064 + SQLITE_E_DONE Handle = 0x87AF0065 + SQLITE_E_IOERR_READ Handle = 0x87AF010A + SQLITE_E_IOERR_SHORT_READ Handle = 0x87AF020A + SQLITE_E_IOERR_WRITE Handle = 0x87AF030A + SQLITE_E_IOERR_FSYNC Handle = 0x87AF040A + SQLITE_E_IOERR_DIR_FSYNC Handle = 0x87AF050A + SQLITE_E_IOERR_TRUNCATE Handle = 0x87AF060A + SQLITE_E_IOERR_FSTAT Handle = 0x87AF070A + SQLITE_E_IOERR_UNLOCK Handle = 0x87AF080A + SQLITE_E_IOERR_RDLOCK Handle = 0x87AF090A + SQLITE_E_IOERR_DELETE Handle = 0x87AF0A0A + SQLITE_E_IOERR_BLOCKED Handle = 0x87AF0B0A + SQLITE_E_IOERR_NOMEM Handle = 0x87AF0C0A + SQLITE_E_IOERR_ACCESS Handle = 0x87AF0D0A + SQLITE_E_IOERR_CHECKRESERVEDLOCK Handle = 0x87AF0E0A + SQLITE_E_IOERR_LOCK Handle = 0x87AF0F0A + SQLITE_E_IOERR_CLOSE Handle = 0x87AF100A + SQLITE_E_IOERR_DIR_CLOSE Handle = 0x87AF110A + SQLITE_E_IOERR_SHMOPEN Handle = 0x87AF120A + SQLITE_E_IOERR_SHMSIZE Handle = 0x87AF130A + SQLITE_E_IOERR_SHMLOCK Handle = 0x87AF140A + SQLITE_E_IOERR_SHMMAP Handle = 0x87AF150A + SQLITE_E_IOERR_SEEK Handle = 0x87AF160A + SQLITE_E_IOERR_DELETE_NOENT Handle = 0x87AF170A + SQLITE_E_IOERR_MMAP Handle = 0x87AF180A + SQLITE_E_IOERR_GETTEMPPATH Handle = 0x87AF190A + SQLITE_E_IOERR_CONVPATH Handle = 0x87AF1A0A + SQLITE_E_IOERR_VNODE Handle = 0x87AF1A02 + SQLITE_E_IOERR_AUTH Handle = 0x87AF1A03 + SQLITE_E_LOCKED_SHAREDCACHE Handle = 0x87AF0106 + SQLITE_E_BUSY_RECOVERY Handle = 0x87AF0105 + SQLITE_E_BUSY_SNAPSHOT Handle = 0x87AF0205 + SQLITE_E_CANTOPEN_NOTEMPDIR Handle = 0x87AF010E + SQLITE_E_CANTOPEN_ISDIR Handle = 0x87AF020E + SQLITE_E_CANTOPEN_FULLPATH Handle = 0x87AF030E + SQLITE_E_CANTOPEN_CONVPATH Handle = 0x87AF040E + SQLITE_E_CORRUPT_VTAB Handle = 0x87AF010B + SQLITE_E_READONLY_RECOVERY Handle = 0x87AF0108 + SQLITE_E_READONLY_CANTLOCK Handle = 0x87AF0208 + SQLITE_E_READONLY_ROLLBACK Handle = 0x87AF0308 + SQLITE_E_READONLY_DBMOVED Handle = 0x87AF0408 + SQLITE_E_ABORT_ROLLBACK Handle = 0x87AF0204 + SQLITE_E_CONSTRAINT_CHECK Handle = 0x87AF0113 + SQLITE_E_CONSTRAINT_COMMITHOOK Handle = 0x87AF0213 + SQLITE_E_CONSTRAINT_FOREIGNKEY Handle = 0x87AF0313 + SQLITE_E_CONSTRAINT_FUNCTION Handle = 0x87AF0413 + SQLITE_E_CONSTRAINT_NOTNULL Handle = 0x87AF0513 + SQLITE_E_CONSTRAINT_PRIMARYKEY Handle = 0x87AF0613 + SQLITE_E_CONSTRAINT_TRIGGER Handle = 0x87AF0713 + SQLITE_E_CONSTRAINT_UNIQUE Handle = 0x87AF0813 + SQLITE_E_CONSTRAINT_VTAB Handle = 0x87AF0913 + SQLITE_E_CONSTRAINT_ROWID Handle = 0x87AF0A13 + SQLITE_E_NOTICE_RECOVER_WAL Handle = 0x87AF011B + SQLITE_E_NOTICE_RECOVER_ROLLBACK Handle = 0x87AF021B + SQLITE_E_WARNING_AUTOINDEX Handle = 0x87AF011C + UTC_E_TOGGLE_TRACE_STARTED Handle = 0x87C51001 + UTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT Handle = 0x87C51002 + UTC_E_AOT_NOT_RUNNING Handle = 0x87C51003 + UTC_E_SCRIPT_TYPE_INVALID Handle = 0x87C51004 + UTC_E_SCENARIODEF_NOT_FOUND Handle = 0x87C51005 + UTC_E_TRACEPROFILE_NOT_FOUND Handle = 0x87C51006 + UTC_E_FORWARDER_ALREADY_ENABLED Handle = 0x87C51007 + UTC_E_FORWARDER_ALREADY_DISABLED Handle = 0x87C51008 + UTC_E_EVENTLOG_ENTRY_MALFORMED Handle = 0x87C51009 + UTC_E_DIAGRULES_SCHEMAVERSION_MISMATCH Handle = 0x87C5100A + UTC_E_SCRIPT_TERMINATED Handle = 0x87C5100B + UTC_E_INVALID_CUSTOM_FILTER Handle = 0x87C5100C + UTC_E_TRACE_NOT_RUNNING Handle = 0x87C5100D + UTC_E_REESCALATED_TOO_QUICKLY Handle = 0x87C5100E + UTC_E_ESCALATION_ALREADY_RUNNING Handle = 0x87C5100F + UTC_E_PERFTRACK_ALREADY_TRACING Handle = 0x87C51010 + UTC_E_REACHED_MAX_ESCALATIONS Handle = 0x87C51011 + UTC_E_FORWARDER_PRODUCER_MISMATCH Handle = 0x87C51012 + UTC_E_INTENTIONAL_SCRIPT_FAILURE Handle = 0x87C51013 + UTC_E_SQM_INIT_FAILED Handle = 0x87C51014 + UTC_E_NO_WER_LOGGER_SUPPORTED Handle = 0x87C51015 + UTC_E_TRACERS_DONT_EXIST Handle = 0x87C51016 + UTC_E_WINRT_INIT_FAILED Handle = 0x87C51017 + UTC_E_SCENARIODEF_SCHEMAVERSION_MISMATCH Handle = 0x87C51018 + UTC_E_INVALID_FILTER Handle = 0x87C51019 + UTC_E_EXE_TERMINATED Handle = 0x87C5101A + UTC_E_ESCALATION_NOT_AUTHORIZED Handle = 0x87C5101B + UTC_E_SETUP_NOT_AUTHORIZED Handle = 0x87C5101C + UTC_E_CHILD_PROCESS_FAILED Handle = 0x87C5101D + UTC_E_COMMAND_LINE_NOT_AUTHORIZED Handle = 0x87C5101E + UTC_E_CANNOT_LOAD_SCENARIO_EDITOR_XML Handle = 0x87C5101F + UTC_E_ESCALATION_TIMED_OUT Handle = 0x87C51020 + UTC_E_SETUP_TIMED_OUT Handle = 0x87C51021 + UTC_E_TRIGGER_MISMATCH Handle = 0x87C51022 + UTC_E_TRIGGER_NOT_FOUND Handle = 0x87C51023 + UTC_E_SIF_NOT_SUPPORTED Handle = 0x87C51024 + UTC_E_DELAY_TERMINATED Handle = 0x87C51025 + UTC_E_DEVICE_TICKET_ERROR Handle = 0x87C51026 + UTC_E_TRACE_BUFFER_LIMIT_EXCEEDED Handle = 0x87C51027 + UTC_E_API_RESULT_UNAVAILABLE Handle = 0x87C51028 + UTC_E_RPC_TIMEOUT Handle = 0x87C51029 + UTC_E_RPC_WAIT_FAILED Handle = 0x87C5102A + UTC_E_API_BUSY Handle = 0x87C5102B + UTC_E_TRACE_MIN_DURATION_REQUIREMENT_NOT_MET Handle = 0x87C5102C + UTC_E_EXCLUSIVITY_NOT_AVAILABLE Handle = 0x87C5102D + UTC_E_GETFILE_FILE_PATH_NOT_APPROVED Handle = 0x87C5102E + UTC_E_ESCALATION_DIRECTORY_ALREADY_EXISTS Handle = 0x87C5102F + UTC_E_TIME_TRIGGER_ON_START_INVALID Handle = 0x87C51030 + UTC_E_TIME_TRIGGER_ONLY_VALID_ON_SINGLE_TRANSITION Handle = 0x87C51031 + UTC_E_TIME_TRIGGER_INVALID_TIME_RANGE Handle = 0x87C51032 + UTC_E_MULTIPLE_TIME_TRIGGER_ON_SINGLE_STATE Handle = 0x87C51033 + UTC_E_BINARY_MISSING Handle = 0x87C51034 + UTC_E_NETWORK_CAPTURE_NOT_ALLOWED Handle = 0x87C51035 + UTC_E_FAILED_TO_RESOLVE_CONTAINER_ID Handle = 0x87C51036 + UTC_E_UNABLE_TO_RESOLVE_SESSION Handle = 0x87C51037 + UTC_E_THROTTLED Handle = 0x87C51038 + UTC_E_UNAPPROVED_SCRIPT Handle = 0x87C51039 + UTC_E_SCRIPT_MISSING Handle = 0x87C5103A + UTC_E_SCENARIO_THROTTLED Handle = 0x87C5103B + UTC_E_API_NOT_SUPPORTED Handle = 0x87C5103C + UTC_E_GETFILE_EXTERNAL_PATH_NOT_APPROVED Handle = 0x87C5103D + UTC_E_TRY_GET_SCENARIO_TIMEOUT_EXCEEDED Handle = 0x87C5103E + UTC_E_CERT_REV_FAILED Handle = 0x87C5103F + UTC_E_FAILED_TO_START_NDISCAP Handle = 0x87C51040 + UTC_E_KERNELDUMP_LIMIT_REACHED Handle = 0x87C51041 + UTC_E_MISSING_AGGREGATE_EVENT_TAG Handle = 0x87C51042 + UTC_E_INVALID_AGGREGATION_STRUCT Handle = 0x87C51043 + UTC_E_ACTION_NOT_SUPPORTED_IN_DESTINATION Handle = 0x87C51044 + UTC_E_FILTER_MISSING_ATTRIBUTE Handle = 0x87C51045 + UTC_E_FILTER_INVALID_TYPE Handle = 0x87C51046 + UTC_E_FILTER_VARIABLE_NOT_FOUND Handle = 0x87C51047 + UTC_E_FILTER_FUNCTION_RESTRICTED Handle = 0x87C51048 + UTC_E_FILTER_VERSION_MISMATCH Handle = 0x87C51049 + UTC_E_FILTER_INVALID_FUNCTION Handle = 0x87C51050 + UTC_E_FILTER_INVALID_FUNCTION_PARAMS Handle = 0x87C51051 + UTC_E_FILTER_INVALID_COMMAND Handle = 0x87C51052 + UTC_E_FILTER_ILLEGAL_EVAL Handle = 0x87C51053 + UTC_E_TTTRACER_RETURNED_ERROR Handle = 0x87C51054 + UTC_E_AGENT_DIAGNOSTICS_TOO_LARGE Handle = 0x87C51055 + UTC_E_FAILED_TO_RECEIVE_AGENT_DIAGNOSTICS Handle = 0x87C51056 + UTC_E_SCENARIO_HAS_NO_ACTIONS Handle = 0x87C51057 + UTC_E_TTTRACER_STORAGE_FULL Handle = 0x87C51058 + UTC_E_INSUFFICIENT_SPACE_TO_START_TRACE Handle = 0x87C51059 + UTC_E_ESCALATION_CANCELLED_AT_SHUTDOWN Handle = 0x87C5105A + UTC_E_GETFILEINFOACTION_FILE_NOT_APPROVED Handle = 0x87C5105B + UTC_E_SETREGKEYACTION_TYPE_NOT_APPROVED Handle = 0x87C5105C + WINML_ERR_INVALID_DEVICE Handle = 0x88900001 + WINML_ERR_INVALID_BINDING Handle = 0x88900002 + WINML_ERR_VALUE_NOTFOUND Handle = 0x88900003 + WINML_ERR_SIZE_MISMATCH Handle = 0x88900004 + STATUS_WAIT_0 NTStatus = 0x00000000 + STATUS_SUCCESS NTStatus = 0x00000000 + STATUS_WAIT_1 NTStatus = 0x00000001 + STATUS_WAIT_2 NTStatus = 0x00000002 + STATUS_WAIT_3 NTStatus = 0x00000003 + STATUS_WAIT_63 NTStatus = 0x0000003F + STATUS_ABANDONED NTStatus = 0x00000080 + STATUS_ABANDONED_WAIT_0 NTStatus = 0x00000080 + STATUS_ABANDONED_WAIT_63 NTStatus = 0x000000BF + STATUS_USER_APC NTStatus = 0x000000C0 + STATUS_ALREADY_COMPLETE NTStatus = 0x000000FF + STATUS_KERNEL_APC NTStatus = 0x00000100 + STATUS_ALERTED NTStatus = 0x00000101 + STATUS_TIMEOUT NTStatus = 0x00000102 + STATUS_PENDING NTStatus = 0x00000103 + STATUS_REPARSE NTStatus = 0x00000104 + STATUS_MORE_ENTRIES NTStatus = 0x00000105 + STATUS_NOT_ALL_ASSIGNED NTStatus = 0x00000106 + STATUS_SOME_NOT_MAPPED NTStatus = 0x00000107 + STATUS_OPLOCK_BREAK_IN_PROGRESS NTStatus = 0x00000108 + STATUS_VOLUME_MOUNTED NTStatus = 0x00000109 + STATUS_RXACT_COMMITTED NTStatus = 0x0000010A + STATUS_NOTIFY_CLEANUP NTStatus = 0x0000010B + STATUS_NOTIFY_ENUM_DIR NTStatus = 0x0000010C + STATUS_NO_QUOTAS_FOR_ACCOUNT NTStatus = 0x0000010D + STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED NTStatus = 0x0000010E + STATUS_PAGE_FAULT_TRANSITION NTStatus = 0x00000110 + STATUS_PAGE_FAULT_DEMAND_ZERO NTStatus = 0x00000111 + STATUS_PAGE_FAULT_COPY_ON_WRITE NTStatus = 0x00000112 + STATUS_PAGE_FAULT_GUARD_PAGE NTStatus = 0x00000113 + STATUS_PAGE_FAULT_PAGING_FILE NTStatus = 0x00000114 + STATUS_CACHE_PAGE_LOCKED NTStatus = 0x00000115 + STATUS_CRASH_DUMP NTStatus = 0x00000116 + STATUS_BUFFER_ALL_ZEROS NTStatus = 0x00000117 + STATUS_REPARSE_OBJECT NTStatus = 0x00000118 + STATUS_RESOURCE_REQUIREMENTS_CHANGED NTStatus = 0x00000119 + STATUS_TRANSLATION_COMPLETE NTStatus = 0x00000120 + STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY NTStatus = 0x00000121 + STATUS_NOTHING_TO_TERMINATE NTStatus = 0x00000122 + STATUS_PROCESS_NOT_IN_JOB NTStatus = 0x00000123 + STATUS_PROCESS_IN_JOB NTStatus = 0x00000124 + STATUS_VOLSNAP_HIBERNATE_READY NTStatus = 0x00000125 + STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY NTStatus = 0x00000126 + STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED NTStatus = 0x00000127 + STATUS_INTERRUPT_STILL_CONNECTED NTStatus = 0x00000128 + STATUS_PROCESS_CLONED NTStatus = 0x00000129 + STATUS_FILE_LOCKED_WITH_ONLY_READERS NTStatus = 0x0000012A + STATUS_FILE_LOCKED_WITH_WRITERS NTStatus = 0x0000012B + STATUS_VALID_IMAGE_HASH NTStatus = 0x0000012C + STATUS_VALID_CATALOG_HASH NTStatus = 0x0000012D + STATUS_VALID_STRONG_CODE_HASH NTStatus = 0x0000012E + STATUS_GHOSTED NTStatus = 0x0000012F + STATUS_DATA_OVERWRITTEN NTStatus = 0x00000130 + STATUS_RESOURCEMANAGER_READ_ONLY NTStatus = 0x00000202 + STATUS_RING_PREVIOUSLY_EMPTY NTStatus = 0x00000210 + STATUS_RING_PREVIOUSLY_FULL NTStatus = 0x00000211 + STATUS_RING_PREVIOUSLY_ABOVE_QUOTA NTStatus = 0x00000212 + STATUS_RING_NEWLY_EMPTY NTStatus = 0x00000213 + STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT NTStatus = 0x00000214 + STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE NTStatus = 0x00000215 + STATUS_OPLOCK_HANDLE_CLOSED NTStatus = 0x00000216 + STATUS_WAIT_FOR_OPLOCK NTStatus = 0x00000367 + STATUS_REPARSE_GLOBAL NTStatus = 0x00000368 + STATUS_FLT_IO_COMPLETE NTStatus = 0x001C0001 + STATUS_OBJECT_NAME_EXISTS NTStatus = 0x40000000 + STATUS_THREAD_WAS_SUSPENDED NTStatus = 0x40000001 + STATUS_WORKING_SET_LIMIT_RANGE NTStatus = 0x40000002 + STATUS_IMAGE_NOT_AT_BASE NTStatus = 0x40000003 + STATUS_RXACT_STATE_CREATED NTStatus = 0x40000004 + STATUS_SEGMENT_NOTIFICATION NTStatus = 0x40000005 + STATUS_LOCAL_USER_SESSION_KEY NTStatus = 0x40000006 + STATUS_BAD_CURRENT_DIRECTORY NTStatus = 0x40000007 + STATUS_SERIAL_MORE_WRITES NTStatus = 0x40000008 + STATUS_REGISTRY_RECOVERED NTStatus = 0x40000009 + STATUS_FT_READ_RECOVERY_FROM_BACKUP NTStatus = 0x4000000A + STATUS_FT_WRITE_RECOVERY NTStatus = 0x4000000B + STATUS_SERIAL_COUNTER_TIMEOUT NTStatus = 0x4000000C + STATUS_NULL_LM_PASSWORD NTStatus = 0x4000000D + STATUS_IMAGE_MACHINE_TYPE_MISMATCH NTStatus = 0x4000000E + STATUS_RECEIVE_PARTIAL NTStatus = 0x4000000F + STATUS_RECEIVE_EXPEDITED NTStatus = 0x40000010 + STATUS_RECEIVE_PARTIAL_EXPEDITED NTStatus = 0x40000011 + STATUS_EVENT_DONE NTStatus = 0x40000012 + STATUS_EVENT_PENDING NTStatus = 0x40000013 + STATUS_CHECKING_FILE_SYSTEM NTStatus = 0x40000014 + STATUS_FATAL_APP_EXIT NTStatus = 0x40000015 + STATUS_PREDEFINED_HANDLE NTStatus = 0x40000016 + STATUS_WAS_UNLOCKED NTStatus = 0x40000017 + STATUS_SERVICE_NOTIFICATION NTStatus = 0x40000018 + STATUS_WAS_LOCKED NTStatus = 0x40000019 + STATUS_LOG_HARD_ERROR NTStatus = 0x4000001A + STATUS_ALREADY_WIN32 NTStatus = 0x4000001B + STATUS_WX86_UNSIMULATE NTStatus = 0x4000001C + STATUS_WX86_CONTINUE NTStatus = 0x4000001D + STATUS_WX86_SINGLE_STEP NTStatus = 0x4000001E + STATUS_WX86_BREAKPOINT NTStatus = 0x4000001F + STATUS_WX86_EXCEPTION_CONTINUE NTStatus = 0x40000020 + STATUS_WX86_EXCEPTION_LASTCHANCE NTStatus = 0x40000021 + STATUS_WX86_EXCEPTION_CHAIN NTStatus = 0x40000022 + STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE NTStatus = 0x40000023 + STATUS_NO_YIELD_PERFORMED NTStatus = 0x40000024 + STATUS_TIMER_RESUME_IGNORED NTStatus = 0x40000025 + STATUS_ARBITRATION_UNHANDLED NTStatus = 0x40000026 + STATUS_CARDBUS_NOT_SUPPORTED NTStatus = 0x40000027 + STATUS_WX86_CREATEWX86TIB NTStatus = 0x40000028 + STATUS_MP_PROCESSOR_MISMATCH NTStatus = 0x40000029 + STATUS_HIBERNATED NTStatus = 0x4000002A + STATUS_RESUME_HIBERNATION NTStatus = 0x4000002B + STATUS_FIRMWARE_UPDATED NTStatus = 0x4000002C + STATUS_DRIVERS_LEAKING_LOCKED_PAGES NTStatus = 0x4000002D + STATUS_MESSAGE_RETRIEVED NTStatus = 0x4000002E + STATUS_SYSTEM_POWERSTATE_TRANSITION NTStatus = 0x4000002F + STATUS_ALPC_CHECK_COMPLETION_LIST NTStatus = 0x40000030 + STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION NTStatus = 0x40000031 + STATUS_ACCESS_AUDIT_BY_POLICY NTStatus = 0x40000032 + STATUS_ABANDON_HIBERFILE NTStatus = 0x40000033 + STATUS_BIZRULES_NOT_ENABLED NTStatus = 0x40000034 + STATUS_FT_READ_FROM_COPY NTStatus = 0x40000035 + STATUS_IMAGE_AT_DIFFERENT_BASE NTStatus = 0x40000036 + STATUS_PATCH_DEFERRED NTStatus = 0x40000037 + STATUS_HEURISTIC_DAMAGE_POSSIBLE NTStatus = 0x40190001 + STATUS_GUARD_PAGE_VIOLATION NTStatus = 0x80000001 + STATUS_DATATYPE_MISALIGNMENT NTStatus = 0x80000002 + STATUS_BREAKPOINT NTStatus = 0x80000003 + STATUS_SINGLE_STEP NTStatus = 0x80000004 + STATUS_BUFFER_OVERFLOW NTStatus = 0x80000005 + STATUS_NO_MORE_FILES NTStatus = 0x80000006 + STATUS_WAKE_SYSTEM_DEBUGGER NTStatus = 0x80000007 + STATUS_HANDLES_CLOSED NTStatus = 0x8000000A + STATUS_NO_INHERITANCE NTStatus = 0x8000000B + STATUS_GUID_SUBSTITUTION_MADE NTStatus = 0x8000000C + STATUS_PARTIAL_COPY NTStatus = 0x8000000D + STATUS_DEVICE_PAPER_EMPTY NTStatus = 0x8000000E + STATUS_DEVICE_POWERED_OFF NTStatus = 0x8000000F + STATUS_DEVICE_OFF_LINE NTStatus = 0x80000010 + STATUS_DEVICE_BUSY NTStatus = 0x80000011 + STATUS_NO_MORE_EAS NTStatus = 0x80000012 + STATUS_INVALID_EA_NAME NTStatus = 0x80000013 + STATUS_EA_LIST_INCONSISTENT NTStatus = 0x80000014 + STATUS_INVALID_EA_FLAG NTStatus = 0x80000015 + STATUS_VERIFY_REQUIRED NTStatus = 0x80000016 + STATUS_EXTRANEOUS_INFORMATION NTStatus = 0x80000017 + STATUS_RXACT_COMMIT_NECESSARY NTStatus = 0x80000018 + STATUS_NO_MORE_ENTRIES NTStatus = 0x8000001A + STATUS_FILEMARK_DETECTED NTStatus = 0x8000001B + STATUS_MEDIA_CHANGED NTStatus = 0x8000001C + STATUS_BUS_RESET NTStatus = 0x8000001D + STATUS_END_OF_MEDIA NTStatus = 0x8000001E + STATUS_BEGINNING_OF_MEDIA NTStatus = 0x8000001F + STATUS_MEDIA_CHECK NTStatus = 0x80000020 + STATUS_SETMARK_DETECTED NTStatus = 0x80000021 + STATUS_NO_DATA_DETECTED NTStatus = 0x80000022 + STATUS_REDIRECTOR_HAS_OPEN_HANDLES NTStatus = 0x80000023 + STATUS_SERVER_HAS_OPEN_HANDLES NTStatus = 0x80000024 + STATUS_ALREADY_DISCONNECTED NTStatus = 0x80000025 + STATUS_LONGJUMP NTStatus = 0x80000026 + STATUS_CLEANER_CARTRIDGE_INSTALLED NTStatus = 0x80000027 + STATUS_PLUGPLAY_QUERY_VETOED NTStatus = 0x80000028 + STATUS_UNWIND_CONSOLIDATE NTStatus = 0x80000029 + STATUS_REGISTRY_HIVE_RECOVERED NTStatus = 0x8000002A + STATUS_DLL_MIGHT_BE_INSECURE NTStatus = 0x8000002B + STATUS_DLL_MIGHT_BE_INCOMPATIBLE NTStatus = 0x8000002C + STATUS_STOPPED_ON_SYMLINK NTStatus = 0x8000002D + STATUS_CANNOT_GRANT_REQUESTED_OPLOCK NTStatus = 0x8000002E + STATUS_NO_ACE_CONDITION NTStatus = 0x8000002F + STATUS_DEVICE_SUPPORT_IN_PROGRESS NTStatus = 0x80000030 + STATUS_DEVICE_POWER_CYCLE_REQUIRED NTStatus = 0x80000031 + STATUS_NO_WORK_DONE NTStatus = 0x80000032 + STATUS_CLUSTER_NODE_ALREADY_UP NTStatus = 0x80130001 + STATUS_CLUSTER_NODE_ALREADY_DOWN NTStatus = 0x80130002 + STATUS_CLUSTER_NETWORK_ALREADY_ONLINE NTStatus = 0x80130003 + STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE NTStatus = 0x80130004 + STATUS_CLUSTER_NODE_ALREADY_MEMBER NTStatus = 0x80130005 + STATUS_FLT_BUFFER_TOO_SMALL NTStatus = 0x801C0001 + STATUS_FVE_PARTIAL_METADATA NTStatus = 0x80210001 + STATUS_FVE_TRANSIENT_STATE NTStatus = 0x80210002 + STATUS_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH NTStatus = 0x8000CF00 + STATUS_UNSUCCESSFUL NTStatus = 0xC0000001 + STATUS_NOT_IMPLEMENTED NTStatus = 0xC0000002 + STATUS_INVALID_INFO_CLASS NTStatus = 0xC0000003 + STATUS_INFO_LENGTH_MISMATCH NTStatus = 0xC0000004 + STATUS_ACCESS_VIOLATION NTStatus = 0xC0000005 + STATUS_IN_PAGE_ERROR NTStatus = 0xC0000006 + STATUS_PAGEFILE_QUOTA NTStatus = 0xC0000007 + STATUS_INVALID_HANDLE NTStatus = 0xC0000008 + STATUS_BAD_INITIAL_STACK NTStatus = 0xC0000009 + STATUS_BAD_INITIAL_PC NTStatus = 0xC000000A + STATUS_INVALID_CID NTStatus = 0xC000000B + STATUS_TIMER_NOT_CANCELED NTStatus = 0xC000000C + STATUS_INVALID_PARAMETER NTStatus = 0xC000000D + STATUS_NO_SUCH_DEVICE NTStatus = 0xC000000E + STATUS_NO_SUCH_FILE NTStatus = 0xC000000F + STATUS_INVALID_DEVICE_REQUEST NTStatus = 0xC0000010 + STATUS_END_OF_FILE NTStatus = 0xC0000011 + STATUS_WRONG_VOLUME NTStatus = 0xC0000012 + STATUS_NO_MEDIA_IN_DEVICE NTStatus = 0xC0000013 + STATUS_UNRECOGNIZED_MEDIA NTStatus = 0xC0000014 + STATUS_NONEXISTENT_SECTOR NTStatus = 0xC0000015 + STATUS_MORE_PROCESSING_REQUIRED NTStatus = 0xC0000016 + STATUS_NO_MEMORY NTStatus = 0xC0000017 + STATUS_CONFLICTING_ADDRESSES NTStatus = 0xC0000018 + STATUS_NOT_MAPPED_VIEW NTStatus = 0xC0000019 + STATUS_UNABLE_TO_FREE_VM NTStatus = 0xC000001A + STATUS_UNABLE_TO_DELETE_SECTION NTStatus = 0xC000001B + STATUS_INVALID_SYSTEM_SERVICE NTStatus = 0xC000001C + STATUS_ILLEGAL_INSTRUCTION NTStatus = 0xC000001D + STATUS_INVALID_LOCK_SEQUENCE NTStatus = 0xC000001E + STATUS_INVALID_VIEW_SIZE NTStatus = 0xC000001F + STATUS_INVALID_FILE_FOR_SECTION NTStatus = 0xC0000020 + STATUS_ALREADY_COMMITTED NTStatus = 0xC0000021 + STATUS_ACCESS_DENIED NTStatus = 0xC0000022 + STATUS_BUFFER_TOO_SMALL NTStatus = 0xC0000023 + STATUS_OBJECT_TYPE_MISMATCH NTStatus = 0xC0000024 + STATUS_NONCONTINUABLE_EXCEPTION NTStatus = 0xC0000025 + STATUS_INVALID_DISPOSITION NTStatus = 0xC0000026 + STATUS_UNWIND NTStatus = 0xC0000027 + STATUS_BAD_STACK NTStatus = 0xC0000028 + STATUS_INVALID_UNWIND_TARGET NTStatus = 0xC0000029 + STATUS_NOT_LOCKED NTStatus = 0xC000002A + STATUS_PARITY_ERROR NTStatus = 0xC000002B + STATUS_UNABLE_TO_DECOMMIT_VM NTStatus = 0xC000002C + STATUS_NOT_COMMITTED NTStatus = 0xC000002D + STATUS_INVALID_PORT_ATTRIBUTES NTStatus = 0xC000002E + STATUS_PORT_MESSAGE_TOO_LONG NTStatus = 0xC000002F + STATUS_INVALID_PARAMETER_MIX NTStatus = 0xC0000030 + STATUS_INVALID_QUOTA_LOWER NTStatus = 0xC0000031 + STATUS_DISK_CORRUPT_ERROR NTStatus = 0xC0000032 + STATUS_OBJECT_NAME_INVALID NTStatus = 0xC0000033 + STATUS_OBJECT_NAME_NOT_FOUND NTStatus = 0xC0000034 + STATUS_OBJECT_NAME_COLLISION NTStatus = 0xC0000035 + STATUS_PORT_DO_NOT_DISTURB NTStatus = 0xC0000036 + STATUS_PORT_DISCONNECTED NTStatus = 0xC0000037 + STATUS_DEVICE_ALREADY_ATTACHED NTStatus = 0xC0000038 + STATUS_OBJECT_PATH_INVALID NTStatus = 0xC0000039 + STATUS_OBJECT_PATH_NOT_FOUND NTStatus = 0xC000003A + STATUS_OBJECT_PATH_SYNTAX_BAD NTStatus = 0xC000003B + STATUS_DATA_OVERRUN NTStatus = 0xC000003C + STATUS_DATA_LATE_ERROR NTStatus = 0xC000003D + STATUS_DATA_ERROR NTStatus = 0xC000003E + STATUS_CRC_ERROR NTStatus = 0xC000003F + STATUS_SECTION_TOO_BIG NTStatus = 0xC0000040 + STATUS_PORT_CONNECTION_REFUSED NTStatus = 0xC0000041 + STATUS_INVALID_PORT_HANDLE NTStatus = 0xC0000042 + STATUS_SHARING_VIOLATION NTStatus = 0xC0000043 + STATUS_QUOTA_EXCEEDED NTStatus = 0xC0000044 + STATUS_INVALID_PAGE_PROTECTION NTStatus = 0xC0000045 + STATUS_MUTANT_NOT_OWNED NTStatus = 0xC0000046 + STATUS_SEMAPHORE_LIMIT_EXCEEDED NTStatus = 0xC0000047 + STATUS_PORT_ALREADY_SET NTStatus = 0xC0000048 + STATUS_SECTION_NOT_IMAGE NTStatus = 0xC0000049 + STATUS_SUSPEND_COUNT_EXCEEDED NTStatus = 0xC000004A + STATUS_THREAD_IS_TERMINATING NTStatus = 0xC000004B + STATUS_BAD_WORKING_SET_LIMIT NTStatus = 0xC000004C + STATUS_INCOMPATIBLE_FILE_MAP NTStatus = 0xC000004D + STATUS_SECTION_PROTECTION NTStatus = 0xC000004E + STATUS_EAS_NOT_SUPPORTED NTStatus = 0xC000004F + STATUS_EA_TOO_LARGE NTStatus = 0xC0000050 + STATUS_NONEXISTENT_EA_ENTRY NTStatus = 0xC0000051 + STATUS_NO_EAS_ON_FILE NTStatus = 0xC0000052 + STATUS_EA_CORRUPT_ERROR NTStatus = 0xC0000053 + STATUS_FILE_LOCK_CONFLICT NTStatus = 0xC0000054 + STATUS_LOCK_NOT_GRANTED NTStatus = 0xC0000055 + STATUS_DELETE_PENDING NTStatus = 0xC0000056 + STATUS_CTL_FILE_NOT_SUPPORTED NTStatus = 0xC0000057 + STATUS_UNKNOWN_REVISION NTStatus = 0xC0000058 + STATUS_REVISION_MISMATCH NTStatus = 0xC0000059 + STATUS_INVALID_OWNER NTStatus = 0xC000005A + STATUS_INVALID_PRIMARY_GROUP NTStatus = 0xC000005B + STATUS_NO_IMPERSONATION_TOKEN NTStatus = 0xC000005C + STATUS_CANT_DISABLE_MANDATORY NTStatus = 0xC000005D + STATUS_NO_LOGON_SERVERS NTStatus = 0xC000005E + STATUS_NO_SUCH_LOGON_SESSION NTStatus = 0xC000005F + STATUS_NO_SUCH_PRIVILEGE NTStatus = 0xC0000060 + STATUS_PRIVILEGE_NOT_HELD NTStatus = 0xC0000061 + STATUS_INVALID_ACCOUNT_NAME NTStatus = 0xC0000062 + STATUS_USER_EXISTS NTStatus = 0xC0000063 + STATUS_NO_SUCH_USER NTStatus = 0xC0000064 + STATUS_GROUP_EXISTS NTStatus = 0xC0000065 + STATUS_NO_SUCH_GROUP NTStatus = 0xC0000066 + STATUS_MEMBER_IN_GROUP NTStatus = 0xC0000067 + STATUS_MEMBER_NOT_IN_GROUP NTStatus = 0xC0000068 + STATUS_LAST_ADMIN NTStatus = 0xC0000069 + STATUS_WRONG_PASSWORD NTStatus = 0xC000006A + STATUS_ILL_FORMED_PASSWORD NTStatus = 0xC000006B + STATUS_PASSWORD_RESTRICTION NTStatus = 0xC000006C + STATUS_LOGON_FAILURE NTStatus = 0xC000006D + STATUS_ACCOUNT_RESTRICTION NTStatus = 0xC000006E + STATUS_INVALID_LOGON_HOURS NTStatus = 0xC000006F + STATUS_INVALID_WORKSTATION NTStatus = 0xC0000070 + STATUS_PASSWORD_EXPIRED NTStatus = 0xC0000071 + STATUS_ACCOUNT_DISABLED NTStatus = 0xC0000072 + STATUS_NONE_MAPPED NTStatus = 0xC0000073 + STATUS_TOO_MANY_LUIDS_REQUESTED NTStatus = 0xC0000074 + STATUS_LUIDS_EXHAUSTED NTStatus = 0xC0000075 + STATUS_INVALID_SUB_AUTHORITY NTStatus = 0xC0000076 + STATUS_INVALID_ACL NTStatus = 0xC0000077 + STATUS_INVALID_SID NTStatus = 0xC0000078 + STATUS_INVALID_SECURITY_DESCR NTStatus = 0xC0000079 + STATUS_PROCEDURE_NOT_FOUND NTStatus = 0xC000007A + STATUS_INVALID_IMAGE_FORMAT NTStatus = 0xC000007B + STATUS_NO_TOKEN NTStatus = 0xC000007C + STATUS_BAD_INHERITANCE_ACL NTStatus = 0xC000007D + STATUS_RANGE_NOT_LOCKED NTStatus = 0xC000007E + STATUS_DISK_FULL NTStatus = 0xC000007F + STATUS_SERVER_DISABLED NTStatus = 0xC0000080 + STATUS_SERVER_NOT_DISABLED NTStatus = 0xC0000081 + STATUS_TOO_MANY_GUIDS_REQUESTED NTStatus = 0xC0000082 + STATUS_GUIDS_EXHAUSTED NTStatus = 0xC0000083 + STATUS_INVALID_ID_AUTHORITY NTStatus = 0xC0000084 + STATUS_AGENTS_EXHAUSTED NTStatus = 0xC0000085 + STATUS_INVALID_VOLUME_LABEL NTStatus = 0xC0000086 + STATUS_SECTION_NOT_EXTENDED NTStatus = 0xC0000087 + STATUS_NOT_MAPPED_DATA NTStatus = 0xC0000088 + STATUS_RESOURCE_DATA_NOT_FOUND NTStatus = 0xC0000089 + STATUS_RESOURCE_TYPE_NOT_FOUND NTStatus = 0xC000008A + STATUS_RESOURCE_NAME_NOT_FOUND NTStatus = 0xC000008B + STATUS_ARRAY_BOUNDS_EXCEEDED NTStatus = 0xC000008C + STATUS_FLOAT_DENORMAL_OPERAND NTStatus = 0xC000008D + STATUS_FLOAT_DIVIDE_BY_ZERO NTStatus = 0xC000008E + STATUS_FLOAT_INEXACT_RESULT NTStatus = 0xC000008F + STATUS_FLOAT_INVALID_OPERATION NTStatus = 0xC0000090 + STATUS_FLOAT_OVERFLOW NTStatus = 0xC0000091 + STATUS_FLOAT_STACK_CHECK NTStatus = 0xC0000092 + STATUS_FLOAT_UNDERFLOW NTStatus = 0xC0000093 + STATUS_INTEGER_DIVIDE_BY_ZERO NTStatus = 0xC0000094 + STATUS_INTEGER_OVERFLOW NTStatus = 0xC0000095 + STATUS_PRIVILEGED_INSTRUCTION NTStatus = 0xC0000096 + STATUS_TOO_MANY_PAGING_FILES NTStatus = 0xC0000097 + STATUS_FILE_INVALID NTStatus = 0xC0000098 + STATUS_ALLOTTED_SPACE_EXCEEDED NTStatus = 0xC0000099 + STATUS_INSUFFICIENT_RESOURCES NTStatus = 0xC000009A + STATUS_DFS_EXIT_PATH_FOUND NTStatus = 0xC000009B + STATUS_DEVICE_DATA_ERROR NTStatus = 0xC000009C + STATUS_DEVICE_NOT_CONNECTED NTStatus = 0xC000009D + STATUS_DEVICE_POWER_FAILURE NTStatus = 0xC000009E + STATUS_FREE_VM_NOT_AT_BASE NTStatus = 0xC000009F + STATUS_MEMORY_NOT_ALLOCATED NTStatus = 0xC00000A0 + STATUS_WORKING_SET_QUOTA NTStatus = 0xC00000A1 + STATUS_MEDIA_WRITE_PROTECTED NTStatus = 0xC00000A2 + STATUS_DEVICE_NOT_READY NTStatus = 0xC00000A3 + STATUS_INVALID_GROUP_ATTRIBUTES NTStatus = 0xC00000A4 + STATUS_BAD_IMPERSONATION_LEVEL NTStatus = 0xC00000A5 + STATUS_CANT_OPEN_ANONYMOUS NTStatus = 0xC00000A6 + STATUS_BAD_VALIDATION_CLASS NTStatus = 0xC00000A7 + STATUS_BAD_TOKEN_TYPE NTStatus = 0xC00000A8 + STATUS_BAD_MASTER_BOOT_RECORD NTStatus = 0xC00000A9 + STATUS_INSTRUCTION_MISALIGNMENT NTStatus = 0xC00000AA + STATUS_INSTANCE_NOT_AVAILABLE NTStatus = 0xC00000AB + STATUS_PIPE_NOT_AVAILABLE NTStatus = 0xC00000AC + STATUS_INVALID_PIPE_STATE NTStatus = 0xC00000AD + STATUS_PIPE_BUSY NTStatus = 0xC00000AE + STATUS_ILLEGAL_FUNCTION NTStatus = 0xC00000AF + STATUS_PIPE_DISCONNECTED NTStatus = 0xC00000B0 + STATUS_PIPE_CLOSING NTStatus = 0xC00000B1 + STATUS_PIPE_CONNECTED NTStatus = 0xC00000B2 + STATUS_PIPE_LISTENING NTStatus = 0xC00000B3 + STATUS_INVALID_READ_MODE NTStatus = 0xC00000B4 + STATUS_IO_TIMEOUT NTStatus = 0xC00000B5 + STATUS_FILE_FORCED_CLOSED NTStatus = 0xC00000B6 + STATUS_PROFILING_NOT_STARTED NTStatus = 0xC00000B7 + STATUS_PROFILING_NOT_STOPPED NTStatus = 0xC00000B8 + STATUS_COULD_NOT_INTERPRET NTStatus = 0xC00000B9 + STATUS_FILE_IS_A_DIRECTORY NTStatus = 0xC00000BA + STATUS_NOT_SUPPORTED NTStatus = 0xC00000BB + STATUS_REMOTE_NOT_LISTENING NTStatus = 0xC00000BC + STATUS_DUPLICATE_NAME NTStatus = 0xC00000BD + STATUS_BAD_NETWORK_PATH NTStatus = 0xC00000BE + STATUS_NETWORK_BUSY NTStatus = 0xC00000BF + STATUS_DEVICE_DOES_NOT_EXIST NTStatus = 0xC00000C0 + STATUS_TOO_MANY_COMMANDS NTStatus = 0xC00000C1 + STATUS_ADAPTER_HARDWARE_ERROR NTStatus = 0xC00000C2 + STATUS_INVALID_NETWORK_RESPONSE NTStatus = 0xC00000C3 + STATUS_UNEXPECTED_NETWORK_ERROR NTStatus = 0xC00000C4 + STATUS_BAD_REMOTE_ADAPTER NTStatus = 0xC00000C5 + STATUS_PRINT_QUEUE_FULL NTStatus = 0xC00000C6 + STATUS_NO_SPOOL_SPACE NTStatus = 0xC00000C7 + STATUS_PRINT_CANCELLED NTStatus = 0xC00000C8 + STATUS_NETWORK_NAME_DELETED NTStatus = 0xC00000C9 + STATUS_NETWORK_ACCESS_DENIED NTStatus = 0xC00000CA + STATUS_BAD_DEVICE_TYPE NTStatus = 0xC00000CB + STATUS_BAD_NETWORK_NAME NTStatus = 0xC00000CC + STATUS_TOO_MANY_NAMES NTStatus = 0xC00000CD + STATUS_TOO_MANY_SESSIONS NTStatus = 0xC00000CE + STATUS_SHARING_PAUSED NTStatus = 0xC00000CF + STATUS_REQUEST_NOT_ACCEPTED NTStatus = 0xC00000D0 + STATUS_REDIRECTOR_PAUSED NTStatus = 0xC00000D1 + STATUS_NET_WRITE_FAULT NTStatus = 0xC00000D2 + STATUS_PROFILING_AT_LIMIT NTStatus = 0xC00000D3 + STATUS_NOT_SAME_DEVICE NTStatus = 0xC00000D4 + STATUS_FILE_RENAMED NTStatus = 0xC00000D5 + STATUS_VIRTUAL_CIRCUIT_CLOSED NTStatus = 0xC00000D6 + STATUS_NO_SECURITY_ON_OBJECT NTStatus = 0xC00000D7 + STATUS_CANT_WAIT NTStatus = 0xC00000D8 + STATUS_PIPE_EMPTY NTStatus = 0xC00000D9 + STATUS_CANT_ACCESS_DOMAIN_INFO NTStatus = 0xC00000DA + STATUS_CANT_TERMINATE_SELF NTStatus = 0xC00000DB + STATUS_INVALID_SERVER_STATE NTStatus = 0xC00000DC + STATUS_INVALID_DOMAIN_STATE NTStatus = 0xC00000DD + STATUS_INVALID_DOMAIN_ROLE NTStatus = 0xC00000DE + STATUS_NO_SUCH_DOMAIN NTStatus = 0xC00000DF + STATUS_DOMAIN_EXISTS NTStatus = 0xC00000E0 + STATUS_DOMAIN_LIMIT_EXCEEDED NTStatus = 0xC00000E1 + STATUS_OPLOCK_NOT_GRANTED NTStatus = 0xC00000E2 + STATUS_INVALID_OPLOCK_PROTOCOL NTStatus = 0xC00000E3 + STATUS_INTERNAL_DB_CORRUPTION NTStatus = 0xC00000E4 + STATUS_INTERNAL_ERROR NTStatus = 0xC00000E5 + STATUS_GENERIC_NOT_MAPPED NTStatus = 0xC00000E6 + STATUS_BAD_DESCRIPTOR_FORMAT NTStatus = 0xC00000E7 + STATUS_INVALID_USER_BUFFER NTStatus = 0xC00000E8 + STATUS_UNEXPECTED_IO_ERROR NTStatus = 0xC00000E9 + STATUS_UNEXPECTED_MM_CREATE_ERR NTStatus = 0xC00000EA + STATUS_UNEXPECTED_MM_MAP_ERROR NTStatus = 0xC00000EB + STATUS_UNEXPECTED_MM_EXTEND_ERR NTStatus = 0xC00000EC + STATUS_NOT_LOGON_PROCESS NTStatus = 0xC00000ED + STATUS_LOGON_SESSION_EXISTS NTStatus = 0xC00000EE + STATUS_INVALID_PARAMETER_1 NTStatus = 0xC00000EF + STATUS_INVALID_PARAMETER_2 NTStatus = 0xC00000F0 + STATUS_INVALID_PARAMETER_3 NTStatus = 0xC00000F1 + STATUS_INVALID_PARAMETER_4 NTStatus = 0xC00000F2 + STATUS_INVALID_PARAMETER_5 NTStatus = 0xC00000F3 + STATUS_INVALID_PARAMETER_6 NTStatus = 0xC00000F4 + STATUS_INVALID_PARAMETER_7 NTStatus = 0xC00000F5 + STATUS_INVALID_PARAMETER_8 NTStatus = 0xC00000F6 + STATUS_INVALID_PARAMETER_9 NTStatus = 0xC00000F7 + STATUS_INVALID_PARAMETER_10 NTStatus = 0xC00000F8 + STATUS_INVALID_PARAMETER_11 NTStatus = 0xC00000F9 + STATUS_INVALID_PARAMETER_12 NTStatus = 0xC00000FA + STATUS_REDIRECTOR_NOT_STARTED NTStatus = 0xC00000FB + STATUS_REDIRECTOR_STARTED NTStatus = 0xC00000FC + STATUS_STACK_OVERFLOW NTStatus = 0xC00000FD + STATUS_NO_SUCH_PACKAGE NTStatus = 0xC00000FE + STATUS_BAD_FUNCTION_TABLE NTStatus = 0xC00000FF + STATUS_VARIABLE_NOT_FOUND NTStatus = 0xC0000100 + STATUS_DIRECTORY_NOT_EMPTY NTStatus = 0xC0000101 + STATUS_FILE_CORRUPT_ERROR NTStatus = 0xC0000102 + STATUS_NOT_A_DIRECTORY NTStatus = 0xC0000103 + STATUS_BAD_LOGON_SESSION_STATE NTStatus = 0xC0000104 + STATUS_LOGON_SESSION_COLLISION NTStatus = 0xC0000105 + STATUS_NAME_TOO_LONG NTStatus = 0xC0000106 + STATUS_FILES_OPEN NTStatus = 0xC0000107 + STATUS_CONNECTION_IN_USE NTStatus = 0xC0000108 + STATUS_MESSAGE_NOT_FOUND NTStatus = 0xC0000109 + STATUS_PROCESS_IS_TERMINATING NTStatus = 0xC000010A + STATUS_INVALID_LOGON_TYPE NTStatus = 0xC000010B + STATUS_NO_GUID_TRANSLATION NTStatus = 0xC000010C + STATUS_CANNOT_IMPERSONATE NTStatus = 0xC000010D + STATUS_IMAGE_ALREADY_LOADED NTStatus = 0xC000010E + STATUS_ABIOS_NOT_PRESENT NTStatus = 0xC000010F + STATUS_ABIOS_LID_NOT_EXIST NTStatus = 0xC0000110 + STATUS_ABIOS_LID_ALREADY_OWNED NTStatus = 0xC0000111 + STATUS_ABIOS_NOT_LID_OWNER NTStatus = 0xC0000112 + STATUS_ABIOS_INVALID_COMMAND NTStatus = 0xC0000113 + STATUS_ABIOS_INVALID_LID NTStatus = 0xC0000114 + STATUS_ABIOS_SELECTOR_NOT_AVAILABLE NTStatus = 0xC0000115 + STATUS_ABIOS_INVALID_SELECTOR NTStatus = 0xC0000116 + STATUS_NO_LDT NTStatus = 0xC0000117 + STATUS_INVALID_LDT_SIZE NTStatus = 0xC0000118 + STATUS_INVALID_LDT_OFFSET NTStatus = 0xC0000119 + STATUS_INVALID_LDT_DESCRIPTOR NTStatus = 0xC000011A + STATUS_INVALID_IMAGE_NE_FORMAT NTStatus = 0xC000011B + STATUS_RXACT_INVALID_STATE NTStatus = 0xC000011C + STATUS_RXACT_COMMIT_FAILURE NTStatus = 0xC000011D + STATUS_MAPPED_FILE_SIZE_ZERO NTStatus = 0xC000011E + STATUS_TOO_MANY_OPENED_FILES NTStatus = 0xC000011F + STATUS_CANCELLED NTStatus = 0xC0000120 + STATUS_CANNOT_DELETE NTStatus = 0xC0000121 + STATUS_INVALID_COMPUTER_NAME NTStatus = 0xC0000122 + STATUS_FILE_DELETED NTStatus = 0xC0000123 + STATUS_SPECIAL_ACCOUNT NTStatus = 0xC0000124 + STATUS_SPECIAL_GROUP NTStatus = 0xC0000125 + STATUS_SPECIAL_USER NTStatus = 0xC0000126 + STATUS_MEMBERS_PRIMARY_GROUP NTStatus = 0xC0000127 + STATUS_FILE_CLOSED NTStatus = 0xC0000128 + STATUS_TOO_MANY_THREADS NTStatus = 0xC0000129 + STATUS_THREAD_NOT_IN_PROCESS NTStatus = 0xC000012A + STATUS_TOKEN_ALREADY_IN_USE NTStatus = 0xC000012B + STATUS_PAGEFILE_QUOTA_EXCEEDED NTStatus = 0xC000012C + STATUS_COMMITMENT_LIMIT NTStatus = 0xC000012D + STATUS_INVALID_IMAGE_LE_FORMAT NTStatus = 0xC000012E + STATUS_INVALID_IMAGE_NOT_MZ NTStatus = 0xC000012F + STATUS_INVALID_IMAGE_PROTECT NTStatus = 0xC0000130 + STATUS_INVALID_IMAGE_WIN_16 NTStatus = 0xC0000131 + STATUS_LOGON_SERVER_CONFLICT NTStatus = 0xC0000132 + STATUS_TIME_DIFFERENCE_AT_DC NTStatus = 0xC0000133 + STATUS_SYNCHRONIZATION_REQUIRED NTStatus = 0xC0000134 + STATUS_DLL_NOT_FOUND NTStatus = 0xC0000135 + STATUS_OPEN_FAILED NTStatus = 0xC0000136 + STATUS_IO_PRIVILEGE_FAILED NTStatus = 0xC0000137 + STATUS_ORDINAL_NOT_FOUND NTStatus = 0xC0000138 + STATUS_ENTRYPOINT_NOT_FOUND NTStatus = 0xC0000139 + STATUS_CONTROL_C_EXIT NTStatus = 0xC000013A + STATUS_LOCAL_DISCONNECT NTStatus = 0xC000013B + STATUS_REMOTE_DISCONNECT NTStatus = 0xC000013C + STATUS_REMOTE_RESOURCES NTStatus = 0xC000013D + STATUS_LINK_FAILED NTStatus = 0xC000013E + STATUS_LINK_TIMEOUT NTStatus = 0xC000013F + STATUS_INVALID_CONNECTION NTStatus = 0xC0000140 + STATUS_INVALID_ADDRESS NTStatus = 0xC0000141 + STATUS_DLL_INIT_FAILED NTStatus = 0xC0000142 + STATUS_MISSING_SYSTEMFILE NTStatus = 0xC0000143 + STATUS_UNHANDLED_EXCEPTION NTStatus = 0xC0000144 + STATUS_APP_INIT_FAILURE NTStatus = 0xC0000145 + STATUS_PAGEFILE_CREATE_FAILED NTStatus = 0xC0000146 + STATUS_NO_PAGEFILE NTStatus = 0xC0000147 + STATUS_INVALID_LEVEL NTStatus = 0xC0000148 + STATUS_WRONG_PASSWORD_CORE NTStatus = 0xC0000149 + STATUS_ILLEGAL_FLOAT_CONTEXT NTStatus = 0xC000014A + STATUS_PIPE_BROKEN NTStatus = 0xC000014B + STATUS_REGISTRY_CORRUPT NTStatus = 0xC000014C + STATUS_REGISTRY_IO_FAILED NTStatus = 0xC000014D + STATUS_NO_EVENT_PAIR NTStatus = 0xC000014E + STATUS_UNRECOGNIZED_VOLUME NTStatus = 0xC000014F + STATUS_SERIAL_NO_DEVICE_INITED NTStatus = 0xC0000150 + STATUS_NO_SUCH_ALIAS NTStatus = 0xC0000151 + STATUS_MEMBER_NOT_IN_ALIAS NTStatus = 0xC0000152 + STATUS_MEMBER_IN_ALIAS NTStatus = 0xC0000153 + STATUS_ALIAS_EXISTS NTStatus = 0xC0000154 + STATUS_LOGON_NOT_GRANTED NTStatus = 0xC0000155 + STATUS_TOO_MANY_SECRETS NTStatus = 0xC0000156 + STATUS_SECRET_TOO_LONG NTStatus = 0xC0000157 + STATUS_INTERNAL_DB_ERROR NTStatus = 0xC0000158 + STATUS_FULLSCREEN_MODE NTStatus = 0xC0000159 + STATUS_TOO_MANY_CONTEXT_IDS NTStatus = 0xC000015A + STATUS_LOGON_TYPE_NOT_GRANTED NTStatus = 0xC000015B + STATUS_NOT_REGISTRY_FILE NTStatus = 0xC000015C + STATUS_NT_CROSS_ENCRYPTION_REQUIRED NTStatus = 0xC000015D + STATUS_DOMAIN_CTRLR_CONFIG_ERROR NTStatus = 0xC000015E + STATUS_FT_MISSING_MEMBER NTStatus = 0xC000015F + STATUS_ILL_FORMED_SERVICE_ENTRY NTStatus = 0xC0000160 + STATUS_ILLEGAL_CHARACTER NTStatus = 0xC0000161 + STATUS_UNMAPPABLE_CHARACTER NTStatus = 0xC0000162 + STATUS_UNDEFINED_CHARACTER NTStatus = 0xC0000163 + STATUS_FLOPPY_VOLUME NTStatus = 0xC0000164 + STATUS_FLOPPY_ID_MARK_NOT_FOUND NTStatus = 0xC0000165 + STATUS_FLOPPY_WRONG_CYLINDER NTStatus = 0xC0000166 + STATUS_FLOPPY_UNKNOWN_ERROR NTStatus = 0xC0000167 + STATUS_FLOPPY_BAD_REGISTERS NTStatus = 0xC0000168 + STATUS_DISK_RECALIBRATE_FAILED NTStatus = 0xC0000169 + STATUS_DISK_OPERATION_FAILED NTStatus = 0xC000016A + STATUS_DISK_RESET_FAILED NTStatus = 0xC000016B + STATUS_SHARED_IRQ_BUSY NTStatus = 0xC000016C + STATUS_FT_ORPHANING NTStatus = 0xC000016D + STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT NTStatus = 0xC000016E + STATUS_PARTITION_FAILURE NTStatus = 0xC0000172 + STATUS_INVALID_BLOCK_LENGTH NTStatus = 0xC0000173 + STATUS_DEVICE_NOT_PARTITIONED NTStatus = 0xC0000174 + STATUS_UNABLE_TO_LOCK_MEDIA NTStatus = 0xC0000175 + STATUS_UNABLE_TO_UNLOAD_MEDIA NTStatus = 0xC0000176 + STATUS_EOM_OVERFLOW NTStatus = 0xC0000177 + STATUS_NO_MEDIA NTStatus = 0xC0000178 + STATUS_NO_SUCH_MEMBER NTStatus = 0xC000017A + STATUS_INVALID_MEMBER NTStatus = 0xC000017B + STATUS_KEY_DELETED NTStatus = 0xC000017C + STATUS_NO_LOG_SPACE NTStatus = 0xC000017D + STATUS_TOO_MANY_SIDS NTStatus = 0xC000017E + STATUS_LM_CROSS_ENCRYPTION_REQUIRED NTStatus = 0xC000017F + STATUS_KEY_HAS_CHILDREN NTStatus = 0xC0000180 + STATUS_CHILD_MUST_BE_VOLATILE NTStatus = 0xC0000181 + STATUS_DEVICE_CONFIGURATION_ERROR NTStatus = 0xC0000182 + STATUS_DRIVER_INTERNAL_ERROR NTStatus = 0xC0000183 + STATUS_INVALID_DEVICE_STATE NTStatus = 0xC0000184 + STATUS_IO_DEVICE_ERROR NTStatus = 0xC0000185 + STATUS_DEVICE_PROTOCOL_ERROR NTStatus = 0xC0000186 + STATUS_BACKUP_CONTROLLER NTStatus = 0xC0000187 + STATUS_LOG_FILE_FULL NTStatus = 0xC0000188 + STATUS_TOO_LATE NTStatus = 0xC0000189 + STATUS_NO_TRUST_LSA_SECRET NTStatus = 0xC000018A + STATUS_NO_TRUST_SAM_ACCOUNT NTStatus = 0xC000018B + STATUS_TRUSTED_DOMAIN_FAILURE NTStatus = 0xC000018C + STATUS_TRUSTED_RELATIONSHIP_FAILURE NTStatus = 0xC000018D + STATUS_EVENTLOG_FILE_CORRUPT NTStatus = 0xC000018E + STATUS_EVENTLOG_CANT_START NTStatus = 0xC000018F + STATUS_TRUST_FAILURE NTStatus = 0xC0000190 + STATUS_MUTANT_LIMIT_EXCEEDED NTStatus = 0xC0000191 + STATUS_NETLOGON_NOT_STARTED NTStatus = 0xC0000192 + STATUS_ACCOUNT_EXPIRED NTStatus = 0xC0000193 + STATUS_POSSIBLE_DEADLOCK NTStatus = 0xC0000194 + STATUS_NETWORK_CREDENTIAL_CONFLICT NTStatus = 0xC0000195 + STATUS_REMOTE_SESSION_LIMIT NTStatus = 0xC0000196 + STATUS_EVENTLOG_FILE_CHANGED NTStatus = 0xC0000197 + STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT NTStatus = 0xC0000198 + STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT NTStatus = 0xC0000199 + STATUS_NOLOGON_SERVER_TRUST_ACCOUNT NTStatus = 0xC000019A + STATUS_DOMAIN_TRUST_INCONSISTENT NTStatus = 0xC000019B + STATUS_FS_DRIVER_REQUIRED NTStatus = 0xC000019C + STATUS_IMAGE_ALREADY_LOADED_AS_DLL NTStatus = 0xC000019D + STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING NTStatus = 0xC000019E + STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME NTStatus = 0xC000019F + STATUS_SECURITY_STREAM_IS_INCONSISTENT NTStatus = 0xC00001A0 + STATUS_INVALID_LOCK_RANGE NTStatus = 0xC00001A1 + STATUS_INVALID_ACE_CONDITION NTStatus = 0xC00001A2 + STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT NTStatus = 0xC00001A3 + STATUS_NOTIFICATION_GUID_ALREADY_DEFINED NTStatus = 0xC00001A4 + STATUS_INVALID_EXCEPTION_HANDLER NTStatus = 0xC00001A5 + STATUS_DUPLICATE_PRIVILEGES NTStatus = 0xC00001A6 + STATUS_NOT_ALLOWED_ON_SYSTEM_FILE NTStatus = 0xC00001A7 + STATUS_REPAIR_NEEDED NTStatus = 0xC00001A8 + STATUS_QUOTA_NOT_ENABLED NTStatus = 0xC00001A9 + STATUS_NO_APPLICATION_PACKAGE NTStatus = 0xC00001AA + STATUS_FILE_METADATA_OPTIMIZATION_IN_PROGRESS NTStatus = 0xC00001AB + STATUS_NOT_SAME_OBJECT NTStatus = 0xC00001AC + STATUS_FATAL_MEMORY_EXHAUSTION NTStatus = 0xC00001AD + STATUS_ERROR_PROCESS_NOT_IN_JOB NTStatus = 0xC00001AE + STATUS_CPU_SET_INVALID NTStatus = 0xC00001AF + STATUS_IO_DEVICE_INVALID_DATA NTStatus = 0xC00001B0 + STATUS_IO_UNALIGNED_WRITE NTStatus = 0xC00001B1 + STATUS_NETWORK_OPEN_RESTRICTION NTStatus = 0xC0000201 + STATUS_NO_USER_SESSION_KEY NTStatus = 0xC0000202 + STATUS_USER_SESSION_DELETED NTStatus = 0xC0000203 + STATUS_RESOURCE_LANG_NOT_FOUND NTStatus = 0xC0000204 + STATUS_INSUFF_SERVER_RESOURCES NTStatus = 0xC0000205 + STATUS_INVALID_BUFFER_SIZE NTStatus = 0xC0000206 + STATUS_INVALID_ADDRESS_COMPONENT NTStatus = 0xC0000207 + STATUS_INVALID_ADDRESS_WILDCARD NTStatus = 0xC0000208 + STATUS_TOO_MANY_ADDRESSES NTStatus = 0xC0000209 + STATUS_ADDRESS_ALREADY_EXISTS NTStatus = 0xC000020A + STATUS_ADDRESS_CLOSED NTStatus = 0xC000020B + STATUS_CONNECTION_DISCONNECTED NTStatus = 0xC000020C + STATUS_CONNECTION_RESET NTStatus = 0xC000020D + STATUS_TOO_MANY_NODES NTStatus = 0xC000020E + STATUS_TRANSACTION_ABORTED NTStatus = 0xC000020F + STATUS_TRANSACTION_TIMED_OUT NTStatus = 0xC0000210 + STATUS_TRANSACTION_NO_RELEASE NTStatus = 0xC0000211 + STATUS_TRANSACTION_NO_MATCH NTStatus = 0xC0000212 + STATUS_TRANSACTION_RESPONDED NTStatus = 0xC0000213 + STATUS_TRANSACTION_INVALID_ID NTStatus = 0xC0000214 + STATUS_TRANSACTION_INVALID_TYPE NTStatus = 0xC0000215 + STATUS_NOT_SERVER_SESSION NTStatus = 0xC0000216 + STATUS_NOT_CLIENT_SESSION NTStatus = 0xC0000217 + STATUS_CANNOT_LOAD_REGISTRY_FILE NTStatus = 0xC0000218 + STATUS_DEBUG_ATTACH_FAILED NTStatus = 0xC0000219 + STATUS_SYSTEM_PROCESS_TERMINATED NTStatus = 0xC000021A + STATUS_DATA_NOT_ACCEPTED NTStatus = 0xC000021B + STATUS_NO_BROWSER_SERVERS_FOUND NTStatus = 0xC000021C + STATUS_VDM_HARD_ERROR NTStatus = 0xC000021D + STATUS_DRIVER_CANCEL_TIMEOUT NTStatus = 0xC000021E + STATUS_REPLY_MESSAGE_MISMATCH NTStatus = 0xC000021F + STATUS_MAPPED_ALIGNMENT NTStatus = 0xC0000220 + STATUS_IMAGE_CHECKSUM_MISMATCH NTStatus = 0xC0000221 + STATUS_LOST_WRITEBEHIND_DATA NTStatus = 0xC0000222 + STATUS_CLIENT_SERVER_PARAMETERS_INVALID NTStatus = 0xC0000223 + STATUS_PASSWORD_MUST_CHANGE NTStatus = 0xC0000224 + STATUS_NOT_FOUND NTStatus = 0xC0000225 + STATUS_NOT_TINY_STREAM NTStatus = 0xC0000226 + STATUS_RECOVERY_FAILURE NTStatus = 0xC0000227 + STATUS_STACK_OVERFLOW_READ NTStatus = 0xC0000228 + STATUS_FAIL_CHECK NTStatus = 0xC0000229 + STATUS_DUPLICATE_OBJECTID NTStatus = 0xC000022A + STATUS_OBJECTID_EXISTS NTStatus = 0xC000022B + STATUS_CONVERT_TO_LARGE NTStatus = 0xC000022C + STATUS_RETRY NTStatus = 0xC000022D + STATUS_FOUND_OUT_OF_SCOPE NTStatus = 0xC000022E + STATUS_ALLOCATE_BUCKET NTStatus = 0xC000022F + STATUS_PROPSET_NOT_FOUND NTStatus = 0xC0000230 + STATUS_MARSHALL_OVERFLOW NTStatus = 0xC0000231 + STATUS_INVALID_VARIANT NTStatus = 0xC0000232 + STATUS_DOMAIN_CONTROLLER_NOT_FOUND NTStatus = 0xC0000233 + STATUS_ACCOUNT_LOCKED_OUT NTStatus = 0xC0000234 + STATUS_HANDLE_NOT_CLOSABLE NTStatus = 0xC0000235 + STATUS_CONNECTION_REFUSED NTStatus = 0xC0000236 + STATUS_GRACEFUL_DISCONNECT NTStatus = 0xC0000237 + STATUS_ADDRESS_ALREADY_ASSOCIATED NTStatus = 0xC0000238 + STATUS_ADDRESS_NOT_ASSOCIATED NTStatus = 0xC0000239 + STATUS_CONNECTION_INVALID NTStatus = 0xC000023A + STATUS_CONNECTION_ACTIVE NTStatus = 0xC000023B + STATUS_NETWORK_UNREACHABLE NTStatus = 0xC000023C + STATUS_HOST_UNREACHABLE NTStatus = 0xC000023D + STATUS_PROTOCOL_UNREACHABLE NTStatus = 0xC000023E + STATUS_PORT_UNREACHABLE NTStatus = 0xC000023F + STATUS_REQUEST_ABORTED NTStatus = 0xC0000240 + STATUS_CONNECTION_ABORTED NTStatus = 0xC0000241 + STATUS_BAD_COMPRESSION_BUFFER NTStatus = 0xC0000242 + STATUS_USER_MAPPED_FILE NTStatus = 0xC0000243 + STATUS_AUDIT_FAILED NTStatus = 0xC0000244 + STATUS_TIMER_RESOLUTION_NOT_SET NTStatus = 0xC0000245 + STATUS_CONNECTION_COUNT_LIMIT NTStatus = 0xC0000246 + STATUS_LOGIN_TIME_RESTRICTION NTStatus = 0xC0000247 + STATUS_LOGIN_WKSTA_RESTRICTION NTStatus = 0xC0000248 + STATUS_IMAGE_MP_UP_MISMATCH NTStatus = 0xC0000249 + STATUS_INSUFFICIENT_LOGON_INFO NTStatus = 0xC0000250 + STATUS_BAD_DLL_ENTRYPOINT NTStatus = 0xC0000251 + STATUS_BAD_SERVICE_ENTRYPOINT NTStatus = 0xC0000252 + STATUS_LPC_REPLY_LOST NTStatus = 0xC0000253 + STATUS_IP_ADDRESS_CONFLICT1 NTStatus = 0xC0000254 + STATUS_IP_ADDRESS_CONFLICT2 NTStatus = 0xC0000255 + STATUS_REGISTRY_QUOTA_LIMIT NTStatus = 0xC0000256 + STATUS_PATH_NOT_COVERED NTStatus = 0xC0000257 + STATUS_NO_CALLBACK_ACTIVE NTStatus = 0xC0000258 + STATUS_LICENSE_QUOTA_EXCEEDED NTStatus = 0xC0000259 + STATUS_PWD_TOO_SHORT NTStatus = 0xC000025A + STATUS_PWD_TOO_RECENT NTStatus = 0xC000025B + STATUS_PWD_HISTORY_CONFLICT NTStatus = 0xC000025C + STATUS_PLUGPLAY_NO_DEVICE NTStatus = 0xC000025E + STATUS_UNSUPPORTED_COMPRESSION NTStatus = 0xC000025F + STATUS_INVALID_HW_PROFILE NTStatus = 0xC0000260 + STATUS_INVALID_PLUGPLAY_DEVICE_PATH NTStatus = 0xC0000261 + STATUS_DRIVER_ORDINAL_NOT_FOUND NTStatus = 0xC0000262 + STATUS_DRIVER_ENTRYPOINT_NOT_FOUND NTStatus = 0xC0000263 + STATUS_RESOURCE_NOT_OWNED NTStatus = 0xC0000264 + STATUS_TOO_MANY_LINKS NTStatus = 0xC0000265 + STATUS_QUOTA_LIST_INCONSISTENT NTStatus = 0xC0000266 + STATUS_FILE_IS_OFFLINE NTStatus = 0xC0000267 + STATUS_EVALUATION_EXPIRATION NTStatus = 0xC0000268 + STATUS_ILLEGAL_DLL_RELOCATION NTStatus = 0xC0000269 + STATUS_LICENSE_VIOLATION NTStatus = 0xC000026A + STATUS_DLL_INIT_FAILED_LOGOFF NTStatus = 0xC000026B + STATUS_DRIVER_UNABLE_TO_LOAD NTStatus = 0xC000026C + STATUS_DFS_UNAVAILABLE NTStatus = 0xC000026D + STATUS_VOLUME_DISMOUNTED NTStatus = 0xC000026E + STATUS_WX86_INTERNAL_ERROR NTStatus = 0xC000026F + STATUS_WX86_FLOAT_STACK_CHECK NTStatus = 0xC0000270 + STATUS_VALIDATE_CONTINUE NTStatus = 0xC0000271 + STATUS_NO_MATCH NTStatus = 0xC0000272 + STATUS_NO_MORE_MATCHES NTStatus = 0xC0000273 + STATUS_NOT_A_REPARSE_POINT NTStatus = 0xC0000275 + STATUS_IO_REPARSE_TAG_INVALID NTStatus = 0xC0000276 + STATUS_IO_REPARSE_TAG_MISMATCH NTStatus = 0xC0000277 + STATUS_IO_REPARSE_DATA_INVALID NTStatus = 0xC0000278 + STATUS_IO_REPARSE_TAG_NOT_HANDLED NTStatus = 0xC0000279 + STATUS_PWD_TOO_LONG NTStatus = 0xC000027A + STATUS_STOWED_EXCEPTION NTStatus = 0xC000027B + STATUS_CONTEXT_STOWED_EXCEPTION NTStatus = 0xC000027C + STATUS_REPARSE_POINT_NOT_RESOLVED NTStatus = 0xC0000280 + STATUS_DIRECTORY_IS_A_REPARSE_POINT NTStatus = 0xC0000281 + STATUS_RANGE_LIST_CONFLICT NTStatus = 0xC0000282 + STATUS_SOURCE_ELEMENT_EMPTY NTStatus = 0xC0000283 + STATUS_DESTINATION_ELEMENT_FULL NTStatus = 0xC0000284 + STATUS_ILLEGAL_ELEMENT_ADDRESS NTStatus = 0xC0000285 + STATUS_MAGAZINE_NOT_PRESENT NTStatus = 0xC0000286 + STATUS_REINITIALIZATION_NEEDED NTStatus = 0xC0000287 + STATUS_DEVICE_REQUIRES_CLEANING NTStatus = 0x80000288 + STATUS_DEVICE_DOOR_OPEN NTStatus = 0x80000289 + STATUS_ENCRYPTION_FAILED NTStatus = 0xC000028A + STATUS_DECRYPTION_FAILED NTStatus = 0xC000028B + STATUS_RANGE_NOT_FOUND NTStatus = 0xC000028C + STATUS_NO_RECOVERY_POLICY NTStatus = 0xC000028D + STATUS_NO_EFS NTStatus = 0xC000028E + STATUS_WRONG_EFS NTStatus = 0xC000028F + STATUS_NO_USER_KEYS NTStatus = 0xC0000290 + STATUS_FILE_NOT_ENCRYPTED NTStatus = 0xC0000291 + STATUS_NOT_EXPORT_FORMAT NTStatus = 0xC0000292 + STATUS_FILE_ENCRYPTED NTStatus = 0xC0000293 + STATUS_WAKE_SYSTEM NTStatus = 0x40000294 + STATUS_WMI_GUID_NOT_FOUND NTStatus = 0xC0000295 + STATUS_WMI_INSTANCE_NOT_FOUND NTStatus = 0xC0000296 + STATUS_WMI_ITEMID_NOT_FOUND NTStatus = 0xC0000297 + STATUS_WMI_TRY_AGAIN NTStatus = 0xC0000298 + STATUS_SHARED_POLICY NTStatus = 0xC0000299 + STATUS_POLICY_OBJECT_NOT_FOUND NTStatus = 0xC000029A + STATUS_POLICY_ONLY_IN_DS NTStatus = 0xC000029B + STATUS_VOLUME_NOT_UPGRADED NTStatus = 0xC000029C + STATUS_REMOTE_STORAGE_NOT_ACTIVE NTStatus = 0xC000029D + STATUS_REMOTE_STORAGE_MEDIA_ERROR NTStatus = 0xC000029E + STATUS_NO_TRACKING_SERVICE NTStatus = 0xC000029F + STATUS_SERVER_SID_MISMATCH NTStatus = 0xC00002A0 + STATUS_DS_NO_ATTRIBUTE_OR_VALUE NTStatus = 0xC00002A1 + STATUS_DS_INVALID_ATTRIBUTE_SYNTAX NTStatus = 0xC00002A2 + STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED NTStatus = 0xC00002A3 + STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS NTStatus = 0xC00002A4 + STATUS_DS_BUSY NTStatus = 0xC00002A5 + STATUS_DS_UNAVAILABLE NTStatus = 0xC00002A6 + STATUS_DS_NO_RIDS_ALLOCATED NTStatus = 0xC00002A7 + STATUS_DS_NO_MORE_RIDS NTStatus = 0xC00002A8 + STATUS_DS_INCORRECT_ROLE_OWNER NTStatus = 0xC00002A9 + STATUS_DS_RIDMGR_INIT_ERROR NTStatus = 0xC00002AA + STATUS_DS_OBJ_CLASS_VIOLATION NTStatus = 0xC00002AB + STATUS_DS_CANT_ON_NON_LEAF NTStatus = 0xC00002AC + STATUS_DS_CANT_ON_RDN NTStatus = 0xC00002AD + STATUS_DS_CANT_MOD_OBJ_CLASS NTStatus = 0xC00002AE + STATUS_DS_CROSS_DOM_MOVE_FAILED NTStatus = 0xC00002AF + STATUS_DS_GC_NOT_AVAILABLE NTStatus = 0xC00002B0 + STATUS_DIRECTORY_SERVICE_REQUIRED NTStatus = 0xC00002B1 + STATUS_REPARSE_ATTRIBUTE_CONFLICT NTStatus = 0xC00002B2 + STATUS_CANT_ENABLE_DENY_ONLY NTStatus = 0xC00002B3 + STATUS_FLOAT_MULTIPLE_FAULTS NTStatus = 0xC00002B4 + STATUS_FLOAT_MULTIPLE_TRAPS NTStatus = 0xC00002B5 + STATUS_DEVICE_REMOVED NTStatus = 0xC00002B6 + STATUS_JOURNAL_DELETE_IN_PROGRESS NTStatus = 0xC00002B7 + STATUS_JOURNAL_NOT_ACTIVE NTStatus = 0xC00002B8 + STATUS_NOINTERFACE NTStatus = 0xC00002B9 + STATUS_DS_RIDMGR_DISABLED NTStatus = 0xC00002BA + STATUS_DS_ADMIN_LIMIT_EXCEEDED NTStatus = 0xC00002C1 + STATUS_DRIVER_FAILED_SLEEP NTStatus = 0xC00002C2 + STATUS_MUTUAL_AUTHENTICATION_FAILED NTStatus = 0xC00002C3 + STATUS_CORRUPT_SYSTEM_FILE NTStatus = 0xC00002C4 + STATUS_DATATYPE_MISALIGNMENT_ERROR NTStatus = 0xC00002C5 + STATUS_WMI_READ_ONLY NTStatus = 0xC00002C6 + STATUS_WMI_SET_FAILURE NTStatus = 0xC00002C7 + STATUS_COMMITMENT_MINIMUM NTStatus = 0xC00002C8 + STATUS_REG_NAT_CONSUMPTION NTStatus = 0xC00002C9 + STATUS_TRANSPORT_FULL NTStatus = 0xC00002CA + STATUS_DS_SAM_INIT_FAILURE NTStatus = 0xC00002CB + STATUS_ONLY_IF_CONNECTED NTStatus = 0xC00002CC + STATUS_DS_SENSITIVE_GROUP_VIOLATION NTStatus = 0xC00002CD + STATUS_PNP_RESTART_ENUMERATION NTStatus = 0xC00002CE + STATUS_JOURNAL_ENTRY_DELETED NTStatus = 0xC00002CF + STATUS_DS_CANT_MOD_PRIMARYGROUPID NTStatus = 0xC00002D0 + STATUS_SYSTEM_IMAGE_BAD_SIGNATURE NTStatus = 0xC00002D1 + STATUS_PNP_REBOOT_REQUIRED NTStatus = 0xC00002D2 + STATUS_POWER_STATE_INVALID NTStatus = 0xC00002D3 + STATUS_DS_INVALID_GROUP_TYPE NTStatus = 0xC00002D4 + STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN NTStatus = 0xC00002D5 + STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN NTStatus = 0xC00002D6 + STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER NTStatus = 0xC00002D7 + STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER NTStatus = 0xC00002D8 + STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER NTStatus = 0xC00002D9 + STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER NTStatus = 0xC00002DA + STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER NTStatus = 0xC00002DB + STATUS_DS_HAVE_PRIMARY_MEMBERS NTStatus = 0xC00002DC + STATUS_WMI_NOT_SUPPORTED NTStatus = 0xC00002DD + STATUS_INSUFFICIENT_POWER NTStatus = 0xC00002DE + STATUS_SAM_NEED_BOOTKEY_PASSWORD NTStatus = 0xC00002DF + STATUS_SAM_NEED_BOOTKEY_FLOPPY NTStatus = 0xC00002E0 + STATUS_DS_CANT_START NTStatus = 0xC00002E1 + STATUS_DS_INIT_FAILURE NTStatus = 0xC00002E2 + STATUS_SAM_INIT_FAILURE NTStatus = 0xC00002E3 + STATUS_DS_GC_REQUIRED NTStatus = 0xC00002E4 + STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY NTStatus = 0xC00002E5 + STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS NTStatus = 0xC00002E6 + STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED NTStatus = 0xC00002E7 + STATUS_MULTIPLE_FAULT_VIOLATION NTStatus = 0xC00002E8 + STATUS_CURRENT_DOMAIN_NOT_ALLOWED NTStatus = 0xC00002E9 + STATUS_CANNOT_MAKE NTStatus = 0xC00002EA + STATUS_SYSTEM_SHUTDOWN NTStatus = 0xC00002EB + STATUS_DS_INIT_FAILURE_CONSOLE NTStatus = 0xC00002EC + STATUS_DS_SAM_INIT_FAILURE_CONSOLE NTStatus = 0xC00002ED + STATUS_UNFINISHED_CONTEXT_DELETED NTStatus = 0xC00002EE + STATUS_NO_TGT_REPLY NTStatus = 0xC00002EF + STATUS_OBJECTID_NOT_FOUND NTStatus = 0xC00002F0 + STATUS_NO_IP_ADDRESSES NTStatus = 0xC00002F1 + STATUS_WRONG_CREDENTIAL_HANDLE NTStatus = 0xC00002F2 + STATUS_CRYPTO_SYSTEM_INVALID NTStatus = 0xC00002F3 + STATUS_MAX_REFERRALS_EXCEEDED NTStatus = 0xC00002F4 + STATUS_MUST_BE_KDC NTStatus = 0xC00002F5 + STATUS_STRONG_CRYPTO_NOT_SUPPORTED NTStatus = 0xC00002F6 + STATUS_TOO_MANY_PRINCIPALS NTStatus = 0xC00002F7 + STATUS_NO_PA_DATA NTStatus = 0xC00002F8 + STATUS_PKINIT_NAME_MISMATCH NTStatus = 0xC00002F9 + STATUS_SMARTCARD_LOGON_REQUIRED NTStatus = 0xC00002FA + STATUS_KDC_INVALID_REQUEST NTStatus = 0xC00002FB + STATUS_KDC_UNABLE_TO_REFER NTStatus = 0xC00002FC + STATUS_KDC_UNKNOWN_ETYPE NTStatus = 0xC00002FD + STATUS_SHUTDOWN_IN_PROGRESS NTStatus = 0xC00002FE + STATUS_SERVER_SHUTDOWN_IN_PROGRESS NTStatus = 0xC00002FF + STATUS_NOT_SUPPORTED_ON_SBS NTStatus = 0xC0000300 + STATUS_WMI_GUID_DISCONNECTED NTStatus = 0xC0000301 + STATUS_WMI_ALREADY_DISABLED NTStatus = 0xC0000302 + STATUS_WMI_ALREADY_ENABLED NTStatus = 0xC0000303 + STATUS_MFT_TOO_FRAGMENTED NTStatus = 0xC0000304 + STATUS_COPY_PROTECTION_FAILURE NTStatus = 0xC0000305 + STATUS_CSS_AUTHENTICATION_FAILURE NTStatus = 0xC0000306 + STATUS_CSS_KEY_NOT_PRESENT NTStatus = 0xC0000307 + STATUS_CSS_KEY_NOT_ESTABLISHED NTStatus = 0xC0000308 + STATUS_CSS_SCRAMBLED_SECTOR NTStatus = 0xC0000309 + STATUS_CSS_REGION_MISMATCH NTStatus = 0xC000030A + STATUS_CSS_RESETS_EXHAUSTED NTStatus = 0xC000030B + STATUS_PASSWORD_CHANGE_REQUIRED NTStatus = 0xC000030C + STATUS_LOST_MODE_LOGON_RESTRICTION NTStatus = 0xC000030D + STATUS_PKINIT_FAILURE NTStatus = 0xC0000320 + STATUS_SMARTCARD_SUBSYSTEM_FAILURE NTStatus = 0xC0000321 + STATUS_NO_KERB_KEY NTStatus = 0xC0000322 + STATUS_HOST_DOWN NTStatus = 0xC0000350 + STATUS_UNSUPPORTED_PREAUTH NTStatus = 0xC0000351 + STATUS_EFS_ALG_BLOB_TOO_BIG NTStatus = 0xC0000352 + STATUS_PORT_NOT_SET NTStatus = 0xC0000353 + STATUS_DEBUGGER_INACTIVE NTStatus = 0xC0000354 + STATUS_DS_VERSION_CHECK_FAILURE NTStatus = 0xC0000355 + STATUS_AUDITING_DISABLED NTStatus = 0xC0000356 + STATUS_PRENT4_MACHINE_ACCOUNT NTStatus = 0xC0000357 + STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER NTStatus = 0xC0000358 + STATUS_INVALID_IMAGE_WIN_32 NTStatus = 0xC0000359 + STATUS_INVALID_IMAGE_WIN_64 NTStatus = 0xC000035A + STATUS_BAD_BINDINGS NTStatus = 0xC000035B + STATUS_NETWORK_SESSION_EXPIRED NTStatus = 0xC000035C + STATUS_APPHELP_BLOCK NTStatus = 0xC000035D + STATUS_ALL_SIDS_FILTERED NTStatus = 0xC000035E + STATUS_NOT_SAFE_MODE_DRIVER NTStatus = 0xC000035F + STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT NTStatus = 0xC0000361 + STATUS_ACCESS_DISABLED_BY_POLICY_PATH NTStatus = 0xC0000362 + STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER NTStatus = 0xC0000363 + STATUS_ACCESS_DISABLED_BY_POLICY_OTHER NTStatus = 0xC0000364 + STATUS_FAILED_DRIVER_ENTRY NTStatus = 0xC0000365 + STATUS_DEVICE_ENUMERATION_ERROR NTStatus = 0xC0000366 + STATUS_MOUNT_POINT_NOT_RESOLVED NTStatus = 0xC0000368 + STATUS_INVALID_DEVICE_OBJECT_PARAMETER NTStatus = 0xC0000369 + STATUS_MCA_OCCURED NTStatus = 0xC000036A + STATUS_DRIVER_BLOCKED_CRITICAL NTStatus = 0xC000036B + STATUS_DRIVER_BLOCKED NTStatus = 0xC000036C + STATUS_DRIVER_DATABASE_ERROR NTStatus = 0xC000036D + STATUS_SYSTEM_HIVE_TOO_LARGE NTStatus = 0xC000036E + STATUS_INVALID_IMPORT_OF_NON_DLL NTStatus = 0xC000036F + STATUS_DS_SHUTTING_DOWN NTStatus = 0x40000370 + STATUS_NO_SECRETS NTStatus = 0xC0000371 + STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY NTStatus = 0xC0000372 + STATUS_FAILED_STACK_SWITCH NTStatus = 0xC0000373 + STATUS_HEAP_CORRUPTION NTStatus = 0xC0000374 + STATUS_SMARTCARD_WRONG_PIN NTStatus = 0xC0000380 + STATUS_SMARTCARD_CARD_BLOCKED NTStatus = 0xC0000381 + STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED NTStatus = 0xC0000382 + STATUS_SMARTCARD_NO_CARD NTStatus = 0xC0000383 + STATUS_SMARTCARD_NO_KEY_CONTAINER NTStatus = 0xC0000384 + STATUS_SMARTCARD_NO_CERTIFICATE NTStatus = 0xC0000385 + STATUS_SMARTCARD_NO_KEYSET NTStatus = 0xC0000386 + STATUS_SMARTCARD_IO_ERROR NTStatus = 0xC0000387 + STATUS_DOWNGRADE_DETECTED NTStatus = 0xC0000388 + STATUS_SMARTCARD_CERT_REVOKED NTStatus = 0xC0000389 + STATUS_ISSUING_CA_UNTRUSTED NTStatus = 0xC000038A + STATUS_REVOCATION_OFFLINE_C NTStatus = 0xC000038B + STATUS_PKINIT_CLIENT_FAILURE NTStatus = 0xC000038C + STATUS_SMARTCARD_CERT_EXPIRED NTStatus = 0xC000038D + STATUS_DRIVER_FAILED_PRIOR_UNLOAD NTStatus = 0xC000038E + STATUS_SMARTCARD_SILENT_CONTEXT NTStatus = 0xC000038F + STATUS_PER_USER_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000401 + STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000402 + STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000403 + STATUS_DS_NAME_NOT_UNIQUE NTStatus = 0xC0000404 + STATUS_DS_DUPLICATE_ID_FOUND NTStatus = 0xC0000405 + STATUS_DS_GROUP_CONVERSION_ERROR NTStatus = 0xC0000406 + STATUS_VOLSNAP_PREPARE_HIBERNATE NTStatus = 0xC0000407 + STATUS_USER2USER_REQUIRED NTStatus = 0xC0000408 + STATUS_STACK_BUFFER_OVERRUN NTStatus = 0xC0000409 + STATUS_NO_S4U_PROT_SUPPORT NTStatus = 0xC000040A + STATUS_CROSSREALM_DELEGATION_FAILURE NTStatus = 0xC000040B + STATUS_REVOCATION_OFFLINE_KDC NTStatus = 0xC000040C + STATUS_ISSUING_CA_UNTRUSTED_KDC NTStatus = 0xC000040D + STATUS_KDC_CERT_EXPIRED NTStatus = 0xC000040E + STATUS_KDC_CERT_REVOKED NTStatus = 0xC000040F + STATUS_PARAMETER_QUOTA_EXCEEDED NTStatus = 0xC0000410 + STATUS_HIBERNATION_FAILURE NTStatus = 0xC0000411 + STATUS_DELAY_LOAD_FAILED NTStatus = 0xC0000412 + STATUS_AUTHENTICATION_FIREWALL_FAILED NTStatus = 0xC0000413 + STATUS_VDM_DISALLOWED NTStatus = 0xC0000414 + STATUS_HUNG_DISPLAY_DRIVER_THREAD NTStatus = 0xC0000415 + STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE NTStatus = 0xC0000416 + STATUS_INVALID_CRUNTIME_PARAMETER NTStatus = 0xC0000417 + STATUS_NTLM_BLOCKED NTStatus = 0xC0000418 + STATUS_DS_SRC_SID_EXISTS_IN_FOREST NTStatus = 0xC0000419 + STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST NTStatus = 0xC000041A + STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST NTStatus = 0xC000041B + STATUS_INVALID_USER_PRINCIPAL_NAME NTStatus = 0xC000041C + STATUS_FATAL_USER_CALLBACK_EXCEPTION NTStatus = 0xC000041D + STATUS_ASSERTION_FAILURE NTStatus = 0xC0000420 + STATUS_VERIFIER_STOP NTStatus = 0xC0000421 + STATUS_CALLBACK_POP_STACK NTStatus = 0xC0000423 + STATUS_INCOMPATIBLE_DRIVER_BLOCKED NTStatus = 0xC0000424 + STATUS_HIVE_UNLOADED NTStatus = 0xC0000425 + STATUS_COMPRESSION_DISABLED NTStatus = 0xC0000426 + STATUS_FILE_SYSTEM_LIMITATION NTStatus = 0xC0000427 + STATUS_INVALID_IMAGE_HASH NTStatus = 0xC0000428 + STATUS_NOT_CAPABLE NTStatus = 0xC0000429 + STATUS_REQUEST_OUT_OF_SEQUENCE NTStatus = 0xC000042A + STATUS_IMPLEMENTATION_LIMIT NTStatus = 0xC000042B + STATUS_ELEVATION_REQUIRED NTStatus = 0xC000042C + STATUS_NO_SECURITY_CONTEXT NTStatus = 0xC000042D + STATUS_PKU2U_CERT_FAILURE NTStatus = 0xC000042F + STATUS_BEYOND_VDL NTStatus = 0xC0000432 + STATUS_ENCOUNTERED_WRITE_IN_PROGRESS NTStatus = 0xC0000433 + STATUS_PTE_CHANGED NTStatus = 0xC0000434 + STATUS_PURGE_FAILED NTStatus = 0xC0000435 + STATUS_CRED_REQUIRES_CONFIRMATION NTStatus = 0xC0000440 + STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE NTStatus = 0xC0000441 + STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER NTStatus = 0xC0000442 + STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE NTStatus = 0xC0000443 + STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE NTStatus = 0xC0000444 + STATUS_CS_ENCRYPTION_FILE_NOT_CSE NTStatus = 0xC0000445 + STATUS_INVALID_LABEL NTStatus = 0xC0000446 + STATUS_DRIVER_PROCESS_TERMINATED NTStatus = 0xC0000450 + STATUS_AMBIGUOUS_SYSTEM_DEVICE NTStatus = 0xC0000451 + STATUS_SYSTEM_DEVICE_NOT_FOUND NTStatus = 0xC0000452 + STATUS_RESTART_BOOT_APPLICATION NTStatus = 0xC0000453 + STATUS_INSUFFICIENT_NVRAM_RESOURCES NTStatus = 0xC0000454 + STATUS_INVALID_SESSION NTStatus = 0xC0000455 + STATUS_THREAD_ALREADY_IN_SESSION NTStatus = 0xC0000456 + STATUS_THREAD_NOT_IN_SESSION NTStatus = 0xC0000457 + STATUS_INVALID_WEIGHT NTStatus = 0xC0000458 + STATUS_REQUEST_PAUSED NTStatus = 0xC0000459 + STATUS_NO_RANGES_PROCESSED NTStatus = 0xC0000460 + STATUS_DISK_RESOURCES_EXHAUSTED NTStatus = 0xC0000461 + STATUS_NEEDS_REMEDIATION NTStatus = 0xC0000462 + STATUS_DEVICE_FEATURE_NOT_SUPPORTED NTStatus = 0xC0000463 + STATUS_DEVICE_UNREACHABLE NTStatus = 0xC0000464 + STATUS_INVALID_TOKEN NTStatus = 0xC0000465 + STATUS_SERVER_UNAVAILABLE NTStatus = 0xC0000466 + STATUS_FILE_NOT_AVAILABLE NTStatus = 0xC0000467 + STATUS_DEVICE_INSUFFICIENT_RESOURCES NTStatus = 0xC0000468 + STATUS_PACKAGE_UPDATING NTStatus = 0xC0000469 + STATUS_NOT_READ_FROM_COPY NTStatus = 0xC000046A + STATUS_FT_WRITE_FAILURE NTStatus = 0xC000046B + STATUS_FT_DI_SCAN_REQUIRED NTStatus = 0xC000046C + STATUS_OBJECT_NOT_EXTERNALLY_BACKED NTStatus = 0xC000046D + STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN NTStatus = 0xC000046E + STATUS_COMPRESSION_NOT_BENEFICIAL NTStatus = 0xC000046F + STATUS_DATA_CHECKSUM_ERROR NTStatus = 0xC0000470 + STATUS_INTERMIXED_KERNEL_EA_OPERATION NTStatus = 0xC0000471 + STATUS_TRIM_READ_ZERO_NOT_SUPPORTED NTStatus = 0xC0000472 + STATUS_TOO_MANY_SEGMENT_DESCRIPTORS NTStatus = 0xC0000473 + STATUS_INVALID_OFFSET_ALIGNMENT NTStatus = 0xC0000474 + STATUS_INVALID_FIELD_IN_PARAMETER_LIST NTStatus = 0xC0000475 + STATUS_OPERATION_IN_PROGRESS NTStatus = 0xC0000476 + STATUS_INVALID_INITIATOR_TARGET_PATH NTStatus = 0xC0000477 + STATUS_SCRUB_DATA_DISABLED NTStatus = 0xC0000478 + STATUS_NOT_REDUNDANT_STORAGE NTStatus = 0xC0000479 + STATUS_RESIDENT_FILE_NOT_SUPPORTED NTStatus = 0xC000047A + STATUS_COMPRESSED_FILE_NOT_SUPPORTED NTStatus = 0xC000047B + STATUS_DIRECTORY_NOT_SUPPORTED NTStatus = 0xC000047C + STATUS_IO_OPERATION_TIMEOUT NTStatus = 0xC000047D + STATUS_SYSTEM_NEEDS_REMEDIATION NTStatus = 0xC000047E + STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN NTStatus = 0xC000047F + STATUS_SHARE_UNAVAILABLE NTStatus = 0xC0000480 + STATUS_APISET_NOT_HOSTED NTStatus = 0xC0000481 + STATUS_APISET_NOT_PRESENT NTStatus = 0xC0000482 + STATUS_DEVICE_HARDWARE_ERROR NTStatus = 0xC0000483 + STATUS_FIRMWARE_SLOT_INVALID NTStatus = 0xC0000484 + STATUS_FIRMWARE_IMAGE_INVALID NTStatus = 0xC0000485 + STATUS_STORAGE_TOPOLOGY_ID_MISMATCH NTStatus = 0xC0000486 + STATUS_WIM_NOT_BOOTABLE NTStatus = 0xC0000487 + STATUS_BLOCKED_BY_PARENTAL_CONTROLS NTStatus = 0xC0000488 + STATUS_NEEDS_REGISTRATION NTStatus = 0xC0000489 + STATUS_QUOTA_ACTIVITY NTStatus = 0xC000048A + STATUS_CALLBACK_INVOKE_INLINE NTStatus = 0xC000048B + STATUS_BLOCK_TOO_MANY_REFERENCES NTStatus = 0xC000048C + STATUS_MARKED_TO_DISALLOW_WRITES NTStatus = 0xC000048D + STATUS_NETWORK_ACCESS_DENIED_EDP NTStatus = 0xC000048E + STATUS_ENCLAVE_FAILURE NTStatus = 0xC000048F + STATUS_PNP_NO_COMPAT_DRIVERS NTStatus = 0xC0000490 + STATUS_PNP_DRIVER_PACKAGE_NOT_FOUND NTStatus = 0xC0000491 + STATUS_PNP_DRIVER_CONFIGURATION_NOT_FOUND NTStatus = 0xC0000492 + STATUS_PNP_DRIVER_CONFIGURATION_INCOMPLETE NTStatus = 0xC0000493 + STATUS_PNP_FUNCTION_DRIVER_REQUIRED NTStatus = 0xC0000494 + STATUS_PNP_DEVICE_CONFIGURATION_PENDING NTStatus = 0xC0000495 + STATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL NTStatus = 0xC0000496 + STATUS_PACKAGE_NOT_AVAILABLE NTStatus = 0xC0000497 + STATUS_DEVICE_IN_MAINTENANCE NTStatus = 0xC0000499 + STATUS_NOT_SUPPORTED_ON_DAX NTStatus = 0xC000049A + STATUS_FREE_SPACE_TOO_FRAGMENTED NTStatus = 0xC000049B + STATUS_DAX_MAPPING_EXISTS NTStatus = 0xC000049C + STATUS_CHILD_PROCESS_BLOCKED NTStatus = 0xC000049D + STATUS_STORAGE_LOST_DATA_PERSISTENCE NTStatus = 0xC000049E + STATUS_VRF_CFG_ENABLED NTStatus = 0xC000049F + STATUS_PARTITION_TERMINATING NTStatus = 0xC00004A0 + STATUS_EXTERNAL_SYSKEY_NOT_SUPPORTED NTStatus = 0xC00004A1 + STATUS_ENCLAVE_VIOLATION NTStatus = 0xC00004A2 + STATUS_FILE_PROTECTED_UNDER_DPL NTStatus = 0xC00004A3 + STATUS_VOLUME_NOT_CLUSTER_ALIGNED NTStatus = 0xC00004A4 + STATUS_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND NTStatus = 0xC00004A5 + STATUS_APPX_FILE_NOT_ENCRYPTED NTStatus = 0xC00004A6 + STATUS_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED NTStatus = 0xC00004A7 + STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET NTStatus = 0xC00004A8 + STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE NTStatus = 0xC00004A9 + STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER NTStatus = 0xC00004AA + STATUS_FT_READ_FAILURE NTStatus = 0xC00004AB + STATUS_PATCH_CONFLICT NTStatus = 0xC00004AC + STATUS_STORAGE_RESERVE_ID_INVALID NTStatus = 0xC00004AD + STATUS_STORAGE_RESERVE_DOES_NOT_EXIST NTStatus = 0xC00004AE + STATUS_STORAGE_RESERVE_ALREADY_EXISTS NTStatus = 0xC00004AF + STATUS_STORAGE_RESERVE_NOT_EMPTY NTStatus = 0xC00004B0 + STATUS_NOT_A_DAX_VOLUME NTStatus = 0xC00004B1 + STATUS_NOT_DAX_MAPPABLE NTStatus = 0xC00004B2 + STATUS_CASE_DIFFERING_NAMES_IN_DIR NTStatus = 0xC00004B3 + STATUS_FILE_NOT_SUPPORTED NTStatus = 0xC00004B4 + STATUS_NOT_SUPPORTED_WITH_BTT NTStatus = 0xC00004B5 + STATUS_ENCRYPTION_DISABLED NTStatus = 0xC00004B6 + STATUS_ENCRYPTING_METADATA_DISALLOWED NTStatus = 0xC00004B7 + STATUS_CANT_CLEAR_ENCRYPTION_FLAG NTStatus = 0xC00004B8 + STATUS_INVALID_TASK_NAME NTStatus = 0xC0000500 + STATUS_INVALID_TASK_INDEX NTStatus = 0xC0000501 + STATUS_THREAD_ALREADY_IN_TASK NTStatus = 0xC0000502 + STATUS_CALLBACK_BYPASS NTStatus = 0xC0000503 + STATUS_UNDEFINED_SCOPE NTStatus = 0xC0000504 + STATUS_INVALID_CAP NTStatus = 0xC0000505 + STATUS_NOT_GUI_PROCESS NTStatus = 0xC0000506 + STATUS_DEVICE_HUNG NTStatus = 0xC0000507 + STATUS_CONTAINER_ASSIGNED NTStatus = 0xC0000508 + STATUS_JOB_NO_CONTAINER NTStatus = 0xC0000509 + STATUS_DEVICE_UNRESPONSIVE NTStatus = 0xC000050A + STATUS_REPARSE_POINT_ENCOUNTERED NTStatus = 0xC000050B + STATUS_ATTRIBUTE_NOT_PRESENT NTStatus = 0xC000050C + STATUS_NOT_A_TIERED_VOLUME NTStatus = 0xC000050D + STATUS_ALREADY_HAS_STREAM_ID NTStatus = 0xC000050E + STATUS_JOB_NOT_EMPTY NTStatus = 0xC000050F + STATUS_ALREADY_INITIALIZED NTStatus = 0xC0000510 + STATUS_ENCLAVE_NOT_TERMINATED NTStatus = 0xC0000511 + STATUS_ENCLAVE_IS_TERMINATING NTStatus = 0xC0000512 + STATUS_SMB1_NOT_AVAILABLE NTStatus = 0xC0000513 + STATUS_SMR_GARBAGE_COLLECTION_REQUIRED NTStatus = 0xC0000514 + STATUS_INTERRUPTED NTStatus = 0xC0000515 + STATUS_THREAD_NOT_RUNNING NTStatus = 0xC0000516 + STATUS_FAIL_FAST_EXCEPTION NTStatus = 0xC0000602 + STATUS_IMAGE_CERT_REVOKED NTStatus = 0xC0000603 + STATUS_DYNAMIC_CODE_BLOCKED NTStatus = 0xC0000604 + STATUS_IMAGE_CERT_EXPIRED NTStatus = 0xC0000605 + STATUS_STRICT_CFG_VIOLATION NTStatus = 0xC0000606 + STATUS_SET_CONTEXT_DENIED NTStatus = 0xC000060A + STATUS_CROSS_PARTITION_VIOLATION NTStatus = 0xC000060B + STATUS_PORT_CLOSED NTStatus = 0xC0000700 + STATUS_MESSAGE_LOST NTStatus = 0xC0000701 + STATUS_INVALID_MESSAGE NTStatus = 0xC0000702 + STATUS_REQUEST_CANCELED NTStatus = 0xC0000703 + STATUS_RECURSIVE_DISPATCH NTStatus = 0xC0000704 + STATUS_LPC_RECEIVE_BUFFER_EXPECTED NTStatus = 0xC0000705 + STATUS_LPC_INVALID_CONNECTION_USAGE NTStatus = 0xC0000706 + STATUS_LPC_REQUESTS_NOT_ALLOWED NTStatus = 0xC0000707 + STATUS_RESOURCE_IN_USE NTStatus = 0xC0000708 + STATUS_HARDWARE_MEMORY_ERROR NTStatus = 0xC0000709 + STATUS_THREADPOOL_HANDLE_EXCEPTION NTStatus = 0xC000070A + STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED NTStatus = 0xC000070B + STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED NTStatus = 0xC000070C + STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED NTStatus = 0xC000070D + STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED NTStatus = 0xC000070E + STATUS_THREADPOOL_RELEASED_DURING_OPERATION NTStatus = 0xC000070F + STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING NTStatus = 0xC0000710 + STATUS_APC_RETURNED_WHILE_IMPERSONATING NTStatus = 0xC0000711 + STATUS_PROCESS_IS_PROTECTED NTStatus = 0xC0000712 + STATUS_MCA_EXCEPTION NTStatus = 0xC0000713 + STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE NTStatus = 0xC0000714 + STATUS_SYMLINK_CLASS_DISABLED NTStatus = 0xC0000715 + STATUS_INVALID_IDN_NORMALIZATION NTStatus = 0xC0000716 + STATUS_NO_UNICODE_TRANSLATION NTStatus = 0xC0000717 + STATUS_ALREADY_REGISTERED NTStatus = 0xC0000718 + STATUS_CONTEXT_MISMATCH NTStatus = 0xC0000719 + STATUS_PORT_ALREADY_HAS_COMPLETION_LIST NTStatus = 0xC000071A + STATUS_CALLBACK_RETURNED_THREAD_PRIORITY NTStatus = 0xC000071B + STATUS_INVALID_THREAD NTStatus = 0xC000071C + STATUS_CALLBACK_RETURNED_TRANSACTION NTStatus = 0xC000071D + STATUS_CALLBACK_RETURNED_LDR_LOCK NTStatus = 0xC000071E + STATUS_CALLBACK_RETURNED_LANG NTStatus = 0xC000071F + STATUS_CALLBACK_RETURNED_PRI_BACK NTStatus = 0xC0000720 + STATUS_CALLBACK_RETURNED_THREAD_AFFINITY NTStatus = 0xC0000721 + STATUS_LPC_HANDLE_COUNT_EXCEEDED NTStatus = 0xC0000722 + STATUS_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000723 + STATUS_KERNEL_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000724 + STATUS_ATTACHED_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000725 + STATUS_TRIGGERED_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000726 + STATUS_DISK_REPAIR_DISABLED NTStatus = 0xC0000800 + STATUS_DS_DOMAIN_RENAME_IN_PROGRESS NTStatus = 0xC0000801 + STATUS_DISK_QUOTA_EXCEEDED NTStatus = 0xC0000802 + STATUS_DATA_LOST_REPAIR NTStatus = 0x80000803 + STATUS_CONTENT_BLOCKED NTStatus = 0xC0000804 + STATUS_BAD_CLUSTERS NTStatus = 0xC0000805 + STATUS_VOLUME_DIRTY NTStatus = 0xC0000806 + STATUS_DISK_REPAIR_REDIRECTED NTStatus = 0x40000807 + STATUS_DISK_REPAIR_UNSUCCESSFUL NTStatus = 0xC0000808 + STATUS_CORRUPT_LOG_OVERFULL NTStatus = 0xC0000809 + STATUS_CORRUPT_LOG_CORRUPTED NTStatus = 0xC000080A + STATUS_CORRUPT_LOG_UNAVAILABLE NTStatus = 0xC000080B + STATUS_CORRUPT_LOG_DELETED_FULL NTStatus = 0xC000080C + STATUS_CORRUPT_LOG_CLEARED NTStatus = 0xC000080D + STATUS_ORPHAN_NAME_EXHAUSTED NTStatus = 0xC000080E + STATUS_PROACTIVE_SCAN_IN_PROGRESS NTStatus = 0xC000080F + STATUS_ENCRYPTED_IO_NOT_POSSIBLE NTStatus = 0xC0000810 + STATUS_CORRUPT_LOG_UPLEVEL_RECORDS NTStatus = 0xC0000811 + STATUS_FILE_CHECKED_OUT NTStatus = 0xC0000901 + STATUS_CHECKOUT_REQUIRED NTStatus = 0xC0000902 + STATUS_BAD_FILE_TYPE NTStatus = 0xC0000903 + STATUS_FILE_TOO_LARGE NTStatus = 0xC0000904 + STATUS_FORMS_AUTH_REQUIRED NTStatus = 0xC0000905 + STATUS_VIRUS_INFECTED NTStatus = 0xC0000906 + STATUS_VIRUS_DELETED NTStatus = 0xC0000907 + STATUS_BAD_MCFG_TABLE NTStatus = 0xC0000908 + STATUS_CANNOT_BREAK_OPLOCK NTStatus = 0xC0000909 + STATUS_BAD_KEY NTStatus = 0xC000090A + STATUS_BAD_DATA NTStatus = 0xC000090B + STATUS_NO_KEY NTStatus = 0xC000090C + STATUS_FILE_HANDLE_REVOKED NTStatus = 0xC0000910 + STATUS_WOW_ASSERTION NTStatus = 0xC0009898 + STATUS_INVALID_SIGNATURE NTStatus = 0xC000A000 + STATUS_HMAC_NOT_SUPPORTED NTStatus = 0xC000A001 + STATUS_AUTH_TAG_MISMATCH NTStatus = 0xC000A002 + STATUS_INVALID_STATE_TRANSITION NTStatus = 0xC000A003 + STATUS_INVALID_KERNEL_INFO_VERSION NTStatus = 0xC000A004 + STATUS_INVALID_PEP_INFO_VERSION NTStatus = 0xC000A005 + STATUS_HANDLE_REVOKED NTStatus = 0xC000A006 + STATUS_EOF_ON_GHOSTED_RANGE NTStatus = 0xC000A007 + STATUS_IPSEC_QUEUE_OVERFLOW NTStatus = 0xC000A010 + STATUS_ND_QUEUE_OVERFLOW NTStatus = 0xC000A011 + STATUS_HOPLIMIT_EXCEEDED NTStatus = 0xC000A012 + STATUS_PROTOCOL_NOT_SUPPORTED NTStatus = 0xC000A013 + STATUS_FASTPATH_REJECTED NTStatus = 0xC000A014 + STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED NTStatus = 0xC000A080 + STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR NTStatus = 0xC000A081 + STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR NTStatus = 0xC000A082 + STATUS_XML_PARSE_ERROR NTStatus = 0xC000A083 + STATUS_XMLDSIG_ERROR NTStatus = 0xC000A084 + STATUS_WRONG_COMPARTMENT NTStatus = 0xC000A085 + STATUS_AUTHIP_FAILURE NTStatus = 0xC000A086 + STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS NTStatus = 0xC000A087 + STATUS_DS_OID_NOT_FOUND NTStatus = 0xC000A088 + STATUS_INCORRECT_ACCOUNT_TYPE NTStatus = 0xC000A089 + STATUS_HASH_NOT_SUPPORTED NTStatus = 0xC000A100 + STATUS_HASH_NOT_PRESENT NTStatus = 0xC000A101 + STATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED NTStatus = 0xC000A121 + STATUS_GPIO_CLIENT_INFORMATION_INVALID NTStatus = 0xC000A122 + STATUS_GPIO_VERSION_NOT_SUPPORTED NTStatus = 0xC000A123 + STATUS_GPIO_INVALID_REGISTRATION_PACKET NTStatus = 0xC000A124 + STATUS_GPIO_OPERATION_DENIED NTStatus = 0xC000A125 + STATUS_GPIO_INCOMPATIBLE_CONNECT_MODE NTStatus = 0xC000A126 + STATUS_GPIO_INTERRUPT_ALREADY_UNMASKED NTStatus = 0x8000A127 + STATUS_CANNOT_SWITCH_RUNLEVEL NTStatus = 0xC000A141 + STATUS_INVALID_RUNLEVEL_SETTING NTStatus = 0xC000A142 + STATUS_RUNLEVEL_SWITCH_TIMEOUT NTStatus = 0xC000A143 + STATUS_SERVICES_FAILED_AUTOSTART NTStatus = 0x4000A144 + STATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT NTStatus = 0xC000A145 + STATUS_RUNLEVEL_SWITCH_IN_PROGRESS NTStatus = 0xC000A146 + STATUS_NOT_APPCONTAINER NTStatus = 0xC000A200 + STATUS_NOT_SUPPORTED_IN_APPCONTAINER NTStatus = 0xC000A201 + STATUS_INVALID_PACKAGE_SID_LENGTH NTStatus = 0xC000A202 + STATUS_LPAC_ACCESS_DENIED NTStatus = 0xC000A203 + STATUS_ADMINLESS_ACCESS_DENIED NTStatus = 0xC000A204 + STATUS_APP_DATA_NOT_FOUND NTStatus = 0xC000A281 + STATUS_APP_DATA_EXPIRED NTStatus = 0xC000A282 + STATUS_APP_DATA_CORRUPT NTStatus = 0xC000A283 + STATUS_APP_DATA_LIMIT_EXCEEDED NTStatus = 0xC000A284 + STATUS_APP_DATA_REBOOT_REQUIRED NTStatus = 0xC000A285 + STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED NTStatus = 0xC000A2A1 + STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED NTStatus = 0xC000A2A2 + STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED NTStatus = 0xC000A2A3 + STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED NTStatus = 0xC000A2A4 + STATUS_WOF_WIM_HEADER_CORRUPT NTStatus = 0xC000A2A5 + STATUS_WOF_WIM_RESOURCE_TABLE_CORRUPT NTStatus = 0xC000A2A6 + STATUS_WOF_FILE_RESOURCE_TABLE_CORRUPT NTStatus = 0xC000A2A7 + STATUS_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE NTStatus = 0xC000CE01 + STATUS_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT NTStatus = 0xC000CE02 + STATUS_FILE_SYSTEM_VIRTUALIZATION_BUSY NTStatus = 0xC000CE03 + STATUS_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN NTStatus = 0xC000CE04 + STATUS_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION NTStatus = 0xC000CE05 + STATUS_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT NTStatus = 0xC000CF00 + STATUS_CLOUD_FILE_PROVIDER_NOT_RUNNING NTStatus = 0xC000CF01 + STATUS_CLOUD_FILE_METADATA_CORRUPT NTStatus = 0xC000CF02 + STATUS_CLOUD_FILE_METADATA_TOO_LARGE NTStatus = 0xC000CF03 + STATUS_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE NTStatus = 0x8000CF04 + STATUS_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS NTStatus = 0x8000CF05 + STATUS_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED NTStatus = 0xC000CF06 + STATUS_NOT_A_CLOUD_FILE NTStatus = 0xC000CF07 + STATUS_CLOUD_FILE_NOT_IN_SYNC NTStatus = 0xC000CF08 + STATUS_CLOUD_FILE_ALREADY_CONNECTED NTStatus = 0xC000CF09 + STATUS_CLOUD_FILE_NOT_SUPPORTED NTStatus = 0xC000CF0A + STATUS_CLOUD_FILE_INVALID_REQUEST NTStatus = 0xC000CF0B + STATUS_CLOUD_FILE_READ_ONLY_VOLUME NTStatus = 0xC000CF0C + STATUS_CLOUD_FILE_CONNECTED_PROVIDER_ONLY NTStatus = 0xC000CF0D + STATUS_CLOUD_FILE_VALIDATION_FAILED NTStatus = 0xC000CF0E + STATUS_CLOUD_FILE_AUTHENTICATION_FAILED NTStatus = 0xC000CF0F + STATUS_CLOUD_FILE_INSUFFICIENT_RESOURCES NTStatus = 0xC000CF10 + STATUS_CLOUD_FILE_NETWORK_UNAVAILABLE NTStatus = 0xC000CF11 + STATUS_CLOUD_FILE_UNSUCCESSFUL NTStatus = 0xC000CF12 + STATUS_CLOUD_FILE_NOT_UNDER_SYNC_ROOT NTStatus = 0xC000CF13 + STATUS_CLOUD_FILE_IN_USE NTStatus = 0xC000CF14 + STATUS_CLOUD_FILE_PINNED NTStatus = 0xC000CF15 + STATUS_CLOUD_FILE_REQUEST_ABORTED NTStatus = 0xC000CF16 + STATUS_CLOUD_FILE_PROPERTY_CORRUPT NTStatus = 0xC000CF17 + STATUS_CLOUD_FILE_ACCESS_DENIED NTStatus = 0xC000CF18 + STATUS_CLOUD_FILE_INCOMPATIBLE_HARDLINKS NTStatus = 0xC000CF19 + STATUS_CLOUD_FILE_PROPERTY_LOCK_CONFLICT NTStatus = 0xC000CF1A + STATUS_CLOUD_FILE_REQUEST_CANCELED NTStatus = 0xC000CF1B + STATUS_CLOUD_FILE_PROVIDER_TERMINATED NTStatus = 0xC000CF1D + STATUS_NOT_A_CLOUD_SYNC_ROOT NTStatus = 0xC000CF1E + STATUS_CLOUD_FILE_REQUEST_TIMEOUT NTStatus = 0xC000CF1F + STATUS_ACPI_INVALID_OPCODE NTStatus = 0xC0140001 + STATUS_ACPI_STACK_OVERFLOW NTStatus = 0xC0140002 + STATUS_ACPI_ASSERT_FAILED NTStatus = 0xC0140003 + STATUS_ACPI_INVALID_INDEX NTStatus = 0xC0140004 + STATUS_ACPI_INVALID_ARGUMENT NTStatus = 0xC0140005 + STATUS_ACPI_FATAL NTStatus = 0xC0140006 + STATUS_ACPI_INVALID_SUPERNAME NTStatus = 0xC0140007 + STATUS_ACPI_INVALID_ARGTYPE NTStatus = 0xC0140008 + STATUS_ACPI_INVALID_OBJTYPE NTStatus = 0xC0140009 + STATUS_ACPI_INVALID_TARGETTYPE NTStatus = 0xC014000A + STATUS_ACPI_INCORRECT_ARGUMENT_COUNT NTStatus = 0xC014000B + STATUS_ACPI_ADDRESS_NOT_MAPPED NTStatus = 0xC014000C + STATUS_ACPI_INVALID_EVENTTYPE NTStatus = 0xC014000D + STATUS_ACPI_HANDLER_COLLISION NTStatus = 0xC014000E + STATUS_ACPI_INVALID_DATA NTStatus = 0xC014000F + STATUS_ACPI_INVALID_REGION NTStatus = 0xC0140010 + STATUS_ACPI_INVALID_ACCESS_SIZE NTStatus = 0xC0140011 + STATUS_ACPI_ACQUIRE_GLOBAL_LOCK NTStatus = 0xC0140012 + STATUS_ACPI_ALREADY_INITIALIZED NTStatus = 0xC0140013 + STATUS_ACPI_NOT_INITIALIZED NTStatus = 0xC0140014 + STATUS_ACPI_INVALID_MUTEX_LEVEL NTStatus = 0xC0140015 + STATUS_ACPI_MUTEX_NOT_OWNED NTStatus = 0xC0140016 + STATUS_ACPI_MUTEX_NOT_OWNER NTStatus = 0xC0140017 + STATUS_ACPI_RS_ACCESS NTStatus = 0xC0140018 + STATUS_ACPI_INVALID_TABLE NTStatus = 0xC0140019 + STATUS_ACPI_REG_HANDLER_FAILED NTStatus = 0xC0140020 + STATUS_ACPI_POWER_REQUEST_FAILED NTStatus = 0xC0140021 + STATUS_CTX_WINSTATION_NAME_INVALID NTStatus = 0xC00A0001 + STATUS_CTX_INVALID_PD NTStatus = 0xC00A0002 + STATUS_CTX_PD_NOT_FOUND NTStatus = 0xC00A0003 + STATUS_CTX_CDM_CONNECT NTStatus = 0x400A0004 + STATUS_CTX_CDM_DISCONNECT NTStatus = 0x400A0005 + STATUS_CTX_CLOSE_PENDING NTStatus = 0xC00A0006 + STATUS_CTX_NO_OUTBUF NTStatus = 0xC00A0007 + STATUS_CTX_MODEM_INF_NOT_FOUND NTStatus = 0xC00A0008 + STATUS_CTX_INVALID_MODEMNAME NTStatus = 0xC00A0009 + STATUS_CTX_RESPONSE_ERROR NTStatus = 0xC00A000A + STATUS_CTX_MODEM_RESPONSE_TIMEOUT NTStatus = 0xC00A000B + STATUS_CTX_MODEM_RESPONSE_NO_CARRIER NTStatus = 0xC00A000C + STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE NTStatus = 0xC00A000D + STATUS_CTX_MODEM_RESPONSE_BUSY NTStatus = 0xC00A000E + STATUS_CTX_MODEM_RESPONSE_VOICE NTStatus = 0xC00A000F + STATUS_CTX_TD_ERROR NTStatus = 0xC00A0010 + STATUS_CTX_LICENSE_CLIENT_INVALID NTStatus = 0xC00A0012 + STATUS_CTX_LICENSE_NOT_AVAILABLE NTStatus = 0xC00A0013 + STATUS_CTX_LICENSE_EXPIRED NTStatus = 0xC00A0014 + STATUS_CTX_WINSTATION_NOT_FOUND NTStatus = 0xC00A0015 + STATUS_CTX_WINSTATION_NAME_COLLISION NTStatus = 0xC00A0016 + STATUS_CTX_WINSTATION_BUSY NTStatus = 0xC00A0017 + STATUS_CTX_BAD_VIDEO_MODE NTStatus = 0xC00A0018 + STATUS_CTX_GRAPHICS_INVALID NTStatus = 0xC00A0022 + STATUS_CTX_NOT_CONSOLE NTStatus = 0xC00A0024 + STATUS_CTX_CLIENT_QUERY_TIMEOUT NTStatus = 0xC00A0026 + STATUS_CTX_CONSOLE_DISCONNECT NTStatus = 0xC00A0027 + STATUS_CTX_CONSOLE_CONNECT NTStatus = 0xC00A0028 + STATUS_CTX_SHADOW_DENIED NTStatus = 0xC00A002A + STATUS_CTX_WINSTATION_ACCESS_DENIED NTStatus = 0xC00A002B + STATUS_CTX_INVALID_WD NTStatus = 0xC00A002E + STATUS_CTX_WD_NOT_FOUND NTStatus = 0xC00A002F + STATUS_CTX_SHADOW_INVALID NTStatus = 0xC00A0030 + STATUS_CTX_SHADOW_DISABLED NTStatus = 0xC00A0031 + STATUS_RDP_PROTOCOL_ERROR NTStatus = 0xC00A0032 + STATUS_CTX_CLIENT_LICENSE_NOT_SET NTStatus = 0xC00A0033 + STATUS_CTX_CLIENT_LICENSE_IN_USE NTStatus = 0xC00A0034 + STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE NTStatus = 0xC00A0035 + STATUS_CTX_SHADOW_NOT_RUNNING NTStatus = 0xC00A0036 + STATUS_CTX_LOGON_DISABLED NTStatus = 0xC00A0037 + STATUS_CTX_SECURITY_LAYER_ERROR NTStatus = 0xC00A0038 + STATUS_TS_INCOMPATIBLE_SESSIONS NTStatus = 0xC00A0039 + STATUS_TS_VIDEO_SUBSYSTEM_ERROR NTStatus = 0xC00A003A + STATUS_PNP_BAD_MPS_TABLE NTStatus = 0xC0040035 + STATUS_PNP_TRANSLATION_FAILED NTStatus = 0xC0040036 + STATUS_PNP_IRQ_TRANSLATION_FAILED NTStatus = 0xC0040037 + STATUS_PNP_INVALID_ID NTStatus = 0xC0040038 + STATUS_IO_REISSUE_AS_CACHED NTStatus = 0xC0040039 + STATUS_MUI_FILE_NOT_FOUND NTStatus = 0xC00B0001 + STATUS_MUI_INVALID_FILE NTStatus = 0xC00B0002 + STATUS_MUI_INVALID_RC_CONFIG NTStatus = 0xC00B0003 + STATUS_MUI_INVALID_LOCALE_NAME NTStatus = 0xC00B0004 + STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME NTStatus = 0xC00B0005 + STATUS_MUI_FILE_NOT_LOADED NTStatus = 0xC00B0006 + STATUS_RESOURCE_ENUM_USER_STOP NTStatus = 0xC00B0007 + STATUS_FLT_NO_HANDLER_DEFINED NTStatus = 0xC01C0001 + STATUS_FLT_CONTEXT_ALREADY_DEFINED NTStatus = 0xC01C0002 + STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST NTStatus = 0xC01C0003 + STATUS_FLT_DISALLOW_FAST_IO NTStatus = 0xC01C0004 + STATUS_FLT_INVALID_NAME_REQUEST NTStatus = 0xC01C0005 + STATUS_FLT_NOT_SAFE_TO_POST_OPERATION NTStatus = 0xC01C0006 + STATUS_FLT_NOT_INITIALIZED NTStatus = 0xC01C0007 + STATUS_FLT_FILTER_NOT_READY NTStatus = 0xC01C0008 + STATUS_FLT_POST_OPERATION_CLEANUP NTStatus = 0xC01C0009 + STATUS_FLT_INTERNAL_ERROR NTStatus = 0xC01C000A + STATUS_FLT_DELETING_OBJECT NTStatus = 0xC01C000B + STATUS_FLT_MUST_BE_NONPAGED_POOL NTStatus = 0xC01C000C + STATUS_FLT_DUPLICATE_ENTRY NTStatus = 0xC01C000D + STATUS_FLT_CBDQ_DISABLED NTStatus = 0xC01C000E + STATUS_FLT_DO_NOT_ATTACH NTStatus = 0xC01C000F + STATUS_FLT_DO_NOT_DETACH NTStatus = 0xC01C0010 + STATUS_FLT_INSTANCE_ALTITUDE_COLLISION NTStatus = 0xC01C0011 + STATUS_FLT_INSTANCE_NAME_COLLISION NTStatus = 0xC01C0012 + STATUS_FLT_FILTER_NOT_FOUND NTStatus = 0xC01C0013 + STATUS_FLT_VOLUME_NOT_FOUND NTStatus = 0xC01C0014 + STATUS_FLT_INSTANCE_NOT_FOUND NTStatus = 0xC01C0015 + STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND NTStatus = 0xC01C0016 + STATUS_FLT_INVALID_CONTEXT_REGISTRATION NTStatus = 0xC01C0017 + STATUS_FLT_NAME_CACHE_MISS NTStatus = 0xC01C0018 + STATUS_FLT_NO_DEVICE_OBJECT NTStatus = 0xC01C0019 + STATUS_FLT_VOLUME_ALREADY_MOUNTED NTStatus = 0xC01C001A + STATUS_FLT_ALREADY_ENLISTED NTStatus = 0xC01C001B + STATUS_FLT_CONTEXT_ALREADY_LINKED NTStatus = 0xC01C001C + STATUS_FLT_NO_WAITER_FOR_REPLY NTStatus = 0xC01C0020 + STATUS_FLT_REGISTRATION_BUSY NTStatus = 0xC01C0023 + STATUS_SXS_SECTION_NOT_FOUND NTStatus = 0xC0150001 + STATUS_SXS_CANT_GEN_ACTCTX NTStatus = 0xC0150002 + STATUS_SXS_INVALID_ACTCTXDATA_FORMAT NTStatus = 0xC0150003 + STATUS_SXS_ASSEMBLY_NOT_FOUND NTStatus = 0xC0150004 + STATUS_SXS_MANIFEST_FORMAT_ERROR NTStatus = 0xC0150005 + STATUS_SXS_MANIFEST_PARSE_ERROR NTStatus = 0xC0150006 + STATUS_SXS_ACTIVATION_CONTEXT_DISABLED NTStatus = 0xC0150007 + STATUS_SXS_KEY_NOT_FOUND NTStatus = 0xC0150008 + STATUS_SXS_VERSION_CONFLICT NTStatus = 0xC0150009 + STATUS_SXS_WRONG_SECTION_TYPE NTStatus = 0xC015000A + STATUS_SXS_THREAD_QUERIES_DISABLED NTStatus = 0xC015000B + STATUS_SXS_ASSEMBLY_MISSING NTStatus = 0xC015000C + STATUS_SXS_RELEASE_ACTIVATION_CONTEXT NTStatus = 0x4015000D + STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET NTStatus = 0xC015000E + STATUS_SXS_EARLY_DEACTIVATION NTStatus = 0xC015000F + STATUS_SXS_INVALID_DEACTIVATION NTStatus = 0xC0150010 + STATUS_SXS_MULTIPLE_DEACTIVATION NTStatus = 0xC0150011 + STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY NTStatus = 0xC0150012 + STATUS_SXS_PROCESS_TERMINATION_REQUESTED NTStatus = 0xC0150013 + STATUS_SXS_CORRUPT_ACTIVATION_STACK NTStatus = 0xC0150014 + STATUS_SXS_CORRUPTION NTStatus = 0xC0150015 + STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE NTStatus = 0xC0150016 + STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME NTStatus = 0xC0150017 + STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE NTStatus = 0xC0150018 + STATUS_SXS_IDENTITY_PARSE_ERROR NTStatus = 0xC0150019 + STATUS_SXS_COMPONENT_STORE_CORRUPT NTStatus = 0xC015001A + STATUS_SXS_FILE_HASH_MISMATCH NTStatus = 0xC015001B + STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT NTStatus = 0xC015001C + STATUS_SXS_IDENTITIES_DIFFERENT NTStatus = 0xC015001D + STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT NTStatus = 0xC015001E + STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY NTStatus = 0xC015001F + STATUS_ADVANCED_INSTALLER_FAILED NTStatus = 0xC0150020 + STATUS_XML_ENCODING_MISMATCH NTStatus = 0xC0150021 + STATUS_SXS_MANIFEST_TOO_BIG NTStatus = 0xC0150022 + STATUS_SXS_SETTING_NOT_REGISTERED NTStatus = 0xC0150023 + STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE NTStatus = 0xC0150024 + STATUS_SMI_PRIMITIVE_INSTALLER_FAILED NTStatus = 0xC0150025 + STATUS_GENERIC_COMMAND_FAILED NTStatus = 0xC0150026 + STATUS_SXS_FILE_HASH_MISSING NTStatus = 0xC0150027 + STATUS_CLUSTER_INVALID_NODE NTStatus = 0xC0130001 + STATUS_CLUSTER_NODE_EXISTS NTStatus = 0xC0130002 + STATUS_CLUSTER_JOIN_IN_PROGRESS NTStatus = 0xC0130003 + STATUS_CLUSTER_NODE_NOT_FOUND NTStatus = 0xC0130004 + STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND NTStatus = 0xC0130005 + STATUS_CLUSTER_NETWORK_EXISTS NTStatus = 0xC0130006 + STATUS_CLUSTER_NETWORK_NOT_FOUND NTStatus = 0xC0130007 + STATUS_CLUSTER_NETINTERFACE_EXISTS NTStatus = 0xC0130008 + STATUS_CLUSTER_NETINTERFACE_NOT_FOUND NTStatus = 0xC0130009 + STATUS_CLUSTER_INVALID_REQUEST NTStatus = 0xC013000A + STATUS_CLUSTER_INVALID_NETWORK_PROVIDER NTStatus = 0xC013000B + STATUS_CLUSTER_NODE_DOWN NTStatus = 0xC013000C + STATUS_CLUSTER_NODE_UNREACHABLE NTStatus = 0xC013000D + STATUS_CLUSTER_NODE_NOT_MEMBER NTStatus = 0xC013000E + STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS NTStatus = 0xC013000F + STATUS_CLUSTER_INVALID_NETWORK NTStatus = 0xC0130010 + STATUS_CLUSTER_NO_NET_ADAPTERS NTStatus = 0xC0130011 + STATUS_CLUSTER_NODE_UP NTStatus = 0xC0130012 + STATUS_CLUSTER_NODE_PAUSED NTStatus = 0xC0130013 + STATUS_CLUSTER_NODE_NOT_PAUSED NTStatus = 0xC0130014 + STATUS_CLUSTER_NO_SECURITY_CONTEXT NTStatus = 0xC0130015 + STATUS_CLUSTER_NETWORK_NOT_INTERNAL NTStatus = 0xC0130016 + STATUS_CLUSTER_POISONED NTStatus = 0xC0130017 + STATUS_CLUSTER_NON_CSV_PATH NTStatus = 0xC0130018 + STATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL NTStatus = 0xC0130019 + STATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS NTStatus = 0xC0130020 + STATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR NTStatus = 0xC0130021 + STATUS_CLUSTER_CSV_REDIRECTED NTStatus = 0xC0130022 + STATUS_CLUSTER_CSV_NOT_REDIRECTED NTStatus = 0xC0130023 + STATUS_CLUSTER_CSV_VOLUME_DRAINING NTStatus = 0xC0130024 + STATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS NTStatus = 0xC0130025 + STATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL NTStatus = 0xC0130026 + STATUS_CLUSTER_CSV_NO_SNAPSHOTS NTStatus = 0xC0130027 + STATUS_CSV_IO_PAUSE_TIMEOUT NTStatus = 0xC0130028 + STATUS_CLUSTER_CSV_INVALID_HANDLE NTStatus = 0xC0130029 + STATUS_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR NTStatus = 0xC0130030 + STATUS_CLUSTER_CAM_TICKET_REPLAY_DETECTED NTStatus = 0xC0130031 + STATUS_TRANSACTIONAL_CONFLICT NTStatus = 0xC0190001 + STATUS_INVALID_TRANSACTION NTStatus = 0xC0190002 + STATUS_TRANSACTION_NOT_ACTIVE NTStatus = 0xC0190003 + STATUS_TM_INITIALIZATION_FAILED NTStatus = 0xC0190004 + STATUS_RM_NOT_ACTIVE NTStatus = 0xC0190005 + STATUS_RM_METADATA_CORRUPT NTStatus = 0xC0190006 + STATUS_TRANSACTION_NOT_JOINED NTStatus = 0xC0190007 + STATUS_DIRECTORY_NOT_RM NTStatus = 0xC0190008 + STATUS_COULD_NOT_RESIZE_LOG NTStatus = 0x80190009 + STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE NTStatus = 0xC019000A + STATUS_LOG_RESIZE_INVALID_SIZE NTStatus = 0xC019000B + STATUS_REMOTE_FILE_VERSION_MISMATCH NTStatus = 0xC019000C + STATUS_CRM_PROTOCOL_ALREADY_EXISTS NTStatus = 0xC019000F + STATUS_TRANSACTION_PROPAGATION_FAILED NTStatus = 0xC0190010 + STATUS_CRM_PROTOCOL_NOT_FOUND NTStatus = 0xC0190011 + STATUS_TRANSACTION_SUPERIOR_EXISTS NTStatus = 0xC0190012 + STATUS_TRANSACTION_REQUEST_NOT_VALID NTStatus = 0xC0190013 + STATUS_TRANSACTION_NOT_REQUESTED NTStatus = 0xC0190014 + STATUS_TRANSACTION_ALREADY_ABORTED NTStatus = 0xC0190015 + STATUS_TRANSACTION_ALREADY_COMMITTED NTStatus = 0xC0190016 + STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER NTStatus = 0xC0190017 + STATUS_CURRENT_TRANSACTION_NOT_VALID NTStatus = 0xC0190018 + STATUS_LOG_GROWTH_FAILED NTStatus = 0xC0190019 + STATUS_OBJECT_NO_LONGER_EXISTS NTStatus = 0xC0190021 + STATUS_STREAM_MINIVERSION_NOT_FOUND NTStatus = 0xC0190022 + STATUS_STREAM_MINIVERSION_NOT_VALID NTStatus = 0xC0190023 + STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION NTStatus = 0xC0190024 + STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT NTStatus = 0xC0190025 + STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS NTStatus = 0xC0190026 + STATUS_HANDLE_NO_LONGER_VALID NTStatus = 0xC0190028 + STATUS_NO_TXF_METADATA NTStatus = 0x80190029 + STATUS_LOG_CORRUPTION_DETECTED NTStatus = 0xC0190030 + STATUS_CANT_RECOVER_WITH_HANDLE_OPEN NTStatus = 0x80190031 + STATUS_RM_DISCONNECTED NTStatus = 0xC0190032 + STATUS_ENLISTMENT_NOT_SUPERIOR NTStatus = 0xC0190033 + STATUS_RECOVERY_NOT_NEEDED NTStatus = 0x40190034 + STATUS_RM_ALREADY_STARTED NTStatus = 0x40190035 + STATUS_FILE_IDENTITY_NOT_PERSISTENT NTStatus = 0xC0190036 + STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY NTStatus = 0xC0190037 + STATUS_CANT_CROSS_RM_BOUNDARY NTStatus = 0xC0190038 + STATUS_TXF_DIR_NOT_EMPTY NTStatus = 0xC0190039 + STATUS_INDOUBT_TRANSACTIONS_EXIST NTStatus = 0xC019003A + STATUS_TM_VOLATILE NTStatus = 0xC019003B + STATUS_ROLLBACK_TIMER_EXPIRED NTStatus = 0xC019003C + STATUS_TXF_ATTRIBUTE_CORRUPT NTStatus = 0xC019003D + STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC019003E + STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED NTStatus = 0xC019003F + STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE NTStatus = 0xC0190040 + STATUS_TXF_METADATA_ALREADY_PRESENT NTStatus = 0x80190041 + STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET NTStatus = 0x80190042 + STATUS_TRANSACTION_REQUIRED_PROMOTION NTStatus = 0xC0190043 + STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION NTStatus = 0xC0190044 + STATUS_TRANSACTIONS_NOT_FROZEN NTStatus = 0xC0190045 + STATUS_TRANSACTION_FREEZE_IN_PROGRESS NTStatus = 0xC0190046 + STATUS_NOT_SNAPSHOT_VOLUME NTStatus = 0xC0190047 + STATUS_NO_SAVEPOINT_WITH_OPEN_FILES NTStatus = 0xC0190048 + STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC0190049 + STATUS_TM_IDENTITY_MISMATCH NTStatus = 0xC019004A + STATUS_FLOATED_SECTION NTStatus = 0xC019004B + STATUS_CANNOT_ACCEPT_TRANSACTED_WORK NTStatus = 0xC019004C + STATUS_CANNOT_ABORT_TRANSACTIONS NTStatus = 0xC019004D + STATUS_TRANSACTION_NOT_FOUND NTStatus = 0xC019004E + STATUS_RESOURCEMANAGER_NOT_FOUND NTStatus = 0xC019004F + STATUS_ENLISTMENT_NOT_FOUND NTStatus = 0xC0190050 + STATUS_TRANSACTIONMANAGER_NOT_FOUND NTStatus = 0xC0190051 + STATUS_TRANSACTIONMANAGER_NOT_ONLINE NTStatus = 0xC0190052 + STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION NTStatus = 0xC0190053 + STATUS_TRANSACTION_NOT_ROOT NTStatus = 0xC0190054 + STATUS_TRANSACTION_OBJECT_EXPIRED NTStatus = 0xC0190055 + STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC0190056 + STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED NTStatus = 0xC0190057 + STATUS_TRANSACTION_RECORD_TOO_LONG NTStatus = 0xC0190058 + STATUS_NO_LINK_TRACKING_IN_TRANSACTION NTStatus = 0xC0190059 + STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION NTStatus = 0xC019005A + STATUS_TRANSACTION_INTEGRITY_VIOLATED NTStatus = 0xC019005B + STATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH NTStatus = 0xC019005C + STATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT NTStatus = 0xC019005D + STATUS_TRANSACTION_MUST_WRITETHROUGH NTStatus = 0xC019005E + STATUS_TRANSACTION_NO_SUPERIOR NTStatus = 0xC019005F + STATUS_EXPIRED_HANDLE NTStatus = 0xC0190060 + STATUS_TRANSACTION_NOT_ENLISTED NTStatus = 0xC0190061 + STATUS_LOG_SECTOR_INVALID NTStatus = 0xC01A0001 + STATUS_LOG_SECTOR_PARITY_INVALID NTStatus = 0xC01A0002 + STATUS_LOG_SECTOR_REMAPPED NTStatus = 0xC01A0003 + STATUS_LOG_BLOCK_INCOMPLETE NTStatus = 0xC01A0004 + STATUS_LOG_INVALID_RANGE NTStatus = 0xC01A0005 + STATUS_LOG_BLOCKS_EXHAUSTED NTStatus = 0xC01A0006 + STATUS_LOG_READ_CONTEXT_INVALID NTStatus = 0xC01A0007 + STATUS_LOG_RESTART_INVALID NTStatus = 0xC01A0008 + STATUS_LOG_BLOCK_VERSION NTStatus = 0xC01A0009 + STATUS_LOG_BLOCK_INVALID NTStatus = 0xC01A000A + STATUS_LOG_READ_MODE_INVALID NTStatus = 0xC01A000B + STATUS_LOG_NO_RESTART NTStatus = 0x401A000C + STATUS_LOG_METADATA_CORRUPT NTStatus = 0xC01A000D + STATUS_LOG_METADATA_INVALID NTStatus = 0xC01A000E + STATUS_LOG_METADATA_INCONSISTENT NTStatus = 0xC01A000F + STATUS_LOG_RESERVATION_INVALID NTStatus = 0xC01A0010 + STATUS_LOG_CANT_DELETE NTStatus = 0xC01A0011 + STATUS_LOG_CONTAINER_LIMIT_EXCEEDED NTStatus = 0xC01A0012 + STATUS_LOG_START_OF_LOG NTStatus = 0xC01A0013 + STATUS_LOG_POLICY_ALREADY_INSTALLED NTStatus = 0xC01A0014 + STATUS_LOG_POLICY_NOT_INSTALLED NTStatus = 0xC01A0015 + STATUS_LOG_POLICY_INVALID NTStatus = 0xC01A0016 + STATUS_LOG_POLICY_CONFLICT NTStatus = 0xC01A0017 + STATUS_LOG_PINNED_ARCHIVE_TAIL NTStatus = 0xC01A0018 + STATUS_LOG_RECORD_NONEXISTENT NTStatus = 0xC01A0019 + STATUS_LOG_RECORDS_RESERVED_INVALID NTStatus = 0xC01A001A + STATUS_LOG_SPACE_RESERVED_INVALID NTStatus = 0xC01A001B + STATUS_LOG_TAIL_INVALID NTStatus = 0xC01A001C + STATUS_LOG_FULL NTStatus = 0xC01A001D + STATUS_LOG_MULTIPLEXED NTStatus = 0xC01A001E + STATUS_LOG_DEDICATED NTStatus = 0xC01A001F + STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS NTStatus = 0xC01A0020 + STATUS_LOG_ARCHIVE_IN_PROGRESS NTStatus = 0xC01A0021 + STATUS_LOG_EPHEMERAL NTStatus = 0xC01A0022 + STATUS_LOG_NOT_ENOUGH_CONTAINERS NTStatus = 0xC01A0023 + STATUS_LOG_CLIENT_ALREADY_REGISTERED NTStatus = 0xC01A0024 + STATUS_LOG_CLIENT_NOT_REGISTERED NTStatus = 0xC01A0025 + STATUS_LOG_FULL_HANDLER_IN_PROGRESS NTStatus = 0xC01A0026 + STATUS_LOG_CONTAINER_READ_FAILED NTStatus = 0xC01A0027 + STATUS_LOG_CONTAINER_WRITE_FAILED NTStatus = 0xC01A0028 + STATUS_LOG_CONTAINER_OPEN_FAILED NTStatus = 0xC01A0029 + STATUS_LOG_CONTAINER_STATE_INVALID NTStatus = 0xC01A002A + STATUS_LOG_STATE_INVALID NTStatus = 0xC01A002B + STATUS_LOG_PINNED NTStatus = 0xC01A002C + STATUS_LOG_METADATA_FLUSH_FAILED NTStatus = 0xC01A002D + STATUS_LOG_INCONSISTENT_SECURITY NTStatus = 0xC01A002E + STATUS_LOG_APPENDED_FLUSH_FAILED NTStatus = 0xC01A002F + STATUS_LOG_PINNED_RESERVATION NTStatus = 0xC01A0030 + STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD NTStatus = 0xC01B00EA + STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED NTStatus = 0x801B00EB + STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST NTStatus = 0x401B00EC + STATUS_MONITOR_NO_DESCRIPTOR NTStatus = 0xC01D0001 + STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT NTStatus = 0xC01D0002 + STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM NTStatus = 0xC01D0003 + STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK NTStatus = 0xC01D0004 + STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED NTStatus = 0xC01D0005 + STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK NTStatus = 0xC01D0006 + STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK NTStatus = 0xC01D0007 + STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA NTStatus = 0xC01D0008 + STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK NTStatus = 0xC01D0009 + STATUS_MONITOR_INVALID_MANUFACTURE_DATE NTStatus = 0xC01D000A + STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER NTStatus = 0xC01E0000 + STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER NTStatus = 0xC01E0001 + STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER NTStatus = 0xC01E0002 + STATUS_GRAPHICS_ADAPTER_WAS_RESET NTStatus = 0xC01E0003 + STATUS_GRAPHICS_INVALID_DRIVER_MODEL NTStatus = 0xC01E0004 + STATUS_GRAPHICS_PRESENT_MODE_CHANGED NTStatus = 0xC01E0005 + STATUS_GRAPHICS_PRESENT_OCCLUDED NTStatus = 0xC01E0006 + STATUS_GRAPHICS_PRESENT_DENIED NTStatus = 0xC01E0007 + STATUS_GRAPHICS_CANNOTCOLORCONVERT NTStatus = 0xC01E0008 + STATUS_GRAPHICS_DRIVER_MISMATCH NTStatus = 0xC01E0009 + STATUS_GRAPHICS_PARTIAL_DATA_POPULATED NTStatus = 0x401E000A + STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED NTStatus = 0xC01E000B + STATUS_GRAPHICS_PRESENT_UNOCCLUDED NTStatus = 0xC01E000C + STATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE NTStatus = 0xC01E000D + STATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED NTStatus = 0xC01E000E + STATUS_GRAPHICS_PRESENT_INVALID_WINDOW NTStatus = 0xC01E000F + STATUS_GRAPHICS_PRESENT_BUFFER_NOT_BOUND NTStatus = 0xC01E0010 + STATUS_GRAPHICS_VAIL_STATE_CHANGED NTStatus = 0xC01E0011 + STATUS_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN NTStatus = 0xC01E0012 + STATUS_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED NTStatus = 0xC01E0013 + STATUS_GRAPHICS_NO_VIDEO_MEMORY NTStatus = 0xC01E0100 + STATUS_GRAPHICS_CANT_LOCK_MEMORY NTStatus = 0xC01E0101 + STATUS_GRAPHICS_ALLOCATION_BUSY NTStatus = 0xC01E0102 + STATUS_GRAPHICS_TOO_MANY_REFERENCES NTStatus = 0xC01E0103 + STATUS_GRAPHICS_TRY_AGAIN_LATER NTStatus = 0xC01E0104 + STATUS_GRAPHICS_TRY_AGAIN_NOW NTStatus = 0xC01E0105 + STATUS_GRAPHICS_ALLOCATION_INVALID NTStatus = 0xC01E0106 + STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE NTStatus = 0xC01E0107 + STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED NTStatus = 0xC01E0108 + STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION NTStatus = 0xC01E0109 + STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE NTStatus = 0xC01E0110 + STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION NTStatus = 0xC01E0111 + STATUS_GRAPHICS_ALLOCATION_CLOSED NTStatus = 0xC01E0112 + STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE NTStatus = 0xC01E0113 + STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE NTStatus = 0xC01E0114 + STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE NTStatus = 0xC01E0115 + STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST NTStatus = 0xC01E0116 + STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE NTStatus = 0xC01E0200 + STATUS_GRAPHICS_SKIP_ALLOCATION_PREPARATION NTStatus = 0x401E0201 + STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY NTStatus = 0xC01E0300 + STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED NTStatus = 0xC01E0301 + STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED NTStatus = 0xC01E0302 + STATUS_GRAPHICS_INVALID_VIDPN NTStatus = 0xC01E0303 + STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE NTStatus = 0xC01E0304 + STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET NTStatus = 0xC01E0305 + STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED NTStatus = 0xC01E0306 + STATUS_GRAPHICS_MODE_NOT_PINNED NTStatus = 0x401E0307 + STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET NTStatus = 0xC01E0308 + STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET NTStatus = 0xC01E0309 + STATUS_GRAPHICS_INVALID_FREQUENCY NTStatus = 0xC01E030A + STATUS_GRAPHICS_INVALID_ACTIVE_REGION NTStatus = 0xC01E030B + STATUS_GRAPHICS_INVALID_TOTAL_REGION NTStatus = 0xC01E030C + STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE NTStatus = 0xC01E0310 + STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE NTStatus = 0xC01E0311 + STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET NTStatus = 0xC01E0312 + STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY NTStatus = 0xC01E0313 + STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET NTStatus = 0xC01E0314 + STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET NTStatus = 0xC01E0315 + STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET NTStatus = 0xC01E0316 + STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET NTStatus = 0xC01E0317 + STATUS_GRAPHICS_TARGET_ALREADY_IN_SET NTStatus = 0xC01E0318 + STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH NTStatus = 0xC01E0319 + STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY NTStatus = 0xC01E031A + STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET NTStatus = 0xC01E031B + STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE NTStatus = 0xC01E031C + STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET NTStatus = 0xC01E031D + STATUS_GRAPHICS_NO_PREFERRED_MODE NTStatus = 0x401E031E + STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET NTStatus = 0xC01E031F + STATUS_GRAPHICS_STALE_MODESET NTStatus = 0xC01E0320 + STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET NTStatus = 0xC01E0321 + STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE NTStatus = 0xC01E0322 + STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN NTStatus = 0xC01E0323 + STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0324 + STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION NTStatus = 0xC01E0325 + STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES NTStatus = 0xC01E0326 + STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY NTStatus = 0xC01E0327 + STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE NTStatus = 0xC01E0328 + STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET NTStatus = 0xC01E0329 + STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET NTStatus = 0xC01E032A + STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR NTStatus = 0xC01E032B + STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET NTStatus = 0xC01E032C + STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET NTStatus = 0xC01E032D + STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE NTStatus = 0xC01E032E + STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE NTStatus = 0xC01E032F + STATUS_GRAPHICS_RESOURCES_NOT_RELATED NTStatus = 0xC01E0330 + STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0331 + STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0332 + STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET NTStatus = 0xC01E0333 + STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER NTStatus = 0xC01E0334 + STATUS_GRAPHICS_NO_VIDPNMGR NTStatus = 0xC01E0335 + STATUS_GRAPHICS_NO_ACTIVE_VIDPN NTStatus = 0xC01E0336 + STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY NTStatus = 0xC01E0337 + STATUS_GRAPHICS_MONITOR_NOT_CONNECTED NTStatus = 0xC01E0338 + STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY NTStatus = 0xC01E0339 + STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE NTStatus = 0xC01E033A + STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE NTStatus = 0xC01E033B + STATUS_GRAPHICS_INVALID_STRIDE NTStatus = 0xC01E033C + STATUS_GRAPHICS_INVALID_PIXELFORMAT NTStatus = 0xC01E033D + STATUS_GRAPHICS_INVALID_COLORBASIS NTStatus = 0xC01E033E + STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE NTStatus = 0xC01E033F + STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY NTStatus = 0xC01E0340 + STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT NTStatus = 0xC01E0341 + STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE NTStatus = 0xC01E0342 + STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN NTStatus = 0xC01E0343 + STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL NTStatus = 0xC01E0344 + STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION NTStatus = 0xC01E0345 + STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED NTStatus = 0xC01E0346 + STATUS_GRAPHICS_INVALID_GAMMA_RAMP NTStatus = 0xC01E0347 + STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED NTStatus = 0xC01E0348 + STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED NTStatus = 0xC01E0349 + STATUS_GRAPHICS_MODE_NOT_IN_MODESET NTStatus = 0xC01E034A + STATUS_GRAPHICS_DATASET_IS_EMPTY NTStatus = 0x401E034B + STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET NTStatus = 0x401E034C + STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON NTStatus = 0xC01E034D + STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE NTStatus = 0xC01E034E + STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE NTStatus = 0xC01E034F + STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS NTStatus = 0xC01E0350 + STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED NTStatus = 0x401E0351 + STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING NTStatus = 0xC01E0352 + STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED NTStatus = 0xC01E0353 + STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS NTStatus = 0xC01E0354 + STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT NTStatus = 0xC01E0355 + STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM NTStatus = 0xC01E0356 + STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN NTStatus = 0xC01E0357 + STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT NTStatus = 0xC01E0358 + STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED NTStatus = 0xC01E0359 + STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION NTStatus = 0xC01E035A + STATUS_GRAPHICS_INVALID_CLIENT_TYPE NTStatus = 0xC01E035B + STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET NTStatus = 0xC01E035C + STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED NTStatus = 0xC01E0400 + STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED NTStatus = 0xC01E0401 + STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS NTStatus = 0x401E042F + STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER NTStatus = 0xC01E0430 + STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED NTStatus = 0xC01E0431 + STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED NTStatus = 0xC01E0432 + STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY NTStatus = 0xC01E0433 + STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED NTStatus = 0xC01E0434 + STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON NTStatus = 0xC01E0435 + STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE NTStatus = 0xC01E0436 + STATUS_GRAPHICS_LEADLINK_START_DEFERRED NTStatus = 0x401E0437 + STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER NTStatus = 0xC01E0438 + STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY NTStatus = 0x401E0439 + STATUS_GRAPHICS_START_DEFERRED NTStatus = 0x401E043A + STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED NTStatus = 0xC01E043B + STATUS_GRAPHICS_DEPENDABLE_CHILD_STATUS NTStatus = 0x401E043C + STATUS_GRAPHICS_OPM_NOT_SUPPORTED NTStatus = 0xC01E0500 + STATUS_GRAPHICS_COPP_NOT_SUPPORTED NTStatus = 0xC01E0501 + STATUS_GRAPHICS_UAB_NOT_SUPPORTED NTStatus = 0xC01E0502 + STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS NTStatus = 0xC01E0503 + STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST NTStatus = 0xC01E0505 + STATUS_GRAPHICS_OPM_INTERNAL_ERROR NTStatus = 0xC01E050B + STATUS_GRAPHICS_OPM_INVALID_HANDLE NTStatus = 0xC01E050C + STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH NTStatus = 0xC01E050E + STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED NTStatus = 0xC01E050F + STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED NTStatus = 0xC01E0510 + STATUS_GRAPHICS_PVP_HFS_FAILED NTStatus = 0xC01E0511 + STATUS_GRAPHICS_OPM_INVALID_SRM NTStatus = 0xC01E0512 + STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP NTStatus = 0xC01E0513 + STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP NTStatus = 0xC01E0514 + STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA NTStatus = 0xC01E0515 + STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET NTStatus = 0xC01E0516 + STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH NTStatus = 0xC01E0517 + STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE NTStatus = 0xC01E0518 + STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS NTStatus = 0xC01E051A + STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS NTStatus = 0xC01E051C + STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST NTStatus = 0xC01E051D + STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR NTStatus = 0xC01E051E + STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS NTStatus = 0xC01E051F + STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED NTStatus = 0xC01E0520 + STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST NTStatus = 0xC01E0521 + STATUS_GRAPHICS_I2C_NOT_SUPPORTED NTStatus = 0xC01E0580 + STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST NTStatus = 0xC01E0581 + STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA NTStatus = 0xC01E0582 + STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA NTStatus = 0xC01E0583 + STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED NTStatus = 0xC01E0584 + STATUS_GRAPHICS_DDCCI_INVALID_DATA NTStatus = 0xC01E0585 + STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE NTStatus = 0xC01E0586 + STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING NTStatus = 0xC01E0587 + STATUS_GRAPHICS_MCA_INTERNAL_ERROR NTStatus = 0xC01E0588 + STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND NTStatus = 0xC01E0589 + STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH NTStatus = 0xC01E058A + STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM NTStatus = 0xC01E058B + STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE NTStatus = 0xC01E058C + STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS NTStatus = 0xC01E058D + STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED NTStatus = 0xC01E05E0 + STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME NTStatus = 0xC01E05E1 + STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP NTStatus = 0xC01E05E2 + STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED NTStatus = 0xC01E05E3 + STATUS_GRAPHICS_INVALID_POINTER NTStatus = 0xC01E05E4 + STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE NTStatus = 0xC01E05E5 + STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL NTStatus = 0xC01E05E6 + STATUS_GRAPHICS_INTERNAL_ERROR NTStatus = 0xC01E05E7 + STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS NTStatus = 0xC01E05E8 + STATUS_FVE_LOCKED_VOLUME NTStatus = 0xC0210000 + STATUS_FVE_NOT_ENCRYPTED NTStatus = 0xC0210001 + STATUS_FVE_BAD_INFORMATION NTStatus = 0xC0210002 + STATUS_FVE_TOO_SMALL NTStatus = 0xC0210003 + STATUS_FVE_FAILED_WRONG_FS NTStatus = 0xC0210004 + STATUS_FVE_BAD_PARTITION_SIZE NTStatus = 0xC0210005 + STATUS_FVE_FS_NOT_EXTENDED NTStatus = 0xC0210006 + STATUS_FVE_FS_MOUNTED NTStatus = 0xC0210007 + STATUS_FVE_NO_LICENSE NTStatus = 0xC0210008 + STATUS_FVE_ACTION_NOT_ALLOWED NTStatus = 0xC0210009 + STATUS_FVE_BAD_DATA NTStatus = 0xC021000A + STATUS_FVE_VOLUME_NOT_BOUND NTStatus = 0xC021000B + STATUS_FVE_NOT_DATA_VOLUME NTStatus = 0xC021000C + STATUS_FVE_CONV_READ_ERROR NTStatus = 0xC021000D + STATUS_FVE_CONV_WRITE_ERROR NTStatus = 0xC021000E + STATUS_FVE_OVERLAPPED_UPDATE NTStatus = 0xC021000F + STATUS_FVE_FAILED_SECTOR_SIZE NTStatus = 0xC0210010 + STATUS_FVE_FAILED_AUTHENTICATION NTStatus = 0xC0210011 + STATUS_FVE_NOT_OS_VOLUME NTStatus = 0xC0210012 + STATUS_FVE_KEYFILE_NOT_FOUND NTStatus = 0xC0210013 + STATUS_FVE_KEYFILE_INVALID NTStatus = 0xC0210014 + STATUS_FVE_KEYFILE_NO_VMK NTStatus = 0xC0210015 + STATUS_FVE_TPM_DISABLED NTStatus = 0xC0210016 + STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO NTStatus = 0xC0210017 + STATUS_FVE_TPM_INVALID_PCR NTStatus = 0xC0210018 + STATUS_FVE_TPM_NO_VMK NTStatus = 0xC0210019 + STATUS_FVE_PIN_INVALID NTStatus = 0xC021001A + STATUS_FVE_AUTH_INVALID_APPLICATION NTStatus = 0xC021001B + STATUS_FVE_AUTH_INVALID_CONFIG NTStatus = 0xC021001C + STATUS_FVE_DEBUGGER_ENABLED NTStatus = 0xC021001D + STATUS_FVE_DRY_RUN_FAILED NTStatus = 0xC021001E + STATUS_FVE_BAD_METADATA_POINTER NTStatus = 0xC021001F + STATUS_FVE_OLD_METADATA_COPY NTStatus = 0xC0210020 + STATUS_FVE_REBOOT_REQUIRED NTStatus = 0xC0210021 + STATUS_FVE_RAW_ACCESS NTStatus = 0xC0210022 + STATUS_FVE_RAW_BLOCKED NTStatus = 0xC0210023 + STATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY NTStatus = 0xC0210024 + STATUS_FVE_MOR_FAILED NTStatus = 0xC0210025 + STATUS_FVE_NO_FEATURE_LICENSE NTStatus = 0xC0210026 + STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED NTStatus = 0xC0210027 + STATUS_FVE_CONV_RECOVERY_FAILED NTStatus = 0xC0210028 + STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG NTStatus = 0xC0210029 + STATUS_FVE_INVALID_DATUM_TYPE NTStatus = 0xC021002A + STATUS_FVE_VOLUME_TOO_SMALL NTStatus = 0xC0210030 + STATUS_FVE_ENH_PIN_INVALID NTStatus = 0xC0210031 + STATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE NTStatus = 0xC0210032 + STATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE NTStatus = 0xC0210033 + STATUS_FVE_NOT_ALLOWED_ON_CSV_STACK NTStatus = 0xC0210034 + STATUS_FVE_NOT_ALLOWED_ON_CLUSTER NTStatus = 0xC0210035 + STATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING NTStatus = 0xC0210036 + STATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE NTStatus = 0xC0210037 + STATUS_FVE_EDRIVE_DRY_RUN_FAILED NTStatus = 0xC0210038 + STATUS_FVE_SECUREBOOT_DISABLED NTStatus = 0xC0210039 + STATUS_FVE_SECUREBOOT_CONFIG_CHANGE NTStatus = 0xC021003A + STATUS_FVE_DEVICE_LOCKEDOUT NTStatus = 0xC021003B + STATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT NTStatus = 0xC021003C + STATUS_FVE_NOT_DE_VOLUME NTStatus = 0xC021003D + STATUS_FVE_PROTECTION_DISABLED NTStatus = 0xC021003E + STATUS_FVE_PROTECTION_CANNOT_BE_DISABLED NTStatus = 0xC021003F + STATUS_FVE_OSV_KSR_NOT_ALLOWED NTStatus = 0xC0210040 + STATUS_FWP_CALLOUT_NOT_FOUND NTStatus = 0xC0220001 + STATUS_FWP_CONDITION_NOT_FOUND NTStatus = 0xC0220002 + STATUS_FWP_FILTER_NOT_FOUND NTStatus = 0xC0220003 + STATUS_FWP_LAYER_NOT_FOUND NTStatus = 0xC0220004 + STATUS_FWP_PROVIDER_NOT_FOUND NTStatus = 0xC0220005 + STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND NTStatus = 0xC0220006 + STATUS_FWP_SUBLAYER_NOT_FOUND NTStatus = 0xC0220007 + STATUS_FWP_NOT_FOUND NTStatus = 0xC0220008 + STATUS_FWP_ALREADY_EXISTS NTStatus = 0xC0220009 + STATUS_FWP_IN_USE NTStatus = 0xC022000A + STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS NTStatus = 0xC022000B + STATUS_FWP_WRONG_SESSION NTStatus = 0xC022000C + STATUS_FWP_NO_TXN_IN_PROGRESS NTStatus = 0xC022000D + STATUS_FWP_TXN_IN_PROGRESS NTStatus = 0xC022000E + STATUS_FWP_TXN_ABORTED NTStatus = 0xC022000F + STATUS_FWP_SESSION_ABORTED NTStatus = 0xC0220010 + STATUS_FWP_INCOMPATIBLE_TXN NTStatus = 0xC0220011 + STATUS_FWP_TIMEOUT NTStatus = 0xC0220012 + STATUS_FWP_NET_EVENTS_DISABLED NTStatus = 0xC0220013 + STATUS_FWP_INCOMPATIBLE_LAYER NTStatus = 0xC0220014 + STATUS_FWP_KM_CLIENTS_ONLY NTStatus = 0xC0220015 + STATUS_FWP_LIFETIME_MISMATCH NTStatus = 0xC0220016 + STATUS_FWP_BUILTIN_OBJECT NTStatus = 0xC0220017 + STATUS_FWP_TOO_MANY_CALLOUTS NTStatus = 0xC0220018 + STATUS_FWP_NOTIFICATION_DROPPED NTStatus = 0xC0220019 + STATUS_FWP_TRAFFIC_MISMATCH NTStatus = 0xC022001A + STATUS_FWP_INCOMPATIBLE_SA_STATE NTStatus = 0xC022001B + STATUS_FWP_NULL_POINTER NTStatus = 0xC022001C + STATUS_FWP_INVALID_ENUMERATOR NTStatus = 0xC022001D + STATUS_FWP_INVALID_FLAGS NTStatus = 0xC022001E + STATUS_FWP_INVALID_NET_MASK NTStatus = 0xC022001F + STATUS_FWP_INVALID_RANGE NTStatus = 0xC0220020 + STATUS_FWP_INVALID_INTERVAL NTStatus = 0xC0220021 + STATUS_FWP_ZERO_LENGTH_ARRAY NTStatus = 0xC0220022 + STATUS_FWP_NULL_DISPLAY_NAME NTStatus = 0xC0220023 + STATUS_FWP_INVALID_ACTION_TYPE NTStatus = 0xC0220024 + STATUS_FWP_INVALID_WEIGHT NTStatus = 0xC0220025 + STATUS_FWP_MATCH_TYPE_MISMATCH NTStatus = 0xC0220026 + STATUS_FWP_TYPE_MISMATCH NTStatus = 0xC0220027 + STATUS_FWP_OUT_OF_BOUNDS NTStatus = 0xC0220028 + STATUS_FWP_RESERVED NTStatus = 0xC0220029 + STATUS_FWP_DUPLICATE_CONDITION NTStatus = 0xC022002A + STATUS_FWP_DUPLICATE_KEYMOD NTStatus = 0xC022002B + STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER NTStatus = 0xC022002C + STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER NTStatus = 0xC022002D + STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER NTStatus = 0xC022002E + STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT NTStatus = 0xC022002F + STATUS_FWP_INCOMPATIBLE_AUTH_METHOD NTStatus = 0xC0220030 + STATUS_FWP_INCOMPATIBLE_DH_GROUP NTStatus = 0xC0220031 + STATUS_FWP_EM_NOT_SUPPORTED NTStatus = 0xC0220032 + STATUS_FWP_NEVER_MATCH NTStatus = 0xC0220033 + STATUS_FWP_PROVIDER_CONTEXT_MISMATCH NTStatus = 0xC0220034 + STATUS_FWP_INVALID_PARAMETER NTStatus = 0xC0220035 + STATUS_FWP_TOO_MANY_SUBLAYERS NTStatus = 0xC0220036 + STATUS_FWP_CALLOUT_NOTIFICATION_FAILED NTStatus = 0xC0220037 + STATUS_FWP_INVALID_AUTH_TRANSFORM NTStatus = 0xC0220038 + STATUS_FWP_INVALID_CIPHER_TRANSFORM NTStatus = 0xC0220039 + STATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM NTStatus = 0xC022003A + STATUS_FWP_INVALID_TRANSFORM_COMBINATION NTStatus = 0xC022003B + STATUS_FWP_DUPLICATE_AUTH_METHOD NTStatus = 0xC022003C + STATUS_FWP_INVALID_TUNNEL_ENDPOINT NTStatus = 0xC022003D + STATUS_FWP_L2_DRIVER_NOT_READY NTStatus = 0xC022003E + STATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED NTStatus = 0xC022003F + STATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL NTStatus = 0xC0220040 + STATUS_FWP_CONNECTIONS_DISABLED NTStatus = 0xC0220041 + STATUS_FWP_INVALID_DNS_NAME NTStatus = 0xC0220042 + STATUS_FWP_STILL_ON NTStatus = 0xC0220043 + STATUS_FWP_IKEEXT_NOT_RUNNING NTStatus = 0xC0220044 + STATUS_FWP_TCPIP_NOT_READY NTStatus = 0xC0220100 + STATUS_FWP_INJECT_HANDLE_CLOSING NTStatus = 0xC0220101 + STATUS_FWP_INJECT_HANDLE_STALE NTStatus = 0xC0220102 + STATUS_FWP_CANNOT_PEND NTStatus = 0xC0220103 + STATUS_FWP_DROP_NOICMP NTStatus = 0xC0220104 + STATUS_NDIS_CLOSING NTStatus = 0xC0230002 + STATUS_NDIS_BAD_VERSION NTStatus = 0xC0230004 + STATUS_NDIS_BAD_CHARACTERISTICS NTStatus = 0xC0230005 + STATUS_NDIS_ADAPTER_NOT_FOUND NTStatus = 0xC0230006 + STATUS_NDIS_OPEN_FAILED NTStatus = 0xC0230007 + STATUS_NDIS_DEVICE_FAILED NTStatus = 0xC0230008 + STATUS_NDIS_MULTICAST_FULL NTStatus = 0xC0230009 + STATUS_NDIS_MULTICAST_EXISTS NTStatus = 0xC023000A + STATUS_NDIS_MULTICAST_NOT_FOUND NTStatus = 0xC023000B + STATUS_NDIS_REQUEST_ABORTED NTStatus = 0xC023000C + STATUS_NDIS_RESET_IN_PROGRESS NTStatus = 0xC023000D + STATUS_NDIS_NOT_SUPPORTED NTStatus = 0xC02300BB + STATUS_NDIS_INVALID_PACKET NTStatus = 0xC023000F + STATUS_NDIS_ADAPTER_NOT_READY NTStatus = 0xC0230011 + STATUS_NDIS_INVALID_LENGTH NTStatus = 0xC0230014 + STATUS_NDIS_INVALID_DATA NTStatus = 0xC0230015 + STATUS_NDIS_BUFFER_TOO_SHORT NTStatus = 0xC0230016 + STATUS_NDIS_INVALID_OID NTStatus = 0xC0230017 + STATUS_NDIS_ADAPTER_REMOVED NTStatus = 0xC0230018 + STATUS_NDIS_UNSUPPORTED_MEDIA NTStatus = 0xC0230019 + STATUS_NDIS_GROUP_ADDRESS_IN_USE NTStatus = 0xC023001A + STATUS_NDIS_FILE_NOT_FOUND NTStatus = 0xC023001B + STATUS_NDIS_ERROR_READING_FILE NTStatus = 0xC023001C + STATUS_NDIS_ALREADY_MAPPED NTStatus = 0xC023001D + STATUS_NDIS_RESOURCE_CONFLICT NTStatus = 0xC023001E + STATUS_NDIS_MEDIA_DISCONNECTED NTStatus = 0xC023001F + STATUS_NDIS_INVALID_ADDRESS NTStatus = 0xC0230022 + STATUS_NDIS_INVALID_DEVICE_REQUEST NTStatus = 0xC0230010 + STATUS_NDIS_PAUSED NTStatus = 0xC023002A + STATUS_NDIS_INTERFACE_NOT_FOUND NTStatus = 0xC023002B + STATUS_NDIS_UNSUPPORTED_REVISION NTStatus = 0xC023002C + STATUS_NDIS_INVALID_PORT NTStatus = 0xC023002D + STATUS_NDIS_INVALID_PORT_STATE NTStatus = 0xC023002E + STATUS_NDIS_LOW_POWER_STATE NTStatus = 0xC023002F + STATUS_NDIS_REINIT_REQUIRED NTStatus = 0xC0230030 + STATUS_NDIS_NO_QUEUES NTStatus = 0xC0230031 + STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED NTStatus = 0xC0232000 + STATUS_NDIS_DOT11_MEDIA_IN_USE NTStatus = 0xC0232001 + STATUS_NDIS_DOT11_POWER_STATE_INVALID NTStatus = 0xC0232002 + STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL NTStatus = 0xC0232003 + STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL NTStatus = 0xC0232004 + STATUS_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE NTStatus = 0xC0232005 + STATUS_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE NTStatus = 0xC0232006 + STATUS_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED NTStatus = 0xC0232007 + STATUS_NDIS_DOT11_AP_BAND_NOT_ALLOWED NTStatus = 0xC0232008 + STATUS_NDIS_INDICATION_REQUIRED NTStatus = 0x40230001 + STATUS_NDIS_OFFLOAD_POLICY NTStatus = 0xC023100F + STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED NTStatus = 0xC0231012 + STATUS_NDIS_OFFLOAD_PATH_REJECTED NTStatus = 0xC0231013 + STATUS_TPM_ERROR_MASK NTStatus = 0xC0290000 + STATUS_TPM_AUTHFAIL NTStatus = 0xC0290001 + STATUS_TPM_BADINDEX NTStatus = 0xC0290002 + STATUS_TPM_BAD_PARAMETER NTStatus = 0xC0290003 + STATUS_TPM_AUDITFAILURE NTStatus = 0xC0290004 + STATUS_TPM_CLEAR_DISABLED NTStatus = 0xC0290005 + STATUS_TPM_DEACTIVATED NTStatus = 0xC0290006 + STATUS_TPM_DISABLED NTStatus = 0xC0290007 + STATUS_TPM_DISABLED_CMD NTStatus = 0xC0290008 + STATUS_TPM_FAIL NTStatus = 0xC0290009 + STATUS_TPM_BAD_ORDINAL NTStatus = 0xC029000A + STATUS_TPM_INSTALL_DISABLED NTStatus = 0xC029000B + STATUS_TPM_INVALID_KEYHANDLE NTStatus = 0xC029000C + STATUS_TPM_KEYNOTFOUND NTStatus = 0xC029000D + STATUS_TPM_INAPPROPRIATE_ENC NTStatus = 0xC029000E + STATUS_TPM_MIGRATEFAIL NTStatus = 0xC029000F + STATUS_TPM_INVALID_PCR_INFO NTStatus = 0xC0290010 + STATUS_TPM_NOSPACE NTStatus = 0xC0290011 + STATUS_TPM_NOSRK NTStatus = 0xC0290012 + STATUS_TPM_NOTSEALED_BLOB NTStatus = 0xC0290013 + STATUS_TPM_OWNER_SET NTStatus = 0xC0290014 + STATUS_TPM_RESOURCES NTStatus = 0xC0290015 + STATUS_TPM_SHORTRANDOM NTStatus = 0xC0290016 + STATUS_TPM_SIZE NTStatus = 0xC0290017 + STATUS_TPM_WRONGPCRVAL NTStatus = 0xC0290018 + STATUS_TPM_BAD_PARAM_SIZE NTStatus = 0xC0290019 + STATUS_TPM_SHA_THREAD NTStatus = 0xC029001A + STATUS_TPM_SHA_ERROR NTStatus = 0xC029001B + STATUS_TPM_FAILEDSELFTEST NTStatus = 0xC029001C + STATUS_TPM_AUTH2FAIL NTStatus = 0xC029001D + STATUS_TPM_BADTAG NTStatus = 0xC029001E + STATUS_TPM_IOERROR NTStatus = 0xC029001F + STATUS_TPM_ENCRYPT_ERROR NTStatus = 0xC0290020 + STATUS_TPM_DECRYPT_ERROR NTStatus = 0xC0290021 + STATUS_TPM_INVALID_AUTHHANDLE NTStatus = 0xC0290022 + STATUS_TPM_NO_ENDORSEMENT NTStatus = 0xC0290023 + STATUS_TPM_INVALID_KEYUSAGE NTStatus = 0xC0290024 + STATUS_TPM_WRONG_ENTITYTYPE NTStatus = 0xC0290025 + STATUS_TPM_INVALID_POSTINIT NTStatus = 0xC0290026 + STATUS_TPM_INAPPROPRIATE_SIG NTStatus = 0xC0290027 + STATUS_TPM_BAD_KEY_PROPERTY NTStatus = 0xC0290028 + STATUS_TPM_BAD_MIGRATION NTStatus = 0xC0290029 + STATUS_TPM_BAD_SCHEME NTStatus = 0xC029002A + STATUS_TPM_BAD_DATASIZE NTStatus = 0xC029002B + STATUS_TPM_BAD_MODE NTStatus = 0xC029002C + STATUS_TPM_BAD_PRESENCE NTStatus = 0xC029002D + STATUS_TPM_BAD_VERSION NTStatus = 0xC029002E + STATUS_TPM_NO_WRAP_TRANSPORT NTStatus = 0xC029002F + STATUS_TPM_AUDITFAIL_UNSUCCESSFUL NTStatus = 0xC0290030 + STATUS_TPM_AUDITFAIL_SUCCESSFUL NTStatus = 0xC0290031 + STATUS_TPM_NOTRESETABLE NTStatus = 0xC0290032 + STATUS_TPM_NOTLOCAL NTStatus = 0xC0290033 + STATUS_TPM_BAD_TYPE NTStatus = 0xC0290034 + STATUS_TPM_INVALID_RESOURCE NTStatus = 0xC0290035 + STATUS_TPM_NOTFIPS NTStatus = 0xC0290036 + STATUS_TPM_INVALID_FAMILY NTStatus = 0xC0290037 + STATUS_TPM_NO_NV_PERMISSION NTStatus = 0xC0290038 + STATUS_TPM_REQUIRES_SIGN NTStatus = 0xC0290039 + STATUS_TPM_KEY_NOTSUPPORTED NTStatus = 0xC029003A + STATUS_TPM_AUTH_CONFLICT NTStatus = 0xC029003B + STATUS_TPM_AREA_LOCKED NTStatus = 0xC029003C + STATUS_TPM_BAD_LOCALITY NTStatus = 0xC029003D + STATUS_TPM_READ_ONLY NTStatus = 0xC029003E + STATUS_TPM_PER_NOWRITE NTStatus = 0xC029003F + STATUS_TPM_FAMILYCOUNT NTStatus = 0xC0290040 + STATUS_TPM_WRITE_LOCKED NTStatus = 0xC0290041 + STATUS_TPM_BAD_ATTRIBUTES NTStatus = 0xC0290042 + STATUS_TPM_INVALID_STRUCTURE NTStatus = 0xC0290043 + STATUS_TPM_KEY_OWNER_CONTROL NTStatus = 0xC0290044 + STATUS_TPM_BAD_COUNTER NTStatus = 0xC0290045 + STATUS_TPM_NOT_FULLWRITE NTStatus = 0xC0290046 + STATUS_TPM_CONTEXT_GAP NTStatus = 0xC0290047 + STATUS_TPM_MAXNVWRITES NTStatus = 0xC0290048 + STATUS_TPM_NOOPERATOR NTStatus = 0xC0290049 + STATUS_TPM_RESOURCEMISSING NTStatus = 0xC029004A + STATUS_TPM_DELEGATE_LOCK NTStatus = 0xC029004B + STATUS_TPM_DELEGATE_FAMILY NTStatus = 0xC029004C + STATUS_TPM_DELEGATE_ADMIN NTStatus = 0xC029004D + STATUS_TPM_TRANSPORT_NOTEXCLUSIVE NTStatus = 0xC029004E + STATUS_TPM_OWNER_CONTROL NTStatus = 0xC029004F + STATUS_TPM_DAA_RESOURCES NTStatus = 0xC0290050 + STATUS_TPM_DAA_INPUT_DATA0 NTStatus = 0xC0290051 + STATUS_TPM_DAA_INPUT_DATA1 NTStatus = 0xC0290052 + STATUS_TPM_DAA_ISSUER_SETTINGS NTStatus = 0xC0290053 + STATUS_TPM_DAA_TPM_SETTINGS NTStatus = 0xC0290054 + STATUS_TPM_DAA_STAGE NTStatus = 0xC0290055 + STATUS_TPM_DAA_ISSUER_VALIDITY NTStatus = 0xC0290056 + STATUS_TPM_DAA_WRONG_W NTStatus = 0xC0290057 + STATUS_TPM_BAD_HANDLE NTStatus = 0xC0290058 + STATUS_TPM_BAD_DELEGATE NTStatus = 0xC0290059 + STATUS_TPM_BADCONTEXT NTStatus = 0xC029005A + STATUS_TPM_TOOMANYCONTEXTS NTStatus = 0xC029005B + STATUS_TPM_MA_TICKET_SIGNATURE NTStatus = 0xC029005C + STATUS_TPM_MA_DESTINATION NTStatus = 0xC029005D + STATUS_TPM_MA_SOURCE NTStatus = 0xC029005E + STATUS_TPM_MA_AUTHORITY NTStatus = 0xC029005F + STATUS_TPM_PERMANENTEK NTStatus = 0xC0290061 + STATUS_TPM_BAD_SIGNATURE NTStatus = 0xC0290062 + STATUS_TPM_NOCONTEXTSPACE NTStatus = 0xC0290063 + STATUS_TPM_20_E_ASYMMETRIC NTStatus = 0xC0290081 + STATUS_TPM_20_E_ATTRIBUTES NTStatus = 0xC0290082 + STATUS_TPM_20_E_HASH NTStatus = 0xC0290083 + STATUS_TPM_20_E_VALUE NTStatus = 0xC0290084 + STATUS_TPM_20_E_HIERARCHY NTStatus = 0xC0290085 + STATUS_TPM_20_E_KEY_SIZE NTStatus = 0xC0290087 + STATUS_TPM_20_E_MGF NTStatus = 0xC0290088 + STATUS_TPM_20_E_MODE NTStatus = 0xC0290089 + STATUS_TPM_20_E_TYPE NTStatus = 0xC029008A + STATUS_TPM_20_E_HANDLE NTStatus = 0xC029008B + STATUS_TPM_20_E_KDF NTStatus = 0xC029008C + STATUS_TPM_20_E_RANGE NTStatus = 0xC029008D + STATUS_TPM_20_E_AUTH_FAIL NTStatus = 0xC029008E + STATUS_TPM_20_E_NONCE NTStatus = 0xC029008F + STATUS_TPM_20_E_PP NTStatus = 0xC0290090 + STATUS_TPM_20_E_SCHEME NTStatus = 0xC0290092 + STATUS_TPM_20_E_SIZE NTStatus = 0xC0290095 + STATUS_TPM_20_E_SYMMETRIC NTStatus = 0xC0290096 + STATUS_TPM_20_E_TAG NTStatus = 0xC0290097 + STATUS_TPM_20_E_SELECTOR NTStatus = 0xC0290098 + STATUS_TPM_20_E_INSUFFICIENT NTStatus = 0xC029009A + STATUS_TPM_20_E_SIGNATURE NTStatus = 0xC029009B + STATUS_TPM_20_E_KEY NTStatus = 0xC029009C + STATUS_TPM_20_E_POLICY_FAIL NTStatus = 0xC029009D + STATUS_TPM_20_E_INTEGRITY NTStatus = 0xC029009F + STATUS_TPM_20_E_TICKET NTStatus = 0xC02900A0 + STATUS_TPM_20_E_RESERVED_BITS NTStatus = 0xC02900A1 + STATUS_TPM_20_E_BAD_AUTH NTStatus = 0xC02900A2 + STATUS_TPM_20_E_EXPIRED NTStatus = 0xC02900A3 + STATUS_TPM_20_E_POLICY_CC NTStatus = 0xC02900A4 + STATUS_TPM_20_E_BINDING NTStatus = 0xC02900A5 + STATUS_TPM_20_E_CURVE NTStatus = 0xC02900A6 + STATUS_TPM_20_E_ECC_POINT NTStatus = 0xC02900A7 + STATUS_TPM_20_E_INITIALIZE NTStatus = 0xC0290100 + STATUS_TPM_20_E_FAILURE NTStatus = 0xC0290101 + STATUS_TPM_20_E_SEQUENCE NTStatus = 0xC0290103 + STATUS_TPM_20_E_PRIVATE NTStatus = 0xC029010B + STATUS_TPM_20_E_HMAC NTStatus = 0xC0290119 + STATUS_TPM_20_E_DISABLED NTStatus = 0xC0290120 + STATUS_TPM_20_E_EXCLUSIVE NTStatus = 0xC0290121 + STATUS_TPM_20_E_ECC_CURVE NTStatus = 0xC0290123 + STATUS_TPM_20_E_AUTH_TYPE NTStatus = 0xC0290124 + STATUS_TPM_20_E_AUTH_MISSING NTStatus = 0xC0290125 + STATUS_TPM_20_E_POLICY NTStatus = 0xC0290126 + STATUS_TPM_20_E_PCR NTStatus = 0xC0290127 + STATUS_TPM_20_E_PCR_CHANGED NTStatus = 0xC0290128 + STATUS_TPM_20_E_UPGRADE NTStatus = 0xC029012D + STATUS_TPM_20_E_TOO_MANY_CONTEXTS NTStatus = 0xC029012E + STATUS_TPM_20_E_AUTH_UNAVAILABLE NTStatus = 0xC029012F + STATUS_TPM_20_E_REBOOT NTStatus = 0xC0290130 + STATUS_TPM_20_E_UNBALANCED NTStatus = 0xC0290131 + STATUS_TPM_20_E_COMMAND_SIZE NTStatus = 0xC0290142 + STATUS_TPM_20_E_COMMAND_CODE NTStatus = 0xC0290143 + STATUS_TPM_20_E_AUTHSIZE NTStatus = 0xC0290144 + STATUS_TPM_20_E_AUTH_CONTEXT NTStatus = 0xC0290145 + STATUS_TPM_20_E_NV_RANGE NTStatus = 0xC0290146 + STATUS_TPM_20_E_NV_SIZE NTStatus = 0xC0290147 + STATUS_TPM_20_E_NV_LOCKED NTStatus = 0xC0290148 + STATUS_TPM_20_E_NV_AUTHORIZATION NTStatus = 0xC0290149 + STATUS_TPM_20_E_NV_UNINITIALIZED NTStatus = 0xC029014A + STATUS_TPM_20_E_NV_SPACE NTStatus = 0xC029014B + STATUS_TPM_20_E_NV_DEFINED NTStatus = 0xC029014C + STATUS_TPM_20_E_BAD_CONTEXT NTStatus = 0xC0290150 + STATUS_TPM_20_E_CPHASH NTStatus = 0xC0290151 + STATUS_TPM_20_E_PARENT NTStatus = 0xC0290152 + STATUS_TPM_20_E_NEEDS_TEST NTStatus = 0xC0290153 + STATUS_TPM_20_E_NO_RESULT NTStatus = 0xC0290154 + STATUS_TPM_20_E_SENSITIVE NTStatus = 0xC0290155 + STATUS_TPM_COMMAND_BLOCKED NTStatus = 0xC0290400 + STATUS_TPM_INVALID_HANDLE NTStatus = 0xC0290401 + STATUS_TPM_DUPLICATE_VHANDLE NTStatus = 0xC0290402 + STATUS_TPM_EMBEDDED_COMMAND_BLOCKED NTStatus = 0xC0290403 + STATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED NTStatus = 0xC0290404 + STATUS_TPM_RETRY NTStatus = 0xC0290800 + STATUS_TPM_NEEDS_SELFTEST NTStatus = 0xC0290801 + STATUS_TPM_DOING_SELFTEST NTStatus = 0xC0290802 + STATUS_TPM_DEFEND_LOCK_RUNNING NTStatus = 0xC0290803 + STATUS_TPM_COMMAND_CANCELED NTStatus = 0xC0291001 + STATUS_TPM_TOO_MANY_CONTEXTS NTStatus = 0xC0291002 + STATUS_TPM_NOT_FOUND NTStatus = 0xC0291003 + STATUS_TPM_ACCESS_DENIED NTStatus = 0xC0291004 + STATUS_TPM_INSUFFICIENT_BUFFER NTStatus = 0xC0291005 + STATUS_TPM_PPI_FUNCTION_UNSUPPORTED NTStatus = 0xC0291006 + STATUS_PCP_ERROR_MASK NTStatus = 0xC0292000 + STATUS_PCP_DEVICE_NOT_READY NTStatus = 0xC0292001 + STATUS_PCP_INVALID_HANDLE NTStatus = 0xC0292002 + STATUS_PCP_INVALID_PARAMETER NTStatus = 0xC0292003 + STATUS_PCP_FLAG_NOT_SUPPORTED NTStatus = 0xC0292004 + STATUS_PCP_NOT_SUPPORTED NTStatus = 0xC0292005 + STATUS_PCP_BUFFER_TOO_SMALL NTStatus = 0xC0292006 + STATUS_PCP_INTERNAL_ERROR NTStatus = 0xC0292007 + STATUS_PCP_AUTHENTICATION_FAILED NTStatus = 0xC0292008 + STATUS_PCP_AUTHENTICATION_IGNORED NTStatus = 0xC0292009 + STATUS_PCP_POLICY_NOT_FOUND NTStatus = 0xC029200A + STATUS_PCP_PROFILE_NOT_FOUND NTStatus = 0xC029200B + STATUS_PCP_VALIDATION_FAILED NTStatus = 0xC029200C + STATUS_PCP_DEVICE_NOT_FOUND NTStatus = 0xC029200D + STATUS_PCP_WRONG_PARENT NTStatus = 0xC029200E + STATUS_PCP_KEY_NOT_LOADED NTStatus = 0xC029200F + STATUS_PCP_NO_KEY_CERTIFICATION NTStatus = 0xC0292010 + STATUS_PCP_KEY_NOT_FINALIZED NTStatus = 0xC0292011 + STATUS_PCP_ATTESTATION_CHALLENGE_NOT_SET NTStatus = 0xC0292012 + STATUS_PCP_NOT_PCR_BOUND NTStatus = 0xC0292013 + STATUS_PCP_KEY_ALREADY_FINALIZED NTStatus = 0xC0292014 + STATUS_PCP_KEY_USAGE_POLICY_NOT_SUPPORTED NTStatus = 0xC0292015 + STATUS_PCP_KEY_USAGE_POLICY_INVALID NTStatus = 0xC0292016 + STATUS_PCP_SOFT_KEY_ERROR NTStatus = 0xC0292017 + STATUS_PCP_KEY_NOT_AUTHENTICATED NTStatus = 0xC0292018 + STATUS_PCP_KEY_NOT_AIK NTStatus = 0xC0292019 + STATUS_PCP_KEY_NOT_SIGNING_KEY NTStatus = 0xC029201A + STATUS_PCP_LOCKED_OUT NTStatus = 0xC029201B + STATUS_PCP_CLAIM_TYPE_NOT_SUPPORTED NTStatus = 0xC029201C + STATUS_PCP_TPM_VERSION_NOT_SUPPORTED NTStatus = 0xC029201D + STATUS_PCP_BUFFER_LENGTH_MISMATCH NTStatus = 0xC029201E + STATUS_PCP_IFX_RSA_KEY_CREATION_BLOCKED NTStatus = 0xC029201F + STATUS_PCP_TICKET_MISSING NTStatus = 0xC0292020 + STATUS_PCP_RAW_POLICY_NOT_SUPPORTED NTStatus = 0xC0292021 + STATUS_PCP_KEY_HANDLE_INVALIDATED NTStatus = 0xC0292022 + STATUS_PCP_UNSUPPORTED_PSS_SALT NTStatus = 0x40292023 + STATUS_RTPM_CONTEXT_CONTINUE NTStatus = 0x00293000 + STATUS_RTPM_CONTEXT_COMPLETE NTStatus = 0x00293001 + STATUS_RTPM_NO_RESULT NTStatus = 0xC0293002 + STATUS_RTPM_PCR_READ_INCOMPLETE NTStatus = 0xC0293003 + STATUS_RTPM_INVALID_CONTEXT NTStatus = 0xC0293004 + STATUS_RTPM_UNSUPPORTED_CMD NTStatus = 0xC0293005 + STATUS_TPM_ZERO_EXHAUST_ENABLED NTStatus = 0xC0294000 + STATUS_HV_INVALID_HYPERCALL_CODE NTStatus = 0xC0350002 + STATUS_HV_INVALID_HYPERCALL_INPUT NTStatus = 0xC0350003 + STATUS_HV_INVALID_ALIGNMENT NTStatus = 0xC0350004 + STATUS_HV_INVALID_PARAMETER NTStatus = 0xC0350005 + STATUS_HV_ACCESS_DENIED NTStatus = 0xC0350006 + STATUS_HV_INVALID_PARTITION_STATE NTStatus = 0xC0350007 + STATUS_HV_OPERATION_DENIED NTStatus = 0xC0350008 + STATUS_HV_UNKNOWN_PROPERTY NTStatus = 0xC0350009 + STATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE NTStatus = 0xC035000A + STATUS_HV_INSUFFICIENT_MEMORY NTStatus = 0xC035000B + STATUS_HV_PARTITION_TOO_DEEP NTStatus = 0xC035000C + STATUS_HV_INVALID_PARTITION_ID NTStatus = 0xC035000D + STATUS_HV_INVALID_VP_INDEX NTStatus = 0xC035000E + STATUS_HV_INVALID_PORT_ID NTStatus = 0xC0350011 + STATUS_HV_INVALID_CONNECTION_ID NTStatus = 0xC0350012 + STATUS_HV_INSUFFICIENT_BUFFERS NTStatus = 0xC0350013 + STATUS_HV_NOT_ACKNOWLEDGED NTStatus = 0xC0350014 + STATUS_HV_INVALID_VP_STATE NTStatus = 0xC0350015 + STATUS_HV_ACKNOWLEDGED NTStatus = 0xC0350016 + STATUS_HV_INVALID_SAVE_RESTORE_STATE NTStatus = 0xC0350017 + STATUS_HV_INVALID_SYNIC_STATE NTStatus = 0xC0350018 + STATUS_HV_OBJECT_IN_USE NTStatus = 0xC0350019 + STATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO NTStatus = 0xC035001A + STATUS_HV_NO_DATA NTStatus = 0xC035001B + STATUS_HV_INACTIVE NTStatus = 0xC035001C + STATUS_HV_NO_RESOURCES NTStatus = 0xC035001D + STATUS_HV_FEATURE_UNAVAILABLE NTStatus = 0xC035001E + STATUS_HV_INSUFFICIENT_BUFFER NTStatus = 0xC0350033 + STATUS_HV_INSUFFICIENT_DEVICE_DOMAINS NTStatus = 0xC0350038 + STATUS_HV_CPUID_FEATURE_VALIDATION_ERROR NTStatus = 0xC035003C + STATUS_HV_CPUID_XSAVE_FEATURE_VALIDATION_ERROR NTStatus = 0xC035003D + STATUS_HV_PROCESSOR_STARTUP_TIMEOUT NTStatus = 0xC035003E + STATUS_HV_SMX_ENABLED NTStatus = 0xC035003F + STATUS_HV_INVALID_LP_INDEX NTStatus = 0xC0350041 + STATUS_HV_INVALID_REGISTER_VALUE NTStatus = 0xC0350050 + STATUS_HV_INVALID_VTL_STATE NTStatus = 0xC0350051 + STATUS_HV_NX_NOT_DETECTED NTStatus = 0xC0350055 + STATUS_HV_INVALID_DEVICE_ID NTStatus = 0xC0350057 + STATUS_HV_INVALID_DEVICE_STATE NTStatus = 0xC0350058 + STATUS_HV_PENDING_PAGE_REQUESTS NTStatus = 0x00350059 + STATUS_HV_PAGE_REQUEST_INVALID NTStatus = 0xC0350060 + STATUS_HV_INVALID_CPU_GROUP_ID NTStatus = 0xC035006F + STATUS_HV_INVALID_CPU_GROUP_STATE NTStatus = 0xC0350070 + STATUS_HV_OPERATION_FAILED NTStatus = 0xC0350071 + STATUS_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE NTStatus = 0xC0350072 + STATUS_HV_INSUFFICIENT_ROOT_MEMORY NTStatus = 0xC0350073 + STATUS_HV_NOT_PRESENT NTStatus = 0xC0351000 + STATUS_VID_DUPLICATE_HANDLER NTStatus = 0xC0370001 + STATUS_VID_TOO_MANY_HANDLERS NTStatus = 0xC0370002 + STATUS_VID_QUEUE_FULL NTStatus = 0xC0370003 + STATUS_VID_HANDLER_NOT_PRESENT NTStatus = 0xC0370004 + STATUS_VID_INVALID_OBJECT_NAME NTStatus = 0xC0370005 + STATUS_VID_PARTITION_NAME_TOO_LONG NTStatus = 0xC0370006 + STATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG NTStatus = 0xC0370007 + STATUS_VID_PARTITION_ALREADY_EXISTS NTStatus = 0xC0370008 + STATUS_VID_PARTITION_DOES_NOT_EXIST NTStatus = 0xC0370009 + STATUS_VID_PARTITION_NAME_NOT_FOUND NTStatus = 0xC037000A + STATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS NTStatus = 0xC037000B + STATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT NTStatus = 0xC037000C + STATUS_VID_MB_STILL_REFERENCED NTStatus = 0xC037000D + STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED NTStatus = 0xC037000E + STATUS_VID_INVALID_NUMA_SETTINGS NTStatus = 0xC037000F + STATUS_VID_INVALID_NUMA_NODE_INDEX NTStatus = 0xC0370010 + STATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED NTStatus = 0xC0370011 + STATUS_VID_INVALID_MEMORY_BLOCK_HANDLE NTStatus = 0xC0370012 + STATUS_VID_PAGE_RANGE_OVERFLOW NTStatus = 0xC0370013 + STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE NTStatus = 0xC0370014 + STATUS_VID_INVALID_GPA_RANGE_HANDLE NTStatus = 0xC0370015 + STATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE NTStatus = 0xC0370016 + STATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED NTStatus = 0xC0370017 + STATUS_VID_INVALID_PPM_HANDLE NTStatus = 0xC0370018 + STATUS_VID_MBPS_ARE_LOCKED NTStatus = 0xC0370019 + STATUS_VID_MESSAGE_QUEUE_CLOSED NTStatus = 0xC037001A + STATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED NTStatus = 0xC037001B + STATUS_VID_STOP_PENDING NTStatus = 0xC037001C + STATUS_VID_INVALID_PROCESSOR_STATE NTStatus = 0xC037001D + STATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT NTStatus = 0xC037001E + STATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED NTStatus = 0xC037001F + STATUS_VID_MB_PROPERTY_ALREADY_SET_RESET NTStatus = 0xC0370020 + STATUS_VID_MMIO_RANGE_DESTROYED NTStatus = 0xC0370021 + STATUS_VID_INVALID_CHILD_GPA_PAGE_SET NTStatus = 0xC0370022 + STATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED NTStatus = 0xC0370023 + STATUS_VID_RESERVE_PAGE_SET_TOO_SMALL NTStatus = 0xC0370024 + STATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE NTStatus = 0xC0370025 + STATUS_VID_MBP_COUNT_EXCEEDED_LIMIT NTStatus = 0xC0370026 + STATUS_VID_SAVED_STATE_CORRUPT NTStatus = 0xC0370027 + STATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM NTStatus = 0xC0370028 + STATUS_VID_SAVED_STATE_INCOMPATIBLE NTStatus = 0xC0370029 + STATUS_VID_VTL_ACCESS_DENIED NTStatus = 0xC037002A + STATUS_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED NTStatus = 0x80370001 + STATUS_IPSEC_BAD_SPI NTStatus = 0xC0360001 + STATUS_IPSEC_SA_LIFETIME_EXPIRED NTStatus = 0xC0360002 + STATUS_IPSEC_WRONG_SA NTStatus = 0xC0360003 + STATUS_IPSEC_REPLAY_CHECK_FAILED NTStatus = 0xC0360004 + STATUS_IPSEC_INVALID_PACKET NTStatus = 0xC0360005 + STATUS_IPSEC_INTEGRITY_CHECK_FAILED NTStatus = 0xC0360006 + STATUS_IPSEC_CLEAR_TEXT_DROP NTStatus = 0xC0360007 + STATUS_IPSEC_AUTH_FIREWALL_DROP NTStatus = 0xC0360008 + STATUS_IPSEC_THROTTLE_DROP NTStatus = 0xC0360009 + STATUS_IPSEC_DOSP_BLOCK NTStatus = 0xC0368000 + STATUS_IPSEC_DOSP_RECEIVED_MULTICAST NTStatus = 0xC0368001 + STATUS_IPSEC_DOSP_INVALID_PACKET NTStatus = 0xC0368002 + STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED NTStatus = 0xC0368003 + STATUS_IPSEC_DOSP_MAX_ENTRIES NTStatus = 0xC0368004 + STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED NTStatus = 0xC0368005 + STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES NTStatus = 0xC0368006 + STATUS_VOLMGR_INCOMPLETE_REGENERATION NTStatus = 0x80380001 + STATUS_VOLMGR_INCOMPLETE_DISK_MIGRATION NTStatus = 0x80380002 + STATUS_VOLMGR_DATABASE_FULL NTStatus = 0xC0380001 + STATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED NTStatus = 0xC0380002 + STATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC NTStatus = 0xC0380003 + STATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED NTStatus = 0xC0380004 + STATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME NTStatus = 0xC0380005 + STATUS_VOLMGR_DISK_DUPLICATE NTStatus = 0xC0380006 + STATUS_VOLMGR_DISK_DYNAMIC NTStatus = 0xC0380007 + STATUS_VOLMGR_DISK_ID_INVALID NTStatus = 0xC0380008 + STATUS_VOLMGR_DISK_INVALID NTStatus = 0xC0380009 + STATUS_VOLMGR_DISK_LAST_VOTER NTStatus = 0xC038000A + STATUS_VOLMGR_DISK_LAYOUT_INVALID NTStatus = 0xC038000B + STATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS NTStatus = 0xC038000C + STATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED NTStatus = 0xC038000D + STATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL NTStatus = 0xC038000E + STATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS NTStatus = 0xC038000F + STATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS NTStatus = 0xC0380010 + STATUS_VOLMGR_DISK_MISSING NTStatus = 0xC0380011 + STATUS_VOLMGR_DISK_NOT_EMPTY NTStatus = 0xC0380012 + STATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE NTStatus = 0xC0380013 + STATUS_VOLMGR_DISK_REVECTORING_FAILED NTStatus = 0xC0380014 + STATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID NTStatus = 0xC0380015 + STATUS_VOLMGR_DISK_SET_NOT_CONTAINED NTStatus = 0xC0380016 + STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS NTStatus = 0xC0380017 + STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES NTStatus = 0xC0380018 + STATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED NTStatus = 0xC0380019 + STATUS_VOLMGR_EXTENT_ALREADY_USED NTStatus = 0xC038001A + STATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS NTStatus = 0xC038001B + STATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION NTStatus = 0xC038001C + STATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED NTStatus = 0xC038001D + STATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION NTStatus = 0xC038001E + STATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH NTStatus = 0xC038001F + STATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED NTStatus = 0xC0380020 + STATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID NTStatus = 0xC0380021 + STATUS_VOLMGR_MAXIMUM_REGISTERED_USERS NTStatus = 0xC0380022 + STATUS_VOLMGR_MEMBER_IN_SYNC NTStatus = 0xC0380023 + STATUS_VOLMGR_MEMBER_INDEX_DUPLICATE NTStatus = 0xC0380024 + STATUS_VOLMGR_MEMBER_INDEX_INVALID NTStatus = 0xC0380025 + STATUS_VOLMGR_MEMBER_MISSING NTStatus = 0xC0380026 + STATUS_VOLMGR_MEMBER_NOT_DETACHED NTStatus = 0xC0380027 + STATUS_VOLMGR_MEMBER_REGENERATING NTStatus = 0xC0380028 + STATUS_VOLMGR_ALL_DISKS_FAILED NTStatus = 0xC0380029 + STATUS_VOLMGR_NO_REGISTERED_USERS NTStatus = 0xC038002A + STATUS_VOLMGR_NO_SUCH_USER NTStatus = 0xC038002B + STATUS_VOLMGR_NOTIFICATION_RESET NTStatus = 0xC038002C + STATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID NTStatus = 0xC038002D + STATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID NTStatus = 0xC038002E + STATUS_VOLMGR_PACK_DUPLICATE NTStatus = 0xC038002F + STATUS_VOLMGR_PACK_ID_INVALID NTStatus = 0xC0380030 + STATUS_VOLMGR_PACK_INVALID NTStatus = 0xC0380031 + STATUS_VOLMGR_PACK_NAME_INVALID NTStatus = 0xC0380032 + STATUS_VOLMGR_PACK_OFFLINE NTStatus = 0xC0380033 + STATUS_VOLMGR_PACK_HAS_QUORUM NTStatus = 0xC0380034 + STATUS_VOLMGR_PACK_WITHOUT_QUORUM NTStatus = 0xC0380035 + STATUS_VOLMGR_PARTITION_STYLE_INVALID NTStatus = 0xC0380036 + STATUS_VOLMGR_PARTITION_UPDATE_FAILED NTStatus = 0xC0380037 + STATUS_VOLMGR_PLEX_IN_SYNC NTStatus = 0xC0380038 + STATUS_VOLMGR_PLEX_INDEX_DUPLICATE NTStatus = 0xC0380039 + STATUS_VOLMGR_PLEX_INDEX_INVALID NTStatus = 0xC038003A + STATUS_VOLMGR_PLEX_LAST_ACTIVE NTStatus = 0xC038003B + STATUS_VOLMGR_PLEX_MISSING NTStatus = 0xC038003C + STATUS_VOLMGR_PLEX_REGENERATING NTStatus = 0xC038003D + STATUS_VOLMGR_PLEX_TYPE_INVALID NTStatus = 0xC038003E + STATUS_VOLMGR_PLEX_NOT_RAID5 NTStatus = 0xC038003F + STATUS_VOLMGR_PLEX_NOT_SIMPLE NTStatus = 0xC0380040 + STATUS_VOLMGR_STRUCTURE_SIZE_INVALID NTStatus = 0xC0380041 + STATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS NTStatus = 0xC0380042 + STATUS_VOLMGR_TRANSACTION_IN_PROGRESS NTStatus = 0xC0380043 + STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE NTStatus = 0xC0380044 + STATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK NTStatus = 0xC0380045 + STATUS_VOLMGR_VOLUME_ID_INVALID NTStatus = 0xC0380046 + STATUS_VOLMGR_VOLUME_LENGTH_INVALID NTStatus = 0xC0380047 + STATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE NTStatus = 0xC0380048 + STATUS_VOLMGR_VOLUME_NOT_MIRRORED NTStatus = 0xC0380049 + STATUS_VOLMGR_VOLUME_NOT_RETAINED NTStatus = 0xC038004A + STATUS_VOLMGR_VOLUME_OFFLINE NTStatus = 0xC038004B + STATUS_VOLMGR_VOLUME_RETAINED NTStatus = 0xC038004C + STATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID NTStatus = 0xC038004D + STATUS_VOLMGR_DIFFERENT_SECTOR_SIZE NTStatus = 0xC038004E + STATUS_VOLMGR_BAD_BOOT_DISK NTStatus = 0xC038004F + STATUS_VOLMGR_PACK_CONFIG_OFFLINE NTStatus = 0xC0380050 + STATUS_VOLMGR_PACK_CONFIG_ONLINE NTStatus = 0xC0380051 + STATUS_VOLMGR_NOT_PRIMARY_PACK NTStatus = 0xC0380052 + STATUS_VOLMGR_PACK_LOG_UPDATE_FAILED NTStatus = 0xC0380053 + STATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID NTStatus = 0xC0380054 + STATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID NTStatus = 0xC0380055 + STATUS_VOLMGR_VOLUME_MIRRORED NTStatus = 0xC0380056 + STATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED NTStatus = 0xC0380057 + STATUS_VOLMGR_NO_VALID_LOG_COPIES NTStatus = 0xC0380058 + STATUS_VOLMGR_PRIMARY_PACK_PRESENT NTStatus = 0xC0380059 + STATUS_VOLMGR_NUMBER_OF_DISKS_INVALID NTStatus = 0xC038005A + STATUS_VOLMGR_MIRROR_NOT_SUPPORTED NTStatus = 0xC038005B + STATUS_VOLMGR_RAID5_NOT_SUPPORTED NTStatus = 0xC038005C + STATUS_BCD_NOT_ALL_ENTRIES_IMPORTED NTStatus = 0x80390001 + STATUS_BCD_TOO_MANY_ELEMENTS NTStatus = 0xC0390002 + STATUS_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED NTStatus = 0x80390003 + STATUS_VHD_DRIVE_FOOTER_MISSING NTStatus = 0xC03A0001 + STATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH NTStatus = 0xC03A0002 + STATUS_VHD_DRIVE_FOOTER_CORRUPT NTStatus = 0xC03A0003 + STATUS_VHD_FORMAT_UNKNOWN NTStatus = 0xC03A0004 + STATUS_VHD_FORMAT_UNSUPPORTED_VERSION NTStatus = 0xC03A0005 + STATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH NTStatus = 0xC03A0006 + STATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION NTStatus = 0xC03A0007 + STATUS_VHD_SPARSE_HEADER_CORRUPT NTStatus = 0xC03A0008 + STATUS_VHD_BLOCK_ALLOCATION_FAILURE NTStatus = 0xC03A0009 + STATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT NTStatus = 0xC03A000A + STATUS_VHD_INVALID_BLOCK_SIZE NTStatus = 0xC03A000B + STATUS_VHD_BITMAP_MISMATCH NTStatus = 0xC03A000C + STATUS_VHD_PARENT_VHD_NOT_FOUND NTStatus = 0xC03A000D + STATUS_VHD_CHILD_PARENT_ID_MISMATCH NTStatus = 0xC03A000E + STATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH NTStatus = 0xC03A000F + STATUS_VHD_METADATA_READ_FAILURE NTStatus = 0xC03A0010 + STATUS_VHD_METADATA_WRITE_FAILURE NTStatus = 0xC03A0011 + STATUS_VHD_INVALID_SIZE NTStatus = 0xC03A0012 + STATUS_VHD_INVALID_FILE_SIZE NTStatus = 0xC03A0013 + STATUS_VIRTDISK_PROVIDER_NOT_FOUND NTStatus = 0xC03A0014 + STATUS_VIRTDISK_NOT_VIRTUAL_DISK NTStatus = 0xC03A0015 + STATUS_VHD_PARENT_VHD_ACCESS_DENIED NTStatus = 0xC03A0016 + STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH NTStatus = 0xC03A0017 + STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED NTStatus = 0xC03A0018 + STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT NTStatus = 0xC03A0019 + STATUS_VIRTUAL_DISK_LIMITATION NTStatus = 0xC03A001A + STATUS_VHD_INVALID_TYPE NTStatus = 0xC03A001B + STATUS_VHD_INVALID_STATE NTStatus = 0xC03A001C + STATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE NTStatus = 0xC03A001D + STATUS_VIRTDISK_DISK_ALREADY_OWNED NTStatus = 0xC03A001E + STATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE NTStatus = 0xC03A001F + STATUS_CTLOG_TRACKING_NOT_INITIALIZED NTStatus = 0xC03A0020 + STATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE NTStatus = 0xC03A0021 + STATUS_CTLOG_VHD_CHANGED_OFFLINE NTStatus = 0xC03A0022 + STATUS_CTLOG_INVALID_TRACKING_STATE NTStatus = 0xC03A0023 + STATUS_CTLOG_INCONSISTENT_TRACKING_FILE NTStatus = 0xC03A0024 + STATUS_VHD_METADATA_FULL NTStatus = 0xC03A0028 + STATUS_VHD_INVALID_CHANGE_TRACKING_ID NTStatus = 0xC03A0029 + STATUS_VHD_CHANGE_TRACKING_DISABLED NTStatus = 0xC03A002A + STATUS_VHD_MISSING_CHANGE_TRACKING_INFORMATION NTStatus = 0xC03A0030 + STATUS_VHD_RESIZE_WOULD_TRUNCATE_DATA NTStatus = 0xC03A0031 + STATUS_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE NTStatus = 0xC03A0032 + STATUS_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE NTStatus = 0xC03A0033 + STATUS_QUERY_STORAGE_ERROR NTStatus = 0x803A0001 + STATUS_GDI_HANDLE_LEAK NTStatus = 0x803F0001 + STATUS_RKF_KEY_NOT_FOUND NTStatus = 0xC0400001 + STATUS_RKF_DUPLICATE_KEY NTStatus = 0xC0400002 + STATUS_RKF_BLOB_FULL NTStatus = 0xC0400003 + STATUS_RKF_STORE_FULL NTStatus = 0xC0400004 + STATUS_RKF_FILE_BLOCKED NTStatus = 0xC0400005 + STATUS_RKF_ACTIVE_KEY NTStatus = 0xC0400006 + STATUS_RDBSS_RESTART_OPERATION NTStatus = 0xC0410001 + STATUS_RDBSS_CONTINUE_OPERATION NTStatus = 0xC0410002 + STATUS_RDBSS_POST_OPERATION NTStatus = 0xC0410003 + STATUS_RDBSS_RETRY_LOOKUP NTStatus = 0xC0410004 + STATUS_BTH_ATT_INVALID_HANDLE NTStatus = 0xC0420001 + STATUS_BTH_ATT_READ_NOT_PERMITTED NTStatus = 0xC0420002 + STATUS_BTH_ATT_WRITE_NOT_PERMITTED NTStatus = 0xC0420003 + STATUS_BTH_ATT_INVALID_PDU NTStatus = 0xC0420004 + STATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION NTStatus = 0xC0420005 + STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED NTStatus = 0xC0420006 + STATUS_BTH_ATT_INVALID_OFFSET NTStatus = 0xC0420007 + STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION NTStatus = 0xC0420008 + STATUS_BTH_ATT_PREPARE_QUEUE_FULL NTStatus = 0xC0420009 + STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND NTStatus = 0xC042000A + STATUS_BTH_ATT_ATTRIBUTE_NOT_LONG NTStatus = 0xC042000B + STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE NTStatus = 0xC042000C + STATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH NTStatus = 0xC042000D + STATUS_BTH_ATT_UNLIKELY NTStatus = 0xC042000E + STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION NTStatus = 0xC042000F + STATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE NTStatus = 0xC0420010 + STATUS_BTH_ATT_INSUFFICIENT_RESOURCES NTStatus = 0xC0420011 + STATUS_BTH_ATT_UNKNOWN_ERROR NTStatus = 0xC0421000 + STATUS_SECUREBOOT_ROLLBACK_DETECTED NTStatus = 0xC0430001 + STATUS_SECUREBOOT_POLICY_VIOLATION NTStatus = 0xC0430002 + STATUS_SECUREBOOT_INVALID_POLICY NTStatus = 0xC0430003 + STATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND NTStatus = 0xC0430004 + STATUS_SECUREBOOT_POLICY_NOT_SIGNED NTStatus = 0xC0430005 + STATUS_SECUREBOOT_NOT_ENABLED NTStatus = 0x80430006 + STATUS_SECUREBOOT_FILE_REPLACED NTStatus = 0xC0430007 + STATUS_SECUREBOOT_POLICY_NOT_AUTHORIZED NTStatus = 0xC0430008 + STATUS_SECUREBOOT_POLICY_UNKNOWN NTStatus = 0xC0430009 + STATUS_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION NTStatus = 0xC043000A + STATUS_SECUREBOOT_PLATFORM_ID_MISMATCH NTStatus = 0xC043000B + STATUS_SECUREBOOT_POLICY_ROLLBACK_DETECTED NTStatus = 0xC043000C + STATUS_SECUREBOOT_POLICY_UPGRADE_MISMATCH NTStatus = 0xC043000D + STATUS_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING NTStatus = 0xC043000E + STATUS_SECUREBOOT_NOT_BASE_POLICY NTStatus = 0xC043000F + STATUS_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY NTStatus = 0xC0430010 + STATUS_PLATFORM_MANIFEST_NOT_AUTHORIZED NTStatus = 0xC0EB0001 + STATUS_PLATFORM_MANIFEST_INVALID NTStatus = 0xC0EB0002 + STATUS_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED NTStatus = 0xC0EB0003 + STATUS_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED NTStatus = 0xC0EB0004 + STATUS_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND NTStatus = 0xC0EB0005 + STATUS_PLATFORM_MANIFEST_NOT_ACTIVE NTStatus = 0xC0EB0006 + STATUS_PLATFORM_MANIFEST_NOT_SIGNED NTStatus = 0xC0EB0007 + STATUS_SYSTEM_INTEGRITY_ROLLBACK_DETECTED NTStatus = 0xC0E90001 + STATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION NTStatus = 0xC0E90002 + STATUS_SYSTEM_INTEGRITY_INVALID_POLICY NTStatus = 0xC0E90003 + STATUS_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED NTStatus = 0xC0E90004 + STATUS_SYSTEM_INTEGRITY_TOO_MANY_POLICIES NTStatus = 0xC0E90005 + STATUS_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED NTStatus = 0xC0E90006 + STATUS_NO_APPLICABLE_APP_LICENSES_FOUND NTStatus = 0xC0EA0001 + STATUS_CLIP_LICENSE_NOT_FOUND NTStatus = 0xC0EA0002 + STATUS_CLIP_DEVICE_LICENSE_MISSING NTStatus = 0xC0EA0003 + STATUS_CLIP_LICENSE_INVALID_SIGNATURE NTStatus = 0xC0EA0004 + STATUS_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID NTStatus = 0xC0EA0005 + STATUS_CLIP_LICENSE_EXPIRED NTStatus = 0xC0EA0006 + STATUS_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE NTStatus = 0xC0EA0007 + STATUS_CLIP_LICENSE_NOT_SIGNED NTStatus = 0xC0EA0008 + STATUS_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE NTStatus = 0xC0EA0009 + STATUS_CLIP_LICENSE_DEVICE_ID_MISMATCH NTStatus = 0xC0EA000A + STATUS_AUDIO_ENGINE_NODE_NOT_FOUND NTStatus = 0xC0440001 + STATUS_HDAUDIO_EMPTY_CONNECTION_LIST NTStatus = 0xC0440002 + STATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED NTStatus = 0xC0440003 + STATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED NTStatus = 0xC0440004 + STATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY NTStatus = 0xC0440005 + STATUS_SPACES_REPAIRED NTStatus = 0x00E70000 + STATUS_SPACES_PAUSE NTStatus = 0x00E70001 + STATUS_SPACES_COMPLETE NTStatus = 0x00E70002 + STATUS_SPACES_REDIRECT NTStatus = 0x00E70003 + STATUS_SPACES_FAULT_DOMAIN_TYPE_INVALID NTStatus = 0xC0E70001 + STATUS_SPACES_RESILIENCY_TYPE_INVALID NTStatus = 0xC0E70003 + STATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID NTStatus = 0xC0E70004 + STATUS_SPACES_DRIVE_REDUNDANCY_INVALID NTStatus = 0xC0E70006 + STATUS_SPACES_NUMBER_OF_DATA_COPIES_INVALID NTStatus = 0xC0E70007 + STATUS_SPACES_INTERLEAVE_LENGTH_INVALID NTStatus = 0xC0E70009 + STATUS_SPACES_NUMBER_OF_COLUMNS_INVALID NTStatus = 0xC0E7000A + STATUS_SPACES_NOT_ENOUGH_DRIVES NTStatus = 0xC0E7000B + STATUS_SPACES_EXTENDED_ERROR NTStatus = 0xC0E7000C + STATUS_SPACES_PROVISIONING_TYPE_INVALID NTStatus = 0xC0E7000D + STATUS_SPACES_ALLOCATION_SIZE_INVALID NTStatus = 0xC0E7000E + STATUS_SPACES_ENCLOSURE_AWARE_INVALID NTStatus = 0xC0E7000F + STATUS_SPACES_WRITE_CACHE_SIZE_INVALID NTStatus = 0xC0E70010 + STATUS_SPACES_NUMBER_OF_GROUPS_INVALID NTStatus = 0xC0E70011 + STATUS_SPACES_DRIVE_OPERATIONAL_STATE_INVALID NTStatus = 0xC0E70012 + STATUS_SPACES_UPDATE_COLUMN_STATE NTStatus = 0xC0E70013 + STATUS_SPACES_MAP_REQUIRED NTStatus = 0xC0E70014 + STATUS_SPACES_UNSUPPORTED_VERSION NTStatus = 0xC0E70015 + STATUS_SPACES_CORRUPT_METADATA NTStatus = 0xC0E70016 + STATUS_SPACES_DRT_FULL NTStatus = 0xC0E70017 + STATUS_SPACES_INCONSISTENCY NTStatus = 0xC0E70018 + STATUS_SPACES_LOG_NOT_READY NTStatus = 0xC0E70019 + STATUS_SPACES_NO_REDUNDANCY NTStatus = 0xC0E7001A + STATUS_SPACES_DRIVE_NOT_READY NTStatus = 0xC0E7001B + STATUS_SPACES_DRIVE_SPLIT NTStatus = 0xC0E7001C + STATUS_SPACES_DRIVE_LOST_DATA NTStatus = 0xC0E7001D + STATUS_SPACES_ENTRY_INCOMPLETE NTStatus = 0xC0E7001E + STATUS_SPACES_ENTRY_INVALID NTStatus = 0xC0E7001F + STATUS_SPACES_MARK_DIRTY NTStatus = 0xC0E70020 + STATUS_VOLSNAP_BOOTFILE_NOT_VALID NTStatus = 0xC0500003 + STATUS_VOLSNAP_ACTIVATION_TIMEOUT NTStatus = 0xC0500004 + STATUS_IO_PREEMPTED NTStatus = 0xC0510001 + STATUS_SVHDX_ERROR_STORED NTStatus = 0xC05C0000 + STATUS_SVHDX_ERROR_NOT_AVAILABLE NTStatus = 0xC05CFF00 + STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE NTStatus = 0xC05CFF01 + STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED NTStatus = 0xC05CFF02 + STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED NTStatus = 0xC05CFF03 + STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED NTStatus = 0xC05CFF04 + STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED NTStatus = 0xC05CFF05 + STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED NTStatus = 0xC05CFF06 + STATUS_SVHDX_RESERVATION_CONFLICT NTStatus = 0xC05CFF07 + STATUS_SVHDX_WRONG_FILE_TYPE NTStatus = 0xC05CFF08 + STATUS_SVHDX_VERSION_MISMATCH NTStatus = 0xC05CFF09 + STATUS_VHD_SHARED NTStatus = 0xC05CFF0A + STATUS_SVHDX_NO_INITIATOR NTStatus = 0xC05CFF0B + STATUS_VHDSET_BACKING_STORAGE_NOT_FOUND NTStatus = 0xC05CFF0C + STATUS_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP NTStatus = 0xC05D0000 + STATUS_SMB_BAD_CLUSTER_DIALECT NTStatus = 0xC05D0001 + STATUS_SMB_GUEST_LOGON_BLOCKED NTStatus = 0xC05D0002 + STATUS_SECCORE_INVALID_COMMAND NTStatus = 0xC0E80000 + STATUS_VSM_NOT_INITIALIZED NTStatus = 0xC0450000 + STATUS_VSM_DMA_PROTECTION_NOT_IN_USE NTStatus = 0xC0450001 + STATUS_APPEXEC_CONDITION_NOT_SATISFIED NTStatus = 0xC0EC0000 + STATUS_APPEXEC_HANDLE_INVALIDATED NTStatus = 0xC0EC0001 + STATUS_APPEXEC_INVALID_HOST_GENERATION NTStatus = 0xC0EC0002 + STATUS_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION NTStatus = 0xC0EC0003 + STATUS_APPEXEC_INVALID_HOST_STATE NTStatus = 0xC0EC0004 + STATUS_APPEXEC_NO_DONOR NTStatus = 0xC0EC0005 + STATUS_APPEXEC_HOST_ID_MISMATCH NTStatus = 0xC0EC0006 + STATUS_APPEXEC_UNKNOWN_USER NTStatus = 0xC0EC0007 +) diff --git a/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go b/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go new file mode 100644 index 000000000..6048ac679 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go @@ -0,0 +1,149 @@ +// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT. + +package windows + +type KNOWNFOLDERID GUID + +var ( + FOLDERID_NetworkFolder = &KNOWNFOLDERID{0xd20beec4, 0x5ca8, 0x4905, [8]byte{0xae, 0x3b, 0xbf, 0x25, 0x1e, 0xa0, 0x9b, 0x53}} + FOLDERID_ComputerFolder = &KNOWNFOLDERID{0x0ac0837c, 0xbbf8, 0x452a, [8]byte{0x85, 0x0d, 0x79, 0xd0, 0x8e, 0x66, 0x7c, 0xa7}} + FOLDERID_InternetFolder = &KNOWNFOLDERID{0x4d9f7874, 0x4e0c, 0x4904, [8]byte{0x96, 0x7b, 0x40, 0xb0, 0xd2, 0x0c, 0x3e, 0x4b}} + FOLDERID_ControlPanelFolder = &KNOWNFOLDERID{0x82a74aeb, 0xaeb4, 0x465c, [8]byte{0xa0, 0x14, 0xd0, 0x97, 0xee, 0x34, 0x6d, 0x63}} + FOLDERID_PrintersFolder = &KNOWNFOLDERID{0x76fc4e2d, 0xd6ad, 0x4519, [8]byte{0xa6, 0x63, 0x37, 0xbd, 0x56, 0x06, 0x81, 0x85}} + FOLDERID_SyncManagerFolder = &KNOWNFOLDERID{0x43668bf8, 0xc14e, 0x49b2, [8]byte{0x97, 0xc9, 0x74, 0x77, 0x84, 0xd7, 0x84, 0xb7}} + FOLDERID_SyncSetupFolder = &KNOWNFOLDERID{0x0f214138, 0xb1d3, 0x4a90, [8]byte{0xbb, 0xa9, 0x27, 0xcb, 0xc0, 0xc5, 0x38, 0x9a}} + FOLDERID_ConflictFolder = &KNOWNFOLDERID{0x4bfefb45, 0x347d, 0x4006, [8]byte{0xa5, 0xbe, 0xac, 0x0c, 0xb0, 0x56, 0x71, 0x92}} + FOLDERID_SyncResultsFolder = &KNOWNFOLDERID{0x289a9a43, 0xbe44, 0x4057, [8]byte{0xa4, 0x1b, 0x58, 0x7a, 0x76, 0xd7, 0xe7, 0xf9}} + FOLDERID_RecycleBinFolder = &KNOWNFOLDERID{0xb7534046, 0x3ecb, 0x4c18, [8]byte{0xbe, 0x4e, 0x64, 0xcd, 0x4c, 0xb7, 0xd6, 0xac}} + FOLDERID_ConnectionsFolder = &KNOWNFOLDERID{0x6f0cd92b, 0x2e97, 0x45d1, [8]byte{0x88, 0xff, 0xb0, 0xd1, 0x86, 0xb8, 0xde, 0xdd}} + FOLDERID_Fonts = &KNOWNFOLDERID{0xfd228cb7, 0xae11, 0x4ae3, [8]byte{0x86, 0x4c, 0x16, 0xf3, 0x91, 0x0a, 0xb8, 0xfe}} + FOLDERID_Desktop = &KNOWNFOLDERID{0xb4bfcc3a, 0xdb2c, 0x424c, [8]byte{0xb0, 0x29, 0x7f, 0xe9, 0x9a, 0x87, 0xc6, 0x41}} + FOLDERID_Startup = &KNOWNFOLDERID{0xb97d20bb, 0xf46a, 0x4c97, [8]byte{0xba, 0x10, 0x5e, 0x36, 0x08, 0x43, 0x08, 0x54}} + FOLDERID_Programs = &KNOWNFOLDERID{0xa77f5d77, 0x2e2b, 0x44c3, [8]byte{0xa6, 0xa2, 0xab, 0xa6, 0x01, 0x05, 0x4a, 0x51}} + FOLDERID_StartMenu = &KNOWNFOLDERID{0x625b53c3, 0xab48, 0x4ec1, [8]byte{0xba, 0x1f, 0xa1, 0xef, 0x41, 0x46, 0xfc, 0x19}} + FOLDERID_Recent = &KNOWNFOLDERID{0xae50c081, 0xebd2, 0x438a, [8]byte{0x86, 0x55, 0x8a, 0x09, 0x2e, 0x34, 0x98, 0x7a}} + FOLDERID_SendTo = &KNOWNFOLDERID{0x8983036c, 0x27c0, 0x404b, [8]byte{0x8f, 0x08, 0x10, 0x2d, 0x10, 0xdc, 0xfd, 0x74}} + FOLDERID_Documents = &KNOWNFOLDERID{0xfdd39ad0, 0x238f, 0x46af, [8]byte{0xad, 0xb4, 0x6c, 0x85, 0x48, 0x03, 0x69, 0xc7}} + FOLDERID_Favorites = &KNOWNFOLDERID{0x1777f761, 0x68ad, 0x4d8a, [8]byte{0x87, 0xbd, 0x30, 0xb7, 0x59, 0xfa, 0x33, 0xdd}} + FOLDERID_NetHood = &KNOWNFOLDERID{0xc5abbf53, 0xe17f, 0x4121, [8]byte{0x89, 0x00, 0x86, 0x62, 0x6f, 0xc2, 0xc9, 0x73}} + FOLDERID_PrintHood = &KNOWNFOLDERID{0x9274bd8d, 0xcfd1, 0x41c3, [8]byte{0xb3, 0x5e, 0xb1, 0x3f, 0x55, 0xa7, 0x58, 0xf4}} + FOLDERID_Templates = &KNOWNFOLDERID{0xa63293e8, 0x664e, 0x48db, [8]byte{0xa0, 0x79, 0xdf, 0x75, 0x9e, 0x05, 0x09, 0xf7}} + FOLDERID_CommonStartup = &KNOWNFOLDERID{0x82a5ea35, 0xd9cd, 0x47c5, [8]byte{0x96, 0x29, 0xe1, 0x5d, 0x2f, 0x71, 0x4e, 0x6e}} + FOLDERID_CommonPrograms = &KNOWNFOLDERID{0x0139d44e, 0x6afe, 0x49f2, [8]byte{0x86, 0x90, 0x3d, 0xaf, 0xca, 0xe6, 0xff, 0xb8}} + FOLDERID_CommonStartMenu = &KNOWNFOLDERID{0xa4115719, 0xd62e, 0x491d, [8]byte{0xaa, 0x7c, 0xe7, 0x4b, 0x8b, 0xe3, 0xb0, 0x67}} + FOLDERID_PublicDesktop = &KNOWNFOLDERID{0xc4aa340d, 0xf20f, 0x4863, [8]byte{0xaf, 0xef, 0xf8, 0x7e, 0xf2, 0xe6, 0xba, 0x25}} + FOLDERID_ProgramData = &KNOWNFOLDERID{0x62ab5d82, 0xfdc1, 0x4dc3, [8]byte{0xa9, 0xdd, 0x07, 0x0d, 0x1d, 0x49, 0x5d, 0x97}} + FOLDERID_CommonTemplates = &KNOWNFOLDERID{0xb94237e7, 0x57ac, 0x4347, [8]byte{0x91, 0x51, 0xb0, 0x8c, 0x6c, 0x32, 0xd1, 0xf7}} + FOLDERID_PublicDocuments = &KNOWNFOLDERID{0xed4824af, 0xdce4, 0x45a8, [8]byte{0x81, 0xe2, 0xfc, 0x79, 0x65, 0x08, 0x36, 0x34}} + FOLDERID_RoamingAppData = &KNOWNFOLDERID{0x3eb685db, 0x65f9, 0x4cf6, [8]byte{0xa0, 0x3a, 0xe3, 0xef, 0x65, 0x72, 0x9f, 0x3d}} + FOLDERID_LocalAppData = &KNOWNFOLDERID{0xf1b32785, 0x6fba, 0x4fcf, [8]byte{0x9d, 0x55, 0x7b, 0x8e, 0x7f, 0x15, 0x70, 0x91}} + FOLDERID_LocalAppDataLow = &KNOWNFOLDERID{0xa520a1a4, 0x1780, 0x4ff6, [8]byte{0xbd, 0x18, 0x16, 0x73, 0x43, 0xc5, 0xaf, 0x16}} + FOLDERID_InternetCache = &KNOWNFOLDERID{0x352481e8, 0x33be, 0x4251, [8]byte{0xba, 0x85, 0x60, 0x07, 0xca, 0xed, 0xcf, 0x9d}} + FOLDERID_Cookies = &KNOWNFOLDERID{0x2b0f765d, 0xc0e9, 0x4171, [8]byte{0x90, 0x8e, 0x08, 0xa6, 0x11, 0xb8, 0x4f, 0xf6}} + FOLDERID_History = &KNOWNFOLDERID{0xd9dc8a3b, 0xb784, 0x432e, [8]byte{0xa7, 0x81, 0x5a, 0x11, 0x30, 0xa7, 0x59, 0x63}} + FOLDERID_System = &KNOWNFOLDERID{0x1ac14e77, 0x02e7, 0x4e5d, [8]byte{0xb7, 0x44, 0x2e, 0xb1, 0xae, 0x51, 0x98, 0xb7}} + FOLDERID_SystemX86 = &KNOWNFOLDERID{0xd65231b0, 0xb2f1, 0x4857, [8]byte{0xa4, 0xce, 0xa8, 0xe7, 0xc6, 0xea, 0x7d, 0x27}} + FOLDERID_Windows = &KNOWNFOLDERID{0xf38bf404, 0x1d43, 0x42f2, [8]byte{0x93, 0x05, 0x67, 0xde, 0x0b, 0x28, 0xfc, 0x23}} + FOLDERID_Profile = &KNOWNFOLDERID{0x5e6c858f, 0x0e22, 0x4760, [8]byte{0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73}} + FOLDERID_Pictures = &KNOWNFOLDERID{0x33e28130, 0x4e1e, 0x4676, [8]byte{0x83, 0x5a, 0x98, 0x39, 0x5c, 0x3b, 0xc3, 0xbb}} + FOLDERID_ProgramFilesX86 = &KNOWNFOLDERID{0x7c5a40ef, 0xa0fb, 0x4bfc, [8]byte{0x87, 0x4a, 0xc0, 0xf2, 0xe0, 0xb9, 0xfa, 0x8e}} + FOLDERID_ProgramFilesCommonX86 = &KNOWNFOLDERID{0xde974d24, 0xd9c6, 0x4d3e, [8]byte{0xbf, 0x91, 0xf4, 0x45, 0x51, 0x20, 0xb9, 0x17}} + FOLDERID_ProgramFilesX64 = &KNOWNFOLDERID{0x6d809377, 0x6af0, 0x444b, [8]byte{0x89, 0x57, 0xa3, 0x77, 0x3f, 0x02, 0x20, 0x0e}} + FOLDERID_ProgramFilesCommonX64 = &KNOWNFOLDERID{0x6365d5a7, 0x0f0d, 0x45e5, [8]byte{0x87, 0xf6, 0x0d, 0xa5, 0x6b, 0x6a, 0x4f, 0x7d}} + FOLDERID_ProgramFiles = &KNOWNFOLDERID{0x905e63b6, 0xc1bf, 0x494e, [8]byte{0xb2, 0x9c, 0x65, 0xb7, 0x32, 0xd3, 0xd2, 0x1a}} + FOLDERID_ProgramFilesCommon = &KNOWNFOLDERID{0xf7f1ed05, 0x9f6d, 0x47a2, [8]byte{0xaa, 0xae, 0x29, 0xd3, 0x17, 0xc6, 0xf0, 0x66}} + FOLDERID_UserProgramFiles = &KNOWNFOLDERID{0x5cd7aee2, 0x2219, 0x4a67, [8]byte{0xb8, 0x5d, 0x6c, 0x9c, 0xe1, 0x56, 0x60, 0xcb}} + FOLDERID_UserProgramFilesCommon = &KNOWNFOLDERID{0xbcbd3057, 0xca5c, 0x4622, [8]byte{0xb4, 0x2d, 0xbc, 0x56, 0xdb, 0x0a, 0xe5, 0x16}} + FOLDERID_AdminTools = &KNOWNFOLDERID{0x724ef170, 0xa42d, 0x4fef, [8]byte{0x9f, 0x26, 0xb6, 0x0e, 0x84, 0x6f, 0xba, 0x4f}} + FOLDERID_CommonAdminTools = &KNOWNFOLDERID{0xd0384e7d, 0xbac3, 0x4797, [8]byte{0x8f, 0x14, 0xcb, 0xa2, 0x29, 0xb3, 0x92, 0xb5}} + FOLDERID_Music = &KNOWNFOLDERID{0x4bd8d571, 0x6d19, 0x48d3, [8]byte{0xbe, 0x97, 0x42, 0x22, 0x20, 0x08, 0x0e, 0x43}} + FOLDERID_Videos = &KNOWNFOLDERID{0x18989b1d, 0x99b5, 0x455b, [8]byte{0x84, 0x1c, 0xab, 0x7c, 0x74, 0xe4, 0xdd, 0xfc}} + FOLDERID_Ringtones = &KNOWNFOLDERID{0xc870044b, 0xf49e, 0x4126, [8]byte{0xa9, 0xc3, 0xb5, 0x2a, 0x1f, 0xf4, 0x11, 0xe8}} + FOLDERID_PublicPictures = &KNOWNFOLDERID{0xb6ebfb86, 0x6907, 0x413c, [8]byte{0x9a, 0xf7, 0x4f, 0xc2, 0xab, 0xf0, 0x7c, 0xc5}} + FOLDERID_PublicMusic = &KNOWNFOLDERID{0x3214fab5, 0x9757, 0x4298, [8]byte{0xbb, 0x61, 0x92, 0xa9, 0xde, 0xaa, 0x44, 0xff}} + FOLDERID_PublicVideos = &KNOWNFOLDERID{0x2400183a, 0x6185, 0x49fb, [8]byte{0xa2, 0xd8, 0x4a, 0x39, 0x2a, 0x60, 0x2b, 0xa3}} + FOLDERID_PublicRingtones = &KNOWNFOLDERID{0xe555ab60, 0x153b, 0x4d17, [8]byte{0x9f, 0x04, 0xa5, 0xfe, 0x99, 0xfc, 0x15, 0xec}} + FOLDERID_ResourceDir = &KNOWNFOLDERID{0x8ad10c31, 0x2adb, 0x4296, [8]byte{0xa8, 0xf7, 0xe4, 0x70, 0x12, 0x32, 0xc9, 0x72}} + FOLDERID_LocalizedResourcesDir = &KNOWNFOLDERID{0x2a00375e, 0x224c, 0x49de, [8]byte{0xb8, 0xd1, 0x44, 0x0d, 0xf7, 0xef, 0x3d, 0xdc}} + FOLDERID_CommonOEMLinks = &KNOWNFOLDERID{0xc1bae2d0, 0x10df, 0x4334, [8]byte{0xbe, 0xdd, 0x7a, 0xa2, 0x0b, 0x22, 0x7a, 0x9d}} + FOLDERID_CDBurning = &KNOWNFOLDERID{0x9e52ab10, 0xf80d, 0x49df, [8]byte{0xac, 0xb8, 0x43, 0x30, 0xf5, 0x68, 0x78, 0x55}} + FOLDERID_UserProfiles = &KNOWNFOLDERID{0x0762d272, 0xc50a, 0x4bb0, [8]byte{0xa3, 0x82, 0x69, 0x7d, 0xcd, 0x72, 0x9b, 0x80}} + FOLDERID_Playlists = &KNOWNFOLDERID{0xde92c1c7, 0x837f, 0x4f69, [8]byte{0xa3, 0xbb, 0x86, 0xe6, 0x31, 0x20, 0x4a, 0x23}} + FOLDERID_SamplePlaylists = &KNOWNFOLDERID{0x15ca69b3, 0x30ee, 0x49c1, [8]byte{0xac, 0xe1, 0x6b, 0x5e, 0xc3, 0x72, 0xaf, 0xb5}} + FOLDERID_SampleMusic = &KNOWNFOLDERID{0xb250c668, 0xf57d, 0x4ee1, [8]byte{0xa6, 0x3c, 0x29, 0x0e, 0xe7, 0xd1, 0xaa, 0x1f}} + FOLDERID_SamplePictures = &KNOWNFOLDERID{0xc4900540, 0x2379, 0x4c75, [8]byte{0x84, 0x4b, 0x64, 0xe6, 0xfa, 0xf8, 0x71, 0x6b}} + FOLDERID_SampleVideos = &KNOWNFOLDERID{0x859ead94, 0x2e85, 0x48ad, [8]byte{0xa7, 0x1a, 0x09, 0x69, 0xcb, 0x56, 0xa6, 0xcd}} + FOLDERID_PhotoAlbums = &KNOWNFOLDERID{0x69d2cf90, 0xfc33, 0x4fb7, [8]byte{0x9a, 0x0c, 0xeb, 0xb0, 0xf0, 0xfc, 0xb4, 0x3c}} + FOLDERID_Public = &KNOWNFOLDERID{0xdfdf76a2, 0xc82a, 0x4d63, [8]byte{0x90, 0x6a, 0x56, 0x44, 0xac, 0x45, 0x73, 0x85}} + FOLDERID_ChangeRemovePrograms = &KNOWNFOLDERID{0xdf7266ac, 0x9274, 0x4867, [8]byte{0x8d, 0x55, 0x3b, 0xd6, 0x61, 0xde, 0x87, 0x2d}} + FOLDERID_AppUpdates = &KNOWNFOLDERID{0xa305ce99, 0xf527, 0x492b, [8]byte{0x8b, 0x1a, 0x7e, 0x76, 0xfa, 0x98, 0xd6, 0xe4}} + FOLDERID_AddNewPrograms = &KNOWNFOLDERID{0xde61d971, 0x5ebc, 0x4f02, [8]byte{0xa3, 0xa9, 0x6c, 0x82, 0x89, 0x5e, 0x5c, 0x04}} + FOLDERID_Downloads = &KNOWNFOLDERID{0x374de290, 0x123f, 0x4565, [8]byte{0x91, 0x64, 0x39, 0xc4, 0x92, 0x5e, 0x46, 0x7b}} + FOLDERID_PublicDownloads = &KNOWNFOLDERID{0x3d644c9b, 0x1fb8, 0x4f30, [8]byte{0x9b, 0x45, 0xf6, 0x70, 0x23, 0x5f, 0x79, 0xc0}} + FOLDERID_SavedSearches = &KNOWNFOLDERID{0x7d1d3a04, 0xdebb, 0x4115, [8]byte{0x95, 0xcf, 0x2f, 0x29, 0xda, 0x29, 0x20, 0xda}} + FOLDERID_QuickLaunch = &KNOWNFOLDERID{0x52a4f021, 0x7b75, 0x48a9, [8]byte{0x9f, 0x6b, 0x4b, 0x87, 0xa2, 0x10, 0xbc, 0x8f}} + FOLDERID_Contacts = &KNOWNFOLDERID{0x56784854, 0xc6cb, 0x462b, [8]byte{0x81, 0x69, 0x88, 0xe3, 0x50, 0xac, 0xb8, 0x82}} + FOLDERID_SidebarParts = &KNOWNFOLDERID{0xa75d362e, 0x50fc, 0x4fb7, [8]byte{0xac, 0x2c, 0xa8, 0xbe, 0xaa, 0x31, 0x44, 0x93}} + FOLDERID_SidebarDefaultParts = &KNOWNFOLDERID{0x7b396e54, 0x9ec5, 0x4300, [8]byte{0xbe, 0x0a, 0x24, 0x82, 0xeb, 0xae, 0x1a, 0x26}} + FOLDERID_PublicGameTasks = &KNOWNFOLDERID{0xdebf2536, 0xe1a8, 0x4c59, [8]byte{0xb6, 0xa2, 0x41, 0x45, 0x86, 0x47, 0x6a, 0xea}} + FOLDERID_GameTasks = &KNOWNFOLDERID{0x054fae61, 0x4dd8, 0x4787, [8]byte{0x80, 0xb6, 0x09, 0x02, 0x20, 0xc4, 0xb7, 0x00}} + FOLDERID_SavedGames = &KNOWNFOLDERID{0x4c5c32ff, 0xbb9d, 0x43b0, [8]byte{0xb5, 0xb4, 0x2d, 0x72, 0xe5, 0x4e, 0xaa, 0xa4}} + FOLDERID_Games = &KNOWNFOLDERID{0xcac52c1a, 0xb53d, 0x4edc, [8]byte{0x92, 0xd7, 0x6b, 0x2e, 0x8a, 0xc1, 0x94, 0x34}} + FOLDERID_SEARCH_MAPI = &KNOWNFOLDERID{0x98ec0e18, 0x2098, 0x4d44, [8]byte{0x86, 0x44, 0x66, 0x97, 0x93, 0x15, 0xa2, 0x81}} + FOLDERID_SEARCH_CSC = &KNOWNFOLDERID{0xee32e446, 0x31ca, 0x4aba, [8]byte{0x81, 0x4f, 0xa5, 0xeb, 0xd2, 0xfd, 0x6d, 0x5e}} + FOLDERID_Links = &KNOWNFOLDERID{0xbfb9d5e0, 0xc6a9, 0x404c, [8]byte{0xb2, 0xb2, 0xae, 0x6d, 0xb6, 0xaf, 0x49, 0x68}} + FOLDERID_UsersFiles = &KNOWNFOLDERID{0xf3ce0f7c, 0x4901, 0x4acc, [8]byte{0x86, 0x48, 0xd5, 0xd4, 0x4b, 0x04, 0xef, 0x8f}} + FOLDERID_UsersLibraries = &KNOWNFOLDERID{0xa302545d, 0xdeff, 0x464b, [8]byte{0xab, 0xe8, 0x61, 0xc8, 0x64, 0x8d, 0x93, 0x9b}} + FOLDERID_SearchHome = &KNOWNFOLDERID{0x190337d1, 0xb8ca, 0x4121, [8]byte{0xa6, 0x39, 0x6d, 0x47, 0x2d, 0x16, 0x97, 0x2a}} + FOLDERID_OriginalImages = &KNOWNFOLDERID{0x2c36c0aa, 0x5812, 0x4b87, [8]byte{0xbf, 0xd0, 0x4c, 0xd0, 0xdf, 0xb1, 0x9b, 0x39}} + FOLDERID_DocumentsLibrary = &KNOWNFOLDERID{0x7b0db17d, 0x9cd2, 0x4a93, [8]byte{0x97, 0x33, 0x46, 0xcc, 0x89, 0x02, 0x2e, 0x7c}} + FOLDERID_MusicLibrary = &KNOWNFOLDERID{0x2112ab0a, 0xc86a, 0x4ffe, [8]byte{0xa3, 0x68, 0x0d, 0xe9, 0x6e, 0x47, 0x01, 0x2e}} + FOLDERID_PicturesLibrary = &KNOWNFOLDERID{0xa990ae9f, 0xa03b, 0x4e80, [8]byte{0x94, 0xbc, 0x99, 0x12, 0xd7, 0x50, 0x41, 0x04}} + FOLDERID_VideosLibrary = &KNOWNFOLDERID{0x491e922f, 0x5643, 0x4af4, [8]byte{0xa7, 0xeb, 0x4e, 0x7a, 0x13, 0x8d, 0x81, 0x74}} + FOLDERID_RecordedTVLibrary = &KNOWNFOLDERID{0x1a6fdba2, 0xf42d, 0x4358, [8]byte{0xa7, 0x98, 0xb7, 0x4d, 0x74, 0x59, 0x26, 0xc5}} + FOLDERID_HomeGroup = &KNOWNFOLDERID{0x52528a6b, 0xb9e3, 0x4add, [8]byte{0xb6, 0x0d, 0x58, 0x8c, 0x2d, 0xba, 0x84, 0x2d}} + FOLDERID_HomeGroupCurrentUser = &KNOWNFOLDERID{0x9b74b6a3, 0x0dfd, 0x4f11, [8]byte{0x9e, 0x78, 0x5f, 0x78, 0x00, 0xf2, 0xe7, 0x72}} + FOLDERID_DeviceMetadataStore = &KNOWNFOLDERID{0x5ce4a5e9, 0xe4eb, 0x479d, [8]byte{0xb8, 0x9f, 0x13, 0x0c, 0x02, 0x88, 0x61, 0x55}} + FOLDERID_Libraries = &KNOWNFOLDERID{0x1b3ea5dc, 0xb587, 0x4786, [8]byte{0xb4, 0xef, 0xbd, 0x1d, 0xc3, 0x32, 0xae, 0xae}} + FOLDERID_PublicLibraries = &KNOWNFOLDERID{0x48daf80b, 0xe6cf, 0x4f4e, [8]byte{0xb8, 0x00, 0x0e, 0x69, 0xd8, 0x4e, 0xe3, 0x84}} + FOLDERID_UserPinned = &KNOWNFOLDERID{0x9e3995ab, 0x1f9c, 0x4f13, [8]byte{0xb8, 0x27, 0x48, 0xb2, 0x4b, 0x6c, 0x71, 0x74}} + FOLDERID_ImplicitAppShortcuts = &KNOWNFOLDERID{0xbcb5256f, 0x79f6, 0x4cee, [8]byte{0xb7, 0x25, 0xdc, 0x34, 0xe4, 0x02, 0xfd, 0x46}} + FOLDERID_AccountPictures = &KNOWNFOLDERID{0x008ca0b1, 0x55b4, 0x4c56, [8]byte{0xb8, 0xa8, 0x4d, 0xe4, 0xb2, 0x99, 0xd3, 0xbe}} + FOLDERID_PublicUserTiles = &KNOWNFOLDERID{0x0482af6c, 0x08f1, 0x4c34, [8]byte{0x8c, 0x90, 0xe1, 0x7e, 0xc9, 0x8b, 0x1e, 0x17}} + FOLDERID_AppsFolder = &KNOWNFOLDERID{0x1e87508d, 0x89c2, 0x42f0, [8]byte{0x8a, 0x7e, 0x64, 0x5a, 0x0f, 0x50, 0xca, 0x58}} + FOLDERID_StartMenuAllPrograms = &KNOWNFOLDERID{0xf26305ef, 0x6948, 0x40b9, [8]byte{0xb2, 0x55, 0x81, 0x45, 0x3d, 0x09, 0xc7, 0x85}} + FOLDERID_CommonStartMenuPlaces = &KNOWNFOLDERID{0xa440879f, 0x87a0, 0x4f7d, [8]byte{0xb7, 0x00, 0x02, 0x07, 0xb9, 0x66, 0x19, 0x4a}} + FOLDERID_ApplicationShortcuts = &KNOWNFOLDERID{0xa3918781, 0xe5f2, 0x4890, [8]byte{0xb3, 0xd9, 0xa7, 0xe5, 0x43, 0x32, 0x32, 0x8c}} + FOLDERID_RoamingTiles = &KNOWNFOLDERID{0x00bcfc5a, 0xed94, 0x4e48, [8]byte{0x96, 0xa1, 0x3f, 0x62, 0x17, 0xf2, 0x19, 0x90}} + FOLDERID_RoamedTileImages = &KNOWNFOLDERID{0xaaa8d5a5, 0xf1d6, 0x4259, [8]byte{0xba, 0xa8, 0x78, 0xe7, 0xef, 0x60, 0x83, 0x5e}} + FOLDERID_Screenshots = &KNOWNFOLDERID{0xb7bede81, 0xdf94, 0x4682, [8]byte{0xa7, 0xd8, 0x57, 0xa5, 0x26, 0x20, 0xb8, 0x6f}} + FOLDERID_CameraRoll = &KNOWNFOLDERID{0xab5fb87b, 0x7ce2, 0x4f83, [8]byte{0x91, 0x5d, 0x55, 0x08, 0x46, 0xc9, 0x53, 0x7b}} + FOLDERID_SkyDrive = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}} + FOLDERID_OneDrive = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}} + FOLDERID_SkyDriveDocuments = &KNOWNFOLDERID{0x24d89e24, 0x2f19, 0x4534, [8]byte{0x9d, 0xde, 0x6a, 0x66, 0x71, 0xfb, 0xb8, 0xfe}} + FOLDERID_SkyDrivePictures = &KNOWNFOLDERID{0x339719b5, 0x8c47, 0x4894, [8]byte{0x94, 0xc2, 0xd8, 0xf7, 0x7a, 0xdd, 0x44, 0xa6}} + FOLDERID_SkyDriveMusic = &KNOWNFOLDERID{0xc3f2459e, 0x80d6, 0x45dc, [8]byte{0xbf, 0xef, 0x1f, 0x76, 0x9f, 0x2b, 0xe7, 0x30}} + FOLDERID_SkyDriveCameraRoll = &KNOWNFOLDERID{0x767e6811, 0x49cb, 0x4273, [8]byte{0x87, 0xc2, 0x20, 0xf3, 0x55, 0xe1, 0x08, 0x5b}} + FOLDERID_SearchHistory = &KNOWNFOLDERID{0x0d4c3db6, 0x03a3, 0x462f, [8]byte{0xa0, 0xe6, 0x08, 0x92, 0x4c, 0x41, 0xb5, 0xd4}} + FOLDERID_SearchTemplates = &KNOWNFOLDERID{0x7e636bfe, 0xdfa9, 0x4d5e, [8]byte{0xb4, 0x56, 0xd7, 0xb3, 0x98, 0x51, 0xd8, 0xa9}} + FOLDERID_CameraRollLibrary = &KNOWNFOLDERID{0x2b20df75, 0x1eda, 0x4039, [8]byte{0x80, 0x97, 0x38, 0x79, 0x82, 0x27, 0xd5, 0xb7}} + FOLDERID_SavedPictures = &KNOWNFOLDERID{0x3b193882, 0xd3ad, 0x4eab, [8]byte{0x96, 0x5a, 0x69, 0x82, 0x9d, 0x1f, 0xb5, 0x9f}} + FOLDERID_SavedPicturesLibrary = &KNOWNFOLDERID{0xe25b5812, 0xbe88, 0x4bd9, [8]byte{0x94, 0xb0, 0x29, 0x23, 0x34, 0x77, 0xb6, 0xc3}} + FOLDERID_RetailDemo = &KNOWNFOLDERID{0x12d4c69e, 0x24ad, 0x4923, [8]byte{0xbe, 0x19, 0x31, 0x32, 0x1c, 0x43, 0xa7, 0x67}} + FOLDERID_Device = &KNOWNFOLDERID{0x1c2ac1dc, 0x4358, 0x4b6c, [8]byte{0x97, 0x33, 0xaf, 0x21, 0x15, 0x65, 0x76, 0xf0}} + FOLDERID_DevelopmentFiles = &KNOWNFOLDERID{0xdbe8e08e, 0x3053, 0x4bbc, [8]byte{0xb1, 0x83, 0x2a, 0x7b, 0x2b, 0x19, 0x1e, 0x59}} + FOLDERID_Objects3D = &KNOWNFOLDERID{0x31c0dd25, 0x9439, 0x4f12, [8]byte{0xbf, 0x41, 0x7f, 0xf4, 0xed, 0xa3, 0x87, 0x22}} + FOLDERID_AppCaptures = &KNOWNFOLDERID{0xedc0fe71, 0x98d8, 0x4f4a, [8]byte{0xb9, 0x20, 0xc8, 0xdc, 0x13, 0x3c, 0xb1, 0x65}} + FOLDERID_LocalDocuments = &KNOWNFOLDERID{0xf42ee2d3, 0x909f, 0x4907, [8]byte{0x88, 0x71, 0x4c, 0x22, 0xfc, 0x0b, 0xf7, 0x56}} + FOLDERID_LocalPictures = &KNOWNFOLDERID{0x0ddd015d, 0xb06c, 0x45d5, [8]byte{0x8c, 0x4c, 0xf5, 0x97, 0x13, 0x85, 0x46, 0x39}} + FOLDERID_LocalVideos = &KNOWNFOLDERID{0x35286a68, 0x3c57, 0x41a1, [8]byte{0xbb, 0xb1, 0x0e, 0xae, 0x73, 0xd7, 0x6c, 0x95}} + FOLDERID_LocalMusic = &KNOWNFOLDERID{0xa0c69a99, 0x21c8, 0x4671, [8]byte{0x87, 0x03, 0x79, 0x34, 0x16, 0x2f, 0xcf, 0x1d}} + FOLDERID_LocalDownloads = &KNOWNFOLDERID{0x7d83ee9b, 0x2244, 0x4e70, [8]byte{0xb1, 0xf5, 0x53, 0x93, 0x04, 0x2a, 0xf1, 0xe4}} + FOLDERID_RecordedCalls = &KNOWNFOLDERID{0x2f8b40c2, 0x83ed, 0x48ee, [8]byte{0xb3, 0x83, 0xa1, 0xf1, 0x57, 0xec, 0x6f, 0x9a}} + FOLDERID_AllAppMods = &KNOWNFOLDERID{0x7ad67899, 0x66af, 0x43ba, [8]byte{0x91, 0x56, 0x6a, 0xad, 0x42, 0xe6, 0xc5, 0x96}} + FOLDERID_CurrentAppMods = &KNOWNFOLDERID{0x3db40b20, 0x2a30, 0x4dbe, [8]byte{0x91, 0x7e, 0x77, 0x1d, 0xd2, 0x1d, 0xd0, 0x99}} + FOLDERID_AppDataDesktop = &KNOWNFOLDERID{0xb2c5e279, 0x7add, 0x439f, [8]byte{0xb2, 0x8c, 0xc4, 0x1f, 0xe1, 0xbb, 0xf6, 0x72}} + FOLDERID_AppDataDocuments = &KNOWNFOLDERID{0x7be16610, 0x1f7f, 0x44ac, [8]byte{0xbf, 0xf0, 0x83, 0xe1, 0x5f, 0x2f, 0xfc, 0xa1}} + FOLDERID_AppDataFavorites = &KNOWNFOLDERID{0x7cfbefbc, 0xde1f, 0x45aa, [8]byte{0xb8, 0x43, 0xa5, 0x42, 0xac, 0x53, 0x6c, 0xc9}} + FOLDERID_AppDataProgramData = &KNOWNFOLDERID{0x559d40a3, 0xa036, 0x40fa, [8]byte{0xaf, 0x61, 0x84, 0xcb, 0x43, 0x0a, 0x4d, 0x34}} +) diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go new file mode 100644 index 000000000..4c2e1bdc0 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -0,0 +1,4615 @@ +// Code generated by 'go generate'; DO NOT EDIT. + +package windows + +import ( + "syscall" + "unsafe" +) + +var _ unsafe.Pointer + +// Do the interface allocations only once for common +// Errno values. +const ( + errnoERROR_IO_PENDING = 997 +) + +var ( + errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) + errERROR_EINVAL error = syscall.EINVAL +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e syscall.Errno) error { + switch e { + case 0: + return errERROR_EINVAL + case errnoERROR_IO_PENDING: + return errERROR_IO_PENDING + } + // TODO: add more here, after collecting data on the common + // error values see on Windows. (perhaps when running + // all.bat?) + return e +} + +var ( + modCfgMgr32 = NewLazySystemDLL("CfgMgr32.dll") + modadvapi32 = NewLazySystemDLL("advapi32.dll") + modcrypt32 = NewLazySystemDLL("crypt32.dll") + moddnsapi = NewLazySystemDLL("dnsapi.dll") + moddwmapi = NewLazySystemDLL("dwmapi.dll") + modiphlpapi = NewLazySystemDLL("iphlpapi.dll") + modkernel32 = NewLazySystemDLL("kernel32.dll") + modmswsock = NewLazySystemDLL("mswsock.dll") + modnetapi32 = NewLazySystemDLL("netapi32.dll") + modntdll = NewLazySystemDLL("ntdll.dll") + modole32 = NewLazySystemDLL("ole32.dll") + modpsapi = NewLazySystemDLL("psapi.dll") + modsechost = NewLazySystemDLL("sechost.dll") + modsecur32 = NewLazySystemDLL("secur32.dll") + modsetupapi = NewLazySystemDLL("setupapi.dll") + modshell32 = NewLazySystemDLL("shell32.dll") + moduser32 = NewLazySystemDLL("user32.dll") + moduserenv = NewLazySystemDLL("userenv.dll") + modversion = NewLazySystemDLL("version.dll") + modwinmm = NewLazySystemDLL("winmm.dll") + modwintrust = NewLazySystemDLL("wintrust.dll") + modws2_32 = NewLazySystemDLL("ws2_32.dll") + modwtsapi32 = NewLazySystemDLL("wtsapi32.dll") + + procCM_Get_DevNode_Status = modCfgMgr32.NewProc("CM_Get_DevNode_Status") + procCM_Get_Device_Interface_ListW = modCfgMgr32.NewProc("CM_Get_Device_Interface_ListW") + procCM_Get_Device_Interface_List_SizeW = modCfgMgr32.NewProc("CM_Get_Device_Interface_List_SizeW") + procCM_MapCrToWin32Err = modCfgMgr32.NewProc("CM_MapCrToWin32Err") + procAdjustTokenGroups = modadvapi32.NewProc("AdjustTokenGroups") + procAdjustTokenPrivileges = modadvapi32.NewProc("AdjustTokenPrivileges") + procAllocateAndInitializeSid = modadvapi32.NewProc("AllocateAndInitializeSid") + procBuildSecurityDescriptorW = modadvapi32.NewProc("BuildSecurityDescriptorW") + procChangeServiceConfig2W = modadvapi32.NewProc("ChangeServiceConfig2W") + procChangeServiceConfigW = modadvapi32.NewProc("ChangeServiceConfigW") + procCheckTokenMembership = modadvapi32.NewProc("CheckTokenMembership") + procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle") + procControlService = modadvapi32.NewProc("ControlService") + procConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc("ConvertSecurityDescriptorToStringSecurityDescriptorW") + procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW") + procConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc("ConvertStringSecurityDescriptorToSecurityDescriptorW") + procConvertStringSidToSidW = modadvapi32.NewProc("ConvertStringSidToSidW") + procCopySid = modadvapi32.NewProc("CopySid") + procCreateProcessAsUserW = modadvapi32.NewProc("CreateProcessAsUserW") + procCreateServiceW = modadvapi32.NewProc("CreateServiceW") + procCreateWellKnownSid = modadvapi32.NewProc("CreateWellKnownSid") + procCryptAcquireContextW = modadvapi32.NewProc("CryptAcquireContextW") + procCryptGenRandom = modadvapi32.NewProc("CryptGenRandom") + procCryptReleaseContext = modadvapi32.NewProc("CryptReleaseContext") + procDeleteService = modadvapi32.NewProc("DeleteService") + procDeregisterEventSource = modadvapi32.NewProc("DeregisterEventSource") + procDuplicateTokenEx = modadvapi32.NewProc("DuplicateTokenEx") + procEnumDependentServicesW = modadvapi32.NewProc("EnumDependentServicesW") + procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW") + procEqualSid = modadvapi32.NewProc("EqualSid") + procFreeSid = modadvapi32.NewProc("FreeSid") + procGetAce = modadvapi32.NewProc("GetAce") + procGetLengthSid = modadvapi32.NewProc("GetLengthSid") + procGetNamedSecurityInfoW = modadvapi32.NewProc("GetNamedSecurityInfoW") + procGetSecurityDescriptorControl = modadvapi32.NewProc("GetSecurityDescriptorControl") + procGetSecurityDescriptorDacl = modadvapi32.NewProc("GetSecurityDescriptorDacl") + procGetSecurityDescriptorGroup = modadvapi32.NewProc("GetSecurityDescriptorGroup") + procGetSecurityDescriptorLength = modadvapi32.NewProc("GetSecurityDescriptorLength") + procGetSecurityDescriptorOwner = modadvapi32.NewProc("GetSecurityDescriptorOwner") + procGetSecurityDescriptorRMControl = modadvapi32.NewProc("GetSecurityDescriptorRMControl") + procGetSecurityDescriptorSacl = modadvapi32.NewProc("GetSecurityDescriptorSacl") + procGetSecurityInfo = modadvapi32.NewProc("GetSecurityInfo") + procGetSidIdentifierAuthority = modadvapi32.NewProc("GetSidIdentifierAuthority") + procGetSidSubAuthority = modadvapi32.NewProc("GetSidSubAuthority") + procGetSidSubAuthorityCount = modadvapi32.NewProc("GetSidSubAuthorityCount") + procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation") + procImpersonateSelf = modadvapi32.NewProc("ImpersonateSelf") + procInitializeSecurityDescriptor = modadvapi32.NewProc("InitializeSecurityDescriptor") + procInitiateSystemShutdownExW = modadvapi32.NewProc("InitiateSystemShutdownExW") + procIsTokenRestricted = modadvapi32.NewProc("IsTokenRestricted") + procIsValidSecurityDescriptor = modadvapi32.NewProc("IsValidSecurityDescriptor") + procIsValidSid = modadvapi32.NewProc("IsValidSid") + procIsWellKnownSid = modadvapi32.NewProc("IsWellKnownSid") + procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW") + procLookupAccountSidW = modadvapi32.NewProc("LookupAccountSidW") + procLookupPrivilegeValueW = modadvapi32.NewProc("LookupPrivilegeValueW") + procMakeAbsoluteSD = modadvapi32.NewProc("MakeAbsoluteSD") + procMakeSelfRelativeSD = modadvapi32.NewProc("MakeSelfRelativeSD") + procNotifyServiceStatusChangeW = modadvapi32.NewProc("NotifyServiceStatusChangeW") + procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken") + procOpenSCManagerW = modadvapi32.NewProc("OpenSCManagerW") + procOpenServiceW = modadvapi32.NewProc("OpenServiceW") + procOpenThreadToken = modadvapi32.NewProc("OpenThreadToken") + procQueryServiceConfig2W = modadvapi32.NewProc("QueryServiceConfig2W") + procQueryServiceConfigW = modadvapi32.NewProc("QueryServiceConfigW") + procQueryServiceDynamicInformation = modadvapi32.NewProc("QueryServiceDynamicInformation") + procQueryServiceLockStatusW = modadvapi32.NewProc("QueryServiceLockStatusW") + procQueryServiceStatus = modadvapi32.NewProc("QueryServiceStatus") + procQueryServiceStatusEx = modadvapi32.NewProc("QueryServiceStatusEx") + procRegCloseKey = modadvapi32.NewProc("RegCloseKey") + procRegEnumKeyExW = modadvapi32.NewProc("RegEnumKeyExW") + procRegNotifyChangeKeyValue = modadvapi32.NewProc("RegNotifyChangeKeyValue") + procRegOpenKeyExW = modadvapi32.NewProc("RegOpenKeyExW") + procRegQueryInfoKeyW = modadvapi32.NewProc("RegQueryInfoKeyW") + procRegQueryValueExW = modadvapi32.NewProc("RegQueryValueExW") + procRegisterEventSourceW = modadvapi32.NewProc("RegisterEventSourceW") + procRegisterServiceCtrlHandlerExW = modadvapi32.NewProc("RegisterServiceCtrlHandlerExW") + procReportEventW = modadvapi32.NewProc("ReportEventW") + procRevertToSelf = modadvapi32.NewProc("RevertToSelf") + procSetEntriesInAclW = modadvapi32.NewProc("SetEntriesInAclW") + procSetKernelObjectSecurity = modadvapi32.NewProc("SetKernelObjectSecurity") + procSetNamedSecurityInfoW = modadvapi32.NewProc("SetNamedSecurityInfoW") + procSetSecurityDescriptorControl = modadvapi32.NewProc("SetSecurityDescriptorControl") + procSetSecurityDescriptorDacl = modadvapi32.NewProc("SetSecurityDescriptorDacl") + procSetSecurityDescriptorGroup = modadvapi32.NewProc("SetSecurityDescriptorGroup") + procSetSecurityDescriptorOwner = modadvapi32.NewProc("SetSecurityDescriptorOwner") + procSetSecurityDescriptorRMControl = modadvapi32.NewProc("SetSecurityDescriptorRMControl") + procSetSecurityDescriptorSacl = modadvapi32.NewProc("SetSecurityDescriptorSacl") + procSetSecurityInfo = modadvapi32.NewProc("SetSecurityInfo") + procSetServiceStatus = modadvapi32.NewProc("SetServiceStatus") + procSetThreadToken = modadvapi32.NewProc("SetThreadToken") + procSetTokenInformation = modadvapi32.NewProc("SetTokenInformation") + procStartServiceCtrlDispatcherW = modadvapi32.NewProc("StartServiceCtrlDispatcherW") + procStartServiceW = modadvapi32.NewProc("StartServiceW") + procCertAddCertificateContextToStore = modcrypt32.NewProc("CertAddCertificateContextToStore") + procCertCloseStore = modcrypt32.NewProc("CertCloseStore") + procCertCreateCertificateContext = modcrypt32.NewProc("CertCreateCertificateContext") + procCertDeleteCertificateFromStore = modcrypt32.NewProc("CertDeleteCertificateFromStore") + procCertDuplicateCertificateContext = modcrypt32.NewProc("CertDuplicateCertificateContext") + procCertEnumCertificatesInStore = modcrypt32.NewProc("CertEnumCertificatesInStore") + procCertFindCertificateInStore = modcrypt32.NewProc("CertFindCertificateInStore") + procCertFindChainInStore = modcrypt32.NewProc("CertFindChainInStore") + procCertFindExtension = modcrypt32.NewProc("CertFindExtension") + procCertFreeCertificateChain = modcrypt32.NewProc("CertFreeCertificateChain") + procCertFreeCertificateContext = modcrypt32.NewProc("CertFreeCertificateContext") + procCertGetCertificateChain = modcrypt32.NewProc("CertGetCertificateChain") + procCertGetNameStringW = modcrypt32.NewProc("CertGetNameStringW") + procCertOpenStore = modcrypt32.NewProc("CertOpenStore") + procCertOpenSystemStoreW = modcrypt32.NewProc("CertOpenSystemStoreW") + procCertVerifyCertificateChainPolicy = modcrypt32.NewProc("CertVerifyCertificateChainPolicy") + procCryptAcquireCertificatePrivateKey = modcrypt32.NewProc("CryptAcquireCertificatePrivateKey") + procCryptDecodeObject = modcrypt32.NewProc("CryptDecodeObject") + procCryptProtectData = modcrypt32.NewProc("CryptProtectData") + procCryptQueryObject = modcrypt32.NewProc("CryptQueryObject") + procCryptUnprotectData = modcrypt32.NewProc("CryptUnprotectData") + procPFXImportCertStore = modcrypt32.NewProc("PFXImportCertStore") + procDnsNameCompare_W = moddnsapi.NewProc("DnsNameCompare_W") + procDnsQuery_W = moddnsapi.NewProc("DnsQuery_W") + procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree") + procDwmGetWindowAttribute = moddwmapi.NewProc("DwmGetWindowAttribute") + procDwmSetWindowAttribute = moddwmapi.NewProc("DwmSetWindowAttribute") + procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") + procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") + procGetBestInterfaceEx = modiphlpapi.NewProc("GetBestInterfaceEx") + procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") + procAddDllDirectory = modkernel32.NewProc("AddDllDirectory") + procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") + procCancelIo = modkernel32.NewProc("CancelIo") + procCancelIoEx = modkernel32.NewProc("CancelIoEx") + procClearCommBreak = modkernel32.NewProc("ClearCommBreak") + procClearCommError = modkernel32.NewProc("ClearCommError") + procCloseHandle = modkernel32.NewProc("CloseHandle") + procClosePseudoConsole = modkernel32.NewProc("ClosePseudoConsole") + procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe") + procCreateDirectoryW = modkernel32.NewProc("CreateDirectoryW") + procCreateEventExW = modkernel32.NewProc("CreateEventExW") + procCreateEventW = modkernel32.NewProc("CreateEventW") + procCreateFileMappingW = modkernel32.NewProc("CreateFileMappingW") + procCreateFileW = modkernel32.NewProc("CreateFileW") + procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW") + procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") + procCreateJobObjectW = modkernel32.NewProc("CreateJobObjectW") + procCreateMutexExW = modkernel32.NewProc("CreateMutexExW") + procCreateMutexW = modkernel32.NewProc("CreateMutexW") + procCreateNamedPipeW = modkernel32.NewProc("CreateNamedPipeW") + procCreatePipe = modkernel32.NewProc("CreatePipe") + procCreateProcessW = modkernel32.NewProc("CreateProcessW") + procCreatePseudoConsole = modkernel32.NewProc("CreatePseudoConsole") + procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW") + procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot") + procDefineDosDeviceW = modkernel32.NewProc("DefineDosDeviceW") + procDeleteFileW = modkernel32.NewProc("DeleteFileW") + procDeleteProcThreadAttributeList = modkernel32.NewProc("DeleteProcThreadAttributeList") + procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW") + procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") + procDisconnectNamedPipe = modkernel32.NewProc("DisconnectNamedPipe") + procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") + procEscapeCommFunction = modkernel32.NewProc("EscapeCommFunction") + procExitProcess = modkernel32.NewProc("ExitProcess") + procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW") + procFindClose = modkernel32.NewProc("FindClose") + procFindCloseChangeNotification = modkernel32.NewProc("FindCloseChangeNotification") + procFindFirstChangeNotificationW = modkernel32.NewProc("FindFirstChangeNotificationW") + procFindFirstFileW = modkernel32.NewProc("FindFirstFileW") + procFindFirstVolumeMountPointW = modkernel32.NewProc("FindFirstVolumeMountPointW") + procFindFirstVolumeW = modkernel32.NewProc("FindFirstVolumeW") + procFindNextChangeNotification = modkernel32.NewProc("FindNextChangeNotification") + procFindNextFileW = modkernel32.NewProc("FindNextFileW") + procFindNextVolumeMountPointW = modkernel32.NewProc("FindNextVolumeMountPointW") + procFindNextVolumeW = modkernel32.NewProc("FindNextVolumeW") + procFindResourceW = modkernel32.NewProc("FindResourceW") + procFindVolumeClose = modkernel32.NewProc("FindVolumeClose") + procFindVolumeMountPointClose = modkernel32.NewProc("FindVolumeMountPointClose") + procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers") + procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile") + procFormatMessageW = modkernel32.NewProc("FormatMessageW") + procFreeEnvironmentStringsW = modkernel32.NewProc("FreeEnvironmentStringsW") + procFreeLibrary = modkernel32.NewProc("FreeLibrary") + procGenerateConsoleCtrlEvent = modkernel32.NewProc("GenerateConsoleCtrlEvent") + procGetACP = modkernel32.NewProc("GetACP") + procGetActiveProcessorCount = modkernel32.NewProc("GetActiveProcessorCount") + procGetCommModemStatus = modkernel32.NewProc("GetCommModemStatus") + procGetCommState = modkernel32.NewProc("GetCommState") + procGetCommTimeouts = modkernel32.NewProc("GetCommTimeouts") + procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") + procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") + procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") + procGetConsoleCP = modkernel32.NewProc("GetConsoleCP") + procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") + procGetConsoleOutputCP = modkernel32.NewProc("GetConsoleOutputCP") + procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo") + procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW") + procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId") + procGetCurrentThreadId = modkernel32.NewProc("GetCurrentThreadId") + procGetDiskFreeSpaceExW = modkernel32.NewProc("GetDiskFreeSpaceExW") + procGetDriveTypeW = modkernel32.NewProc("GetDriveTypeW") + procGetEnvironmentStringsW = modkernel32.NewProc("GetEnvironmentStringsW") + procGetEnvironmentVariableW = modkernel32.NewProc("GetEnvironmentVariableW") + procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess") + procGetFileAttributesExW = modkernel32.NewProc("GetFileAttributesExW") + procGetFileAttributesW = modkernel32.NewProc("GetFileAttributesW") + procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle") + procGetFileInformationByHandleEx = modkernel32.NewProc("GetFileInformationByHandleEx") + procGetFileTime = modkernel32.NewProc("GetFileTime") + procGetFileType = modkernel32.NewProc("GetFileType") + procGetFinalPathNameByHandleW = modkernel32.NewProc("GetFinalPathNameByHandleW") + procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") + procGetLargePageMinimum = modkernel32.NewProc("GetLargePageMinimum") + procGetLastError = modkernel32.NewProc("GetLastError") + procGetLogicalDriveStringsW = modkernel32.NewProc("GetLogicalDriveStringsW") + procGetLogicalDrives = modkernel32.NewProc("GetLogicalDrives") + procGetLongPathNameW = modkernel32.NewProc("GetLongPathNameW") + procGetMaximumProcessorCount = modkernel32.NewProc("GetMaximumProcessorCount") + procGetModuleFileNameW = modkernel32.NewProc("GetModuleFileNameW") + procGetModuleHandleExW = modkernel32.NewProc("GetModuleHandleExW") + procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW") + procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo") + procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult") + procGetPriorityClass = modkernel32.NewProc("GetPriorityClass") + procGetProcAddress = modkernel32.NewProc("GetProcAddress") + procGetProcessId = modkernel32.NewProc("GetProcessId") + procGetProcessPreferredUILanguages = modkernel32.NewProc("GetProcessPreferredUILanguages") + procGetProcessShutdownParameters = modkernel32.NewProc("GetProcessShutdownParameters") + procGetProcessTimes = modkernel32.NewProc("GetProcessTimes") + procGetProcessWorkingSetSizeEx = modkernel32.NewProc("GetProcessWorkingSetSizeEx") + procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus") + procGetShortPathNameW = modkernel32.NewProc("GetShortPathNameW") + procGetStartupInfoW = modkernel32.NewProc("GetStartupInfoW") + procGetStdHandle = modkernel32.NewProc("GetStdHandle") + procGetSystemDirectoryW = modkernel32.NewProc("GetSystemDirectoryW") + procGetSystemPreferredUILanguages = modkernel32.NewProc("GetSystemPreferredUILanguages") + procGetSystemTimeAsFileTime = modkernel32.NewProc("GetSystemTimeAsFileTime") + procGetSystemTimePreciseAsFileTime = modkernel32.NewProc("GetSystemTimePreciseAsFileTime") + procGetSystemWindowsDirectoryW = modkernel32.NewProc("GetSystemWindowsDirectoryW") + procGetTempPathW = modkernel32.NewProc("GetTempPathW") + procGetThreadPreferredUILanguages = modkernel32.NewProc("GetThreadPreferredUILanguages") + procGetTickCount64 = modkernel32.NewProc("GetTickCount64") + procGetTimeZoneInformation = modkernel32.NewProc("GetTimeZoneInformation") + procGetUserPreferredUILanguages = modkernel32.NewProc("GetUserPreferredUILanguages") + procGetVersion = modkernel32.NewProc("GetVersion") + procGetVolumeInformationByHandleW = modkernel32.NewProc("GetVolumeInformationByHandleW") + procGetVolumeInformationW = modkernel32.NewProc("GetVolumeInformationW") + procGetVolumeNameForVolumeMountPointW = modkernel32.NewProc("GetVolumeNameForVolumeMountPointW") + procGetVolumePathNameW = modkernel32.NewProc("GetVolumePathNameW") + procGetVolumePathNamesForVolumeNameW = modkernel32.NewProc("GetVolumePathNamesForVolumeNameW") + procGetWindowsDirectoryW = modkernel32.NewProc("GetWindowsDirectoryW") + procInitializeProcThreadAttributeList = modkernel32.NewProc("InitializeProcThreadAttributeList") + procIsWow64Process = modkernel32.NewProc("IsWow64Process") + procIsWow64Process2 = modkernel32.NewProc("IsWow64Process2") + procLoadLibraryExW = modkernel32.NewProc("LoadLibraryExW") + procLoadLibraryW = modkernel32.NewProc("LoadLibraryW") + procLoadResource = modkernel32.NewProc("LoadResource") + procLocalAlloc = modkernel32.NewProc("LocalAlloc") + procLocalFree = modkernel32.NewProc("LocalFree") + procLockFileEx = modkernel32.NewProc("LockFileEx") + procLockResource = modkernel32.NewProc("LockResource") + procMapViewOfFile = modkernel32.NewProc("MapViewOfFile") + procModule32FirstW = modkernel32.NewProc("Module32FirstW") + procModule32NextW = modkernel32.NewProc("Module32NextW") + procMoveFileExW = modkernel32.NewProc("MoveFileExW") + procMoveFileW = modkernel32.NewProc("MoveFileW") + procMultiByteToWideChar = modkernel32.NewProc("MultiByteToWideChar") + procOpenEventW = modkernel32.NewProc("OpenEventW") + procOpenMutexW = modkernel32.NewProc("OpenMutexW") + procOpenProcess = modkernel32.NewProc("OpenProcess") + procOpenThread = modkernel32.NewProc("OpenThread") + procPostQueuedCompletionStatus = modkernel32.NewProc("PostQueuedCompletionStatus") + procProcess32FirstW = modkernel32.NewProc("Process32FirstW") + procProcess32NextW = modkernel32.NewProc("Process32NextW") + procProcessIdToSessionId = modkernel32.NewProc("ProcessIdToSessionId") + procPulseEvent = modkernel32.NewProc("PulseEvent") + procPurgeComm = modkernel32.NewProc("PurgeComm") + procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW") + procQueryFullProcessImageNameW = modkernel32.NewProc("QueryFullProcessImageNameW") + procQueryInformationJobObject = modkernel32.NewProc("QueryInformationJobObject") + procReadConsoleW = modkernel32.NewProc("ReadConsoleW") + procReadDirectoryChangesW = modkernel32.NewProc("ReadDirectoryChangesW") + procReadFile = modkernel32.NewProc("ReadFile") + procReadProcessMemory = modkernel32.NewProc("ReadProcessMemory") + procReleaseMutex = modkernel32.NewProc("ReleaseMutex") + procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") + procRemoveDllDirectory = modkernel32.NewProc("RemoveDllDirectory") + procResetEvent = modkernel32.NewProc("ResetEvent") + procResizePseudoConsole = modkernel32.NewProc("ResizePseudoConsole") + procResumeThread = modkernel32.NewProc("ResumeThread") + procSetCommBreak = modkernel32.NewProc("SetCommBreak") + procSetCommMask = modkernel32.NewProc("SetCommMask") + procSetCommState = modkernel32.NewProc("SetCommState") + procSetCommTimeouts = modkernel32.NewProc("SetCommTimeouts") + procSetConsoleCP = modkernel32.NewProc("SetConsoleCP") + procSetConsoleCursorPosition = modkernel32.NewProc("SetConsoleCursorPosition") + procSetConsoleMode = modkernel32.NewProc("SetConsoleMode") + procSetConsoleOutputCP = modkernel32.NewProc("SetConsoleOutputCP") + procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW") + procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories") + procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW") + procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") + procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") + procSetErrorMode = modkernel32.NewProc("SetErrorMode") + procSetEvent = modkernel32.NewProc("SetEvent") + procSetFileAttributesW = modkernel32.NewProc("SetFileAttributesW") + procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes") + procSetFileInformationByHandle = modkernel32.NewProc("SetFileInformationByHandle") + procSetFilePointer = modkernel32.NewProc("SetFilePointer") + procSetFileTime = modkernel32.NewProc("SetFileTime") + procSetFileValidData = modkernel32.NewProc("SetFileValidData") + procSetHandleInformation = modkernel32.NewProc("SetHandleInformation") + procSetInformationJobObject = modkernel32.NewProc("SetInformationJobObject") + procSetNamedPipeHandleState = modkernel32.NewProc("SetNamedPipeHandleState") + procSetPriorityClass = modkernel32.NewProc("SetPriorityClass") + procSetProcessPriorityBoost = modkernel32.NewProc("SetProcessPriorityBoost") + procSetProcessShutdownParameters = modkernel32.NewProc("SetProcessShutdownParameters") + procSetProcessWorkingSetSizeEx = modkernel32.NewProc("SetProcessWorkingSetSizeEx") + procSetStdHandle = modkernel32.NewProc("SetStdHandle") + procSetVolumeLabelW = modkernel32.NewProc("SetVolumeLabelW") + procSetVolumeMountPointW = modkernel32.NewProc("SetVolumeMountPointW") + procSetupComm = modkernel32.NewProc("SetupComm") + procSizeofResource = modkernel32.NewProc("SizeofResource") + procSleepEx = modkernel32.NewProc("SleepEx") + procTerminateJobObject = modkernel32.NewProc("TerminateJobObject") + procTerminateProcess = modkernel32.NewProc("TerminateProcess") + procThread32First = modkernel32.NewProc("Thread32First") + procThread32Next = modkernel32.NewProc("Thread32Next") + procUnlockFileEx = modkernel32.NewProc("UnlockFileEx") + procUnmapViewOfFile = modkernel32.NewProc("UnmapViewOfFile") + procUpdateProcThreadAttribute = modkernel32.NewProc("UpdateProcThreadAttribute") + procVirtualAlloc = modkernel32.NewProc("VirtualAlloc") + procVirtualFree = modkernel32.NewProc("VirtualFree") + procVirtualLock = modkernel32.NewProc("VirtualLock") + procVirtualProtect = modkernel32.NewProc("VirtualProtect") + procVirtualProtectEx = modkernel32.NewProc("VirtualProtectEx") + procVirtualQuery = modkernel32.NewProc("VirtualQuery") + procVirtualQueryEx = modkernel32.NewProc("VirtualQueryEx") + procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") + procWTSGetActiveConsoleSessionId = modkernel32.NewProc("WTSGetActiveConsoleSessionId") + procWaitCommEvent = modkernel32.NewProc("WaitCommEvent") + procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects") + procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") + procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") + procWriteFile = modkernel32.NewProc("WriteFile") + procWriteProcessMemory = modkernel32.NewProc("WriteProcessMemory") + procAcceptEx = modmswsock.NewProc("AcceptEx") + procGetAcceptExSockaddrs = modmswsock.NewProc("GetAcceptExSockaddrs") + procTransmitFile = modmswsock.NewProc("TransmitFile") + procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") + procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") + procNetUserEnum = modnetapi32.NewProc("NetUserEnum") + procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") + procNtCreateFile = modntdll.NewProc("NtCreateFile") + procNtCreateNamedPipeFile = modntdll.NewProc("NtCreateNamedPipeFile") + procNtQueryInformationProcess = modntdll.NewProc("NtQueryInformationProcess") + procNtQuerySystemInformation = modntdll.NewProc("NtQuerySystemInformation") + procNtSetInformationFile = modntdll.NewProc("NtSetInformationFile") + procNtSetInformationProcess = modntdll.NewProc("NtSetInformationProcess") + procNtSetSystemInformation = modntdll.NewProc("NtSetSystemInformation") + procRtlAddFunctionTable = modntdll.NewProc("RtlAddFunctionTable") + procRtlDefaultNpAcl = modntdll.NewProc("RtlDefaultNpAcl") + procRtlDeleteFunctionTable = modntdll.NewProc("RtlDeleteFunctionTable") + procRtlDosPathNameToNtPathName_U_WithStatus = modntdll.NewProc("RtlDosPathNameToNtPathName_U_WithStatus") + procRtlDosPathNameToRelativeNtPathName_U_WithStatus = modntdll.NewProc("RtlDosPathNameToRelativeNtPathName_U_WithStatus") + procRtlGetCurrentPeb = modntdll.NewProc("RtlGetCurrentPeb") + procRtlGetNtVersionNumbers = modntdll.NewProc("RtlGetNtVersionNumbers") + procRtlGetVersion = modntdll.NewProc("RtlGetVersion") + procRtlInitString = modntdll.NewProc("RtlInitString") + procRtlInitUnicodeString = modntdll.NewProc("RtlInitUnicodeString") + procRtlNtStatusToDosErrorNoTeb = modntdll.NewProc("RtlNtStatusToDosErrorNoTeb") + procCLSIDFromString = modole32.NewProc("CLSIDFromString") + procCoCreateGuid = modole32.NewProc("CoCreateGuid") + procCoGetObject = modole32.NewProc("CoGetObject") + procCoInitializeEx = modole32.NewProc("CoInitializeEx") + procCoTaskMemFree = modole32.NewProc("CoTaskMemFree") + procCoUninitialize = modole32.NewProc("CoUninitialize") + procStringFromGUID2 = modole32.NewProc("StringFromGUID2") + procEnumProcessModules = modpsapi.NewProc("EnumProcessModules") + procEnumProcessModulesEx = modpsapi.NewProc("EnumProcessModulesEx") + procEnumProcesses = modpsapi.NewProc("EnumProcesses") + procGetModuleBaseNameW = modpsapi.NewProc("GetModuleBaseNameW") + procGetModuleFileNameExW = modpsapi.NewProc("GetModuleFileNameExW") + procGetModuleInformation = modpsapi.NewProc("GetModuleInformation") + procQueryWorkingSetEx = modpsapi.NewProc("QueryWorkingSetEx") + procSubscribeServiceChangeNotifications = modsechost.NewProc("SubscribeServiceChangeNotifications") + procUnsubscribeServiceChangeNotifications = modsechost.NewProc("UnsubscribeServiceChangeNotifications") + procGetUserNameExW = modsecur32.NewProc("GetUserNameExW") + procTranslateNameW = modsecur32.NewProc("TranslateNameW") + procSetupDiBuildDriverInfoList = modsetupapi.NewProc("SetupDiBuildDriverInfoList") + procSetupDiCallClassInstaller = modsetupapi.NewProc("SetupDiCallClassInstaller") + procSetupDiCancelDriverInfoSearch = modsetupapi.NewProc("SetupDiCancelDriverInfoSearch") + procSetupDiClassGuidsFromNameExW = modsetupapi.NewProc("SetupDiClassGuidsFromNameExW") + procSetupDiClassNameFromGuidExW = modsetupapi.NewProc("SetupDiClassNameFromGuidExW") + procSetupDiCreateDeviceInfoListExW = modsetupapi.NewProc("SetupDiCreateDeviceInfoListExW") + procSetupDiCreateDeviceInfoW = modsetupapi.NewProc("SetupDiCreateDeviceInfoW") + procSetupDiDestroyDeviceInfoList = modsetupapi.NewProc("SetupDiDestroyDeviceInfoList") + procSetupDiDestroyDriverInfoList = modsetupapi.NewProc("SetupDiDestroyDriverInfoList") + procSetupDiEnumDeviceInfo = modsetupapi.NewProc("SetupDiEnumDeviceInfo") + procSetupDiEnumDriverInfoW = modsetupapi.NewProc("SetupDiEnumDriverInfoW") + procSetupDiGetClassDevsExW = modsetupapi.NewProc("SetupDiGetClassDevsExW") + procSetupDiGetClassInstallParamsW = modsetupapi.NewProc("SetupDiGetClassInstallParamsW") + procSetupDiGetDeviceInfoListDetailW = modsetupapi.NewProc("SetupDiGetDeviceInfoListDetailW") + procSetupDiGetDeviceInstallParamsW = modsetupapi.NewProc("SetupDiGetDeviceInstallParamsW") + procSetupDiGetDeviceInstanceIdW = modsetupapi.NewProc("SetupDiGetDeviceInstanceIdW") + procSetupDiGetDevicePropertyW = modsetupapi.NewProc("SetupDiGetDevicePropertyW") + procSetupDiGetDeviceRegistryPropertyW = modsetupapi.NewProc("SetupDiGetDeviceRegistryPropertyW") + procSetupDiGetDriverInfoDetailW = modsetupapi.NewProc("SetupDiGetDriverInfoDetailW") + procSetupDiGetSelectedDevice = modsetupapi.NewProc("SetupDiGetSelectedDevice") + procSetupDiGetSelectedDriverW = modsetupapi.NewProc("SetupDiGetSelectedDriverW") + procSetupDiOpenDevRegKey = modsetupapi.NewProc("SetupDiOpenDevRegKey") + procSetupDiSetClassInstallParamsW = modsetupapi.NewProc("SetupDiSetClassInstallParamsW") + procSetupDiSetDeviceInstallParamsW = modsetupapi.NewProc("SetupDiSetDeviceInstallParamsW") + procSetupDiSetDeviceRegistryPropertyW = modsetupapi.NewProc("SetupDiSetDeviceRegistryPropertyW") + procSetupDiSetSelectedDevice = modsetupapi.NewProc("SetupDiSetSelectedDevice") + procSetupDiSetSelectedDriverW = modsetupapi.NewProc("SetupDiSetSelectedDriverW") + procSetupUninstallOEMInfW = modsetupapi.NewProc("SetupUninstallOEMInfW") + procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW") + procSHGetKnownFolderPath = modshell32.NewProc("SHGetKnownFolderPath") + procShellExecuteW = modshell32.NewProc("ShellExecuteW") + procEnumChildWindows = moduser32.NewProc("EnumChildWindows") + procEnumWindows = moduser32.NewProc("EnumWindows") + procExitWindowsEx = moduser32.NewProc("ExitWindowsEx") + procGetClassNameW = moduser32.NewProc("GetClassNameW") + procGetDesktopWindow = moduser32.NewProc("GetDesktopWindow") + procGetForegroundWindow = moduser32.NewProc("GetForegroundWindow") + procGetGUIThreadInfo = moduser32.NewProc("GetGUIThreadInfo") + procGetKeyboardLayout = moduser32.NewProc("GetKeyboardLayout") + procGetShellWindow = moduser32.NewProc("GetShellWindow") + procGetWindowThreadProcessId = moduser32.NewProc("GetWindowThreadProcessId") + procIsWindow = moduser32.NewProc("IsWindow") + procIsWindowUnicode = moduser32.NewProc("IsWindowUnicode") + procIsWindowVisible = moduser32.NewProc("IsWindowVisible") + procLoadKeyboardLayoutW = moduser32.NewProc("LoadKeyboardLayoutW") + procMessageBoxW = moduser32.NewProc("MessageBoxW") + procToUnicodeEx = moduser32.NewProc("ToUnicodeEx") + procUnloadKeyboardLayout = moduser32.NewProc("UnloadKeyboardLayout") + procCreateEnvironmentBlock = moduserenv.NewProc("CreateEnvironmentBlock") + procDestroyEnvironmentBlock = moduserenv.NewProc("DestroyEnvironmentBlock") + procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") + procGetFileVersionInfoSizeW = modversion.NewProc("GetFileVersionInfoSizeW") + procGetFileVersionInfoW = modversion.NewProc("GetFileVersionInfoW") + procVerQueryValueW = modversion.NewProc("VerQueryValueW") + proctimeBeginPeriod = modwinmm.NewProc("timeBeginPeriod") + proctimeEndPeriod = modwinmm.NewProc("timeEndPeriod") + procWinVerifyTrustEx = modwintrust.NewProc("WinVerifyTrustEx") + procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") + procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") + procWSACleanup = modws2_32.NewProc("WSACleanup") + procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") + procWSAGetOverlappedResult = modws2_32.NewProc("WSAGetOverlappedResult") + procWSAIoctl = modws2_32.NewProc("WSAIoctl") + procWSALookupServiceBeginW = modws2_32.NewProc("WSALookupServiceBeginW") + procWSALookupServiceEnd = modws2_32.NewProc("WSALookupServiceEnd") + procWSALookupServiceNextW = modws2_32.NewProc("WSALookupServiceNextW") + procWSARecv = modws2_32.NewProc("WSARecv") + procWSARecvFrom = modws2_32.NewProc("WSARecvFrom") + procWSASend = modws2_32.NewProc("WSASend") + procWSASendTo = modws2_32.NewProc("WSASendTo") + procWSASocketW = modws2_32.NewProc("WSASocketW") + procWSAStartup = modws2_32.NewProc("WSAStartup") + procbind = modws2_32.NewProc("bind") + procclosesocket = modws2_32.NewProc("closesocket") + procconnect = modws2_32.NewProc("connect") + procgethostbyname = modws2_32.NewProc("gethostbyname") + procgetpeername = modws2_32.NewProc("getpeername") + procgetprotobyname = modws2_32.NewProc("getprotobyname") + procgetservbyname = modws2_32.NewProc("getservbyname") + procgetsockname = modws2_32.NewProc("getsockname") + procgetsockopt = modws2_32.NewProc("getsockopt") + proclisten = modws2_32.NewProc("listen") + procntohs = modws2_32.NewProc("ntohs") + procrecvfrom = modws2_32.NewProc("recvfrom") + procsendto = modws2_32.NewProc("sendto") + procsetsockopt = modws2_32.NewProc("setsockopt") + procshutdown = modws2_32.NewProc("shutdown") + procsocket = modws2_32.NewProc("socket") + procWTSEnumerateSessionsW = modwtsapi32.NewProc("WTSEnumerateSessionsW") + procWTSFreeMemory = modwtsapi32.NewProc("WTSFreeMemory") + procWTSQueryUserToken = modwtsapi32.NewProc("WTSQueryUserToken") +) + +func cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) { + r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_Status.Addr(), 4, uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags), 0, 0) + ret = CONFIGRET(r0) + return +} + +func cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) { + r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_ListW.Addr(), 5, uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags), 0) + ret = CONFIGRET(r0) + return +} + +func cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) { + r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_List_SizeW.Addr(), 4, uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags), 0, 0) + ret = CONFIGRET(r0) + return +} + +func cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) { + r0, _, _ := syscall.Syscall(procCM_MapCrToWin32Err.Addr(), 2, uintptr(configRet), uintptr(defaultWin32Error), 0) + ret = Errno(r0) + return +} + +func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) { + var _p0 uint32 + if resetToDefault { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procAdjustTokenGroups.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) { + var _p0 uint32 + if disableAllPrivileges { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) { + r1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) { + r0, _, _ := syscall.Syscall9(procBuildSecurityDescriptorW.Addr(), 9, uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor))) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) { + r1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) { + r1, _, e1 := syscall.Syscall12(procChangeServiceConfigW.Addr(), 11, uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) { + r1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CloseServiceHandle(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) { + r1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) { + r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(str) + if err != nil { + return + } + return _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size) +} + +func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { + r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) { + r1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) { + var _p0 uint32 + if inheritHandles { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall12(procCreateProcessAsUserW.Addr(), 11, uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall15(procCreateServiceW.Addr(), 13, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), 0, 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procCreateWellKnownSid.Addr(), 4, uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { + r1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DeleteService(service Handle) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DeregisterEventSource(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) { + r1, _, e1 := syscall.Syscall6(procDuplicateTokenEx.Addr(), 6, uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procEnumDependentServicesW.Addr(), 6, uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) { + r1, _, e1 := syscall.Syscall12(procEnumServicesStatusExW.Addr(), 10, uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) { + r0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0) + isEqual = r0 != 0 + return +} + +func FreeSid(sid *SID) (err error) { + r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + if r1 != 0 { + err = errnoErr(e1) + } + return +} + +func GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) { + r1, _, e1 := syscall.Syscall(procGetAce.Addr(), 3, uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetLengthSid(sid *SID) (len uint32) { + r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + len = uint32(r0) + return +} + +func getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { + var _p0 *uint16 + _p0, ret = syscall.UTF16PtrFromString(objectName) + if ret != nil { + return + } + return _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd) +} + +func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { + r0, _, _ := syscall.Syscall9(procGetNamedSecurityInfoW.Addr(), 8, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) { + var _p0 uint32 + if *daclPresent { + _p0 = 1 + } + var _p1 uint32 + if *daclDefaulted { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) + *daclPresent = _p0 != 0 + *daclDefaulted = _p1 != 0 + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) { + var _p0 uint32 + if *groupDefaulted { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0))) + *groupDefaulted = _p0 != 0 + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) { + r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) + len = uint32(r0) + return +} + +func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) { + var _p0 uint32 + if *ownerDefaulted { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0))) + *ownerDefaulted = _p0 != 0 + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) { + r0, _, _ := syscall.Syscall(procGetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) { + var _p0 uint32 + if *saclPresent { + _p0 = 1 + } + var _p1 uint32 + if *saclDefaulted { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) + *saclPresent = _p0 != 0 + *saclDefaulted = _p1 != 0 + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { + r0, _, _ := syscall.Syscall9(procGetSecurityInfo.Addr(), 8, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) { + r0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0)) + return +} + +func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) { + r0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0) + subAuthority = (*uint32)(unsafe.Pointer(r0)) + return +} + +func getSidSubAuthorityCount(sid *SID) (count *uint8) { + r0, _, _ := syscall.Syscall(procGetSidSubAuthorityCount.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + count = (*uint8)(unsafe.Pointer(r0)) + return +} + +func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ImpersonateSelf(impersonationlevel uint32) (err error) { + r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) { + r1, _, e1 := syscall.Syscall(procInitializeSecurityDescriptor.Addr(), 2, uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) { + var _p0 uint32 + if forceAppsClosed { + _p0 = 1 + } + var _p1 uint32 + if rebootAfterShutdown { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procInitiateSystemShutdownExW.Addr(), 6, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func isTokenRestricted(tokenHandle Token) (ret bool, err error) { + r0, _, e1 := syscall.Syscall(procIsTokenRestricted.Addr(), 1, uintptr(tokenHandle), 0, 0) + ret = r0 != 0 + if !ret { + err = errnoErr(e1) + } + return +} + +func isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) { + r0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) + isValid = r0 != 0 + return +} + +func isValidSid(sid *SID) (isValid bool) { + r0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + isValid = r0 != 0 + return +} + +func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) { + r0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0) + isWellKnown = r0 != 0 + return +} + +func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) { + r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall12(procMakeAbsoluteSD.Addr(), 11, uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procMakeSelfRelativeSD.Addr(), 3, uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) { + r0, _, _ := syscall.Syscall(procNotifyServiceStatusChangeW.Addr(), 3, uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier))) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func OpenProcessToken(process Handle, access uint32, token *Token) (err error) { + r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procOpenSCManagerW.Addr(), 3, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procOpenServiceW.Addr(), 3, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) { + var _p0 uint32 + if openAsSelf { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) { + err = procQueryServiceDynamicInformation.Find() + if err != nil { + return + } + r1, _, e1 := syscall.Syscall(procQueryServiceDynamicInformation.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceLockStatusW.Addr(), 4, uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { + r1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceStatusEx.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func RegCloseKey(key Handle) (regerrno error) { + r0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) { + r0, _, _ := syscall.Syscall9(procRegEnumKeyExW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)), 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) { + var _p0 uint32 + if watchSubtree { + _p0 = 1 + } + var _p1 uint32 + if asynchronous { + _p1 = 1 + } + r0, _, _ := syscall.Syscall6(procRegNotifyChangeKeyValue.Addr(), 5, uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1), 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) { + r0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) { + r0, _, _ := syscall.Syscall12(procRegQueryInfoKeyW.Addr(), 12, uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { + r0, _, _ := syscall.Syscall6(procRegQueryValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procRegisterEventSourceW.Addr(), 2, uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)), 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procRegisterServiceCtrlHandlerExW.Addr(), 3, uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procReportEventW.Addr(), 9, uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func RevertToSelf() (err error) { + r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) { + r0, _, _ := syscall.Syscall6(procSetEntriesInAclW.Addr(), 4, uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) { + r1, _, e1 := syscall.Syscall(procSetKernelObjectSecurity.Addr(), 3, uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { + var _p0 *uint16 + _p0, ret = syscall.UTF16PtrFromString(objectName) + if ret != nil { + return + } + return _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl) +} + +func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { + r0, _, _ := syscall.Syscall9(procSetNamedSecurityInfoW.Addr(), 7, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) { + r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) { + var _p0 uint32 + if daclPresent { + _p0 = 1 + } + var _p1 uint32 + if daclDefaulted { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) { + var _p0 uint32 + if groupDefaulted { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) { + var _p0 uint32 + if ownerDefaulted { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) { + syscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) + return +} + +func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) { + var _p0 uint32 + if saclPresent { + _p0 = 1 + } + var _p1 uint32 + if saclDefaulted { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { + r0, _, _ := syscall.Syscall9(procSetSecurityInfo.Addr(), 7, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) { + r1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetThreadToken(thread *Handle, token Token) (err error) { + r1, _, e1 := syscall.Syscall(procSetThreadToken.Addr(), 2, uintptr(unsafe.Pointer(thread)), uintptr(token), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { + r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) { + r1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) { + r1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CertCloseStore(store Handle, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) { + r0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) + context = (*CertContext)(unsafe.Pointer(r0)) + if context == nil { + err = errnoErr(e1) + } + return +} + +func CertDeleteCertificateFromStore(certContext *CertContext) (err error) { + r1, _, e1 := syscall.Syscall(procCertDeleteCertificateFromStore.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) { + r0, _, _ := syscall.Syscall(procCertDuplicateCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) + dupContext = (*CertContext)(unsafe.Pointer(r0)) + return +} + +func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) { + r0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0) + context = (*CertContext)(unsafe.Pointer(r0)) + if context == nil { + err = errnoErr(e1) + } + return +} + +func CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) { + r0, _, e1 := syscall.Syscall6(procCertFindCertificateInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext))) + cert = (*CertContext)(unsafe.Pointer(r0)) + if cert == nil { + err = errnoErr(e1) + } + return +} + +func CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) { + r0, _, e1 := syscall.Syscall6(procCertFindChainInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext))) + certchain = (*CertChainContext)(unsafe.Pointer(r0)) + if certchain == nil { + err = errnoErr(e1) + } + return +} + +func CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) { + r0, _, _ := syscall.Syscall(procCertFindExtension.Addr(), 3, uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions))) + ret = (*CertExtension)(unsafe.Pointer(r0)) + return +} + +func CertFreeCertificateChain(ctx *CertChainContext) { + syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) + return +} + +func CertFreeCertificateContext(ctx *CertContext) (err error) { + r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) { + r1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) { + r0, _, _ := syscall.Syscall6(procCertGetNameStringW.Addr(), 6, uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size)) + chars = uint32(r0) + return +} + +func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { + r0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0) + store = Handle(r0) + if store == 0 { + err = errnoErr(e1) + } + return +} + +func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) { + r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) { + var _p0 uint32 + if *callerFreeProvOrNCryptKey { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procCryptAcquireCertificatePrivateKey.Addr(), 6, uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0))) + *callerFreeProvOrNCryptKey = _p0 != 0 + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procCryptDecodeObject.Addr(), 7, uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { + r1, _, e1 := syscall.Syscall9(procCryptProtectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) { + r1, _, e1 := syscall.Syscall12(procCryptQueryObject.Addr(), 11, uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { + r1, _, e1 := syscall.Syscall9(procCryptUnprotectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) { + r0, _, e1 := syscall.Syscall(procPFXImportCertStore.Addr(), 3, uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags)) + store = Handle(r0) + if store == 0 { + err = errnoErr(e1) + } + return +} + +func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) { + r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0) + same = r0 != 0 + return +} + +func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { + var _p0 *uint16 + _p0, status = syscall.UTF16PtrFromString(name) + if status != nil { + return + } + return _DnsQuery(_p0, qtype, options, extra, qrs, pr) +} + +func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { + r0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) + if r0 != 0 { + status = syscall.Errno(r0) + } + return +} + +func DnsRecordListFree(rl *DNSRecord, freetype uint32) { + syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) + return +} + +func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { + r0, _, _ := syscall.Syscall6(procDwmGetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { + r0, _, _ := syscall.Syscall6(procDwmSetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { + r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { + r0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) { + r0, _, _ := syscall.Syscall(procGetBestInterfaceEx.Addr(), 2, uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func GetIfEntry(pIfRow *MibIfRow) (errcode error) { + r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func AddDllDirectory(path *uint16) (cookie uintptr, err error) { + r0, _, e1 := syscall.Syscall(procAddDllDirectory.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + cookie = uintptr(r0) + if cookie == 0 { + err = errnoErr(e1) + } + return +} + +func AssignProcessToJobObject(job Handle, process Handle) (err error) { + r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CancelIo(s Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CancelIoEx(s Handle, o *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ClearCommBreak(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procClearCommBreak.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) { + r1, _, e1 := syscall.Syscall(procClearCommError.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CloseHandle(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ClosePseudoConsole(console Handle) { + syscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(console), 0, 0) + return +} + +func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { + r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) + } + return +} + +func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) + } + return +} + +func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) + } + return +} + +func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) + if r1&0xff == 0 { + err = errnoErr(e1) + } + return +} + +func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procCreateJobObjectW.Addr(), 2, uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)), 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateMutexExW.Addr(), 4, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) + } + return +} + +func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) { + var _p0 uint32 + if initialOwner { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) + } + return +} + +func CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) { + var _p0 uint32 + if inheritHandles { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) { + r0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole)), 0) + if r0 != 0 { + hr = syscall.Errno(r0) + } + return +} + +func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) + if r1&0xff == 0 { + err = errnoErr(e1) + } + return +} + +func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DeleteFile(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) { + syscall.Syscall(procDeleteProcThreadAttributeList.Addr(), 1, uintptr(unsafe.Pointer(attrlist)), 0, 0) + return +} + +func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DisconnectNamedPipe(pipe Handle) (err error) { + r1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(pipe), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) { + var _p0 uint32 + if bInheritHandle { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func EscapeCommFunction(handle Handle, dwFunc uint32) (err error) { + r1, _, e1 := syscall.Syscall(procEscapeCommFunction.Addr(), 2, uintptr(handle), uintptr(dwFunc), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ExitProcess(exitcode uint32) { + syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) + return +} + +func ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func FindClose(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FindCloseChangeNotification(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindCloseChangeNotification.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(path) + if err != nil { + return + } + return _FindFirstChangeNotification(_p0, watchSubtree, notifyFilter) +} + +func _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) { + var _p1 uint32 + if watchSubtree { + _p1 = 1 + } + r0, _, e1 := syscall.Syscall(procFindFirstChangeNotificationW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func FindNextChangeNotification(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextChangeNotification.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func findNextFile1(handle Handle, data *win32finddata1) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindResourceW.Addr(), 3, uintptr(module), uintptr(name), uintptr(resType)) + resInfo = Handle(r0) + if resInfo == 0 { + err = errnoErr(e1) + } + return +} + +func FindVolumeClose(findVolume Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FlushFileBuffers(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FlushViewOfFile(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) { + var _p0 *uint16 + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func FreeEnvironmentStrings(envs *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FreeLibrary(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetACP() (acp uint32) { + r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) + acp = uint32(r0) + return +} + +func GetActiveProcessorCount(groupNumber uint16) (ret uint32) { + r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) + ret = uint32(r0) + return +} + +func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetCommModemStatus.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetCommState(handle Handle, lpDCB *DCB) (err error) { + r1, _, e1 := syscall.Syscall(procGetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { + r1, _, e1 := syscall.Syscall(procGetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetCommandLine() (cmd *uint16) { + r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) + cmd = (*uint16)(unsafe.Pointer(r0)) + return +} + +func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetComputerName(buf *uint16, n *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetConsoleCP() (cp uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetConsoleCP.Addr(), 0, 0, 0, 0) + cp = uint32(r0) + if cp == 0 { + err = errnoErr(e1) + } + return +} + +func GetConsoleMode(console Handle, mode *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetConsoleOutputCP() (cp uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetConsoleOutputCP.Addr(), 0, 0, 0, 0) + cp = uint32(r0) + if cp == 0 { + err = errnoErr(e1) + } + return +} + +func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) { + r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetCurrentProcessId() (pid uint32) { + r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) + pid = uint32(r0) + return +} + +func GetCurrentThreadId() (id uint32) { + r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) + id = uint32(r0) + return +} + +func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) { + r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetDriveType(rootPathName *uint16) (driveType uint32) { + r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0) + driveType = uint32(r0) + return +} + +func GetEnvironmentStrings() (envs *uint16, err error) { + r0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0) + envs = (*uint16)(unsafe.Pointer(r0)) + if envs == nil { + err = errnoErr(e1) + } + return +} + +func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { + r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetFileAttributes(name *uint16) (attrs uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + attrs = uint32(r0) + if attrs == INVALID_FILE_ATTRIBUTES { + err = errnoErr(e1) + } + return +} + +func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) { + r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { + r1, _, e1 := syscall.Syscall6(procGetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetFileType(filehandle Handle) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall6(procGetFinalPathNameByHandleW.Addr(), 4, uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetLargePageMinimum() (size uintptr) { + r0, _, _ := syscall.Syscall(procGetLargePageMinimum.Addr(), 0, 0, 0, 0) + size = uintptr(r0) + return +} + +func GetLastError() (lasterr error) { + r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) + if r0 != 0 { + lasterr = syscall.Errno(r0) + } + return +} + +func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetLogicalDrives() (drivesBitMask uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0) + drivesBitMask = uint32(r0) + if drivesBitMask == 0 { + err = errnoErr(e1) + } + return +} + +func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetMaximumProcessorCount(groupNumber uint16) (ret uint32) { + r0, _, _ := syscall.Syscall(procGetMaximumProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) + ret = uint32(r0) + return +} + +func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) { + r1, _, e1 := syscall.Syscall(procGetModuleHandleExW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetNamedPipeInfo.Addr(), 5, uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) { + var _p0 uint32 + if wait { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetPriorityClass(process Handle) (ret uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetPriorityClass.Addr(), 1, uintptr(process), 0, 0) + ret = uint32(r0) + if ret == 0 { + err = errnoErr(e1) + } + return +} + +func GetProcAddress(module Handle, procname string) (proc uintptr, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(procname) + if err != nil { + return + } + return _GetProcAddress(module, _p0) +} + +func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { + r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0) + proc = uintptr(r0) + if proc == 0 { + err = errnoErr(e1) + } + return +} + +func GetProcessId(process Handle) (id uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0) + id = uint32(r0) + if id == 0 { + err = errnoErr(e1) + } + return +} + +func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetProcessPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetProcessShutdownParameters.Addr(), 2, uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { + r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) { + syscall.Syscall6(procGetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)), 0, 0) + return +} + +func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func getStartupInfo(startupInfo *StartupInfo) { + syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) + return +} + +func GetStdHandle(stdhandle uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + len = uint32(r0) + if len == 0 { + err = errnoErr(e1) + } + return +} + +func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetSystemPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetSystemTimeAsFileTime(time *Filetime) { + syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) + return +} + +func GetSystemTimePreciseAsFileTime(time *Filetime) { + syscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) + return +} + +func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetSystemWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + len = uint32(r0) + if len == 0 { + err = errnoErr(e1) + } + return +} + +func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetThreadPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getTickCount64() (ms uint64) { + r0, _, _ := syscall.Syscall(procGetTickCount64.Addr(), 0, 0, 0, 0) + ms = uint64(r0) + return +} + +func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0) + rc = uint32(r0) + if rc == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetUserPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetVersion() (ver uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0) + ver = uint32(r0) + if ver == 0 { + err = errnoErr(e1) + } + return +} + +func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetVolumeInformationByHandleW.Addr(), 8, uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + len = uint32(r0) + if len == 0 { + err = errnoErr(e1) + } + return +} + +func initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procInitializeProcThreadAttributeList.Addr(), 4, uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func IsWow64Process(handle Handle, isWow64 *bool) (err error) { + var _p0 uint32 + if *isWow64 { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(&_p0)), 0) + *isWow64 = _p0 != 0 + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) { + err = procIsWow64Process2.Find() + if err != nil { + return + } + r1, _, e1 := syscall.Syscall(procIsWow64Process2.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(libname) + if err != nil { + return + } + return _LoadLibraryEx(_p0, zero, flags) +} + +func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadLibraryExW.Addr(), 3, uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func LoadLibrary(libname string) (handle Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(libname) + if err != nil { + return + } + return _LoadLibrary(_p0) +} + +func _LoadLibrary(libname *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func LoadResource(module Handle, resInfo Handle) (resData Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + resData = Handle(r0) + if resData == 0 { + err = errnoErr(e1) + } + return +} + +func LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) { + r0, _, e1 := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(flags), uintptr(length), 0) + ptr = uintptr(r0) + if ptr == 0 { + err = errnoErr(e1) + } + return +} + +func LocalFree(hmem Handle) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0) + handle = Handle(r0) + if handle != 0 { + err = errnoErr(e1) + } + return +} + +func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func LockResource(resData Handle) (addr uintptr, err error) { + r0, _, e1 := syscall.Syscall(procLockResource.Addr(), 1, uintptr(resData), 0, 0) + addr = uintptr(r0) + if addr == 0 { + err = errnoErr(e1) + } + return +} + +func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) { + r0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0) + addr = uintptr(r0) + if addr == 0 { + err = errnoErr(e1) + } + return +} + +func Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procModule32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procModule32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func MoveFile(from *uint16, to *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) { + r0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) + nwrite = int32(r0) + if nwrite == 0 { + err = errnoErr(e1) + } + return +} + +func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenMutexW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procProcessIdToSessionId.Addr(), 2, uintptr(pid), uintptr(unsafe.Pointer(sessionid)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func PulseEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func PurgeComm(handle Handle, dwFlags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procPurgeComm.Addr(), 2, uintptr(handle), uintptr(dwFlags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryFullProcessImageNameW.Addr(), 4, uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) { + r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { + var _p0 uint32 + if watchSubTree { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procReadProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ReleaseMutex(mutex Handle) (err error) { + r1, _, e1 := syscall.Syscall(procReleaseMutex.Addr(), 1, uintptr(mutex), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func RemoveDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func RemoveDllDirectory(cookie uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procRemoveDllDirectory.Addr(), 1, uintptr(cookie), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ResetEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func resizePseudoConsole(pconsole Handle, size uint32) (hr error) { + r0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(pconsole), uintptr(size), 0) + if r0 != 0 { + hr = syscall.Errno(r0) + } + return +} + +func ResumeThread(thread Handle) (ret uint32, err error) { + r0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0) + ret = uint32(r0) + if ret == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func SetCommBreak(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetCommBreak.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetCommMask(handle Handle, dwEvtMask uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetCommMask.Addr(), 2, uintptr(handle), uintptr(dwEvtMask), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetCommState(handle Handle, lpDCB *DCB) (err error) { + r1, _, e1 := syscall.Syscall(procSetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { + r1, _, e1 := syscall.Syscall(procSetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetConsoleCP(cp uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleCP.Addr(), 1, uintptr(cp), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setConsoleCursorPosition(console Handle, position uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleCursorPosition.Addr(), 2, uintptr(console), uintptr(position), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetConsoleMode(console Handle, mode uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetConsoleOutputCP(cp uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleOutputCP.Addr(), 1, uintptr(cp), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetCurrentDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetDefaultDllDirectories(directoryFlags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetDefaultDllDirectories.Addr(), 1, uintptr(directoryFlags), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetDllDirectory(path string) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(path) + if err != nil { + return + } + return _SetDllDirectory(_p0) +} + +func _SetDllDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetDllDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetEndOfFile(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetErrorMode(mode uint32) (ret uint32) { + r0, _, _ := syscall.Syscall(procSetErrorMode.Addr(), 1, uintptr(mode), 0, 0) + ret = uint32(r0) + return +} + +func SetEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetFileAttributes(name *uint16, attrs uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetFileInformationByHandle.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { + r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0) + newlowoffset = uint32(r0) + if newlowoffset == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { + r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetFileValidData(handle Handle, validDataLength int64) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) { + r0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0) + ret = int(r0) + if ret == 0 { + err = errnoErr(e1) + } + return +} + +func SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetNamedPipeHandleState.Addr(), 4, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetPriorityClass(process Handle, priorityClass uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetPriorityClass.Addr(), 2, uintptr(process), uintptr(priorityClass), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetProcessPriorityBoost(process Handle, disable bool) (err error) { + var _p0 uint32 + if disable { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procSetProcessPriorityBoost.Addr(), 2, uintptr(process), uintptr(_p0), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetProcessShutdownParameters(level uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetProcessShutdownParameters.Addr(), 2, uintptr(level), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetStdHandle(stdhandle uint32, handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetupComm.Addr(), 3, uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SizeofResource(module Handle, resInfo Handle) (size uint32, err error) { + r0, _, e1 := syscall.Syscall(procSizeofResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + size = uint32(r0) + if size == 0 { + err = errnoErr(e1) + } + return +} + +func SleepEx(milliseconds uint32, alertable bool) (ret uint32) { + var _p0 uint32 + if alertable { + _p0 = 1 + } + r0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(milliseconds), uintptr(_p0), 0) + ret = uint32(r0) + return +} + +func TerminateJobObject(job Handle, exitCode uint32) (err error) { + r1, _, e1 := syscall.Syscall(procTerminateJobObject.Addr(), 2, uintptr(job), uintptr(exitCode), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func TerminateProcess(handle Handle, exitcode uint32) (err error) { + r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func UnmapViewOfFile(addr uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) { + r1, _, e1 := syscall.Syscall9(procUpdateProcThreadAttribute.Addr(), 7, uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) { + r0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0) + value = uintptr(r0) + if value == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualLock(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procVirtualProtectEx.Addr(), 5, uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualQuery.Addr(), 3, uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procVirtualQueryEx.Addr(), 4, uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualUnlock(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func WTSGetActiveConsoleSessionId() (sessionID uint32) { + r0, _, _ := syscall.Syscall(procWTSGetActiveConsoleSessionId.Addr(), 0, 0, 0, 0) + sessionID = uint32(r0) + return +} + +func WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procWaitCommEvent.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { + var _p0 uint32 + if waitAll { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0) + event = uint32(r0) + if event == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) { + r0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0) + event = uint32(r0) + if event == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) { + r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procWriteProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) { + syscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)), 0) + return +} + +func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func NetApiBufferFree(buf *byte) (neterr error) { + r0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0) + if r0 != 0 { + neterr = syscall.Errno(r0) + } + return +} + +func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) { + r0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) + if r0 != 0 { + neterr = syscall.Errno(r0) + } + return +} + +func NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) { + r0, _, _ := syscall.Syscall9(procNetUserEnum.Addr(), 8, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle)), 0) + if r0 != 0 { + neterr = syscall.Errno(r0) + } + return +} + +func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { + r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) + if r0 != 0 { + neterr = syscall.Errno(r0) + } + return +} + +func NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall12(procNtCreateFile.Addr(), 11, uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength), 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) { + r0, _, _ := syscall.Syscall15(procNtCreateNamedPipeFile.Addr(), 14, uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)), 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)), 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class), 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procNtSetInformationProcess.Addr(), 4, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall(procNtSetSystemInformation.Addr(), 3, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen)) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) { + r0, _, _ := syscall.Syscall(procRtlAddFunctionTable.Addr(), 3, uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress)) + ret = r0 != 0 + return +} + +func RtlDefaultNpAcl(acl **ACL) (ntstatus error) { + r0, _, _ := syscall.Syscall(procRtlDefaultNpAcl.Addr(), 1, uintptr(unsafe.Pointer(acl)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) { + r0, _, _ := syscall.Syscall(procRtlDeleteFunctionTable.Addr(), 1, uintptr(unsafe.Pointer(functionTable)), 0, 0) + ret = r0 != 0 + return +} + +func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlGetCurrentPeb() (peb *PEB) { + r0, _, _ := syscall.Syscall(procRtlGetCurrentPeb.Addr(), 0, 0, 0, 0) + peb = (*PEB)(unsafe.Pointer(r0)) + return +} + +func rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) { + syscall.Syscall(procRtlGetNtVersionNumbers.Addr(), 3, uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber))) + return +} + +func rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) { + r0, _, _ := syscall.Syscall(procRtlGetVersion.Addr(), 1, uintptr(unsafe.Pointer(info)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlInitString(destinationString *NTString, sourceString *byte) { + syscall.Syscall(procRtlInitString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) + return +} + +func RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) { + syscall.Syscall(procRtlInitUnicodeString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) + return +} + +func rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) { + r0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(ntstatus), 0, 0) + ret = syscall.Errno(r0) + return +} + +func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { + r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func coCreateGuid(pguid *GUID) (ret error) { + r0, _, _ := syscall.Syscall(procCoCreateGuid.Addr(), 1, uintptr(unsafe.Pointer(pguid)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) { + r0, _, _ := syscall.Syscall6(procCoGetObject.Addr(), 4, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func CoInitializeEx(reserved uintptr, coInit uint32) (ret error) { + r0, _, _ := syscall.Syscall(procCoInitializeEx.Addr(), 2, uintptr(reserved), uintptr(coInit), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func CoTaskMemFree(address unsafe.Pointer) { + syscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0) + return +} + +func CoUninitialize() { + syscall.Syscall(procCoUninitialize.Addr(), 0, 0, 0, 0) + return +} + +func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) { + r0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) + chars = int32(r0) + return +} + +func EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procEnumProcessModules.Addr(), 4, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procEnumProcessModulesEx.Addr(), 5, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetModuleBaseNameW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetModuleFileNameExW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetModuleInformation.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) { + r1, _, e1 := syscall.Syscall(procQueryWorkingSetEx.Addr(), 3, uintptr(process), uintptr(pv), uintptr(cb)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) { + ret = procSubscribeServiceChangeNotifications.Find() + if ret != nil { + return + } + r0, _, _ := syscall.Syscall6(procSubscribeServiceChangeNotifications.Addr(), 5, uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func UnsubscribeServiceChangeNotifications(subscription uintptr) (err error) { + err = procUnsubscribeServiceChangeNotifications.Find() + if err != nil { + return + } + syscall.Syscall(procUnsubscribeServiceChangeNotifications.Addr(), 1, uintptr(subscription), 0, 0) + return +} + +func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) + if r1&0xff == 0 { + err = errnoErr(e1) + } + return +} + +func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0) + if r1&0xff == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiBuildDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiCallClassInstaller.Addr(), 3, uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiCancelDriverInfoSearch.Addr(), 1, uintptr(deviceInfoSet), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiClassGuidsFromNameExW.Addr(), 6, uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiClassNameFromGuidExW.Addr(), 6, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { + r0, _, e1 := syscall.Syscall6(procSetupDiCreateDeviceInfoListExW.Addr(), 4, uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) + handle = DevInfo(r0) + if handle == DevInfo(InvalidHandle) { + err = errnoErr(e1) + } + return +} + +func setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall9(procSetupDiCreateDeviceInfoW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiDestroyDeviceInfoList.Addr(), 1, uintptr(deviceInfoSet), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiDestroyDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiEnumDeviceInfo.Addr(), 3, uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiEnumDriverInfoW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { + r0, _, e1 := syscall.Syscall9(procSetupDiGetClassDevsExW.Addr(), 7, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) + handle = DevInfo(r0) + if handle == DevInfo(InvalidHandle) { + err = errnoErr(e1) + } + return +} + +func SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiGetClassInstallParamsW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInfoListDetailW.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiGetDeviceInstanceIdW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procSetupDiGetDevicePropertyW.Addr(), 8, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procSetupDiGetDeviceRegistryPropertyW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiGetDriverInfoDetailW.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) { + r0, _, e1 := syscall.Syscall6(procSetupDiOpenDevRegKey.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired)) + key = Handle(r0) + if key == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiSetClassInstallParamsW.Addr(), 4, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiSetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiSetDeviceRegistryPropertyW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procSetupUninstallOEMInfW.Addr(), 3, uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) { + r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) + argv = (**uint16)(unsafe.Pointer(r0)) + if argv == nil { + err = errnoErr(e1) + } + return +} + +func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) { + r0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) { + r1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) + if r1 <= 32 { + err = errnoErr(e1) + } + return +} + +func EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) { + syscall.Syscall(procEnumChildWindows.Addr(), 3, uintptr(hwnd), uintptr(enumFunc), uintptr(param)) + return +} + +func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) { + r1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, uintptr(enumFunc), uintptr(param), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ExitWindowsEx(flags uint32, reason uint32) (err error) { + r1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) { + r0, _, e1 := syscall.Syscall(procGetClassNameW.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount)) + copied = int32(r0) + if copied == 0 { + err = errnoErr(e1) + } + return +} + +func GetDesktopWindow() (hwnd HWND) { + r0, _, _ := syscall.Syscall(procGetDesktopWindow.Addr(), 0, 0, 0, 0) + hwnd = HWND(r0) + return +} + +func GetForegroundWindow() (hwnd HWND) { + r0, _, _ := syscall.Syscall(procGetForegroundWindow.Addr(), 0, 0, 0, 0) + hwnd = HWND(r0) + return +} + +func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { + r1, _, e1 := syscall.Syscall(procGetGUIThreadInfo.Addr(), 2, uintptr(thread), uintptr(unsafe.Pointer(info)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetKeyboardLayout(tid uint32) (hkl Handle) { + r0, _, _ := syscall.Syscall(procGetKeyboardLayout.Addr(), 1, uintptr(tid), 0, 0) + hkl = Handle(r0) + return +} + +func GetShellWindow() (shellWindow HWND) { + r0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0) + shellWindow = HWND(r0) + return +} + +func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetWindowThreadProcessId.Addr(), 2, uintptr(hwnd), uintptr(unsafe.Pointer(pid)), 0) + tid = uint32(r0) + if tid == 0 { + err = errnoErr(e1) + } + return +} + +func IsWindow(hwnd HWND) (isWindow bool) { + r0, _, _ := syscall.Syscall(procIsWindow.Addr(), 1, uintptr(hwnd), 0, 0) + isWindow = r0 != 0 + return +} + +func IsWindowUnicode(hwnd HWND) (isUnicode bool) { + r0, _, _ := syscall.Syscall(procIsWindowUnicode.Addr(), 1, uintptr(hwnd), 0, 0) + isUnicode = r0 != 0 + return +} + +func IsWindowVisible(hwnd HWND) (isVisible bool) { + r0, _, _ := syscall.Syscall(procIsWindowVisible.Addr(), 1, uintptr(hwnd), 0, 0) + isVisible = r0 != 0 + return +} + +func LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadKeyboardLayoutW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(flags), 0) + hkl = Handle(r0) + if hkl == 0 { + err = errnoErr(e1) + } + return +} + +func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) { + r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0) + ret = int32(r0) + if ret == 0 { + err = errnoErr(e1) + } + return +} + +func ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) { + r0, _, _ := syscall.Syscall9(procToUnicodeEx.Addr(), 7, uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl), 0, 0) + ret = int32(r0) + return +} + +func UnloadKeyboardLayout(hkl Handle) (err error) { + r1, _, e1 := syscall.Syscall(procUnloadKeyboardLayout.Addr(), 1, uintptr(hkl), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) { + var _p0 uint32 + if inheritExisting { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procCreateEnvironmentBlock.Addr(), 3, uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DestroyEnvironmentBlock(block *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDestroyEnvironmentBlock.Addr(), 1, uintptr(unsafe.Pointer(block)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(filename) + if err != nil { + return + } + return _GetFileVersionInfoSize(_p0, zeroHandle) +} + +func _GetFileVersionInfoSize(filename *uint16, zeroHandle *Handle) (bufSize uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetFileVersionInfoSizeW.Addr(), 2, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle)), 0) + bufSize = uint32(r0) + if bufSize == 0 { + err = errnoErr(e1) + } + return +} + +func GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(filename) + if err != nil { + return + } + return _GetFileVersionInfo(_p0, handle, bufSize, buffer) +} + +func _GetFileVersionInfo(filename *uint16, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { + r1, _, e1 := syscall.Syscall6(procGetFileVersionInfoW.Addr(), 4, uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(subBlock) + if err != nil { + return + } + return _VerQueryValue(block, _p0, pointerToBufferPointer, bufSize) +} + +func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procVerQueryValueW.Addr(), 4, uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func TimeBeginPeriod(period uint32) (err error) { + r1, _, e1 := syscall.Syscall(proctimeBeginPeriod.Addr(), 1, uintptr(period), 0, 0) + if r1 != 0 { + err = errnoErr(e1) + } + return +} + +func TimeEndPeriod(period uint32) (err error) { + r1, _, e1 := syscall.Syscall(proctimeEndPeriod.Addr(), 1, uintptr(period), 0, 0) + if r1 != 0 { + err = errnoErr(e1) + } + return +} + +func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) { + r0, _, _ := syscall.Syscall(procWinVerifyTrustEx.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data))) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func FreeAddrInfoW(addrinfo *AddrinfoW) { + syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0) + return +} + +func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) { + r0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0) + if r0 != 0 { + sockerr = syscall.Errno(r0) + } + return +} + +func WSACleanup() (err error) { + r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { + r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) + n = int32(r0) + if n == -1 { + err = errnoErr(e1) + } + return +} + +func WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) { + var _p0 uint32 + if wait { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procWSAGetOverlappedResult.Addr(), 5, uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { + r1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) { + r1, _, e1 := syscall.Syscall(procWSALookupServiceBeginW.Addr(), 3, uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSALookupServiceEnd(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procWSALookupServiceEnd.Addr(), 1, uintptr(handle), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) { + r1, _, e1 := syscall.Syscall6(procWSALookupServiceNextW.Addr(), 4, uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet)), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procWSASocketW.Addr(), 6, uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { + r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) + if r0 != 0 { + sockerr = syscall.Errno(r0) + } + return +} + +func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { + r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func Closesocket(s Handle) (err error) { + r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { + r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func GetHostByName(name string) (h *Hostent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return + } + return _GetHostByName(_p0) +} + +func _GetHostByName(name *byte) (h *Hostent, err error) { + r0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + h = (*Hostent)(unsafe.Pointer(r0)) + if h == nil { + err = errnoErr(e1) + } + return +} + +func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { + r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func GetProtoByName(name string) (p *Protoent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return + } + return _GetProtoByName(_p0) +} + +func _GetProtoByName(name *byte) (p *Protoent, err error) { + r0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + p = (*Protoent)(unsafe.Pointer(r0)) + if p == nil { + err = errnoErr(e1) + } + return +} + +func GetServByName(name string, proto string) (s *Servent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return + } + var _p1 *byte + _p1, err = syscall.BytePtrFromString(proto) + if err != nil { + return + } + return _GetServByName(_p0, _p1) +} + +func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { + r0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0) + s = (*Servent)(unsafe.Pointer(r0)) + if s == nil { + err = errnoErr(e1) + } + return +} + +func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { + r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) { + r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func listen(s Handle, backlog int32) (err error) { + r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func Ntohs(netshort uint16) (u uint16) { + r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0) + u = uint16(r0) + return +} + +func recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := syscall.Syscall6(procrecvfrom.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int32(r0) + if n == -1 { + err = errnoErr(e1) + } + return +} + +func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r1, _, e1 := syscall.Syscall6(procsendto.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen)) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { + r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func shutdown(s Handle, how int32) (err error) { + r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procWTSEnumerateSessionsW.Addr(), 5, uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func WTSFreeMemory(ptr uintptr) { + syscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0) + return +} + +func WTSQueryUserToken(session uint32, token *Token) (err error) { + r1, _, e1 := syscall.Syscall(procWTSQueryUserToken.Addr(), 2, uintptr(session), uintptr(unsafe.Pointer(token)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/gopkg.in/yaml.v2/.travis.yml b/vendor/gopkg.in/yaml.v2/.travis.yml deleted file mode 100644 index 9f556934d..000000000 --- a/vendor/gopkg.in/yaml.v2/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: go - -go: - - 1.4 - - 1.5 - - 1.6 - - 1.7 - - 1.8 - - 1.9 - - tip - -go_import_path: gopkg.in/yaml.v2 diff --git a/vendor/gopkg.in/yaml.v2/LICENSE b/vendor/gopkg.in/yaml.v2/LICENSE deleted file mode 100644 index 8dada3eda..000000000 --- a/vendor/gopkg.in/yaml.v2/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/vendor/gopkg.in/yaml.v2/decode.go b/vendor/gopkg.in/yaml.v2/decode.go deleted file mode 100644 index e4e56e28e..000000000 --- a/vendor/gopkg.in/yaml.v2/decode.go +++ /dev/null @@ -1,775 +0,0 @@ -package yaml - -import ( - "encoding" - "encoding/base64" - "fmt" - "io" - "math" - "reflect" - "strconv" - "time" -) - -const ( - documentNode = 1 << iota - mappingNode - sequenceNode - scalarNode - aliasNode -) - -type node struct { - kind int - line, column int - tag string - // For an alias node, alias holds the resolved alias. - alias *node - value string - implicit bool - children []*node - anchors map[string]*node -} - -// ---------------------------------------------------------------------------- -// Parser, produces a node tree out of a libyaml event stream. - -type parser struct { - parser yaml_parser_t - event yaml_event_t - doc *node - doneInit bool -} - -func newParser(b []byte) *parser { - p := parser{} - if !yaml_parser_initialize(&p.parser) { - panic("failed to initialize YAML emitter") - } - if len(b) == 0 { - b = []byte{'\n'} - } - yaml_parser_set_input_string(&p.parser, b) - return &p -} - -func newParserFromReader(r io.Reader) *parser { - p := parser{} - if !yaml_parser_initialize(&p.parser) { - panic("failed to initialize YAML emitter") - } - yaml_parser_set_input_reader(&p.parser, r) - return &p -} - -func (p *parser) init() { - if p.doneInit { - return - } - p.expect(yaml_STREAM_START_EVENT) - p.doneInit = true -} - -func (p *parser) destroy() { - if p.event.typ != yaml_NO_EVENT { - yaml_event_delete(&p.event) - } - yaml_parser_delete(&p.parser) -} - -// expect consumes an event from the event stream and -// checks that it's of the expected type. -func (p *parser) expect(e yaml_event_type_t) { - if p.event.typ == yaml_NO_EVENT { - if !yaml_parser_parse(&p.parser, &p.event) { - p.fail() - } - } - if p.event.typ == yaml_STREAM_END_EVENT { - failf("attempted to go past the end of stream; corrupted value?") - } - if p.event.typ != e { - p.parser.problem = fmt.Sprintf("expected %s event but got %s", e, p.event.typ) - p.fail() - } - yaml_event_delete(&p.event) - p.event.typ = yaml_NO_EVENT -} - -// peek peeks at the next event in the event stream, -// puts the results into p.event and returns the event type. -func (p *parser) peek() yaml_event_type_t { - if p.event.typ != yaml_NO_EVENT { - return p.event.typ - } - if !yaml_parser_parse(&p.parser, &p.event) { - p.fail() - } - return p.event.typ -} - -func (p *parser) fail() { - var where string - var line int - if p.parser.problem_mark.line != 0 { - line = p.parser.problem_mark.line - // Scanner errors don't iterate line before returning error - if p.parser.error == yaml_SCANNER_ERROR { - line++ - } - } else if p.parser.context_mark.line != 0 { - line = p.parser.context_mark.line - } - if line != 0 { - where = "line " + strconv.Itoa(line) + ": " - } - var msg string - if len(p.parser.problem) > 0 { - msg = p.parser.problem - } else { - msg = "unknown problem parsing YAML content" - } - failf("%s%s", where, msg) -} - -func (p *parser) anchor(n *node, anchor []byte) { - if anchor != nil { - p.doc.anchors[string(anchor)] = n - } -} - -func (p *parser) parse() *node { - p.init() - switch p.peek() { - case yaml_SCALAR_EVENT: - return p.scalar() - case yaml_ALIAS_EVENT: - return p.alias() - case yaml_MAPPING_START_EVENT: - return p.mapping() - case yaml_SEQUENCE_START_EVENT: - return p.sequence() - case yaml_DOCUMENT_START_EVENT: - return p.document() - case yaml_STREAM_END_EVENT: - // Happens when attempting to decode an empty buffer. - return nil - default: - panic("attempted to parse unknown event: " + p.event.typ.String()) - } -} - -func (p *parser) node(kind int) *node { - return &node{ - kind: kind, - line: p.event.start_mark.line, - column: p.event.start_mark.column, - } -} - -func (p *parser) document() *node { - n := p.node(documentNode) - n.anchors = make(map[string]*node) - p.doc = n - p.expect(yaml_DOCUMENT_START_EVENT) - n.children = append(n.children, p.parse()) - p.expect(yaml_DOCUMENT_END_EVENT) - return n -} - -func (p *parser) alias() *node { - n := p.node(aliasNode) - n.value = string(p.event.anchor) - n.alias = p.doc.anchors[n.value] - if n.alias == nil { - failf("unknown anchor '%s' referenced", n.value) - } - p.expect(yaml_ALIAS_EVENT) - return n -} - -func (p *parser) scalar() *node { - n := p.node(scalarNode) - n.value = string(p.event.value) - n.tag = string(p.event.tag) - n.implicit = p.event.implicit - p.anchor(n, p.event.anchor) - p.expect(yaml_SCALAR_EVENT) - return n -} - -func (p *parser) sequence() *node { - n := p.node(sequenceNode) - p.anchor(n, p.event.anchor) - p.expect(yaml_SEQUENCE_START_EVENT) - for p.peek() != yaml_SEQUENCE_END_EVENT { - n.children = append(n.children, p.parse()) - } - p.expect(yaml_SEQUENCE_END_EVENT) - return n -} - -func (p *parser) mapping() *node { - n := p.node(mappingNode) - p.anchor(n, p.event.anchor) - p.expect(yaml_MAPPING_START_EVENT) - for p.peek() != yaml_MAPPING_END_EVENT { - n.children = append(n.children, p.parse(), p.parse()) - } - p.expect(yaml_MAPPING_END_EVENT) - return n -} - -// ---------------------------------------------------------------------------- -// Decoder, unmarshals a node into a provided value. - -type decoder struct { - doc *node - aliases map[*node]bool - mapType reflect.Type - terrors []string - strict bool -} - -var ( - mapItemType = reflect.TypeOf(MapItem{}) - durationType = reflect.TypeOf(time.Duration(0)) - defaultMapType = reflect.TypeOf(map[interface{}]interface{}{}) - ifaceType = defaultMapType.Elem() - timeType = reflect.TypeOf(time.Time{}) - ptrTimeType = reflect.TypeOf(&time.Time{}) -) - -func newDecoder(strict bool) *decoder { - d := &decoder{mapType: defaultMapType, strict: strict} - d.aliases = make(map[*node]bool) - return d -} - -func (d *decoder) terror(n *node, tag string, out reflect.Value) { - if n.tag != "" { - tag = n.tag - } - value := n.value - if tag != yaml_SEQ_TAG && tag != yaml_MAP_TAG { - if len(value) > 10 { - value = " `" + value[:7] + "...`" - } else { - value = " `" + value + "`" - } - } - d.terrors = append(d.terrors, fmt.Sprintf("line %d: cannot unmarshal %s%s into %s", n.line+1, shortTag(tag), value, out.Type())) -} - -func (d *decoder) callUnmarshaler(n *node, u Unmarshaler) (good bool) { - terrlen := len(d.terrors) - err := u.UnmarshalYAML(func(v interface{}) (err error) { - defer handleErr(&err) - d.unmarshal(n, reflect.ValueOf(v)) - if len(d.terrors) > terrlen { - issues := d.terrors[terrlen:] - d.terrors = d.terrors[:terrlen] - return &TypeError{issues} - } - return nil - }) - if e, ok := err.(*TypeError); ok { - d.terrors = append(d.terrors, e.Errors...) - return false - } - if err != nil { - fail(err) - } - return true -} - -// d.prepare initializes and dereferences pointers and calls UnmarshalYAML -// if a value is found to implement it. -// It returns the initialized and dereferenced out value, whether -// unmarshalling was already done by UnmarshalYAML, and if so whether -// its types unmarshalled appropriately. -// -// If n holds a null value, prepare returns before doing anything. -func (d *decoder) prepare(n *node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) { - if n.tag == yaml_NULL_TAG || n.kind == scalarNode && n.tag == "" && (n.value == "null" || n.value == "~" || n.value == "" && n.implicit) { - return out, false, false - } - again := true - for again { - again = false - if out.Kind() == reflect.Ptr { - if out.IsNil() { - out.Set(reflect.New(out.Type().Elem())) - } - out = out.Elem() - again = true - } - if out.CanAddr() { - if u, ok := out.Addr().Interface().(Unmarshaler); ok { - good = d.callUnmarshaler(n, u) - return out, true, good - } - } - } - return out, false, false -} - -func (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) { - switch n.kind { - case documentNode: - return d.document(n, out) - case aliasNode: - return d.alias(n, out) - } - out, unmarshaled, good := d.prepare(n, out) - if unmarshaled { - return good - } - switch n.kind { - case scalarNode: - good = d.scalar(n, out) - case mappingNode: - good = d.mapping(n, out) - case sequenceNode: - good = d.sequence(n, out) - default: - panic("internal error: unknown node kind: " + strconv.Itoa(n.kind)) - } - return good -} - -func (d *decoder) document(n *node, out reflect.Value) (good bool) { - if len(n.children) == 1 { - d.doc = n - d.unmarshal(n.children[0], out) - return true - } - return false -} - -func (d *decoder) alias(n *node, out reflect.Value) (good bool) { - if d.aliases[n] { - // TODO this could actually be allowed in some circumstances. - failf("anchor '%s' value contains itself", n.value) - } - d.aliases[n] = true - good = d.unmarshal(n.alias, out) - delete(d.aliases, n) - return good -} - -var zeroValue reflect.Value - -func resetMap(out reflect.Value) { - for _, k := range out.MapKeys() { - out.SetMapIndex(k, zeroValue) - } -} - -func (d *decoder) scalar(n *node, out reflect.Value) bool { - var tag string - var resolved interface{} - if n.tag == "" && !n.implicit { - tag = yaml_STR_TAG - resolved = n.value - } else { - tag, resolved = resolve(n.tag, n.value) - if tag == yaml_BINARY_TAG { - data, err := base64.StdEncoding.DecodeString(resolved.(string)) - if err != nil { - failf("!!binary value contains invalid base64 data") - } - resolved = string(data) - } - } - if resolved == nil { - if out.Kind() == reflect.Map && !out.CanAddr() { - resetMap(out) - } else { - out.Set(reflect.Zero(out.Type())) - } - return true - } - if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { - // We've resolved to exactly the type we want, so use that. - out.Set(resolvedv) - return true - } - // Perhaps we can use the value as a TextUnmarshaler to - // set its value. - if out.CanAddr() { - u, ok := out.Addr().Interface().(encoding.TextUnmarshaler) - if ok { - var text []byte - if tag == yaml_BINARY_TAG { - text = []byte(resolved.(string)) - } else { - // We let any value be unmarshaled into TextUnmarshaler. - // That might be more lax than we'd like, but the - // TextUnmarshaler itself should bowl out any dubious values. - text = []byte(n.value) - } - err := u.UnmarshalText(text) - if err != nil { - fail(err) - } - return true - } - } - switch out.Kind() { - case reflect.String: - if tag == yaml_BINARY_TAG { - out.SetString(resolved.(string)) - return true - } - if resolved != nil { - out.SetString(n.value) - return true - } - case reflect.Interface: - if resolved == nil { - out.Set(reflect.Zero(out.Type())) - } else if tag == yaml_TIMESTAMP_TAG { - // It looks like a timestamp but for backward compatibility - // reasons we set it as a string, so that code that unmarshals - // timestamp-like values into interface{} will continue to - // see a string and not a time.Time. - // TODO(v3) Drop this. - out.Set(reflect.ValueOf(n.value)) - } else { - out.Set(reflect.ValueOf(resolved)) - } - return true - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - switch resolved := resolved.(type) { - case int: - if !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case int64: - if !out.OverflowInt(resolved) { - out.SetInt(resolved) - return true - } - case uint64: - if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case float64: - if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case string: - if out.Type() == durationType { - d, err := time.ParseDuration(resolved) - if err == nil { - out.SetInt(int64(d)) - return true - } - } - } - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - switch resolved := resolved.(type) { - case int: - if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case int64: - if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case uint64: - if !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case float64: - if resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - } - case reflect.Bool: - switch resolved := resolved.(type) { - case bool: - out.SetBool(resolved) - return true - } - case reflect.Float32, reflect.Float64: - switch resolved := resolved.(type) { - case int: - out.SetFloat(float64(resolved)) - return true - case int64: - out.SetFloat(float64(resolved)) - return true - case uint64: - out.SetFloat(float64(resolved)) - return true - case float64: - out.SetFloat(resolved) - return true - } - case reflect.Struct: - if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { - out.Set(resolvedv) - return true - } - case reflect.Ptr: - if out.Type().Elem() == reflect.TypeOf(resolved) { - // TODO DOes this make sense? When is out a Ptr except when decoding a nil value? - elem := reflect.New(out.Type().Elem()) - elem.Elem().Set(reflect.ValueOf(resolved)) - out.Set(elem) - return true - } - } - d.terror(n, tag, out) - return false -} - -func settableValueOf(i interface{}) reflect.Value { - v := reflect.ValueOf(i) - sv := reflect.New(v.Type()).Elem() - sv.Set(v) - return sv -} - -func (d *decoder) sequence(n *node, out reflect.Value) (good bool) { - l := len(n.children) - - var iface reflect.Value - switch out.Kind() { - case reflect.Slice: - out.Set(reflect.MakeSlice(out.Type(), l, l)) - case reflect.Array: - if l != out.Len() { - failf("invalid array: want %d elements but got %d", out.Len(), l) - } - case reflect.Interface: - // No type hints. Will have to use a generic sequence. - iface = out - out = settableValueOf(make([]interface{}, l)) - default: - d.terror(n, yaml_SEQ_TAG, out) - return false - } - et := out.Type().Elem() - - j := 0 - for i := 0; i < l; i++ { - e := reflect.New(et).Elem() - if ok := d.unmarshal(n.children[i], e); ok { - out.Index(j).Set(e) - j++ - } - } - if out.Kind() != reflect.Array { - out.Set(out.Slice(0, j)) - } - if iface.IsValid() { - iface.Set(out) - } - return true -} - -func (d *decoder) mapping(n *node, out reflect.Value) (good bool) { - switch out.Kind() { - case reflect.Struct: - return d.mappingStruct(n, out) - case reflect.Slice: - return d.mappingSlice(n, out) - case reflect.Map: - // okay - case reflect.Interface: - if d.mapType.Kind() == reflect.Map { - iface := out - out = reflect.MakeMap(d.mapType) - iface.Set(out) - } else { - slicev := reflect.New(d.mapType).Elem() - if !d.mappingSlice(n, slicev) { - return false - } - out.Set(slicev) - return true - } - default: - d.terror(n, yaml_MAP_TAG, out) - return false - } - outt := out.Type() - kt := outt.Key() - et := outt.Elem() - - mapType := d.mapType - if outt.Key() == ifaceType && outt.Elem() == ifaceType { - d.mapType = outt - } - - if out.IsNil() { - out.Set(reflect.MakeMap(outt)) - } - l := len(n.children) - for i := 0; i < l; i += 2 { - if isMerge(n.children[i]) { - d.merge(n.children[i+1], out) - continue - } - k := reflect.New(kt).Elem() - if d.unmarshal(n.children[i], k) { - kkind := k.Kind() - if kkind == reflect.Interface { - kkind = k.Elem().Kind() - } - if kkind == reflect.Map || kkind == reflect.Slice { - failf("invalid map key: %#v", k.Interface()) - } - e := reflect.New(et).Elem() - if d.unmarshal(n.children[i+1], e) { - d.setMapIndex(n.children[i+1], out, k, e) - } - } - } - d.mapType = mapType - return true -} - -func (d *decoder) setMapIndex(n *node, out, k, v reflect.Value) { - if d.strict && out.MapIndex(k) != zeroValue { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: key %#v already set in map", n.line+1, k.Interface())) - return - } - out.SetMapIndex(k, v) -} - -func (d *decoder) mappingSlice(n *node, out reflect.Value) (good bool) { - outt := out.Type() - if outt.Elem() != mapItemType { - d.terror(n, yaml_MAP_TAG, out) - return false - } - - mapType := d.mapType - d.mapType = outt - - var slice []MapItem - var l = len(n.children) - for i := 0; i < l; i += 2 { - if isMerge(n.children[i]) { - d.merge(n.children[i+1], out) - continue - } - item := MapItem{} - k := reflect.ValueOf(&item.Key).Elem() - if d.unmarshal(n.children[i], k) { - v := reflect.ValueOf(&item.Value).Elem() - if d.unmarshal(n.children[i+1], v) { - slice = append(slice, item) - } - } - } - out.Set(reflect.ValueOf(slice)) - d.mapType = mapType - return true -} - -func (d *decoder) mappingStruct(n *node, out reflect.Value) (good bool) { - sinfo, err := getStructInfo(out.Type()) - if err != nil { - panic(err) - } - name := settableValueOf("") - l := len(n.children) - - var inlineMap reflect.Value - var elemType reflect.Type - if sinfo.InlineMap != -1 { - inlineMap = out.Field(sinfo.InlineMap) - inlineMap.Set(reflect.New(inlineMap.Type()).Elem()) - elemType = inlineMap.Type().Elem() - } - - var doneFields []bool - if d.strict { - doneFields = make([]bool, len(sinfo.FieldsList)) - } - for i := 0; i < l; i += 2 { - ni := n.children[i] - if isMerge(ni) { - d.merge(n.children[i+1], out) - continue - } - if !d.unmarshal(ni, name) { - continue - } - if info, ok := sinfo.FieldsMap[name.String()]; ok { - if d.strict { - if doneFields[info.Id] { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s already set in type %s", ni.line+1, name.String(), out.Type())) - continue - } - doneFields[info.Id] = true - } - var field reflect.Value - if info.Inline == nil { - field = out.Field(info.Num) - } else { - field = out.FieldByIndex(info.Inline) - } - d.unmarshal(n.children[i+1], field) - } else if sinfo.InlineMap != -1 { - if inlineMap.IsNil() { - inlineMap.Set(reflect.MakeMap(inlineMap.Type())) - } - value := reflect.New(elemType).Elem() - d.unmarshal(n.children[i+1], value) - d.setMapIndex(n.children[i+1], inlineMap, name, value) - } else if d.strict { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s not found in type %s", ni.line+1, name.String(), out.Type())) - } - } - return true -} - -func failWantMap() { - failf("map merge requires map or sequence of maps as the value") -} - -func (d *decoder) merge(n *node, out reflect.Value) { - switch n.kind { - case mappingNode: - d.unmarshal(n, out) - case aliasNode: - an, ok := d.doc.anchors[n.value] - if ok && an.kind != mappingNode { - failWantMap() - } - d.unmarshal(n, out) - case sequenceNode: - // Step backwards as earlier nodes take precedence. - for i := len(n.children) - 1; i >= 0; i-- { - ni := n.children[i] - if ni.kind == aliasNode { - an, ok := d.doc.anchors[ni.value] - if ok && an.kind != mappingNode { - failWantMap() - } - } else if ni.kind != mappingNode { - failWantMap() - } - d.unmarshal(ni, out) - } - default: - failWantMap() - } -} - -func isMerge(n *node) bool { - return n.kind == scalarNode && n.value == "<<" && (n.implicit == true || n.tag == yaml_MERGE_TAG) -} diff --git a/vendor/gopkg.in/yaml.v2/encode.go b/vendor/gopkg.in/yaml.v2/encode.go deleted file mode 100644 index 0ee738e11..000000000 --- a/vendor/gopkg.in/yaml.v2/encode.go +++ /dev/null @@ -1,390 +0,0 @@ -package yaml - -import ( - "encoding" - "fmt" - "io" - "reflect" - "regexp" - "sort" - "strconv" - "strings" - "time" - "unicode/utf8" -) - -// jsonNumber is the interface of the encoding/json.Number datatype. -// Repeating the interface here avoids a dependency on encoding/json, and also -// supports other libraries like jsoniter, which use a similar datatype with -// the same interface. Detecting this interface is useful when dealing with -// structures containing json.Number, which is a string under the hood. The -// encoder should prefer the use of Int64(), Float64() and string(), in that -// order, when encoding this type. -type jsonNumber interface { - Float64() (float64, error) - Int64() (int64, error) - String() string -} - -type encoder struct { - emitter yaml_emitter_t - event yaml_event_t - out []byte - flow bool - // doneInit holds whether the initial stream_start_event has been - // emitted. - doneInit bool -} - -func newEncoder() *encoder { - e := &encoder{} - yaml_emitter_initialize(&e.emitter) - yaml_emitter_set_output_string(&e.emitter, &e.out) - yaml_emitter_set_unicode(&e.emitter, true) - return e -} - -func newEncoderWithWriter(w io.Writer) *encoder { - e := &encoder{} - yaml_emitter_initialize(&e.emitter) - yaml_emitter_set_output_writer(&e.emitter, w) - yaml_emitter_set_unicode(&e.emitter, true) - return e -} - -func (e *encoder) init() { - if e.doneInit { - return - } - yaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING) - e.emit() - e.doneInit = true -} - -func (e *encoder) finish() { - e.emitter.open_ended = false - yaml_stream_end_event_initialize(&e.event) - e.emit() -} - -func (e *encoder) destroy() { - yaml_emitter_delete(&e.emitter) -} - -func (e *encoder) emit() { - // This will internally delete the e.event value. - e.must(yaml_emitter_emit(&e.emitter, &e.event)) -} - -func (e *encoder) must(ok bool) { - if !ok { - msg := e.emitter.problem - if msg == "" { - msg = "unknown problem generating YAML content" - } - failf("%s", msg) - } -} - -func (e *encoder) marshalDoc(tag string, in reflect.Value) { - e.init() - yaml_document_start_event_initialize(&e.event, nil, nil, true) - e.emit() - e.marshal(tag, in) - yaml_document_end_event_initialize(&e.event, true) - e.emit() -} - -func (e *encoder) marshal(tag string, in reflect.Value) { - if !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() { - e.nilv() - return - } - iface := in.Interface() - switch m := iface.(type) { - case jsonNumber: - integer, err := m.Int64() - if err == nil { - // In this case the json.Number is a valid int64 - in = reflect.ValueOf(integer) - break - } - float, err := m.Float64() - if err == nil { - // In this case the json.Number is a valid float64 - in = reflect.ValueOf(float) - break - } - // fallback case - no number could be obtained - in = reflect.ValueOf(m.String()) - case time.Time, *time.Time: - // Although time.Time implements TextMarshaler, - // we don't want to treat it as a string for YAML - // purposes because YAML has special support for - // timestamps. - case Marshaler: - v, err := m.MarshalYAML() - if err != nil { - fail(err) - } - if v == nil { - e.nilv() - return - } - in = reflect.ValueOf(v) - case encoding.TextMarshaler: - text, err := m.MarshalText() - if err != nil { - fail(err) - } - in = reflect.ValueOf(string(text)) - case nil: - e.nilv() - return - } - switch in.Kind() { - case reflect.Interface: - e.marshal(tag, in.Elem()) - case reflect.Map: - e.mapv(tag, in) - case reflect.Ptr: - if in.Type() == ptrTimeType { - e.timev(tag, in.Elem()) - } else { - e.marshal(tag, in.Elem()) - } - case reflect.Struct: - if in.Type() == timeType { - e.timev(tag, in) - } else { - e.structv(tag, in) - } - case reflect.Slice, reflect.Array: - if in.Type().Elem() == mapItemType { - e.itemsv(tag, in) - } else { - e.slicev(tag, in) - } - case reflect.String: - e.stringv(tag, in) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - if in.Type() == durationType { - e.stringv(tag, reflect.ValueOf(iface.(time.Duration).String())) - } else { - e.intv(tag, in) - } - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - e.uintv(tag, in) - case reflect.Float32, reflect.Float64: - e.floatv(tag, in) - case reflect.Bool: - e.boolv(tag, in) - default: - panic("cannot marshal type: " + in.Type().String()) - } -} - -func (e *encoder) mapv(tag string, in reflect.Value) { - e.mappingv(tag, func() { - keys := keyList(in.MapKeys()) - sort.Sort(keys) - for _, k := range keys { - e.marshal("", k) - e.marshal("", in.MapIndex(k)) - } - }) -} - -func (e *encoder) itemsv(tag string, in reflect.Value) { - e.mappingv(tag, func() { - slice := in.Convert(reflect.TypeOf([]MapItem{})).Interface().([]MapItem) - for _, item := range slice { - e.marshal("", reflect.ValueOf(item.Key)) - e.marshal("", reflect.ValueOf(item.Value)) - } - }) -} - -func (e *encoder) structv(tag string, in reflect.Value) { - sinfo, err := getStructInfo(in.Type()) - if err != nil { - panic(err) - } - e.mappingv(tag, func() { - for _, info := range sinfo.FieldsList { - var value reflect.Value - if info.Inline == nil { - value = in.Field(info.Num) - } else { - value = in.FieldByIndex(info.Inline) - } - if info.OmitEmpty && isZero(value) { - continue - } - e.marshal("", reflect.ValueOf(info.Key)) - e.flow = info.Flow - e.marshal("", value) - } - if sinfo.InlineMap >= 0 { - m := in.Field(sinfo.InlineMap) - if m.Len() > 0 { - e.flow = false - keys := keyList(m.MapKeys()) - sort.Sort(keys) - for _, k := range keys { - if _, found := sinfo.FieldsMap[k.String()]; found { - panic(fmt.Sprintf("Can't have key %q in inlined map; conflicts with struct field", k.String())) - } - e.marshal("", k) - e.flow = false - e.marshal("", m.MapIndex(k)) - } - } - } - }) -} - -func (e *encoder) mappingv(tag string, f func()) { - implicit := tag == "" - style := yaml_BLOCK_MAPPING_STYLE - if e.flow { - e.flow = false - style = yaml_FLOW_MAPPING_STYLE - } - yaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style) - e.emit() - f() - yaml_mapping_end_event_initialize(&e.event) - e.emit() -} - -func (e *encoder) slicev(tag string, in reflect.Value) { - implicit := tag == "" - style := yaml_BLOCK_SEQUENCE_STYLE - if e.flow { - e.flow = false - style = yaml_FLOW_SEQUENCE_STYLE - } - e.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)) - e.emit() - n := in.Len() - for i := 0; i < n; i++ { - e.marshal("", in.Index(i)) - } - e.must(yaml_sequence_end_event_initialize(&e.event)) - e.emit() -} - -// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1. -// -// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported -// in YAML 1.2 and by this package, but these should be marshalled quoted for -// the time being for compatibility with other parsers. -func isBase60Float(s string) (result bool) { - // Fast path. - if s == "" { - return false - } - c := s[0] - if !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 { - return false - } - // Do the full match. - return base60float.MatchString(s) -} - -// From http://yaml.org/type/float.html, except the regular expression there -// is bogus. In practice parsers do not enforce the "\.[0-9_]*" suffix. -var base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\.[0-9_]*)?$`) - -func (e *encoder) stringv(tag string, in reflect.Value) { - var style yaml_scalar_style_t - s := in.String() - canUsePlain := true - switch { - case !utf8.ValidString(s): - if tag == yaml_BINARY_TAG { - failf("explicitly tagged !!binary data must be base64-encoded") - } - if tag != "" { - failf("cannot marshal invalid UTF-8 data as %s", shortTag(tag)) - } - // It can't be encoded directly as YAML so use a binary tag - // and encode it as base64. - tag = yaml_BINARY_TAG - s = encodeBase64(s) - case tag == "": - // Check to see if it would resolve to a specific - // tag when encoded unquoted. If it doesn't, - // there's no need to quote it. - rtag, _ := resolve("", s) - canUsePlain = rtag == yaml_STR_TAG && !isBase60Float(s) - } - // Note: it's possible for user code to emit invalid YAML - // if they explicitly specify a tag and a string containing - // text that's incompatible with that tag. - switch { - case strings.Contains(s, "\n"): - style = yaml_LITERAL_SCALAR_STYLE - case canUsePlain: - style = yaml_PLAIN_SCALAR_STYLE - default: - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - e.emitScalar(s, "", tag, style) -} - -func (e *encoder) boolv(tag string, in reflect.Value) { - var s string - if in.Bool() { - s = "true" - } else { - s = "false" - } - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) intv(tag string, in reflect.Value) { - s := strconv.FormatInt(in.Int(), 10) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) uintv(tag string, in reflect.Value) { - s := strconv.FormatUint(in.Uint(), 10) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) timev(tag string, in reflect.Value) { - t := in.Interface().(time.Time) - s := t.Format(time.RFC3339Nano) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) floatv(tag string, in reflect.Value) { - // Issue #352: When formatting, use the precision of the underlying value - precision := 64 - if in.Kind() == reflect.Float32 { - precision = 32 - } - - s := strconv.FormatFloat(in.Float(), 'g', -1, precision) - switch s { - case "+Inf": - s = ".inf" - case "-Inf": - s = "-.inf" - case "NaN": - s = ".nan" - } - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) nilv() { - e.emitScalar("null", "", "", yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t) { - implicit := tag == "" - e.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style)) - e.emit() -} diff --git a/vendor/gopkg.in/yaml.v2/go.mod b/vendor/gopkg.in/yaml.v2/go.mod deleted file mode 100644 index 1934e8769..000000000 --- a/vendor/gopkg.in/yaml.v2/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module "gopkg.in/yaml.v2" - -require ( - "gopkg.in/check.v1" v0.0.0-20161208181325-20d25e280405 -) diff --git a/vendor/gopkg.in/yaml.v2/writerc.go b/vendor/gopkg.in/yaml.v2/writerc.go deleted file mode 100644 index a2dde608c..000000000 --- a/vendor/gopkg.in/yaml.v2/writerc.go +++ /dev/null @@ -1,26 +0,0 @@ -package yaml - -// Set the writer error and return false. -func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool { - emitter.error = yaml_WRITER_ERROR - emitter.problem = problem - return false -} - -// Flush the output buffer. -func yaml_emitter_flush(emitter *yaml_emitter_t) bool { - if emitter.write_handler == nil { - panic("write handler not set") - } - - // Check if the buffer is empty. - if emitter.buffer_pos == 0 { - return true - } - - if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil { - return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error()) - } - emitter.buffer_pos = 0 - return true -} diff --git a/vendor/gopkg.in/yaml.v3/LICENSE b/vendor/gopkg.in/yaml.v3/LICENSE new file mode 100644 index 000000000..2683e4bb1 --- /dev/null +++ b/vendor/gopkg.in/yaml.v3/LICENSE @@ -0,0 +1,50 @@ + +This project is covered by two different licenses: MIT and Apache. + +#### MIT License #### + +The following files were ported to Go from C files of libyaml, and thus +are still covered by their original MIT license, with the additional +copyright staring in 2011 when the project was ported over: + + apic.go emitterc.go parserc.go readerc.go scannerc.go + writerc.go yamlh.go yamlprivateh.go + +Copyright (c) 2006-2010 Kirill Simonov +Copyright (c) 2006-2011 Kirill Simonov + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +### Apache License ### + +All the remaining project files are covered by the Apache license: + +Copyright (c) 2011-2019 Canonical Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/vendor/gopkg.in/yaml.v2/NOTICE b/vendor/gopkg.in/yaml.v3/NOTICE similarity index 100% rename from vendor/gopkg.in/yaml.v2/NOTICE rename to vendor/gopkg.in/yaml.v3/NOTICE diff --git a/vendor/gopkg.in/yaml.v2/README.md b/vendor/gopkg.in/yaml.v3/README.md similarity index 66% rename from vendor/gopkg.in/yaml.v2/README.md rename to vendor/gopkg.in/yaml.v3/README.md index b50c6e877..08eb1babd 100644 --- a/vendor/gopkg.in/yaml.v2/README.md +++ b/vendor/gopkg.in/yaml.v3/README.md @@ -12,7 +12,23 @@ C library to parse and generate YAML data quickly and reliably. Compatibility ------------- -The yaml package supports most of YAML 1.1 and 1.2, including support for +The yaml package supports most of YAML 1.2, but preserves some behavior +from 1.1 for backwards compatibility. + +Specifically, as of v3 of the yaml package: + + - YAML 1.1 bools (_yes/no, on/off_) are supported as long as they are being + decoded into a typed bool value. Otherwise they behave as a string. Booleans + in YAML 1.2 are _true/false_ only. + - Octals encode and decode as _0777_ per YAML 1.1, rather than _0o777_ + as specified in YAML 1.2, because most parsers still use the old format. + Octals in the _0o777_ format are supported though, so new files work. + - Does not support base-60 floats. These are gone from YAML 1.2, and were + actually never supported by this package as it's clearly a poor choice. + +and offers backwards +compatibility with YAML 1.1 in some cases. +1.2, including support for anchors, tags, map merging, etc. Multi-document unmarshalling is not yet implemented, and base-60 floats from YAML 1.1 are purposefully not supported since they're a poor design and are gone in YAML 1.2. @@ -20,29 +36,30 @@ supported since they're a poor design and are gone in YAML 1.2. Installation and usage ---------------------- -The import path for the package is *gopkg.in/yaml.v2*. +The import path for the package is *gopkg.in/yaml.v3*. To install it, run: - go get gopkg.in/yaml.v2 + go get gopkg.in/yaml.v3 API documentation ----------------- If opened in a browser, the import path itself leads to the API documentation: - * [https://gopkg.in/yaml.v2](https://gopkg.in/yaml.v2) + - [https://gopkg.in/yaml.v3](https://gopkg.in/yaml.v3) API stability ------------- -The package API for yaml v2 will remain stable as described in [gopkg.in](https://gopkg.in). +The package API for yaml v3 will remain stable as described in [gopkg.in](https://gopkg.in). License ------- -The yaml package is licensed under the Apache License 2.0. Please see the LICENSE file for details. +The yaml package is licensed under the MIT and Apache License 2.0 licenses. +Please see the LICENSE file for details. Example @@ -55,7 +72,7 @@ import ( "fmt" "log" - "gopkg.in/yaml.v2" + "gopkg.in/yaml.v3" ) var data = ` diff --git a/vendor/gopkg.in/yaml.v2/apic.go b/vendor/gopkg.in/yaml.v3/apic.go similarity index 93% rename from vendor/gopkg.in/yaml.v2/apic.go rename to vendor/gopkg.in/yaml.v3/apic.go index 1f7e87e67..ae7d049f1 100644 --- a/vendor/gopkg.in/yaml.v2/apic.go +++ b/vendor/gopkg.in/yaml.v3/apic.go @@ -1,3 +1,25 @@ +// +// Copyright (c) 2011-2019 Canonical Ltd +// Copyright (c) 2006-2010 Kirill Simonov +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +// of the Software, and to permit persons to whom the Software is furnished to do +// so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + package yaml import ( @@ -86,6 +108,7 @@ func yaml_emitter_initialize(emitter *yaml_emitter_t) { raw_buffer: make([]byte, 0, output_raw_buffer_size), states: make([]yaml_emitter_state_t, 0, initial_stack_size), events: make([]yaml_event_t, 0, initial_queue_size), + best_width: -1, } } @@ -138,7 +161,7 @@ func yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) { emitter.canonical = canonical } -//// Set the indentation increment. +// Set the indentation increment. func yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) { if indent < 2 || indent > 9 { indent = 2 @@ -288,29 +311,14 @@ func yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) { } } -///* -// * Create ALIAS. -// */ -// -//YAML_DECLARE(int) -//yaml_alias_event_initialize(event *yaml_event_t, anchor *yaml_char_t) -//{ -// mark yaml_mark_t = { 0, 0, 0 } -// anchor_copy *yaml_char_t = NULL -// -// assert(event) // Non-NULL event object is expected. -// assert(anchor) // Non-NULL anchor is expected. -// -// if (!yaml_check_utf8(anchor, strlen((char *)anchor))) return 0 -// -// anchor_copy = yaml_strdup(anchor) -// if (!anchor_copy) -// return 0 -// -// ALIAS_EVENT_INIT(*event, anchor_copy, mark, mark) -// -// return 1 -//} +// Create ALIAS. +func yaml_alias_event_initialize(event *yaml_event_t, anchor []byte) bool { + *event = yaml_event_t{ + typ: yaml_ALIAS_EVENT, + anchor: anchor, + } + return true +} // Create SCALAR. func yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool { diff --git a/vendor/gopkg.in/yaml.v3/decode.go b/vendor/gopkg.in/yaml.v3/decode.go new file mode 100644 index 000000000..0173b6982 --- /dev/null +++ b/vendor/gopkg.in/yaml.v3/decode.go @@ -0,0 +1,1000 @@ +// +// Copyright (c) 2011-2019 Canonical Ltd +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package yaml + +import ( + "encoding" + "encoding/base64" + "fmt" + "io" + "math" + "reflect" + "strconv" + "time" +) + +// ---------------------------------------------------------------------------- +// Parser, produces a node tree out of a libyaml event stream. + +type parser struct { + parser yaml_parser_t + event yaml_event_t + doc *Node + anchors map[string]*Node + doneInit bool + textless bool +} + +func newParser(b []byte) *parser { + p := parser{} + if !yaml_parser_initialize(&p.parser) { + panic("failed to initialize YAML emitter") + } + if len(b) == 0 { + b = []byte{'\n'} + } + yaml_parser_set_input_string(&p.parser, b) + return &p +} + +func newParserFromReader(r io.Reader) *parser { + p := parser{} + if !yaml_parser_initialize(&p.parser) { + panic("failed to initialize YAML emitter") + } + yaml_parser_set_input_reader(&p.parser, r) + return &p +} + +func (p *parser) init() { + if p.doneInit { + return + } + p.anchors = make(map[string]*Node) + p.expect(yaml_STREAM_START_EVENT) + p.doneInit = true +} + +func (p *parser) destroy() { + if p.event.typ != yaml_NO_EVENT { + yaml_event_delete(&p.event) + } + yaml_parser_delete(&p.parser) +} + +// expect consumes an event from the event stream and +// checks that it's of the expected type. +func (p *parser) expect(e yaml_event_type_t) { + if p.event.typ == yaml_NO_EVENT { + if !yaml_parser_parse(&p.parser, &p.event) { + p.fail() + } + } + if p.event.typ == yaml_STREAM_END_EVENT { + failf("attempted to go past the end of stream; corrupted value?") + } + if p.event.typ != e { + p.parser.problem = fmt.Sprintf("expected %s event but got %s", e, p.event.typ) + p.fail() + } + yaml_event_delete(&p.event) + p.event.typ = yaml_NO_EVENT +} + +// peek peeks at the next event in the event stream, +// puts the results into p.event and returns the event type. +func (p *parser) peek() yaml_event_type_t { + if p.event.typ != yaml_NO_EVENT { + return p.event.typ + } + // It's curious choice from the underlying API to generally return a + // positive result on success, but on this case return true in an error + // scenario. This was the source of bugs in the past (issue #666). + if !yaml_parser_parse(&p.parser, &p.event) || p.parser.error != yaml_NO_ERROR { + p.fail() + } + return p.event.typ +} + +func (p *parser) fail() { + var where string + var line int + if p.parser.context_mark.line != 0 { + line = p.parser.context_mark.line + // Scanner errors don't iterate line before returning error + if p.parser.error == yaml_SCANNER_ERROR { + line++ + } + } else if p.parser.problem_mark.line != 0 { + line = p.parser.problem_mark.line + // Scanner errors don't iterate line before returning error + if p.parser.error == yaml_SCANNER_ERROR { + line++ + } + } + if line != 0 { + where = "line " + strconv.Itoa(line) + ": " + } + var msg string + if len(p.parser.problem) > 0 { + msg = p.parser.problem + } else { + msg = "unknown problem parsing YAML content" + } + failf("%s%s", where, msg) +} + +func (p *parser) anchor(n *Node, anchor []byte) { + if anchor != nil { + n.Anchor = string(anchor) + p.anchors[n.Anchor] = n + } +} + +func (p *parser) parse() *Node { + p.init() + switch p.peek() { + case yaml_SCALAR_EVENT: + return p.scalar() + case yaml_ALIAS_EVENT: + return p.alias() + case yaml_MAPPING_START_EVENT: + return p.mapping() + case yaml_SEQUENCE_START_EVENT: + return p.sequence() + case yaml_DOCUMENT_START_EVENT: + return p.document() + case yaml_STREAM_END_EVENT: + // Happens when attempting to decode an empty buffer. + return nil + case yaml_TAIL_COMMENT_EVENT: + panic("internal error: unexpected tail comment event (please report)") + default: + panic("internal error: attempted to parse unknown event (please report): " + p.event.typ.String()) + } +} + +func (p *parser) node(kind Kind, defaultTag, tag, value string) *Node { + var style Style + if tag != "" && tag != "!" { + tag = shortTag(tag) + style = TaggedStyle + } else if defaultTag != "" { + tag = defaultTag + } else if kind == ScalarNode { + tag, _ = resolve("", value) + } + n := &Node{ + Kind: kind, + Tag: tag, + Value: value, + Style: style, + } + if !p.textless { + n.Line = p.event.start_mark.line + 1 + n.Column = p.event.start_mark.column + 1 + n.HeadComment = string(p.event.head_comment) + n.LineComment = string(p.event.line_comment) + n.FootComment = string(p.event.foot_comment) + } + return n +} + +func (p *parser) parseChild(parent *Node) *Node { + child := p.parse() + parent.Content = append(parent.Content, child) + return child +} + +func (p *parser) document() *Node { + n := p.node(DocumentNode, "", "", "") + p.doc = n + p.expect(yaml_DOCUMENT_START_EVENT) + p.parseChild(n) + if p.peek() == yaml_DOCUMENT_END_EVENT { + n.FootComment = string(p.event.foot_comment) + } + p.expect(yaml_DOCUMENT_END_EVENT) + return n +} + +func (p *parser) alias() *Node { + n := p.node(AliasNode, "", "", string(p.event.anchor)) + n.Alias = p.anchors[n.Value] + if n.Alias == nil { + failf("unknown anchor '%s' referenced", n.Value) + } + p.expect(yaml_ALIAS_EVENT) + return n +} + +func (p *parser) scalar() *Node { + var parsedStyle = p.event.scalar_style() + var nodeStyle Style + switch { + case parsedStyle&yaml_DOUBLE_QUOTED_SCALAR_STYLE != 0: + nodeStyle = DoubleQuotedStyle + case parsedStyle&yaml_SINGLE_QUOTED_SCALAR_STYLE != 0: + nodeStyle = SingleQuotedStyle + case parsedStyle&yaml_LITERAL_SCALAR_STYLE != 0: + nodeStyle = LiteralStyle + case parsedStyle&yaml_FOLDED_SCALAR_STYLE != 0: + nodeStyle = FoldedStyle + } + var nodeValue = string(p.event.value) + var nodeTag = string(p.event.tag) + var defaultTag string + if nodeStyle == 0 { + if nodeValue == "<<" { + defaultTag = mergeTag + } + } else { + defaultTag = strTag + } + n := p.node(ScalarNode, defaultTag, nodeTag, nodeValue) + n.Style |= nodeStyle + p.anchor(n, p.event.anchor) + p.expect(yaml_SCALAR_EVENT) + return n +} + +func (p *parser) sequence() *Node { + n := p.node(SequenceNode, seqTag, string(p.event.tag), "") + if p.event.sequence_style()&yaml_FLOW_SEQUENCE_STYLE != 0 { + n.Style |= FlowStyle + } + p.anchor(n, p.event.anchor) + p.expect(yaml_SEQUENCE_START_EVENT) + for p.peek() != yaml_SEQUENCE_END_EVENT { + p.parseChild(n) + } + n.LineComment = string(p.event.line_comment) + n.FootComment = string(p.event.foot_comment) + p.expect(yaml_SEQUENCE_END_EVENT) + return n +} + +func (p *parser) mapping() *Node { + n := p.node(MappingNode, mapTag, string(p.event.tag), "") + block := true + if p.event.mapping_style()&yaml_FLOW_MAPPING_STYLE != 0 { + block = false + n.Style |= FlowStyle + } + p.anchor(n, p.event.anchor) + p.expect(yaml_MAPPING_START_EVENT) + for p.peek() != yaml_MAPPING_END_EVENT { + k := p.parseChild(n) + if block && k.FootComment != "" { + // Must be a foot comment for the prior value when being dedented. + if len(n.Content) > 2 { + n.Content[len(n.Content)-3].FootComment = k.FootComment + k.FootComment = "" + } + } + v := p.parseChild(n) + if k.FootComment == "" && v.FootComment != "" { + k.FootComment = v.FootComment + v.FootComment = "" + } + if p.peek() == yaml_TAIL_COMMENT_EVENT { + if k.FootComment == "" { + k.FootComment = string(p.event.foot_comment) + } + p.expect(yaml_TAIL_COMMENT_EVENT) + } + } + n.LineComment = string(p.event.line_comment) + n.FootComment = string(p.event.foot_comment) + if n.Style&FlowStyle == 0 && n.FootComment != "" && len(n.Content) > 1 { + n.Content[len(n.Content)-2].FootComment = n.FootComment + n.FootComment = "" + } + p.expect(yaml_MAPPING_END_EVENT) + return n +} + +// ---------------------------------------------------------------------------- +// Decoder, unmarshals a node into a provided value. + +type decoder struct { + doc *Node + aliases map[*Node]bool + terrors []string + + stringMapType reflect.Type + generalMapType reflect.Type + + knownFields bool + uniqueKeys bool + decodeCount int + aliasCount int + aliasDepth int + + mergedFields map[interface{}]bool +} + +var ( + nodeType = reflect.TypeOf(Node{}) + durationType = reflect.TypeOf(time.Duration(0)) + stringMapType = reflect.TypeOf(map[string]interface{}{}) + generalMapType = reflect.TypeOf(map[interface{}]interface{}{}) + ifaceType = generalMapType.Elem() + timeType = reflect.TypeOf(time.Time{}) + ptrTimeType = reflect.TypeOf(&time.Time{}) +) + +func newDecoder() *decoder { + d := &decoder{ + stringMapType: stringMapType, + generalMapType: generalMapType, + uniqueKeys: true, + } + d.aliases = make(map[*Node]bool) + return d +} + +func (d *decoder) terror(n *Node, tag string, out reflect.Value) { + if n.Tag != "" { + tag = n.Tag + } + value := n.Value + if tag != seqTag && tag != mapTag { + if len(value) > 10 { + value = " `" + value[:7] + "...`" + } else { + value = " `" + value + "`" + } + } + d.terrors = append(d.terrors, fmt.Sprintf("line %d: cannot unmarshal %s%s into %s", n.Line, shortTag(tag), value, out.Type())) +} + +func (d *decoder) callUnmarshaler(n *Node, u Unmarshaler) (good bool) { + err := u.UnmarshalYAML(n) + if e, ok := err.(*TypeError); ok { + d.terrors = append(d.terrors, e.Errors...) + return false + } + if err != nil { + fail(err) + } + return true +} + +func (d *decoder) callObsoleteUnmarshaler(n *Node, u obsoleteUnmarshaler) (good bool) { + terrlen := len(d.terrors) + err := u.UnmarshalYAML(func(v interface{}) (err error) { + defer handleErr(&err) + d.unmarshal(n, reflect.ValueOf(v)) + if len(d.terrors) > terrlen { + issues := d.terrors[terrlen:] + d.terrors = d.terrors[:terrlen] + return &TypeError{issues} + } + return nil + }) + if e, ok := err.(*TypeError); ok { + d.terrors = append(d.terrors, e.Errors...) + return false + } + if err != nil { + fail(err) + } + return true +} + +// d.prepare initializes and dereferences pointers and calls UnmarshalYAML +// if a value is found to implement it. +// It returns the initialized and dereferenced out value, whether +// unmarshalling was already done by UnmarshalYAML, and if so whether +// its types unmarshalled appropriately. +// +// If n holds a null value, prepare returns before doing anything. +func (d *decoder) prepare(n *Node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) { + if n.ShortTag() == nullTag { + return out, false, false + } + again := true + for again { + again = false + if out.Kind() == reflect.Ptr { + if out.IsNil() { + out.Set(reflect.New(out.Type().Elem())) + } + out = out.Elem() + again = true + } + if out.CanAddr() { + outi := out.Addr().Interface() + if u, ok := outi.(Unmarshaler); ok { + good = d.callUnmarshaler(n, u) + return out, true, good + } + if u, ok := outi.(obsoleteUnmarshaler); ok { + good = d.callObsoleteUnmarshaler(n, u) + return out, true, good + } + } + } + return out, false, false +} + +func (d *decoder) fieldByIndex(n *Node, v reflect.Value, index []int) (field reflect.Value) { + if n.ShortTag() == nullTag { + return reflect.Value{} + } + for _, num := range index { + for { + if v.Kind() == reflect.Ptr { + if v.IsNil() { + v.Set(reflect.New(v.Type().Elem())) + } + v = v.Elem() + continue + } + break + } + v = v.Field(num) + } + return v +} + +const ( + // 400,000 decode operations is ~500kb of dense object declarations, or + // ~5kb of dense object declarations with 10000% alias expansion + alias_ratio_range_low = 400000 + + // 4,000,000 decode operations is ~5MB of dense object declarations, or + // ~4.5MB of dense object declarations with 10% alias expansion + alias_ratio_range_high = 4000000 + + // alias_ratio_range is the range over which we scale allowed alias ratios + alias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low) +) + +func allowedAliasRatio(decodeCount int) float64 { + switch { + case decodeCount <= alias_ratio_range_low: + // allow 99% to come from alias expansion for small-to-medium documents + return 0.99 + case decodeCount >= alias_ratio_range_high: + // allow 10% to come from alias expansion for very large documents + return 0.10 + default: + // scale smoothly from 99% down to 10% over the range. + // this maps to 396,000 - 400,000 allowed alias-driven decodes over the range. + // 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps). + return 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range) + } +} + +func (d *decoder) unmarshal(n *Node, out reflect.Value) (good bool) { + d.decodeCount++ + if d.aliasDepth > 0 { + d.aliasCount++ + } + if d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) { + failf("document contains excessive aliasing") + } + if out.Type() == nodeType { + out.Set(reflect.ValueOf(n).Elem()) + return true + } + switch n.Kind { + case DocumentNode: + return d.document(n, out) + case AliasNode: + return d.alias(n, out) + } + out, unmarshaled, good := d.prepare(n, out) + if unmarshaled { + return good + } + switch n.Kind { + case ScalarNode: + good = d.scalar(n, out) + case MappingNode: + good = d.mapping(n, out) + case SequenceNode: + good = d.sequence(n, out) + case 0: + if n.IsZero() { + return d.null(out) + } + fallthrough + default: + failf("cannot decode node with unknown kind %d", n.Kind) + } + return good +} + +func (d *decoder) document(n *Node, out reflect.Value) (good bool) { + if len(n.Content) == 1 { + d.doc = n + d.unmarshal(n.Content[0], out) + return true + } + return false +} + +func (d *decoder) alias(n *Node, out reflect.Value) (good bool) { + if d.aliases[n] { + // TODO this could actually be allowed in some circumstances. + failf("anchor '%s' value contains itself", n.Value) + } + d.aliases[n] = true + d.aliasDepth++ + good = d.unmarshal(n.Alias, out) + d.aliasDepth-- + delete(d.aliases, n) + return good +} + +var zeroValue reflect.Value + +func resetMap(out reflect.Value) { + for _, k := range out.MapKeys() { + out.SetMapIndex(k, zeroValue) + } +} + +func (d *decoder) null(out reflect.Value) bool { + if out.CanAddr() { + switch out.Kind() { + case reflect.Interface, reflect.Ptr, reflect.Map, reflect.Slice: + out.Set(reflect.Zero(out.Type())) + return true + } + } + return false +} + +func (d *decoder) scalar(n *Node, out reflect.Value) bool { + var tag string + var resolved interface{} + if n.indicatedString() { + tag = strTag + resolved = n.Value + } else { + tag, resolved = resolve(n.Tag, n.Value) + if tag == binaryTag { + data, err := base64.StdEncoding.DecodeString(resolved.(string)) + if err != nil { + failf("!!binary value contains invalid base64 data") + } + resolved = string(data) + } + } + if resolved == nil { + return d.null(out) + } + if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { + // We've resolved to exactly the type we want, so use that. + out.Set(resolvedv) + return true + } + // Perhaps we can use the value as a TextUnmarshaler to + // set its value. + if out.CanAddr() { + u, ok := out.Addr().Interface().(encoding.TextUnmarshaler) + if ok { + var text []byte + if tag == binaryTag { + text = []byte(resolved.(string)) + } else { + // We let any value be unmarshaled into TextUnmarshaler. + // That might be more lax than we'd like, but the + // TextUnmarshaler itself should bowl out any dubious values. + text = []byte(n.Value) + } + err := u.UnmarshalText(text) + if err != nil { + fail(err) + } + return true + } + } + switch out.Kind() { + case reflect.String: + if tag == binaryTag { + out.SetString(resolved.(string)) + return true + } + out.SetString(n.Value) + return true + case reflect.Interface: + out.Set(reflect.ValueOf(resolved)) + return true + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + // This used to work in v2, but it's very unfriendly. + isDuration := out.Type() == durationType + + switch resolved := resolved.(type) { + case int: + if !isDuration && !out.OverflowInt(int64(resolved)) { + out.SetInt(int64(resolved)) + return true + } + case int64: + if !isDuration && !out.OverflowInt(resolved) { + out.SetInt(resolved) + return true + } + case uint64: + if !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { + out.SetInt(int64(resolved)) + return true + } + case float64: + if !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { + out.SetInt(int64(resolved)) + return true + } + case string: + if out.Type() == durationType { + d, err := time.ParseDuration(resolved) + if err == nil { + out.SetInt(int64(d)) + return true + } + } + } + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + switch resolved := resolved.(type) { + case int: + if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + return true + } + case int64: + if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + return true + } + case uint64: + if !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + return true + } + case float64: + if resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + return true + } + } + case reflect.Bool: + switch resolved := resolved.(type) { + case bool: + out.SetBool(resolved) + return true + case string: + // This offers some compatibility with the 1.1 spec (https://yaml.org/type/bool.html). + // It only works if explicitly attempting to unmarshal into a typed bool value. + switch resolved { + case "y", "Y", "yes", "Yes", "YES", "on", "On", "ON": + out.SetBool(true) + return true + case "n", "N", "no", "No", "NO", "off", "Off", "OFF": + out.SetBool(false) + return true + } + } + case reflect.Float32, reflect.Float64: + switch resolved := resolved.(type) { + case int: + out.SetFloat(float64(resolved)) + return true + case int64: + out.SetFloat(float64(resolved)) + return true + case uint64: + out.SetFloat(float64(resolved)) + return true + case float64: + out.SetFloat(resolved) + return true + } + case reflect.Struct: + if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { + out.Set(resolvedv) + return true + } + case reflect.Ptr: + panic("yaml internal error: please report the issue") + } + d.terror(n, tag, out) + return false +} + +func settableValueOf(i interface{}) reflect.Value { + v := reflect.ValueOf(i) + sv := reflect.New(v.Type()).Elem() + sv.Set(v) + return sv +} + +func (d *decoder) sequence(n *Node, out reflect.Value) (good bool) { + l := len(n.Content) + + var iface reflect.Value + switch out.Kind() { + case reflect.Slice: + out.Set(reflect.MakeSlice(out.Type(), l, l)) + case reflect.Array: + if l != out.Len() { + failf("invalid array: want %d elements but got %d", out.Len(), l) + } + case reflect.Interface: + // No type hints. Will have to use a generic sequence. + iface = out + out = settableValueOf(make([]interface{}, l)) + default: + d.terror(n, seqTag, out) + return false + } + et := out.Type().Elem() + + j := 0 + for i := 0; i < l; i++ { + e := reflect.New(et).Elem() + if ok := d.unmarshal(n.Content[i], e); ok { + out.Index(j).Set(e) + j++ + } + } + if out.Kind() != reflect.Array { + out.Set(out.Slice(0, j)) + } + if iface.IsValid() { + iface.Set(out) + } + return true +} + +func (d *decoder) mapping(n *Node, out reflect.Value) (good bool) { + l := len(n.Content) + if d.uniqueKeys { + nerrs := len(d.terrors) + for i := 0; i < l; i += 2 { + ni := n.Content[i] + for j := i + 2; j < l; j += 2 { + nj := n.Content[j] + if ni.Kind == nj.Kind && ni.Value == nj.Value { + d.terrors = append(d.terrors, fmt.Sprintf("line %d: mapping key %#v already defined at line %d", nj.Line, nj.Value, ni.Line)) + } + } + } + if len(d.terrors) > nerrs { + return false + } + } + switch out.Kind() { + case reflect.Struct: + return d.mappingStruct(n, out) + case reflect.Map: + // okay + case reflect.Interface: + iface := out + if isStringMap(n) { + out = reflect.MakeMap(d.stringMapType) + } else { + out = reflect.MakeMap(d.generalMapType) + } + iface.Set(out) + default: + d.terror(n, mapTag, out) + return false + } + + outt := out.Type() + kt := outt.Key() + et := outt.Elem() + + stringMapType := d.stringMapType + generalMapType := d.generalMapType + if outt.Elem() == ifaceType { + if outt.Key().Kind() == reflect.String { + d.stringMapType = outt + } else if outt.Key() == ifaceType { + d.generalMapType = outt + } + } + + mergedFields := d.mergedFields + d.mergedFields = nil + + var mergeNode *Node + + mapIsNew := false + if out.IsNil() { + out.Set(reflect.MakeMap(outt)) + mapIsNew = true + } + for i := 0; i < l; i += 2 { + if isMerge(n.Content[i]) { + mergeNode = n.Content[i+1] + continue + } + k := reflect.New(kt).Elem() + if d.unmarshal(n.Content[i], k) { + if mergedFields != nil { + ki := k.Interface() + if mergedFields[ki] { + continue + } + mergedFields[ki] = true + } + kkind := k.Kind() + if kkind == reflect.Interface { + kkind = k.Elem().Kind() + } + if kkind == reflect.Map || kkind == reflect.Slice { + failf("invalid map key: %#v", k.Interface()) + } + e := reflect.New(et).Elem() + if d.unmarshal(n.Content[i+1], e) || n.Content[i+1].ShortTag() == nullTag && (mapIsNew || !out.MapIndex(k).IsValid()) { + out.SetMapIndex(k, e) + } + } + } + + d.mergedFields = mergedFields + if mergeNode != nil { + d.merge(n, mergeNode, out) + } + + d.stringMapType = stringMapType + d.generalMapType = generalMapType + return true +} + +func isStringMap(n *Node) bool { + if n.Kind != MappingNode { + return false + } + l := len(n.Content) + for i := 0; i < l; i += 2 { + shortTag := n.Content[i].ShortTag() + if shortTag != strTag && shortTag != mergeTag { + return false + } + } + return true +} + +func (d *decoder) mappingStruct(n *Node, out reflect.Value) (good bool) { + sinfo, err := getStructInfo(out.Type()) + if err != nil { + panic(err) + } + + var inlineMap reflect.Value + var elemType reflect.Type + if sinfo.InlineMap != -1 { + inlineMap = out.Field(sinfo.InlineMap) + elemType = inlineMap.Type().Elem() + } + + for _, index := range sinfo.InlineUnmarshalers { + field := d.fieldByIndex(n, out, index) + d.prepare(n, field) + } + + mergedFields := d.mergedFields + d.mergedFields = nil + var mergeNode *Node + var doneFields []bool + if d.uniqueKeys { + doneFields = make([]bool, len(sinfo.FieldsList)) + } + name := settableValueOf("") + l := len(n.Content) + for i := 0; i < l; i += 2 { + ni := n.Content[i] + if isMerge(ni) { + mergeNode = n.Content[i+1] + continue + } + if !d.unmarshal(ni, name) { + continue + } + sname := name.String() + if mergedFields != nil { + if mergedFields[sname] { + continue + } + mergedFields[sname] = true + } + if info, ok := sinfo.FieldsMap[sname]; ok { + if d.uniqueKeys { + if doneFields[info.Id] { + d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s already set in type %s", ni.Line, name.String(), out.Type())) + continue + } + doneFields[info.Id] = true + } + var field reflect.Value + if info.Inline == nil { + field = out.Field(info.Num) + } else { + field = d.fieldByIndex(n, out, info.Inline) + } + d.unmarshal(n.Content[i+1], field) + } else if sinfo.InlineMap != -1 { + if inlineMap.IsNil() { + inlineMap.Set(reflect.MakeMap(inlineMap.Type())) + } + value := reflect.New(elemType).Elem() + d.unmarshal(n.Content[i+1], value) + inlineMap.SetMapIndex(name, value) + } else if d.knownFields { + d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s not found in type %s", ni.Line, name.String(), out.Type())) + } + } + + d.mergedFields = mergedFields + if mergeNode != nil { + d.merge(n, mergeNode, out) + } + return true +} + +func failWantMap() { + failf("map merge requires map or sequence of maps as the value") +} + +func (d *decoder) merge(parent *Node, merge *Node, out reflect.Value) { + mergedFields := d.mergedFields + if mergedFields == nil { + d.mergedFields = make(map[interface{}]bool) + for i := 0; i < len(parent.Content); i += 2 { + k := reflect.New(ifaceType).Elem() + if d.unmarshal(parent.Content[i], k) { + d.mergedFields[k.Interface()] = true + } + } + } + + switch merge.Kind { + case MappingNode: + d.unmarshal(merge, out) + case AliasNode: + if merge.Alias != nil && merge.Alias.Kind != MappingNode { + failWantMap() + } + d.unmarshal(merge, out) + case SequenceNode: + for i := 0; i < len(merge.Content); i++ { + ni := merge.Content[i] + if ni.Kind == AliasNode { + if ni.Alias != nil && ni.Alias.Kind != MappingNode { + failWantMap() + } + } else if ni.Kind != MappingNode { + failWantMap() + } + d.unmarshal(ni, out) + } + default: + failWantMap() + } + + d.mergedFields = mergedFields +} + +func isMerge(n *Node) bool { + return n.Kind == ScalarNode && n.Value == "<<" && (n.Tag == "" || n.Tag == "!" || shortTag(n.Tag) == mergeTag) +} diff --git a/vendor/gopkg.in/yaml.v2/emitterc.go b/vendor/gopkg.in/yaml.v3/emitterc.go similarity index 80% rename from vendor/gopkg.in/yaml.v2/emitterc.go rename to vendor/gopkg.in/yaml.v3/emitterc.go index a1c2cc526..0f47c9ca8 100644 --- a/vendor/gopkg.in/yaml.v2/emitterc.go +++ b/vendor/gopkg.in/yaml.v3/emitterc.go @@ -1,3 +1,25 @@ +// +// Copyright (c) 2011-2019 Canonical Ltd +// Copyright (c) 2006-2010 Kirill Simonov +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +// of the Software, and to permit persons to whom the Software is furnished to do +// so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + package yaml import ( @@ -43,8 +65,13 @@ func put_break(emitter *yaml_emitter_t) bool { default: panic("unknown line break setting") } + if emitter.column == 0 { + emitter.space_above = true + } emitter.column = 0 emitter.line++ + // [Go] Do this here and below and drop from everywhere else (see commented lines). + emitter.indention = true return true } @@ -97,8 +124,13 @@ func write_break(emitter *yaml_emitter_t, s []byte, i *int) bool { if !write(emitter, s, i) { return false } + if emitter.column == 0 { + emitter.space_above = true + } emitter.column = 0 emitter.line++ + // [Go] Do this here and above and drop from everywhere else (see commented lines). + emitter.indention = true } return true } @@ -203,7 +235,14 @@ func yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool emitter.indent = 0 } } else if !indentless { - emitter.indent += emitter.best_indent + // [Go] This was changed so that indentations are more regular. + if emitter.states[len(emitter.states)-1] == yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE { + // The first indent inside a sequence will just skip the "- " indicator. + emitter.indent += 2 + } else { + // Everything else aligns to the chosen indentation. + emitter.indent = emitter.best_indent*((emitter.indent+emitter.best_indent)/emitter.best_indent) + } } return true } @@ -228,16 +267,22 @@ func yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bo return yaml_emitter_emit_document_end(emitter, event) case yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, true) + return yaml_emitter_emit_flow_sequence_item(emitter, event, true, false) + + case yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE: + return yaml_emitter_emit_flow_sequence_item(emitter, event, false, true) case yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, false) + return yaml_emitter_emit_flow_sequence_item(emitter, event, false, false) case yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, true) + return yaml_emitter_emit_flow_mapping_key(emitter, event, true, false) + + case yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE: + return yaml_emitter_emit_flow_mapping_key(emitter, event, false, true) case yaml_EMIT_FLOW_MAPPING_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, false) + return yaml_emitter_emit_flow_mapping_key(emitter, event, false, false) case yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE: return yaml_emitter_emit_flow_mapping_value(emitter, event, true) @@ -298,6 +343,8 @@ func yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t emitter.column = 0 emitter.whitespace = true emitter.indention = true + emitter.space_above = true + emitter.foot_indent = -1 if emitter.encoding != yaml_UTF8_ENCODING { if !yaml_emitter_write_bom(emitter) { @@ -392,13 +439,22 @@ func yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event if !yaml_emitter_write_indicator(emitter, []byte("---"), true, false, false) { return false } - if emitter.canonical { + if emitter.canonical || true { if !yaml_emitter_write_indent(emitter) { return false } } } + if len(emitter.head_comment) > 0 { + if !yaml_emitter_process_head_comment(emitter) { + return false + } + if !put_break(emitter) { + return false + } + } + emitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE return true } @@ -425,7 +481,20 @@ func yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event // Expect the root node. func yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool { emitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE) - return yaml_emitter_emit_node(emitter, event, true, false, false, false) + + if !yaml_emitter_process_head_comment(emitter) { + return false + } + if !yaml_emitter_emit_node(emitter, event, true, false, false, false) { + return false + } + if !yaml_emitter_process_line_comment(emitter) { + return false + } + if !yaml_emitter_process_foot_comment(emitter) { + return false + } + return true } // Expect DOCUMENT-END. @@ -433,6 +502,12 @@ func yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t if event.typ != yaml_DOCUMENT_END_EVENT { return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-END") } + // [Go] Force document foot separation. + emitter.foot_indent = 0 + if !yaml_emitter_process_foot_comment(emitter) { + return false + } + emitter.foot_indent = -1 if !yaml_emitter_write_indent(emitter) { return false } @@ -454,7 +529,7 @@ func yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t } // Expect a flow item node. -func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { +func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool { if first { if !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) { return false @@ -466,13 +541,15 @@ func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_e } if event.typ == yaml_SEQUENCE_END_EVENT { - emitter.flow_level-- - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - if emitter.canonical && !first { + if emitter.canonical && !first && !trail { if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { return false } + } + emitter.flow_level-- + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + if emitter.column == 0 || emitter.canonical && !first { if !yaml_emitter_write_indent(emitter) { return false } @@ -480,29 +557,62 @@ func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_e if !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) { return false } + if !yaml_emitter_process_line_comment(emitter) { + return false + } + if !yaml_emitter_process_foot_comment(emitter) { + return false + } emitter.state = emitter.states[len(emitter.states)-1] emitter.states = emitter.states[:len(emitter.states)-1] return true } - if !first { + if !first && !trail { if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { return false } } + if !yaml_emitter_process_head_comment(emitter) { + return false + } + if emitter.column == 0 { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if emitter.canonical || emitter.column > emitter.best_width { if !yaml_emitter_write_indent(emitter) { return false } } - emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE) - return yaml_emitter_emit_node(emitter, event, false, true, false, false) + if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { + emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE) + } else { + emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE) + } + if !yaml_emitter_emit_node(emitter, event, false, true, false, false) { + return false + } + if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + } + if !yaml_emitter_process_line_comment(emitter) { + return false + } + if !yaml_emitter_process_foot_comment(emitter) { + return false + } + return true } // Expect a flow key node. -func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { +func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool { if first { if !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) { return false @@ -514,13 +624,18 @@ func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_eve } if event.typ == yaml_MAPPING_END_EVENT { + if (emitter.canonical || len(emitter.head_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0) && !first && !trail { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + } + if !yaml_emitter_process_head_comment(emitter) { + return false + } emitter.flow_level-- emitter.indent = emitter.indents[len(emitter.indents)-1] emitter.indents = emitter.indents[:len(emitter.indents)-1] if emitter.canonical && !first { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } if !yaml_emitter_write_indent(emitter) { return false } @@ -528,16 +643,33 @@ func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_eve if !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) { return false } + if !yaml_emitter_process_line_comment(emitter) { + return false + } + if !yaml_emitter_process_foot_comment(emitter) { + return false + } emitter.state = emitter.states[len(emitter.states)-1] emitter.states = emitter.states[:len(emitter.states)-1] return true } - if !first { + if !first && !trail { if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { return false } } + + if !yaml_emitter_process_head_comment(emitter) { + return false + } + + if emitter.column == 0 { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if emitter.canonical || emitter.column > emitter.best_width { if !yaml_emitter_write_indent(emitter) { return false @@ -571,14 +703,32 @@ func yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_e return false } } - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) + if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { + emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE) + } else { + emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE) + } + if !yaml_emitter_emit_node(emitter, event, false, false, true, false) { + return false + } + if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + } + if !yaml_emitter_process_line_comment(emitter) { + return false + } + if !yaml_emitter_process_foot_comment(emitter) { + return false + } + return true } // Expect a block item node. func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { if first { - if !yaml_emitter_increase_indent(emitter, false, emitter.mapping_context && !emitter.indention) { + if !yaml_emitter_increase_indent(emitter, false, false) { return false } } @@ -589,6 +739,9 @@ func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_ emitter.states = emitter.states[:len(emitter.states)-1] return true } + if !yaml_emitter_process_head_comment(emitter) { + return false + } if !yaml_emitter_write_indent(emitter) { return false } @@ -596,7 +749,16 @@ func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_ return false } emitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE) - return yaml_emitter_emit_node(emitter, event, false, true, false, false) + if !yaml_emitter_emit_node(emitter, event, false, true, false, false) { + return false + } + if !yaml_emitter_process_line_comment(emitter) { + return false + } + if !yaml_emitter_process_foot_comment(emitter) { + return false + } + return true } // Expect a block key node. @@ -606,6 +768,9 @@ func yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_ev return false } } + if !yaml_emitter_process_head_comment(emitter) { + return false + } if event.typ == yaml_MAPPING_END_EVENT { emitter.indent = emitter.indents[len(emitter.indents)-1] emitter.indents = emitter.indents[:len(emitter.indents)-1] @@ -616,6 +781,13 @@ func yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_ev if !yaml_emitter_write_indent(emitter) { return false } + if len(emitter.line_comment) > 0 { + // [Go] A line comment was provided for the key. That's unusual as the + // scanner associates line comments with the value. Either way, + // save the line comment and render it appropriately later. + emitter.key_line_comment = emitter.line_comment + emitter.line_comment = nil + } if yaml_emitter_check_simple_key(emitter) { emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE) return yaml_emitter_emit_node(emitter, event, false, false, true, true) @@ -641,8 +813,42 @@ func yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_ return false } } + if len(emitter.key_line_comment) > 0 { + // [Go] Line comments are generally associated with the value, but when there's + // no value on the same line as a mapping key they end up attached to the + // key itself. + if event.typ == yaml_SCALAR_EVENT { + if len(emitter.line_comment) == 0 { + // A scalar is coming and it has no line comments by itself yet, + // so just let it handle the line comment as usual. If it has a + // line comment, we can't have both so the one from the key is lost. + emitter.line_comment = emitter.key_line_comment + emitter.key_line_comment = nil + } + } else if event.sequence_style() != yaml_FLOW_SEQUENCE_STYLE && (event.typ == yaml_MAPPING_START_EVENT || event.typ == yaml_SEQUENCE_START_EVENT) { + // An indented block follows, so write the comment right now. + emitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment + if !yaml_emitter_process_line_comment(emitter) { + return false + } + emitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment + } + } emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) + if !yaml_emitter_emit_node(emitter, event, false, false, true, false) { + return false + } + if !yaml_emitter_process_line_comment(emitter) { + return false + } + if !yaml_emitter_process_foot_comment(emitter) { + return false + } + return true +} + +func yaml_emitter_silent_nil_event(emitter *yaml_emitter_t, event *yaml_event_t) bool { + return event.typ == yaml_SCALAR_EVENT && event.implicit && !emitter.canonical && len(emitter.scalar_data.value) == 0 } // Expect a node. @@ -908,6 +1114,71 @@ func yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool { panic("unknown scalar style") } +// Write a head comment. +func yaml_emitter_process_head_comment(emitter *yaml_emitter_t) bool { + if len(emitter.tail_comment) > 0 { + if !yaml_emitter_write_indent(emitter) { + return false + } + if !yaml_emitter_write_comment(emitter, emitter.tail_comment) { + return false + } + emitter.tail_comment = emitter.tail_comment[:0] + emitter.foot_indent = emitter.indent + if emitter.foot_indent < 0 { + emitter.foot_indent = 0 + } + } + + if len(emitter.head_comment) == 0 { + return true + } + if !yaml_emitter_write_indent(emitter) { + return false + } + if !yaml_emitter_write_comment(emitter, emitter.head_comment) { + return false + } + emitter.head_comment = emitter.head_comment[:0] + return true +} + +// Write an line comment. +func yaml_emitter_process_line_comment(emitter *yaml_emitter_t) bool { + if len(emitter.line_comment) == 0 { + return true + } + if !emitter.whitespace { + if !put(emitter, ' ') { + return false + } + } + if !yaml_emitter_write_comment(emitter, emitter.line_comment) { + return false + } + emitter.line_comment = emitter.line_comment[:0] + return true +} + +// Write a foot comment. +func yaml_emitter_process_foot_comment(emitter *yaml_emitter_t) bool { + if len(emitter.foot_comment) == 0 { + return true + } + if !yaml_emitter_write_indent(emitter) { + return false + } + if !yaml_emitter_write_comment(emitter, emitter.foot_comment) { + return false + } + emitter.foot_comment = emitter.foot_comment[:0] + emitter.foot_indent = emitter.indent + if emitter.foot_indent < 0 { + emitter.foot_indent = 0 + } + return true +} + // Check if a %YAML directive is valid. func yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool { if version_directive.major != 1 || version_directive.minor != 1 { @@ -987,6 +1258,7 @@ func yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool { flow_indicators = false line_breaks = false special_characters = false + tab_characters = false leading_space = false leading_break = false @@ -1055,7 +1327,9 @@ func yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool { } } - if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode { + if value[i] == '\t' { + tab_characters = true + } else if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode { special_characters = true } if is_space(value, i) { @@ -1110,10 +1384,12 @@ func yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool { emitter.scalar_data.block_plain_allowed = false emitter.scalar_data.single_quoted_allowed = false } - if space_break || special_characters { + if space_break || tab_characters || special_characters { emitter.scalar_data.flow_plain_allowed = false emitter.scalar_data.block_plain_allowed = false emitter.scalar_data.single_quoted_allowed = false + } + if space_break || special_characters { emitter.scalar_data.block_allowed = false } if line_breaks { @@ -1137,6 +1413,19 @@ func yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bo emitter.tag_data.suffix = nil emitter.scalar_data.value = nil + if len(event.head_comment) > 0 { + emitter.head_comment = event.head_comment + } + if len(event.line_comment) > 0 { + emitter.line_comment = event.line_comment + } + if len(event.foot_comment) > 0 { + emitter.foot_comment = event.foot_comment + } + if len(event.tail_comment) > 0 { + emitter.tail_comment = event.tail_comment + } + switch event.typ { case yaml_ALIAS_EVENT: if !yaml_emitter_analyze_anchor(emitter, event.anchor, true) { @@ -1208,13 +1497,20 @@ func yaml_emitter_write_indent(emitter *yaml_emitter_t) bool { return false } } + if emitter.foot_indent == indent { + if !put_break(emitter) { + return false + } + } for emitter.column < indent { if !put(emitter, ' ') { return false } } emitter.whitespace = true - emitter.indention = true + //emitter.indention = true + emitter.space_above = false + emitter.foot_indent = -1 return true } @@ -1311,7 +1607,7 @@ func yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_ } func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - if !emitter.whitespace { + if len(value) > 0 && !emitter.whitespace { if !put(emitter, ' ') { return false } @@ -1341,7 +1637,7 @@ func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allo if !write_break(emitter, value, &i) { return false } - emitter.indention = true + //emitter.indention = true breaks = true } else { if breaks { @@ -1358,7 +1654,9 @@ func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allo } } - emitter.whitespace = false + if len(value) > 0 { + emitter.whitespace = false + } emitter.indention = false if emitter.root_context { emitter.open_ended = true @@ -1397,7 +1695,7 @@ func yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []by if !write_break(emitter, value, &i) { return false } - emitter.indention = true + //emitter.indention = true breaks = true } else { if breaks { @@ -1596,10 +1894,10 @@ func yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bo if !yaml_emitter_write_block_scalar_hints(emitter, value) { return false } - if !put_break(emitter) { + if !yaml_emitter_process_line_comment(emitter) { return false } - emitter.indention = true + //emitter.indention = true emitter.whitespace = true breaks := true for i := 0; i < len(value); { @@ -1607,7 +1905,7 @@ func yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bo if !write_break(emitter, value, &i) { return false } - emitter.indention = true + //emitter.indention = true breaks = true } else { if breaks { @@ -1633,11 +1931,11 @@ func yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) boo if !yaml_emitter_write_block_scalar_hints(emitter, value) { return false } - - if !put_break(emitter) { + if !yaml_emitter_process_line_comment(emitter) { return false } - emitter.indention = true + + //emitter.indention = true emitter.whitespace = true breaks := true @@ -1658,7 +1956,7 @@ func yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) boo if !write_break(emitter, value, &i) { return false } - emitter.indention = true + //emitter.indention = true breaks = true } else { if breaks { @@ -1683,3 +1981,40 @@ func yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) boo } return true } + +func yaml_emitter_write_comment(emitter *yaml_emitter_t, comment []byte) bool { + breaks := false + pound := false + for i := 0; i < len(comment); { + if is_break(comment, i) { + if !write_break(emitter, comment, &i) { + return false + } + //emitter.indention = true + breaks = true + pound = false + } else { + if breaks && !yaml_emitter_write_indent(emitter) { + return false + } + if !pound { + if comment[i] != '#' && (!put(emitter, '#') || !put(emitter, ' ')) { + return false + } + pound = true + } + if !write(emitter, comment, &i) { + return false + } + emitter.indention = false + breaks = false + } + } + if !breaks && !put_break(emitter) { + return false + } + + emitter.whitespace = true + //emitter.indention = true + return true +} diff --git a/vendor/gopkg.in/yaml.v3/encode.go b/vendor/gopkg.in/yaml.v3/encode.go new file mode 100644 index 000000000..de9e72a3e --- /dev/null +++ b/vendor/gopkg.in/yaml.v3/encode.go @@ -0,0 +1,577 @@ +// +// Copyright (c) 2011-2019 Canonical Ltd +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package yaml + +import ( + "encoding" + "fmt" + "io" + "reflect" + "regexp" + "sort" + "strconv" + "strings" + "time" + "unicode/utf8" +) + +type encoder struct { + emitter yaml_emitter_t + event yaml_event_t + out []byte + flow bool + indent int + doneInit bool +} + +func newEncoder() *encoder { + e := &encoder{} + yaml_emitter_initialize(&e.emitter) + yaml_emitter_set_output_string(&e.emitter, &e.out) + yaml_emitter_set_unicode(&e.emitter, true) + return e +} + +func newEncoderWithWriter(w io.Writer) *encoder { + e := &encoder{} + yaml_emitter_initialize(&e.emitter) + yaml_emitter_set_output_writer(&e.emitter, w) + yaml_emitter_set_unicode(&e.emitter, true) + return e +} + +func (e *encoder) init() { + if e.doneInit { + return + } + if e.indent == 0 { + e.indent = 4 + } + e.emitter.best_indent = e.indent + yaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING) + e.emit() + e.doneInit = true +} + +func (e *encoder) finish() { + e.emitter.open_ended = false + yaml_stream_end_event_initialize(&e.event) + e.emit() +} + +func (e *encoder) destroy() { + yaml_emitter_delete(&e.emitter) +} + +func (e *encoder) emit() { + // This will internally delete the e.event value. + e.must(yaml_emitter_emit(&e.emitter, &e.event)) +} + +func (e *encoder) must(ok bool) { + if !ok { + msg := e.emitter.problem + if msg == "" { + msg = "unknown problem generating YAML content" + } + failf("%s", msg) + } +} + +func (e *encoder) marshalDoc(tag string, in reflect.Value) { + e.init() + var node *Node + if in.IsValid() { + node, _ = in.Interface().(*Node) + } + if node != nil && node.Kind == DocumentNode { + e.nodev(in) + } else { + yaml_document_start_event_initialize(&e.event, nil, nil, true) + e.emit() + e.marshal(tag, in) + yaml_document_end_event_initialize(&e.event, true) + e.emit() + } +} + +func (e *encoder) marshal(tag string, in reflect.Value) { + tag = shortTag(tag) + if !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() { + e.nilv() + return + } + iface := in.Interface() + switch value := iface.(type) { + case *Node: + e.nodev(in) + return + case Node: + if !in.CanAddr() { + var n = reflect.New(in.Type()).Elem() + n.Set(in) + in = n + } + e.nodev(in.Addr()) + return + case time.Time: + e.timev(tag, in) + return + case *time.Time: + e.timev(tag, in.Elem()) + return + case time.Duration: + e.stringv(tag, reflect.ValueOf(value.String())) + return + case Marshaler: + v, err := value.MarshalYAML() + if err != nil { + fail(err) + } + if v == nil { + e.nilv() + return + } + e.marshal(tag, reflect.ValueOf(v)) + return + case encoding.TextMarshaler: + text, err := value.MarshalText() + if err != nil { + fail(err) + } + in = reflect.ValueOf(string(text)) + case nil: + e.nilv() + return + } + switch in.Kind() { + case reflect.Interface: + e.marshal(tag, in.Elem()) + case reflect.Map: + e.mapv(tag, in) + case reflect.Ptr: + e.marshal(tag, in.Elem()) + case reflect.Struct: + e.structv(tag, in) + case reflect.Slice, reflect.Array: + e.slicev(tag, in) + case reflect.String: + e.stringv(tag, in) + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + e.intv(tag, in) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + e.uintv(tag, in) + case reflect.Float32, reflect.Float64: + e.floatv(tag, in) + case reflect.Bool: + e.boolv(tag, in) + default: + panic("cannot marshal type: " + in.Type().String()) + } +} + +func (e *encoder) mapv(tag string, in reflect.Value) { + e.mappingv(tag, func() { + keys := keyList(in.MapKeys()) + sort.Sort(keys) + for _, k := range keys { + e.marshal("", k) + e.marshal("", in.MapIndex(k)) + } + }) +} + +func (e *encoder) fieldByIndex(v reflect.Value, index []int) (field reflect.Value) { + for _, num := range index { + for { + if v.Kind() == reflect.Ptr { + if v.IsNil() { + return reflect.Value{} + } + v = v.Elem() + continue + } + break + } + v = v.Field(num) + } + return v +} + +func (e *encoder) structv(tag string, in reflect.Value) { + sinfo, err := getStructInfo(in.Type()) + if err != nil { + panic(err) + } + e.mappingv(tag, func() { + for _, info := range sinfo.FieldsList { + var value reflect.Value + if info.Inline == nil { + value = in.Field(info.Num) + } else { + value = e.fieldByIndex(in, info.Inline) + if !value.IsValid() { + continue + } + } + if info.OmitEmpty && isZero(value) { + continue + } + e.marshal("", reflect.ValueOf(info.Key)) + e.flow = info.Flow + e.marshal("", value) + } + if sinfo.InlineMap >= 0 { + m := in.Field(sinfo.InlineMap) + if m.Len() > 0 { + e.flow = false + keys := keyList(m.MapKeys()) + sort.Sort(keys) + for _, k := range keys { + if _, found := sinfo.FieldsMap[k.String()]; found { + panic(fmt.Sprintf("cannot have key %q in inlined map: conflicts with struct field", k.String())) + } + e.marshal("", k) + e.flow = false + e.marshal("", m.MapIndex(k)) + } + } + } + }) +} + +func (e *encoder) mappingv(tag string, f func()) { + implicit := tag == "" + style := yaml_BLOCK_MAPPING_STYLE + if e.flow { + e.flow = false + style = yaml_FLOW_MAPPING_STYLE + } + yaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style) + e.emit() + f() + yaml_mapping_end_event_initialize(&e.event) + e.emit() +} + +func (e *encoder) slicev(tag string, in reflect.Value) { + implicit := tag == "" + style := yaml_BLOCK_SEQUENCE_STYLE + if e.flow { + e.flow = false + style = yaml_FLOW_SEQUENCE_STYLE + } + e.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)) + e.emit() + n := in.Len() + for i := 0; i < n; i++ { + e.marshal("", in.Index(i)) + } + e.must(yaml_sequence_end_event_initialize(&e.event)) + e.emit() +} + +// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1. +// +// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported +// in YAML 1.2 and by this package, but these should be marshalled quoted for +// the time being for compatibility with other parsers. +func isBase60Float(s string) (result bool) { + // Fast path. + if s == "" { + return false + } + c := s[0] + if !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 { + return false + } + // Do the full match. + return base60float.MatchString(s) +} + +// From http://yaml.org/type/float.html, except the regular expression there +// is bogus. In practice parsers do not enforce the "\.[0-9_]*" suffix. +var base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\.[0-9_]*)?$`) + +// isOldBool returns whether s is bool notation as defined in YAML 1.1. +// +// We continue to force strings that YAML 1.1 would interpret as booleans to be +// rendered as quotes strings so that the marshalled output valid for YAML 1.1 +// parsing. +func isOldBool(s string) (result bool) { + switch s { + case "y", "Y", "yes", "Yes", "YES", "on", "On", "ON", + "n", "N", "no", "No", "NO", "off", "Off", "OFF": + return true + default: + return false + } +} + +func (e *encoder) stringv(tag string, in reflect.Value) { + var style yaml_scalar_style_t + s := in.String() + canUsePlain := true + switch { + case !utf8.ValidString(s): + if tag == binaryTag { + failf("explicitly tagged !!binary data must be base64-encoded") + } + if tag != "" { + failf("cannot marshal invalid UTF-8 data as %s", shortTag(tag)) + } + // It can't be encoded directly as YAML so use a binary tag + // and encode it as base64. + tag = binaryTag + s = encodeBase64(s) + case tag == "": + // Check to see if it would resolve to a specific + // tag when encoded unquoted. If it doesn't, + // there's no need to quote it. + rtag, _ := resolve("", s) + canUsePlain = rtag == strTag && !(isBase60Float(s) || isOldBool(s)) + } + // Note: it's possible for user code to emit invalid YAML + // if they explicitly specify a tag and a string containing + // text that's incompatible with that tag. + switch { + case strings.Contains(s, "\n"): + if e.flow { + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } else { + style = yaml_LITERAL_SCALAR_STYLE + } + case canUsePlain: + style = yaml_PLAIN_SCALAR_STYLE + default: + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + e.emitScalar(s, "", tag, style, nil, nil, nil, nil) +} + +func (e *encoder) boolv(tag string, in reflect.Value) { + var s string + if in.Bool() { + s = "true" + } else { + s = "false" + } + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) +} + +func (e *encoder) intv(tag string, in reflect.Value) { + s := strconv.FormatInt(in.Int(), 10) + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) +} + +func (e *encoder) uintv(tag string, in reflect.Value) { + s := strconv.FormatUint(in.Uint(), 10) + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) +} + +func (e *encoder) timev(tag string, in reflect.Value) { + t := in.Interface().(time.Time) + s := t.Format(time.RFC3339Nano) + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) +} + +func (e *encoder) floatv(tag string, in reflect.Value) { + // Issue #352: When formatting, use the precision of the underlying value + precision := 64 + if in.Kind() == reflect.Float32 { + precision = 32 + } + + s := strconv.FormatFloat(in.Float(), 'g', -1, precision) + switch s { + case "+Inf": + s = ".inf" + case "-Inf": + s = "-.inf" + case "NaN": + s = ".nan" + } + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) +} + +func (e *encoder) nilv() { + e.emitScalar("null", "", "", yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) +} + +func (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t, head, line, foot, tail []byte) { + // TODO Kill this function. Replace all initialize calls by their underlining Go literals. + implicit := tag == "" + if !implicit { + tag = longTag(tag) + } + e.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style)) + e.event.head_comment = head + e.event.line_comment = line + e.event.foot_comment = foot + e.event.tail_comment = tail + e.emit() +} + +func (e *encoder) nodev(in reflect.Value) { + e.node(in.Interface().(*Node), "") +} + +func (e *encoder) node(node *Node, tail string) { + // Zero nodes behave as nil. + if node.Kind == 0 && node.IsZero() { + e.nilv() + return + } + + // If the tag was not explicitly requested, and dropping it won't change the + // implicit tag of the value, don't include it in the presentation. + var tag = node.Tag + var stag = shortTag(tag) + var forceQuoting bool + if tag != "" && node.Style&TaggedStyle == 0 { + if node.Kind == ScalarNode { + if stag == strTag && node.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0 { + tag = "" + } else { + rtag, _ := resolve("", node.Value) + if rtag == stag { + tag = "" + } else if stag == strTag { + tag = "" + forceQuoting = true + } + } + } else { + var rtag string + switch node.Kind { + case MappingNode: + rtag = mapTag + case SequenceNode: + rtag = seqTag + } + if rtag == stag { + tag = "" + } + } + } + + switch node.Kind { + case DocumentNode: + yaml_document_start_event_initialize(&e.event, nil, nil, true) + e.event.head_comment = []byte(node.HeadComment) + e.emit() + for _, node := range node.Content { + e.node(node, "") + } + yaml_document_end_event_initialize(&e.event, true) + e.event.foot_comment = []byte(node.FootComment) + e.emit() + + case SequenceNode: + style := yaml_BLOCK_SEQUENCE_STYLE + if node.Style&FlowStyle != 0 { + style = yaml_FLOW_SEQUENCE_STYLE + } + e.must(yaml_sequence_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == "", style)) + e.event.head_comment = []byte(node.HeadComment) + e.emit() + for _, node := range node.Content { + e.node(node, "") + } + e.must(yaml_sequence_end_event_initialize(&e.event)) + e.event.line_comment = []byte(node.LineComment) + e.event.foot_comment = []byte(node.FootComment) + e.emit() + + case MappingNode: + style := yaml_BLOCK_MAPPING_STYLE + if node.Style&FlowStyle != 0 { + style = yaml_FLOW_MAPPING_STYLE + } + yaml_mapping_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == "", style) + e.event.tail_comment = []byte(tail) + e.event.head_comment = []byte(node.HeadComment) + e.emit() + + // The tail logic below moves the foot comment of prior keys to the following key, + // since the value for each key may be a nested structure and the foot needs to be + // processed only the entirety of the value is streamed. The last tail is processed + // with the mapping end event. + var tail string + for i := 0; i+1 < len(node.Content); i += 2 { + k := node.Content[i] + foot := k.FootComment + if foot != "" { + kopy := *k + kopy.FootComment = "" + k = &kopy + } + e.node(k, tail) + tail = foot + + v := node.Content[i+1] + e.node(v, "") + } + + yaml_mapping_end_event_initialize(&e.event) + e.event.tail_comment = []byte(tail) + e.event.line_comment = []byte(node.LineComment) + e.event.foot_comment = []byte(node.FootComment) + e.emit() + + case AliasNode: + yaml_alias_event_initialize(&e.event, []byte(node.Value)) + e.event.head_comment = []byte(node.HeadComment) + e.event.line_comment = []byte(node.LineComment) + e.event.foot_comment = []byte(node.FootComment) + e.emit() + + case ScalarNode: + value := node.Value + if !utf8.ValidString(value) { + if stag == binaryTag { + failf("explicitly tagged !!binary data must be base64-encoded") + } + if stag != "" { + failf("cannot marshal invalid UTF-8 data as %s", stag) + } + // It can't be encoded directly as YAML so use a binary tag + // and encode it as base64. + tag = binaryTag + value = encodeBase64(value) + } + + style := yaml_PLAIN_SCALAR_STYLE + switch { + case node.Style&DoubleQuotedStyle != 0: + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + case node.Style&SingleQuotedStyle != 0: + style = yaml_SINGLE_QUOTED_SCALAR_STYLE + case node.Style&LiteralStyle != 0: + style = yaml_LITERAL_SCALAR_STYLE + case node.Style&FoldedStyle != 0: + style = yaml_FOLDED_SCALAR_STYLE + case strings.Contains(value, "\n"): + style = yaml_LITERAL_SCALAR_STYLE + case forceQuoting: + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + + e.emitScalar(value, node.Anchor, tag, style, []byte(node.HeadComment), []byte(node.LineComment), []byte(node.FootComment), []byte(tail)) + default: + failf("cannot encode node with unknown kind %d", node.Kind) + } +} diff --git a/vendor/gopkg.in/yaml.v2/parserc.go b/vendor/gopkg.in/yaml.v3/parserc.go similarity index 85% rename from vendor/gopkg.in/yaml.v2/parserc.go rename to vendor/gopkg.in/yaml.v3/parserc.go index 81d05dfe5..ac66fccc0 100644 --- a/vendor/gopkg.in/yaml.v2/parserc.go +++ b/vendor/gopkg.in/yaml.v3/parserc.go @@ -1,3 +1,25 @@ +// +// Copyright (c) 2011-2019 Canonical Ltd +// Copyright (c) 2006-2010 Kirill Simonov +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +// of the Software, and to permit persons to whom the Software is furnished to do +// so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + package yaml import ( @@ -45,11 +67,46 @@ import ( // Peek the next token in the token queue. func peek_token(parser *yaml_parser_t) *yaml_token_t { if parser.token_available || yaml_parser_fetch_more_tokens(parser) { - return &parser.tokens[parser.tokens_head] + token := &parser.tokens[parser.tokens_head] + yaml_parser_unfold_comments(parser, token) + return token } return nil } +// yaml_parser_unfold_comments walks through the comments queue and joins all +// comments behind the position of the provided token into the respective +// top-level comment slices in the parser. +func yaml_parser_unfold_comments(parser *yaml_parser_t, token *yaml_token_t) { + for parser.comments_head < len(parser.comments) && token.start_mark.index >= parser.comments[parser.comments_head].token_mark.index { + comment := &parser.comments[parser.comments_head] + if len(comment.head) > 0 { + if token.typ == yaml_BLOCK_END_TOKEN { + // No heads on ends, so keep comment.head for a follow up token. + break + } + if len(parser.head_comment) > 0 { + parser.head_comment = append(parser.head_comment, '\n') + } + parser.head_comment = append(parser.head_comment, comment.head...) + } + if len(comment.foot) > 0 { + if len(parser.foot_comment) > 0 { + parser.foot_comment = append(parser.foot_comment, '\n') + } + parser.foot_comment = append(parser.foot_comment, comment.foot...) + } + if len(comment.line) > 0 { + if len(parser.line_comment) > 0 { + parser.line_comment = append(parser.line_comment, '\n') + } + parser.line_comment = append(parser.line_comment, comment.line...) + } + *comment = yaml_comment_t{} + parser.comments_head++ + } +} + // Remove the next token from the queue (must be called after peek_token). func skip_token(parser *yaml_parser_t) { parser.token_available = false @@ -224,10 +281,32 @@ func yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) parser.state = yaml_PARSE_BLOCK_NODE_STATE + var head_comment []byte + if len(parser.head_comment) > 0 { + // [Go] Scan the header comment backwards, and if an empty line is found, break + // the header so the part before the last empty line goes into the + // document header, while the bottom of it goes into a follow up event. + for i := len(parser.head_comment) - 1; i > 0; i-- { + if parser.head_comment[i] == '\n' { + if i == len(parser.head_comment)-1 { + head_comment = parser.head_comment[:i] + parser.head_comment = parser.head_comment[i+1:] + break + } else if parser.head_comment[i-1] == '\n' { + head_comment = parser.head_comment[:i-1] + parser.head_comment = parser.head_comment[i+1:] + break + } + } + } + } + *event = yaml_event_t{ typ: yaml_DOCUMENT_START_EVENT, start_mark: token.start_mark, end_mark: token.end_mark, + + head_comment: head_comment, } } else if token.typ != yaml_STREAM_END_TOKEN { @@ -284,6 +363,7 @@ func yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event if token == nil { return false } + if token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN || token.typ == yaml_DOCUMENT_START_TOKEN || @@ -327,9 +407,25 @@ func yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) end_mark: end_mark, implicit: implicit, } + yaml_parser_set_event_comments(parser, event) + if len(event.head_comment) > 0 && len(event.foot_comment) == 0 { + event.foot_comment = event.head_comment + event.head_comment = nil + } return true } +func yaml_parser_set_event_comments(parser *yaml_parser_t, event *yaml_event_t) { + event.head_comment = parser.head_comment + event.line_comment = parser.line_comment + event.foot_comment = parser.foot_comment + parser.head_comment = nil + parser.line_comment = nil + parser.foot_comment = nil + parser.tail_comment = nil + parser.stem_comment = nil +} + // Parse the productions: // block_node_or_indentless_sequence ::= // ALIAS @@ -373,6 +469,7 @@ func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, i end_mark: token.end_mark, anchor: token.value, } + yaml_parser_set_event_comments(parser, event) skip_token(parser) return true } @@ -486,6 +583,7 @@ func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, i quoted_implicit: quoted_implicit, style: yaml_style_t(token.style), } + yaml_parser_set_event_comments(parser, event) skip_token(parser) return true } @@ -502,6 +600,7 @@ func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, i implicit: implicit, style: yaml_style_t(yaml_FLOW_SEQUENCE_STYLE), } + yaml_parser_set_event_comments(parser, event) return true } if token.typ == yaml_FLOW_MAPPING_START_TOKEN { @@ -516,6 +615,7 @@ func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, i implicit: implicit, style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), } + yaml_parser_set_event_comments(parser, event) return true } if block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN { @@ -530,6 +630,10 @@ func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, i implicit: implicit, style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), } + if parser.stem_comment != nil { + event.head_comment = parser.stem_comment + parser.stem_comment = nil + } return true } if block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN { @@ -544,6 +648,10 @@ func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, i implicit: implicit, style: yaml_style_t(yaml_BLOCK_MAPPING_STYLE), } + if parser.stem_comment != nil { + event.head_comment = parser.stem_comment + parser.stem_comment = nil + } return true } if len(anchor) > 0 || len(tag) > 0 { @@ -590,7 +698,9 @@ func yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_e if token.typ == yaml_BLOCK_ENTRY_TOKEN { mark := token.end_mark + prior_head_len := len(parser.head_comment) skip_token(parser) + yaml_parser_split_stem_comment(parser, prior_head_len) token = peek_token(parser) if token == nil { return false @@ -636,7 +746,9 @@ func yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *y if token.typ == yaml_BLOCK_ENTRY_TOKEN { mark := token.end_mark + prior_head_len := len(parser.head_comment) skip_token(parser) + yaml_parser_split_stem_comment(parser, prior_head_len) token = peek_token(parser) if token == nil { return false @@ -662,6 +774,32 @@ func yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *y return true } +// Split stem comment from head comment. +// +// When a sequence or map is found under a sequence entry, the former head comment +// is assigned to the underlying sequence or map as a whole, not the individual +// sequence or map entry as would be expected otherwise. To handle this case the +// previous head comment is moved aside as the stem comment. +func yaml_parser_split_stem_comment(parser *yaml_parser_t, stem_len int) { + if stem_len == 0 { + return + } + + token := peek_token(parser) + if token.typ != yaml_BLOCK_SEQUENCE_START_TOKEN && token.typ != yaml_BLOCK_MAPPING_START_TOKEN { + return + } + + parser.stem_comment = parser.head_comment[:stem_len] + if len(parser.head_comment) == stem_len { + parser.head_comment = nil + } else { + // Copy suffix to prevent very strange bugs if someone ever appends + // further bytes to the prefix in the stem_comment slice above. + parser.head_comment = append([]byte(nil), parser.head_comment[stem_len+1:]...) + } +} + // Parse the productions: // block_mapping ::= BLOCK-MAPPING_START // ******************* @@ -684,6 +822,19 @@ func yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_even return false } + // [Go] A tail comment was left from the prior mapping value processed. Emit an event + // as it needs to be processed with that value and not the following key. + if len(parser.tail_comment) > 0 { + *event = yaml_event_t{ + typ: yaml_TAIL_COMMENT_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + foot_comment: parser.tail_comment, + } + parser.tail_comment = nil + return true + } + if token.typ == yaml_KEY_TOKEN { mark := token.end_mark skip_token(parser) @@ -709,6 +860,7 @@ func yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_even start_mark: token.start_mark, end_mark: token.end_mark, } + yaml_parser_set_event_comments(parser, event) skip_token(parser) return true } @@ -820,6 +972,7 @@ func yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_ev start_mark: token.start_mark, end_mark: token.end_mark, } + yaml_parser_set_event_comments(parser, event) skip_token(parser) return true @@ -959,6 +1112,7 @@ func yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event start_mark: token.start_mark, end_mark: token.end_mark, } + yaml_parser_set_event_comments(parser, event) skip_token(parser) return true } diff --git a/vendor/gopkg.in/yaml.v2/readerc.go b/vendor/gopkg.in/yaml.v3/readerc.go similarity index 91% rename from vendor/gopkg.in/yaml.v2/readerc.go rename to vendor/gopkg.in/yaml.v3/readerc.go index 7c1f5fac3..b7de0a89c 100644 --- a/vendor/gopkg.in/yaml.v2/readerc.go +++ b/vendor/gopkg.in/yaml.v3/readerc.go @@ -1,3 +1,25 @@ +// +// Copyright (c) 2011-2019 Canonical Ltd +// Copyright (c) 2006-2010 Kirill Simonov +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +// of the Software, and to permit persons to whom the Software is furnished to do +// so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + package yaml import ( @@ -95,7 +117,7 @@ func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool { // [Go] This function was changed to guarantee the requested length size at EOF. // The fact we need to do this is pretty awful, but the description above implies - // for that to be the case, and there are tests + // for that to be the case, and there are tests // If the EOF flag is set and the raw buffer is empty, do nothing. if parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) { diff --git a/vendor/gopkg.in/yaml.v2/resolve.go b/vendor/gopkg.in/yaml.v3/resolve.go similarity index 59% rename from vendor/gopkg.in/yaml.v2/resolve.go rename to vendor/gopkg.in/yaml.v3/resolve.go index 6c151db6f..64ae88805 100644 --- a/vendor/gopkg.in/yaml.v2/resolve.go +++ b/vendor/gopkg.in/yaml.v3/resolve.go @@ -1,3 +1,18 @@ +// +// Copyright (c) 2011-2019 Canonical Ltd +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package yaml import ( @@ -34,18 +49,14 @@ func init() { tag string l []string }{ - {true, yaml_BOOL_TAG, []string{"y", "Y", "yes", "Yes", "YES"}}, - {true, yaml_BOOL_TAG, []string{"true", "True", "TRUE"}}, - {true, yaml_BOOL_TAG, []string{"on", "On", "ON"}}, - {false, yaml_BOOL_TAG, []string{"n", "N", "no", "No", "NO"}}, - {false, yaml_BOOL_TAG, []string{"false", "False", "FALSE"}}, - {false, yaml_BOOL_TAG, []string{"off", "Off", "OFF"}}, - {nil, yaml_NULL_TAG, []string{"", "~", "null", "Null", "NULL"}}, - {math.NaN(), yaml_FLOAT_TAG, []string{".nan", ".NaN", ".NAN"}}, - {math.Inf(+1), yaml_FLOAT_TAG, []string{".inf", ".Inf", ".INF"}}, - {math.Inf(+1), yaml_FLOAT_TAG, []string{"+.inf", "+.Inf", "+.INF"}}, - {math.Inf(-1), yaml_FLOAT_TAG, []string{"-.inf", "-.Inf", "-.INF"}}, - {"<<", yaml_MERGE_TAG, []string{"<<"}}, + {true, boolTag, []string{"true", "True", "TRUE"}}, + {false, boolTag, []string{"false", "False", "FALSE"}}, + {nil, nullTag, []string{"", "~", "null", "Null", "NULL"}}, + {math.NaN(), floatTag, []string{".nan", ".NaN", ".NAN"}}, + {math.Inf(+1), floatTag, []string{".inf", ".Inf", ".INF"}}, + {math.Inf(+1), floatTag, []string{"+.inf", "+.Inf", "+.INF"}}, + {math.Inf(-1), floatTag, []string{"-.inf", "-.Inf", "-.INF"}}, + {"<<", mergeTag, []string{"<<"}}, } m := resolveMap @@ -56,11 +67,37 @@ func init() { } } +const ( + nullTag = "!!null" + boolTag = "!!bool" + strTag = "!!str" + intTag = "!!int" + floatTag = "!!float" + timestampTag = "!!timestamp" + seqTag = "!!seq" + mapTag = "!!map" + binaryTag = "!!binary" + mergeTag = "!!merge" +) + +var longTags = make(map[string]string) +var shortTags = make(map[string]string) + +func init() { + for _, stag := range []string{nullTag, boolTag, strTag, intTag, floatTag, timestampTag, seqTag, mapTag, binaryTag, mergeTag} { + ltag := longTag(stag) + longTags[stag] = ltag + shortTags[ltag] = stag + } +} + const longTagPrefix = "tag:yaml.org,2002:" func shortTag(tag string) string { - // TODO This can easily be made faster and produce less garbage. if strings.HasPrefix(tag, longTagPrefix) { + if stag, ok := shortTags[tag]; ok { + return stag + } return "!!" + tag[len(longTagPrefix):] } return tag @@ -68,6 +105,9 @@ func shortTag(tag string) string { func longTag(tag string) string { if strings.HasPrefix(tag, "!!") { + if ltag, ok := longTags[tag]; ok { + return ltag + } return longTagPrefix + tag[2:] } return tag @@ -75,32 +115,33 @@ func longTag(tag string) string { func resolvableTag(tag string) bool { switch tag { - case "", yaml_STR_TAG, yaml_BOOL_TAG, yaml_INT_TAG, yaml_FLOAT_TAG, yaml_NULL_TAG, yaml_TIMESTAMP_TAG: + case "", strTag, boolTag, intTag, floatTag, nullTag, timestampTag: return true } return false } -var yamlStyleFloat = regexp.MustCompile(`^[-+]?[0-9]*\.?[0-9]+([eE][-+][0-9]+)?$`) +var yamlStyleFloat = regexp.MustCompile(`^[-+]?(\.[0-9]+|[0-9]+(\.[0-9]*)?)([eE][-+]?[0-9]+)?$`) func resolve(tag string, in string) (rtag string, out interface{}) { + tag = shortTag(tag) if !resolvableTag(tag) { return tag, in } defer func() { switch tag { - case "", rtag, yaml_STR_TAG, yaml_BINARY_TAG: + case "", rtag, strTag, binaryTag: return - case yaml_FLOAT_TAG: - if rtag == yaml_INT_TAG { + case floatTag: + if rtag == intTag { switch v := out.(type) { case int64: - rtag = yaml_FLOAT_TAG + rtag = floatTag out = float64(v) return case int: - rtag = yaml_FLOAT_TAG + rtag = floatTag out = float64(v) return } @@ -115,7 +156,7 @@ func resolve(tag string, in string) (rtag string, out interface{}) { if in != "" { hint = resolveTable[in[0]] } - if hint != 0 && tag != yaml_STR_TAG && tag != yaml_BINARY_TAG { + if hint != 0 && tag != strTag && tag != binaryTag { // Handle things we can lookup in a map. if item, ok := resolveMap[in]; ok { return item.tag, item.value @@ -133,17 +174,17 @@ func resolve(tag string, in string) (rtag string, out interface{}) { // Not in the map, so maybe a normal float. floatv, err := strconv.ParseFloat(in, 64) if err == nil { - return yaml_FLOAT_TAG, floatv + return floatTag, floatv } case 'D', 'S': // Int, float, or timestamp. // Only try values as a timestamp if the value is unquoted or there's an explicit // !!timestamp tag. - if tag == "" || tag == yaml_TIMESTAMP_TAG { + if tag == "" || tag == timestampTag { t, ok := parseTimestamp(in) if ok { - return yaml_TIMESTAMP_TAG, t + return timestampTag, t } } @@ -151,49 +192,76 @@ func resolve(tag string, in string) (rtag string, out interface{}) { intv, err := strconv.ParseInt(plain, 0, 64) if err == nil { if intv == int64(int(intv)) { - return yaml_INT_TAG, int(intv) + return intTag, int(intv) } else { - return yaml_INT_TAG, intv + return intTag, intv } } uintv, err := strconv.ParseUint(plain, 0, 64) if err == nil { - return yaml_INT_TAG, uintv + return intTag, uintv } if yamlStyleFloat.MatchString(plain) { floatv, err := strconv.ParseFloat(plain, 64) if err == nil { - return yaml_FLOAT_TAG, floatv + return floatTag, floatv } } if strings.HasPrefix(plain, "0b") { intv, err := strconv.ParseInt(plain[2:], 2, 64) if err == nil { if intv == int64(int(intv)) { - return yaml_INT_TAG, int(intv) + return intTag, int(intv) } else { - return yaml_INT_TAG, intv + return intTag, intv } } uintv, err := strconv.ParseUint(plain[2:], 2, 64) if err == nil { - return yaml_INT_TAG, uintv + return intTag, uintv } } else if strings.HasPrefix(plain, "-0b") { - intv, err := strconv.ParseInt("-" + plain[3:], 2, 64) + intv, err := strconv.ParseInt("-"+plain[3:], 2, 64) + if err == nil { + if true || intv == int64(int(intv)) { + return intTag, int(intv) + } else { + return intTag, intv + } + } + } + // Octals as introduced in version 1.2 of the spec. + // Octals from the 1.1 spec, spelled as 0777, are still + // decoded by default in v3 as well for compatibility. + // May be dropped in v4 depending on how usage evolves. + if strings.HasPrefix(plain, "0o") { + intv, err := strconv.ParseInt(plain[2:], 8, 64) + if err == nil { + if intv == int64(int(intv)) { + return intTag, int(intv) + } else { + return intTag, intv + } + } + uintv, err := strconv.ParseUint(plain[2:], 8, 64) + if err == nil { + return intTag, uintv + } + } else if strings.HasPrefix(plain, "-0o") { + intv, err := strconv.ParseInt("-"+plain[3:], 8, 64) if err == nil { if true || intv == int64(int(intv)) { - return yaml_INT_TAG, int(intv) + return intTag, int(intv) } else { - return yaml_INT_TAG, intv + return intTag, intv } } } default: - panic("resolveTable item not yet handled: " + string(rune(hint)) + " (with " + in + ")") + panic("internal error: missing handler for resolver table: " + string(rune(hint)) + " (with " + in + ")") } } - return yaml_STR_TAG, in + return strTag, in } // encodeBase64 encodes s as base64 that is broken up into multiple lines diff --git a/vendor/gopkg.in/yaml.v2/scannerc.go b/vendor/gopkg.in/yaml.v3/scannerc.go similarity index 84% rename from vendor/gopkg.in/yaml.v2/scannerc.go rename to vendor/gopkg.in/yaml.v3/scannerc.go index 077fd1dd2..ca0070108 100644 --- a/vendor/gopkg.in/yaml.v2/scannerc.go +++ b/vendor/gopkg.in/yaml.v3/scannerc.go @@ -1,3 +1,25 @@ +// +// Copyright (c) 2011-2019 Canonical Ltd +// Copyright (c) 2006-2010 Kirill Simonov +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +// of the Software, and to permit persons to whom the Software is furnished to do +// so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + package yaml import ( @@ -489,6 +511,9 @@ func cache(parser *yaml_parser_t, length int) bool { // Advance the buffer pointer. func skip(parser *yaml_parser_t) { + if !is_blank(parser.buffer, parser.buffer_pos) { + parser.newlines = 0 + } parser.mark.index++ parser.mark.column++ parser.unread-- @@ -502,17 +527,22 @@ func skip_line(parser *yaml_parser_t) { parser.mark.line++ parser.unread -= 2 parser.buffer_pos += 2 + parser.newlines++ } else if is_break(parser.buffer, parser.buffer_pos) { parser.mark.index++ parser.mark.column = 0 parser.mark.line++ parser.unread-- parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) + parser.newlines++ } } // Copy a character to a string buffer and advance pointers. func read(parser *yaml_parser_t, s []byte) []byte { + if !is_blank(parser.buffer, parser.buffer_pos) { + parser.newlines = 0 + } w := width(parser.buffer[parser.buffer_pos]) if w == 0 { panic("invalid character sequence") @@ -564,6 +594,7 @@ func read_line(parser *yaml_parser_t, s []byte) []byte { parser.mark.column = 0 parser.mark.line++ parser.unread-- + parser.newlines++ return s } @@ -626,30 +657,21 @@ func trace(args ...interface{}) func() { func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool { // While we need more tokens to fetch, do it. for { - // Check if we really need to fetch more tokens. - need_more_tokens := false - - if parser.tokens_head == len(parser.tokens) { - // Queue is empty. - need_more_tokens = true - } else { - // Check if any potential simple key may occupy the head position. - if !yaml_parser_stale_simple_keys(parser) { + // [Go] The comment parsing logic requires a lookahead of two tokens + // so that foot comments may be parsed in time of associating them + // with the tokens that are parsed before them, and also for line + // comments to be transformed into head comments in some edge cases. + if parser.tokens_head < len(parser.tokens)-2 { + // If a potential simple key is at the head position, we need to fetch + // the next token to disambiguate it. + head_tok_idx, ok := parser.simple_keys_by_tok[parser.tokens_parsed] + if !ok { + break + } else if valid, ok := yaml_simple_key_is_valid(parser, &parser.simple_keys[head_tok_idx]); !ok { return false + } else if !valid { + break } - - for i := range parser.simple_keys { - simple_key := &parser.simple_keys[i] - if simple_key.possible && simple_key.token_number == parser.tokens_parsed { - need_more_tokens = true - break - } - } - } - - // We are finished. - if !need_more_tokens { - break } // Fetch the next token. if !yaml_parser_fetch_next_token(parser) { @@ -662,7 +684,7 @@ func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool { } // The dispatcher for token fetchers. -func yaml_parser_fetch_next_token(parser *yaml_parser_t) bool { +func yaml_parser_fetch_next_token(parser *yaml_parser_t) (ok bool) { // Ensure that the buffer is initialized. if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { return false @@ -673,18 +695,19 @@ func yaml_parser_fetch_next_token(parser *yaml_parser_t) bool { return yaml_parser_fetch_stream_start(parser) } + scan_mark := parser.mark + // Eat whitespaces and comments until we reach the next token. if !yaml_parser_scan_to_next_token(parser) { return false } - // Remove obsolete potential simple keys. - if !yaml_parser_stale_simple_keys(parser) { - return false - } + // [Go] While unrolling indents, transform the head comments of prior + // indentation levels observed after scan_start into foot comments at + // the respective indexes. // Check the indentation level against the current column. - if !yaml_parser_unroll_indent(parser, parser.mark.column) { + if !yaml_parser_unroll_indent(parser, parser.mark.column, scan_mark) { return false } @@ -717,6 +740,26 @@ func yaml_parser_fetch_next_token(parser *yaml_parser_t) bool { return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN) } + comment_mark := parser.mark + if len(parser.tokens) > 0 && (parser.flow_level == 0 && buf[pos] == ':' || parser.flow_level > 0 && buf[pos] == ',') { + // Associate any following comments with the prior token. + comment_mark = parser.tokens[len(parser.tokens)-1].start_mark + } + defer func() { + if !ok { + return + } + if len(parser.tokens) > 0 && parser.tokens[len(parser.tokens)-1].typ == yaml_BLOCK_ENTRY_TOKEN { + // Sequence indicators alone have no line comments. It becomes + // a head comment for whatever follows. + return + } + if !yaml_parser_scan_line_comment(parser, comment_mark) { + ok = false + return + } + }() + // Is it the flow sequence start indicator? if buf[pos] == '[' { return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN) @@ -810,7 +853,7 @@ func yaml_parser_fetch_next_token(parser *yaml_parser_t) bool { // if it is followed by a non-space character. // // The last rule is more restrictive than the specification requires. - // [Go] Make this logic more reasonable. + // [Go] TODO Make this logic more reasonable. //switch parser.buffer[parser.buffer_pos] { //case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '"', '\'', '@', '%', '-', '`': //} @@ -837,29 +880,30 @@ func yaml_parser_fetch_next_token(parser *yaml_parser_t) bool { "found character that cannot start any token") } -// Check the list of potential simple keys and remove the positions that -// cannot contain simple keys anymore. -func yaml_parser_stale_simple_keys(parser *yaml_parser_t) bool { - // Check for a potential simple key for each flow level. - for i := range parser.simple_keys { - simple_key := &parser.simple_keys[i] +func yaml_simple_key_is_valid(parser *yaml_parser_t, simple_key *yaml_simple_key_t) (valid, ok bool) { + if !simple_key.possible { + return false, true + } - // The specification requires that a simple key - // - // - is limited to a single line, - // - is shorter than 1024 characters. - if simple_key.possible && (simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index) { - - // Check if the potential simple key to be removed is required. - if simple_key.required { - return yaml_parser_set_scanner_error(parser, - "while scanning a simple key", simple_key.mark, - "could not find expected ':'") - } - simple_key.possible = false + // The 1.2 specification says: + // + // "If the ? indicator is omitted, parsing needs to see past the + // implicit key to recognize it as such. To limit the amount of + // lookahead required, the “:” indicator must appear at most 1024 + // Unicode characters beyond the start of the key. In addition, the key + // is restricted to a single line." + // + if simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index { + // Check if the potential simple key to be removed is required. + if simple_key.required { + return false, yaml_parser_set_scanner_error(parser, + "while scanning a simple key", simple_key.mark, + "could not find expected ':'") } + simple_key.possible = false + return false, true } - return true + return true, true } // Check if a simple key may start at the current position and add it if @@ -879,13 +923,14 @@ func yaml_parser_save_simple_key(parser *yaml_parser_t) bool { possible: true, required: required, token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), + mark: parser.mark, } - simple_key.mark = parser.mark if !yaml_parser_remove_simple_key(parser) { return false } parser.simple_keys[len(parser.simple_keys)-1] = simple_key + parser.simple_keys_by_tok[simple_key.token_number] = len(parser.simple_keys) - 1 } return true } @@ -900,19 +945,33 @@ func yaml_parser_remove_simple_key(parser *yaml_parser_t) bool { "while scanning a simple key", parser.simple_keys[i].mark, "could not find expected ':'") } + // Remove the key from the stack. + parser.simple_keys[i].possible = false + delete(parser.simple_keys_by_tok, parser.simple_keys[i].token_number) } - // Remove the key from the stack. - parser.simple_keys[i].possible = false return true } +// max_flow_level limits the flow_level +const max_flow_level = 10000 + // Increase the flow level and resize the simple key list if needed. func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool { // Reset the simple key on the next level. - parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) + parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{ + possible: false, + required: false, + token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), + mark: parser.mark, + }) // Increase the flow level. parser.flow_level++ + if parser.flow_level > max_flow_level { + return yaml_parser_set_scanner_error(parser, + "while increasing flow level", parser.simple_keys[len(parser.simple_keys)-1].mark, + fmt.Sprintf("exceeded max depth of %d", max_flow_level)) + } return true } @@ -920,11 +979,16 @@ func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool { func yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool { if parser.flow_level > 0 { parser.flow_level-- - parser.simple_keys = parser.simple_keys[:len(parser.simple_keys)-1] + last := len(parser.simple_keys) - 1 + delete(parser.simple_keys_by_tok, parser.simple_keys[last].token_number) + parser.simple_keys = parser.simple_keys[:last] } return true } +// max_indents limits the indents stack size +const max_indents = 10000 + // Push the current indentation level to the stack and set the new level // the current column is greater than the indentation level. In this case, // append or insert the specified token into the token queue. @@ -939,6 +1003,11 @@ func yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml // indentation level. parser.indents = append(parser.indents, parser.indent) parser.indent = column + if len(parser.indents) > max_indents { + return yaml_parser_set_scanner_error(parser, + "while increasing indent level", parser.simple_keys[len(parser.simple_keys)-1].mark, + fmt.Sprintf("exceeded max depth of %d", max_indents)) + } // Create a token and insert it into the queue. token := yaml_token_t{ @@ -957,19 +1026,49 @@ func yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml // Pop indentation levels from the indents stack until the current level // becomes less or equal to the column. For each indentation level, append // the BLOCK-END token. -func yaml_parser_unroll_indent(parser *yaml_parser_t, column int) bool { +func yaml_parser_unroll_indent(parser *yaml_parser_t, column int, scan_mark yaml_mark_t) bool { // In the flow context, do nothing. if parser.flow_level > 0 { return true } + block_mark := scan_mark + block_mark.index-- + // Loop through the indentation levels in the stack. for parser.indent > column { + + // [Go] Reposition the end token before potential following + // foot comments of parent blocks. For that, search + // backwards for recent comments that were at the same + // indent as the block that is ending now. + stop_index := block_mark.index + for i := len(parser.comments) - 1; i >= 0; i-- { + comment := &parser.comments[i] + + if comment.end_mark.index < stop_index { + // Don't go back beyond the start of the comment/whitespace scan, unless column < 0. + // If requested indent column is < 0, then the document is over and everything else + // is a foot anyway. + break + } + if comment.start_mark.column == parser.indent+1 { + // This is a good match. But maybe there's a former comment + // at that same indent level, so keep searching. + block_mark = comment.start_mark + } + + // While the end of the former comment matches with + // the start of the following one, we know there's + // nothing in between and scanning is still safe. + stop_index = comment.scan_mark.index + } + // Create a token and append it to the queue. token := yaml_token_t{ typ: yaml_BLOCK_END_TOKEN, - start_mark: parser.mark, - end_mark: parser.mark, + start_mark: block_mark, + end_mark: block_mark, } yaml_insert_token(parser, -1, &token) @@ -989,6 +1088,8 @@ func yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool { // Initialize the simple key stack. parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) + parser.simple_keys_by_tok = make(map[int]int) + // A simple key is allowed at the beginning of the stream. parser.simple_key_allowed = true @@ -1016,7 +1117,7 @@ func yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool { } // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1) { + if !yaml_parser_unroll_indent(parser, -1, parser.mark) { return false } @@ -1040,7 +1141,7 @@ func yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool { // Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token. func yaml_parser_fetch_directive(parser *yaml_parser_t) bool { // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1) { + if !yaml_parser_unroll_indent(parser, -1, parser.mark) { return false } @@ -1064,7 +1165,7 @@ func yaml_parser_fetch_directive(parser *yaml_parser_t) bool { // Produce the DOCUMENT-START or DOCUMENT-END token. func yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool { // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1) { + if !yaml_parser_unroll_indent(parser, -1, parser.mark) { return false } @@ -1097,6 +1198,7 @@ func yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_ // Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token. func yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool { + // The indicators '[' and '{' may start a simple key. if !yaml_parser_save_simple_key(parser) { return false @@ -1270,7 +1372,11 @@ func yaml_parser_fetch_value(parser *yaml_parser_t) bool { simple_key := &parser.simple_keys[len(parser.simple_keys)-1] // Have we found a simple key? - if simple_key.possible { + if valid, ok := yaml_simple_key_is_valid(parser, simple_key); !ok { + return false + + } else if valid { + // Create the KEY token and insert it into the queue. token := yaml_token_t{ typ: yaml_KEY_TOKEN, @@ -1288,6 +1394,7 @@ func yaml_parser_fetch_value(parser *yaml_parser_t) bool { // Remove the simple key. simple_key.possible = false + delete(parser.simple_keys_by_tok, simple_key.token_number) // A simple key cannot follow another simple key. parser.simple_key_allowed = false @@ -1427,6 +1534,8 @@ func yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool { // Eat whitespaces and comments until the next token is found. func yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool { + scan_mark := parser.mark + // Until the next token is not found. for { // Allow the BOM mark to start a line. @@ -1453,13 +1562,33 @@ func yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool { } } + // Check if we just had a line comment under a sequence entry that + // looks more like a header to the following content. Similar to this: + // + // - # The comment + // - Some data + // + // If so, transform the line comment to a head comment and reposition. + if len(parser.comments) > 0 && len(parser.tokens) > 1 { + tokenA := parser.tokens[len(parser.tokens)-2] + tokenB := parser.tokens[len(parser.tokens)-1] + comment := &parser.comments[len(parser.comments)-1] + if tokenA.typ == yaml_BLOCK_SEQUENCE_START_TOKEN && tokenB.typ == yaml_BLOCK_ENTRY_TOKEN && len(comment.line) > 0 && !is_break(parser.buffer, parser.buffer_pos) { + // If it was in the prior line, reposition so it becomes a + // header of the follow up token. Otherwise, keep it in place + // so it becomes a header of the former. + comment.head = comment.line + comment.line = nil + if comment.start_mark.line == parser.mark.line-1 { + comment.token_mark = parser.mark + } + } + } + // Eat a comment until a line break. if parser.buffer[parser.buffer_pos] == '#' { - for !is_breakz(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } + if !yaml_parser_scan_comments(parser, scan_mark) { + return false } } @@ -1557,6 +1686,10 @@ func yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool } if parser.buffer[parser.buffer_pos] == '#' { + // [Go] Discard this inline comment for the time being. + //if !yaml_parser_scan_line_comment(parser, start_mark) { + // return false + //} for !is_breakz(parser.buffer, parser.buffer_pos) { skip(parser) if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { @@ -1972,7 +2105,7 @@ func yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte // '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&', // '=', '+', '$', ',', '.', '!', '~', '*', '\'', '(', ')', '[', ']', // '%'. - // [Go] Convert this into more reasonable logic. + // [Go] TODO Convert this into more reasonable logic. for is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' || parser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' || @@ -2127,6 +2260,9 @@ func yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, l } } if parser.buffer[parser.buffer_pos] == '#' { + if !yaml_parser_scan_line_comment(parser, start_mark) { + return false + } for !is_breakz(parser.buffer, parser.buffer_pos) { skip(parser) if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { @@ -2694,3 +2830,209 @@ func yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) b } return true } + +func yaml_parser_scan_line_comment(parser *yaml_parser_t, token_mark yaml_mark_t) bool { + if parser.newlines > 0 { + return true + } + + var start_mark yaml_mark_t + var text []byte + + for peek := 0; peek < 512; peek++ { + if parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) { + break + } + if is_blank(parser.buffer, parser.buffer_pos+peek) { + continue + } + if parser.buffer[parser.buffer_pos+peek] == '#' { + seen := parser.mark.index+peek + for { + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if is_breakz(parser.buffer, parser.buffer_pos) { + if parser.mark.index >= seen { + break + } + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + skip_line(parser) + } else if parser.mark.index >= seen { + if len(text) == 0 { + start_mark = parser.mark + } + text = read(parser, text) + } else { + skip(parser) + } + } + } + break + } + if len(text) > 0 { + parser.comments = append(parser.comments, yaml_comment_t{ + token_mark: token_mark, + start_mark: start_mark, + line: text, + }) + } + return true +} + +func yaml_parser_scan_comments(parser *yaml_parser_t, scan_mark yaml_mark_t) bool { + token := parser.tokens[len(parser.tokens)-1] + + if token.typ == yaml_FLOW_ENTRY_TOKEN && len(parser.tokens) > 1 { + token = parser.tokens[len(parser.tokens)-2] + } + + var token_mark = token.start_mark + var start_mark yaml_mark_t + var next_indent = parser.indent + if next_indent < 0 { + next_indent = 0 + } + + var recent_empty = false + var first_empty = parser.newlines <= 1 + + var line = parser.mark.line + var column = parser.mark.column + + var text []byte + + // The foot line is the place where a comment must start to + // still be considered as a foot of the prior content. + // If there's some content in the currently parsed line, then + // the foot is the line below it. + var foot_line = -1 + if scan_mark.line > 0 { + foot_line = parser.mark.line-parser.newlines+1 + if parser.newlines == 0 && parser.mark.column > 1 { + foot_line++ + } + } + + var peek = 0 + for ; peek < 512; peek++ { + if parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) { + break + } + column++ + if is_blank(parser.buffer, parser.buffer_pos+peek) { + continue + } + c := parser.buffer[parser.buffer_pos+peek] + var close_flow = parser.flow_level > 0 && (c == ']' || c == '}') + if close_flow || is_breakz(parser.buffer, parser.buffer_pos+peek) { + // Got line break or terminator. + if close_flow || !recent_empty { + if close_flow || first_empty && (start_mark.line == foot_line && token.typ != yaml_VALUE_TOKEN || start_mark.column-1 < next_indent) { + // This is the first empty line and there were no empty lines before, + // so this initial part of the comment is a foot of the prior token + // instead of being a head for the following one. Split it up. + // Alternatively, this might also be the last comment inside a flow + // scope, so it must be a footer. + if len(text) > 0 { + if start_mark.column-1 < next_indent { + // If dedented it's unrelated to the prior token. + token_mark = start_mark + } + parser.comments = append(parser.comments, yaml_comment_t{ + scan_mark: scan_mark, + token_mark: token_mark, + start_mark: start_mark, + end_mark: yaml_mark_t{parser.mark.index + peek, line, column}, + foot: text, + }) + scan_mark = yaml_mark_t{parser.mark.index + peek, line, column} + token_mark = scan_mark + text = nil + } + } else { + if len(text) > 0 && parser.buffer[parser.buffer_pos+peek] != 0 { + text = append(text, '\n') + } + } + } + if !is_break(parser.buffer, parser.buffer_pos+peek) { + break + } + first_empty = false + recent_empty = true + column = 0 + line++ + continue + } + + if len(text) > 0 && (close_flow || column-1 < next_indent && column != start_mark.column) { + // The comment at the different indentation is a foot of the + // preceding data rather than a head of the upcoming one. + parser.comments = append(parser.comments, yaml_comment_t{ + scan_mark: scan_mark, + token_mark: token_mark, + start_mark: start_mark, + end_mark: yaml_mark_t{parser.mark.index + peek, line, column}, + foot: text, + }) + scan_mark = yaml_mark_t{parser.mark.index + peek, line, column} + token_mark = scan_mark + text = nil + } + + if parser.buffer[parser.buffer_pos+peek] != '#' { + break + } + + if len(text) == 0 { + start_mark = yaml_mark_t{parser.mark.index + peek, line, column} + } else { + text = append(text, '\n') + } + + recent_empty = false + + // Consume until after the consumed comment line. + seen := parser.mark.index+peek + for { + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if is_breakz(parser.buffer, parser.buffer_pos) { + if parser.mark.index >= seen { + break + } + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + skip_line(parser) + } else if parser.mark.index >= seen { + text = read(parser, text) + } else { + skip(parser) + } + } + + peek = 0 + column = 0 + line = parser.mark.line + next_indent = parser.indent + if next_indent < 0 { + next_indent = 0 + } + } + + if len(text) > 0 { + parser.comments = append(parser.comments, yaml_comment_t{ + scan_mark: scan_mark, + token_mark: start_mark, + start_mark: start_mark, + end_mark: yaml_mark_t{parser.mark.index + peek - 1, line, column}, + head: text, + }) + } + return true +} diff --git a/vendor/gopkg.in/yaml.v2/sorter.go b/vendor/gopkg.in/yaml.v3/sorter.go similarity index 76% rename from vendor/gopkg.in/yaml.v2/sorter.go rename to vendor/gopkg.in/yaml.v3/sorter.go index 4c45e660a..9210ece7e 100644 --- a/vendor/gopkg.in/yaml.v2/sorter.go +++ b/vendor/gopkg.in/yaml.v3/sorter.go @@ -1,3 +1,18 @@ +// +// Copyright (c) 2011-2019 Canonical Ltd +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package yaml import ( @@ -37,8 +52,10 @@ func (l keyList) Less(i, j int) bool { return ak < bk } ar, br := []rune(a.String()), []rune(b.String()) + digits := false for i := 0; i < len(ar) && i < len(br); i++ { if ar[i] == br[i] { + digits = unicode.IsDigit(ar[i]) continue } al := unicode.IsLetter(ar[i]) @@ -47,12 +64,16 @@ func (l keyList) Less(i, j int) bool { return ar[i] < br[i] } if al || bl { - return bl + if digits { + return al + } else { + return bl + } } var ai, bi int var an, bn int64 if ar[i] == '0' || br[i] == '0' { - for j := i-1; j >= 0 && unicode.IsDigit(ar[j]); j-- { + for j := i - 1; j >= 0 && unicode.IsDigit(ar[j]); j-- { if ar[j] != '0' { an = 1 bn = 1 diff --git a/vendor/gopkg.in/yaml.v3/writerc.go b/vendor/gopkg.in/yaml.v3/writerc.go new file mode 100644 index 000000000..b8a116bf9 --- /dev/null +++ b/vendor/gopkg.in/yaml.v3/writerc.go @@ -0,0 +1,48 @@ +// +// Copyright (c) 2011-2019 Canonical Ltd +// Copyright (c) 2006-2010 Kirill Simonov +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +// of the Software, and to permit persons to whom the Software is furnished to do +// so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +package yaml + +// Set the writer error and return false. +func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool { + emitter.error = yaml_WRITER_ERROR + emitter.problem = problem + return false +} + +// Flush the output buffer. +func yaml_emitter_flush(emitter *yaml_emitter_t) bool { + if emitter.write_handler == nil { + panic("write handler not set") + } + + // Check if the buffer is empty. + if emitter.buffer_pos == 0 { + return true + } + + if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil { + return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error()) + } + emitter.buffer_pos = 0 + return true +} diff --git a/vendor/gopkg.in/yaml.v2/yaml.go b/vendor/gopkg.in/yaml.v3/yaml.go similarity index 55% rename from vendor/gopkg.in/yaml.v2/yaml.go rename to vendor/gopkg.in/yaml.v3/yaml.go index de85aa4cd..8cec6da48 100644 --- a/vendor/gopkg.in/yaml.v2/yaml.go +++ b/vendor/gopkg.in/yaml.v3/yaml.go @@ -1,3 +1,18 @@ +// +// Copyright (c) 2011-2019 Canonical Ltd +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + // Package yaml implements YAML support for the Go language. // // Source code and other details for the project are available at GitHub: @@ -13,23 +28,16 @@ import ( "reflect" "strings" "sync" + "unicode/utf8" ) -// MapSlice encodes and decodes as a YAML map. -// The order of keys is preserved when encoding and decoding. -type MapSlice []MapItem - -// MapItem is an item in a MapSlice. -type MapItem struct { - Key, Value interface{} -} - // The Unmarshaler interface may be implemented by types to customize their -// behavior when being unmarshaled from a YAML document. The UnmarshalYAML -// method receives a function that may be called to unmarshal the original -// YAML value into a field or variable. It is safe to call the unmarshal -// function parameter more than once if necessary. +// behavior when being unmarshaled from a YAML document. type Unmarshaler interface { + UnmarshalYAML(value *Node) error +} + +type obsoleteUnmarshaler interface { UnmarshalYAML(unmarshal func(interface{}) error) error } @@ -81,18 +89,10 @@ func Unmarshal(in []byte, out interface{}) (err error) { return unmarshal(in, out, false) } -// UnmarshalStrict is like Unmarshal except that any fields that are found -// in the data that do not have corresponding struct members, or mapping -// keys that are duplicates, will result in -// an error. -func UnmarshalStrict(in []byte, out interface{}) (err error) { - return unmarshal(in, out, true) -} - -// A Decorder reads and decodes YAML values from an input stream. +// A Decoder reads and decodes YAML values from an input stream. type Decoder struct { - strict bool - parser *parser + parser *parser + knownFields bool } // NewDecoder returns a new decoder that reads from r. @@ -105,10 +105,10 @@ func NewDecoder(r io.Reader) *Decoder { } } -// SetStrict sets whether strict decoding behaviour is enabled when -// decoding items in the data (see UnmarshalStrict). By default, decoding is not strict. -func (dec *Decoder) SetStrict(strict bool) { - dec.strict = strict +// KnownFields ensures that the keys in decoded mappings to +// exist as fields in the struct being decoded into. +func (dec *Decoder) KnownFields(enable bool) { + dec.knownFields = enable } // Decode reads the next YAML-encoded value from its input @@ -117,7 +117,8 @@ func (dec *Decoder) SetStrict(strict bool) { // See the documentation for Unmarshal for details about the // conversion of YAML into a Go value. func (dec *Decoder) Decode(v interface{}) (err error) { - d := newDecoder(dec.strict) + d := newDecoder() + d.knownFields = dec.knownFields defer handleErr(&err) node := dec.parser.parse() if node == nil { @@ -134,9 +135,27 @@ func (dec *Decoder) Decode(v interface{}) (err error) { return nil } +// Decode decodes the node and stores its data into the value pointed to by v. +// +// See the documentation for Unmarshal for details about the +// conversion of YAML into a Go value. +func (n *Node) Decode(v interface{}) (err error) { + d := newDecoder() + defer handleErr(&err) + out := reflect.ValueOf(v) + if out.Kind() == reflect.Ptr && !out.IsNil() { + out = out.Elem() + } + d.unmarshal(n, out) + if len(d.terrors) > 0 { + return &TypeError{d.terrors} + } + return nil +} + func unmarshal(in []byte, out interface{}, strict bool) (err error) { defer handleErr(&err) - d := newDecoder(strict) + d := newDecoder() p := newParser(in) defer p.destroy() node := p.parse() @@ -175,7 +194,7 @@ func unmarshal(in []byte, out interface{}, strict bool) (err error) { // Zero valued structs will be omitted if all their public // fields are zero, unless they implement an IsZero // method (see the IsZeroer interface type), in which -// case the field will be included if that method returns true. +// case the field will be excluded if IsZero returns true. // // flow Marshal using a flow style (useful for structs, // sequences and maps). @@ -233,6 +252,32 @@ func (e *Encoder) Encode(v interface{}) (err error) { return nil } +// Encode encodes value v and stores its representation in n. +// +// See the documentation for Marshal for details about the +// conversion of Go values into YAML. +func (n *Node) Encode(v interface{}) (err error) { + defer handleErr(&err) + e := newEncoder() + defer e.destroy() + e.marshalDoc("", reflect.ValueOf(v)) + e.finish() + p := newParser(e.out) + p.textless = true + defer p.destroy() + doc := p.parse() + *n = *doc.Content[0] + return nil +} + +// SetIndent changes the used indentation used when encoding. +func (e *Encoder) SetIndent(spaces int) { + if spaces < 0 { + panic("yaml: cannot indent to a negative number of spaces") + } + e.encoder.indent = spaces +} + // Close closes the encoder by writing any remaining data. // It does not write a stream terminating string "...". func (e *Encoder) Close() (err error) { @@ -275,6 +320,168 @@ func (e *TypeError) Error() string { return fmt.Sprintf("yaml: unmarshal errors:\n %s", strings.Join(e.Errors, "\n ")) } +type Kind uint32 + +const ( + DocumentNode Kind = 1 << iota + SequenceNode + MappingNode + ScalarNode + AliasNode +) + +type Style uint32 + +const ( + TaggedStyle Style = 1 << iota + DoubleQuotedStyle + SingleQuotedStyle + LiteralStyle + FoldedStyle + FlowStyle +) + +// Node represents an element in the YAML document hierarchy. While documents +// are typically encoded and decoded into higher level types, such as structs +// and maps, Node is an intermediate representation that allows detailed +// control over the content being decoded or encoded. +// +// It's worth noting that although Node offers access into details such as +// line numbers, colums, and comments, the content when re-encoded will not +// have its original textual representation preserved. An effort is made to +// render the data plesantly, and to preserve comments near the data they +// describe, though. +// +// Values that make use of the Node type interact with the yaml package in the +// same way any other type would do, by encoding and decoding yaml data +// directly or indirectly into them. +// +// For example: +// +// var person struct { +// Name string +// Address yaml.Node +// } +// err := yaml.Unmarshal(data, &person) +// +// Or by itself: +// +// var person Node +// err := yaml.Unmarshal(data, &person) +// +type Node struct { + // Kind defines whether the node is a document, a mapping, a sequence, + // a scalar value, or an alias to another node. The specific data type of + // scalar nodes may be obtained via the ShortTag and LongTag methods. + Kind Kind + + // Style allows customizing the apperance of the node in the tree. + Style Style + + // Tag holds the YAML tag defining the data type for the value. + // When decoding, this field will always be set to the resolved tag, + // even when it wasn't explicitly provided in the YAML content. + // When encoding, if this field is unset the value type will be + // implied from the node properties, and if it is set, it will only + // be serialized into the representation if TaggedStyle is used or + // the implicit tag diverges from the provided one. + Tag string + + // Value holds the unescaped and unquoted represenation of the value. + Value string + + // Anchor holds the anchor name for this node, which allows aliases to point to it. + Anchor string + + // Alias holds the node that this alias points to. Only valid when Kind is AliasNode. + Alias *Node + + // Content holds contained nodes for documents, mappings, and sequences. + Content []*Node + + // HeadComment holds any comments in the lines preceding the node and + // not separated by an empty line. + HeadComment string + + // LineComment holds any comments at the end of the line where the node is in. + LineComment string + + // FootComment holds any comments following the node and before empty lines. + FootComment string + + // Line and Column hold the node position in the decoded YAML text. + // These fields are not respected when encoding the node. + Line int + Column int +} + +// IsZero returns whether the node has all of its fields unset. +func (n *Node) IsZero() bool { + return n.Kind == 0 && n.Style == 0 && n.Tag == "" && n.Value == "" && n.Anchor == "" && n.Alias == nil && n.Content == nil && + n.HeadComment == "" && n.LineComment == "" && n.FootComment == "" && n.Line == 0 && n.Column == 0 +} + + +// LongTag returns the long form of the tag that indicates the data type for +// the node. If the Tag field isn't explicitly defined, one will be computed +// based on the node properties. +func (n *Node) LongTag() string { + return longTag(n.ShortTag()) +} + +// ShortTag returns the short form of the YAML tag that indicates data type for +// the node. If the Tag field isn't explicitly defined, one will be computed +// based on the node properties. +func (n *Node) ShortTag() string { + if n.indicatedString() { + return strTag + } + if n.Tag == "" || n.Tag == "!" { + switch n.Kind { + case MappingNode: + return mapTag + case SequenceNode: + return seqTag + case AliasNode: + if n.Alias != nil { + return n.Alias.ShortTag() + } + case ScalarNode: + tag, _ := resolve("", n.Value) + return tag + case 0: + // Special case to make the zero value convenient. + if n.IsZero() { + return nullTag + } + } + return "" + } + return shortTag(n.Tag) +} + +func (n *Node) indicatedString() bool { + return n.Kind == ScalarNode && + (shortTag(n.Tag) == strTag || + (n.Tag == "" || n.Tag == "!") && n.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0) +} + +// SetString is a convenience function that sets the node to a string value +// and defines its style in a pleasant way depending on its content. +func (n *Node) SetString(s string) { + n.Kind = ScalarNode + if utf8.ValidString(s) { + n.Value = s + n.Tag = strTag + } else { + n.Value = encodeBase64(s) + n.Tag = binaryTag + } + if strings.Contains(n.Value, "\n") { + n.Style = LiteralStyle + } +} + // -------------------------------------------------------------------------- // Maintain a mapping of keys to structure field indexes @@ -289,6 +496,10 @@ type structInfo struct { // InlineMap is the number of the field in the struct that // contains an ,inline map, or -1 if there's none. InlineMap int + + // InlineUnmarshalers holds indexes to inlined fields that + // contain unmarshaler values. + InlineUnmarshalers [][]int } type fieldInfo struct { @@ -306,6 +517,12 @@ type fieldInfo struct { var structMap = make(map[reflect.Type]*structInfo) var fieldMapMutex sync.RWMutex +var unmarshalerType reflect.Type + +func init() { + var v Unmarshaler + unmarshalerType = reflect.ValueOf(&v).Elem().Type() +} func getStructInfo(st reflect.Type) (*structInfo, error) { fieldMapMutex.RLock() @@ -319,6 +536,7 @@ func getStructInfo(st reflect.Type) (*structInfo, error) { fieldsMap := make(map[string]fieldInfo) fieldsList := make([]fieldInfo, 0, n) inlineMap := -1 + inlineUnmarshalers := [][]int(nil) for i := 0; i != n; i++ { field := st.Field(i) if field.PkgPath != "" && !field.Anonymous { @@ -347,7 +565,7 @@ func getStructInfo(st reflect.Type) (*structInfo, error) { case "inline": inline = true default: - return nil, errors.New(fmt.Sprintf("Unsupported flag %q in tag %q of type %s", flag, tag, st)) + return nil, errors.New(fmt.Sprintf("unsupported flag %q in tag %q of type %s", flag, tag, st)) } } tag = fields[0] @@ -357,34 +575,47 @@ func getStructInfo(st reflect.Type) (*structInfo, error) { switch field.Type.Kind() { case reflect.Map: if inlineMap >= 0 { - return nil, errors.New("Multiple ,inline maps in struct " + st.String()) + return nil, errors.New("multiple ,inline maps in struct " + st.String()) } if field.Type.Key() != reflect.TypeOf("") { - return nil, errors.New("Option ,inline needs a map with string keys in struct " + st.String()) + return nil, errors.New("option ,inline needs a map with string keys in struct " + st.String()) } inlineMap = info.Num - case reflect.Struct: - sinfo, err := getStructInfo(field.Type) - if err != nil { - return nil, err + case reflect.Struct, reflect.Ptr: + ftype := field.Type + for ftype.Kind() == reflect.Ptr { + ftype = ftype.Elem() } - for _, finfo := range sinfo.FieldsList { - if _, found := fieldsMap[finfo.Key]; found { - msg := "Duplicated key '" + finfo.Key + "' in struct " + st.String() - return nil, errors.New(msg) + if ftype.Kind() != reflect.Struct { + return nil, errors.New("option ,inline may only be used on a struct or map field") + } + if reflect.PtrTo(ftype).Implements(unmarshalerType) { + inlineUnmarshalers = append(inlineUnmarshalers, []int{i}) + } else { + sinfo, err := getStructInfo(ftype) + if err != nil { + return nil, err + } + for _, index := range sinfo.InlineUnmarshalers { + inlineUnmarshalers = append(inlineUnmarshalers, append([]int{i}, index...)) } - if finfo.Inline == nil { - finfo.Inline = []int{i, finfo.Num} - } else { - finfo.Inline = append([]int{i}, finfo.Inline...) + for _, finfo := range sinfo.FieldsList { + if _, found := fieldsMap[finfo.Key]; found { + msg := "duplicated key '" + finfo.Key + "' in struct " + st.String() + return nil, errors.New(msg) + } + if finfo.Inline == nil { + finfo.Inline = []int{i, finfo.Num} + } else { + finfo.Inline = append([]int{i}, finfo.Inline...) + } + finfo.Id = len(fieldsList) + fieldsMap[finfo.Key] = finfo + fieldsList = append(fieldsList, finfo) } - finfo.Id = len(fieldsList) - fieldsMap[finfo.Key] = finfo - fieldsList = append(fieldsList, finfo) } default: - //return nil, errors.New("Option ,inline needs a struct value or map field") - return nil, errors.New("Option ,inline needs a struct value field") + return nil, errors.New("option ,inline may only be used on a struct or map field") } continue } @@ -396,7 +627,7 @@ func getStructInfo(st reflect.Type) (*structInfo, error) { } if _, found = fieldsMap[info.Key]; found { - msg := "Duplicated key '" + info.Key + "' in struct " + st.String() + msg := "duplicated key '" + info.Key + "' in struct " + st.String() return nil, errors.New(msg) } @@ -406,9 +637,10 @@ func getStructInfo(st reflect.Type) (*structInfo, error) { } sinfo = &structInfo{ - FieldsMap: fieldsMap, - FieldsList: fieldsList, - InlineMap: inlineMap, + FieldsMap: fieldsMap, + FieldsList: fieldsList, + InlineMap: inlineMap, + InlineUnmarshalers: inlineUnmarshalers, } fieldMapMutex.Lock() diff --git a/vendor/gopkg.in/yaml.v2/yamlh.go b/vendor/gopkg.in/yaml.v3/yamlh.go similarity index 88% rename from vendor/gopkg.in/yaml.v2/yamlh.go rename to vendor/gopkg.in/yaml.v3/yamlh.go index e25cee563..7c6d00770 100644 --- a/vendor/gopkg.in/yaml.v2/yamlh.go +++ b/vendor/gopkg.in/yaml.v3/yamlh.go @@ -1,3 +1,25 @@ +// +// Copyright (c) 2011-2019 Canonical Ltd +// Copyright (c) 2006-2010 Kirill Simonov +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +// of the Software, and to permit persons to whom the Software is furnished to do +// so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + package yaml import ( @@ -73,13 +95,13 @@ type yaml_scalar_style_t yaml_style_t // Scalar styles. const ( // Let the emitter choose the style. - yaml_ANY_SCALAR_STYLE yaml_scalar_style_t = iota + yaml_ANY_SCALAR_STYLE yaml_scalar_style_t = 0 - yaml_PLAIN_SCALAR_STYLE // The plain scalar style. - yaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style. - yaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style. - yaml_LITERAL_SCALAR_STYLE // The literal scalar style. - yaml_FOLDED_SCALAR_STYLE // The folded scalar style. + yaml_PLAIN_SCALAR_STYLE yaml_scalar_style_t = 1 << iota // The plain scalar style. + yaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style. + yaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style. + yaml_LITERAL_SCALAR_STYLE // The literal scalar style. + yaml_FOLDED_SCALAR_STYLE // The folded scalar style. ) type yaml_sequence_style_t yaml_style_t @@ -238,6 +260,7 @@ const ( yaml_SEQUENCE_END_EVENT // A SEQUENCE-END event. yaml_MAPPING_START_EVENT // A MAPPING-START event. yaml_MAPPING_END_EVENT // A MAPPING-END event. + yaml_TAIL_COMMENT_EVENT ) var eventStrings = []string{ @@ -252,6 +275,7 @@ var eventStrings = []string{ yaml_SEQUENCE_END_EVENT: "sequence end", yaml_MAPPING_START_EVENT: "mapping start", yaml_MAPPING_END_EVENT: "mapping end", + yaml_TAIL_COMMENT_EVENT: "tail comment", } func (e yaml_event_type_t) String() string { @@ -279,6 +303,12 @@ type yaml_event_t struct { // The list of tag directives (for yaml_DOCUMENT_START_EVENT). tag_directives []yaml_tag_directive_t + // The comments + head_comment []byte + line_comment []byte + foot_comment []byte + tail_comment []byte + // The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT). anchor []byte @@ -554,6 +584,8 @@ type yaml_parser_t struct { unread int // The number of unread characters in the buffer. + newlines int // The number of line breaks since last non-break/non-blank character + raw_buffer []byte // The raw buffer. raw_buffer_pos int // The current position of the buffer. @@ -562,6 +594,17 @@ type yaml_parser_t struct { offset int // The offset of the current position (in bytes). mark yaml_mark_t // The mark of the current position. + // Comments + + head_comment []byte // The current head comments + line_comment []byte // The current line comments + foot_comment []byte // The current foot comments + tail_comment []byte // Foot comment that happens at the end of a block. + stem_comment []byte // Comment in item preceding a nested structure (list inside list item, etc) + + comments []yaml_comment_t // The folded comments for all parsed tokens + comments_head int + // Scanner stuff stream_start_produced bool // Have we started to scan the input stream? @@ -579,6 +622,7 @@ type yaml_parser_t struct { simple_key_allowed bool // May a simple key occur at the current position? simple_keys []yaml_simple_key_t // The stack of simple keys. + simple_keys_by_tok map[int]int // possible simple_key indexes indexed by token_number // Parser stuff @@ -594,6 +638,18 @@ type yaml_parser_t struct { document *yaml_document_t // The currently parsed document. } +type yaml_comment_t struct { + + scan_mark yaml_mark_t // Position where scanning for comments started + token_mark yaml_mark_t // Position after which tokens will be associated with this comment + start_mark yaml_mark_t // Position of '#' comment mark + end_mark yaml_mark_t // Position where comment terminated + + head []byte + line []byte + foot []byte +} + // Emitter Definitions // The prototype of a write handler. @@ -624,8 +680,10 @@ const ( yaml_EMIT_DOCUMENT_CONTENT_STATE // Expect the content of a document. yaml_EMIT_DOCUMENT_END_STATE // Expect DOCUMENT-END. yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a flow sequence. + yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE // Expect the next item of a flow sequence, with the comma already written out yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE // Expect an item of a flow sequence. yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. + yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE // Expect the next key of a flow mapping, with the comma already written out yaml_EMIT_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a flow mapping. yaml_EMIT_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. @@ -697,6 +755,9 @@ type yaml_emitter_t struct { indention bool // If the last character was an indentation character (' ', '-', '?', ':')? open_ended bool // If an explicit document end is required? + space_above bool // Is there's an empty line above? + foot_indent int // The indent used to write the foot comment above, or -1 if none. + // Anchor analysis. anchor_data struct { anchor []byte // The anchor value. @@ -720,6 +781,14 @@ type yaml_emitter_t struct { style yaml_scalar_style_t // The output style. } + // Comments + head_comment []byte + line_comment []byte + foot_comment []byte + tail_comment []byte + + key_line_comment []byte + // Dumper stuff opened bool // If the stream was already opened? diff --git a/vendor/gopkg.in/yaml.v2/yamlprivateh.go b/vendor/gopkg.in/yaml.v3/yamlprivateh.go similarity index 78% rename from vendor/gopkg.in/yaml.v2/yamlprivateh.go rename to vendor/gopkg.in/yaml.v3/yamlprivateh.go index 8110ce3c3..e88f9c54a 100644 --- a/vendor/gopkg.in/yaml.v2/yamlprivateh.go +++ b/vendor/gopkg.in/yaml.v3/yamlprivateh.go @@ -1,3 +1,25 @@ +// +// Copyright (c) 2011-2019 Canonical Ltd +// Copyright (c) 2006-2010 Kirill Simonov +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +// of the Software, and to permit persons to whom the Software is furnished to do +// so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + package yaml const ( @@ -114,8 +136,9 @@ func is_crlf(b []byte, i int) bool { // Check if the character is a line break or NUL. func is_breakz(b []byte, i int) bool { //return is_break(b, i) || is_z(b, i) - return ( // is_break: - b[i] == '\r' || // CR (#xD) + return ( + // is_break: + b[i] == '\r' || // CR (#xD) b[i] == '\n' || // LF (#xA) b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) @@ -127,8 +150,9 @@ func is_breakz(b []byte, i int) bool { // Check if the character is a line break, space, or NUL. func is_spacez(b []byte, i int) bool { //return is_space(b, i) || is_breakz(b, i) - return ( // is_space: - b[i] == ' ' || + return ( + // is_space: + b[i] == ' ' || // is_breakz: b[i] == '\r' || // CR (#xD) b[i] == '\n' || // LF (#xA) @@ -141,8 +165,9 @@ func is_spacez(b []byte, i int) bool { // Check if the character is a line break, space, tab, or NUL. func is_blankz(b []byte, i int) bool { //return is_blank(b, i) || is_breakz(b, i) - return ( // is_blank: - b[i] == ' ' || b[i] == '\t' || + return ( + // is_blank: + b[i] == ' ' || b[i] == '\t' || // is_breakz: b[i] == '\r' || // CR (#xD) b[i] == '\n' || // LF (#xA) diff --git a/vendor/k8s.io/klog/v2/go.mod b/vendor/k8s.io/klog/v2/go.mod deleted file mode 100644 index eb297b6a1..000000000 --- a/vendor/k8s.io/klog/v2/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module k8s.io/klog/v2 - -go 1.13 - -require github.com/go-logr/logr v0.4.0 diff --git a/vendor/k8s.io/klog/v2/go.sum b/vendor/k8s.io/klog/v2/go.sum deleted file mode 100644 index 5778f8174..000000000 --- a/vendor/k8s.io/klog/v2/go.sum +++ /dev/null @@ -1,2 +0,0 @@ -github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc= -github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= diff --git a/vendor/modules.txt b/vendor/modules.txt index 1b99b5bdc..4497a9c86 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -2,15 +2,39 @@ ## explicit github.com/davecgh/go-spew/spew # github.com/go-logr/logr v0.4.0 +## explicit; go 1.14 github.com/go-logr/logr +# github.com/go-ole/go-ole v1.3.0 +## explicit; go 1.12 +github.com/go-ole/go-ole +github.com/go-ole/go-ole/oleutil +# github.com/microsoft/wmi v0.25.1 +## explicit; go 1.22 +github.com/microsoft/wmi/go/wmi +github.com/microsoft/wmi/pkg/base/credential +github.com/microsoft/wmi/pkg/base/host +github.com/microsoft/wmi/pkg/base/instance +github.com/microsoft/wmi/pkg/base/query +github.com/microsoft/wmi/pkg/base/session +github.com/microsoft/wmi/pkg/errors +github.com/microsoft/wmi/pkg/wmiinstance +github.com/microsoft/wmi/server2019/root/microsoft/windows/storage +# github.com/pkg/errors v0.9.1 +## explicit +github.com/pkg/errors # github.com/pmezard/go-difflib v1.0.0 -github.com/pmezard/go-difflib/difflib -# github.com/stretchr/testify v1.5.1 ## explicit +github.com/pmezard/go-difflib/difflib +# github.com/stretchr/testify v1.7.0 +## explicit; go 1.13 github.com/stretchr/testify/assert github.com/stretchr/testify/require -# gopkg.in/yaml.v2 v2.2.2 -gopkg.in/yaml.v2 -# k8s.io/klog/v2 v2.9.0 +# golang.org/x/sys v0.25.0 +## explicit; go 1.18 +golang.org/x/sys/windows +# gopkg.in/yaml.v3 v3.0.0 ## explicit +gopkg.in/yaml.v3 +# k8s.io/klog/v2 v2.9.0 +## explicit; go 1.13 k8s.io/klog/v2