vds

package
v1.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 16, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

The vds package implements the VDS client protocol.

Introduction

The Virtual Disk Service (VDS) Remote Protocol is a set of Distributed Component Object Model (DCOM) interfaces for managing the configuration of disk storage on a computer. The Virtual Disk Service Remote Protocol deals with detailed low-level operating system and storage concepts.

Although this specification outlines the basic concepts that you need to know, this specification assumes that you are familiar with these technologies. For information about storage, disk, and volume concepts, see [MSDN-STC] and [MSDN-PARTITIONINFO]; for information on disk management, see [MSDN-DISKMAN].

The Virtual Disk Service Remote Protocol is used to programmatically enumerate and configure disks, volumes, host bus adapter (HBA) ports, and iSCSI initiators on remote computers. This protocol supersedes the Disk Management Remote Protocol, as specified in [MS-DMRP].

Overview

The Virtual Disk Service Remote Protocol provides a mechanism for remote configuration of disks, partitions, volumes, and iSCSI initiators on a server. Through the Virtual Disk Service Remote Protocol, a client can change the configuration of disks into partitions, partitions into volumes, and volumes into file systems. The protocol also enables clients to obtain notifications of changes to these storage objects.

In the Virtual Disk Service Remote Protocol, two entities are involved: the server, whose storage is configured, and the client, which accesses and requests changes to the server storage configuration.

The Virtual Disk Service Remote Protocol is expressed as a set of DCOM interfaces. For a server, this protocol implements support for the DCOM interface in order to manage storage. For a client, this protocol invokes method calls on the interface in order to perform disk and volume configuration tasks on the server.<1>

Index

Constants

View Source
const NFDiskArrive = 0x00000008

NFDiskArrive represents the VDS_NF_DISK_ARRIVE RPC constant

View Source
const NFDiskDepart = 0x00000009

NFDiskDepart represents the VDS_NF_DISK_DEPART RPC constant

View Source
const NFDiskModify = 0x0000000A

NFDiskModify represents the VDS_NF_DISK_MODIFY RPC constant

View Source
const NFDriveLetterAssign = 0x000000CA

NFDriveLetterAssign represents the VDS_NF_DRIVE_LETTER_ASSIGN RPC constant

View Source
const NFDriveLetterFree = 0x000000C9

NFDriveLetterFree represents the VDS_NF_DRIVE_LETTER_FREE RPC constant

View Source
const NFFileSystemFormatProgress = 0x000000CC

NFFileSystemFormatProgress represents the VDS_NF_FILE_SYSTEM_FORMAT_PROGRESS RPC constant

View Source
const NFFileSystemModify = 0x000000CB

NFFileSystemModify represents the VDS_NF_FILE_SYSTEM_MODIFY RPC constant

View Source
const NFMountPointsChange = 0x000000CD

NFMountPointsChange represents the VDS_NF_MOUNT_POINTS_CHANGE RPC constant

View Source
const NFPackArrive = 0x00000001

NFPackArrive represents the VDS_NF_PACK_ARRIVE RPC constant

View Source
const NFPackDepart = 0x00000002

NFPackDepart represents the VDS_NF_PACK_DEPART RPC constant

View Source
const NFPackModify = 0x00000003

NFPackModify represents the VDS_NF_PACK_MODIFY RPC constant

View Source
const NFPartitionArrive = 0x0000000B

NFPartitionArrive represents the VDS_NF_PARTITION_ARRIVE RPC constant

View Source
const NFPartitionDepart = 0x0000000C

NFPartitionDepart represents the VDS_NF_PARTITION_DEPART RPC constant

View Source
const NFPartitionModify = 0x0000000D

NFPartitionModify represents the VDS_NF_PARTITION_MODIFY RPC constant

View Source
const NFServiceOutOfSync = 0x0000012D

NFServiceOutOfSync represents the VDS_NF_SERVICE_OUT_OF_SYNC RPC constant

View Source
const NFVolumeArrive = 0x00000004

NFVolumeArrive represents the VDS_NF_VOLUME_ARRIVE RPC constant

View Source
const NFVolumeDepart = 0x00000005

NFVolumeDepart represents the VDS_NF_VOLUME_DEPART RPC constant

View Source
const NFVolumeModify = 0x00000006

NFVolumeModify represents the VDS_NF_VOLUME_MODIFY RPC constant

View Source
const NFVolumeRebuildingProgress = 0x00000007

NFVolumeRebuildingProgress represents the VDS_NF_VOLUME_REBUILDING_PROGRESS RPC constant

View Source
const VerVDSLUNInformation = 0x00000001

VerVDSLUNInformation represents the VER_VDS_LUN_INFORMATION RPC constant

Variables

View Source
var (
	// import guard
	GoPackage = "dcom/vds"
)
View Source
var MaxFSNameSize = 8

MaxFSNameSize represents the MAX_FS_NAME_SIZE RPC constant

View Source
var MaxPath = 260

MaxPath represents the MAX_PATH RPC constant

Functions

This section is empty.

Types

type AdvancedDisk

type AdvancedDisk dcom.InterfacePointer

AdvancedDisk structure represents IVdsAdvancedDisk RPC structure.

func (*AdvancedDisk) InterfacePointer

func (o *AdvancedDisk) InterfacePointer() *dcom.InterfacePointer

func (*AdvancedDisk) MarshalNDR

func (o *AdvancedDisk) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AdvancedDisk) NDRSizeInfo

func (o *AdvancedDisk) NDRSizeInfo() []uint64

func (*AdvancedDisk) UnmarshalNDR

func (o *AdvancedDisk) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type AdvancedDisk2

type AdvancedDisk2 dcom.InterfacePointer

AdvancedDisk2 structure represents IVdsAdvancedDisk2 RPC structure.

func (*AdvancedDisk2) InterfacePointer

func (o *AdvancedDisk2) InterfacePointer() *dcom.InterfacePointer

func (*AdvancedDisk2) MarshalNDR

func (o *AdvancedDisk2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AdvancedDisk2) NDRSizeInfo

func (o *AdvancedDisk2) NDRSizeInfo() []uint64

func (*AdvancedDisk2) UnmarshalNDR

func (o *AdvancedDisk2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type AdvancedDisk3

type AdvancedDisk3 dcom.InterfacePointer

AdvancedDisk3 structure represents IVdsAdvancedDisk3 RPC structure.

func (*AdvancedDisk3) InterfacePointer

func (o *AdvancedDisk3) InterfacePointer() *dcom.InterfacePointer

func (*AdvancedDisk3) MarshalNDR

func (o *AdvancedDisk3) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AdvancedDisk3) NDRSizeInfo

func (o *AdvancedDisk3) NDRSizeInfo() []uint64

func (*AdvancedDisk3) UnmarshalNDR

func (o *AdvancedDisk3) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type AdvancedDiskProperty

type AdvancedDiskProperty struct {
	ID                   string                                     `idl:"name:pwszId;string" json:"id"`
	PathName             string                                     `idl:"name:pwszPathname;string" json:"path_name"`
	Location             string                                     `idl:"name:pwszLocation;string" json:"location"`
	FriendlyName         string                                     `idl:"name:pwszFriendlyName;string" json:"friendly_name"`
	VPDID                string                                     `idl:"name:pswzIdentifier;string" json:"vpd_id"`
	IDFormat             uint16                                     `idl:"name:usIdentifierFormat" json:"id_format"`
	Number               uint32                                     `idl:"name:ulNumber" json:"number"`
	SerialNumber         string                                     `idl:"name:pwszSerialNumber;string" json:"serial_number"`
	FirmwareVersion      string                                     `idl:"name:pwszFirmwareVersion;string" json:"firmware_version"`
	Manufacturer         string                                     `idl:"name:pwszManufacturer;string" json:"manufacturer"`
	Model                string                                     `idl:"name:pwszModel;string" json:"model"`
	TotalSize            uint64                                     `idl:"name:ullTotalSize" json:"total_size"`
	AllocatedSize        uint64                                     `idl:"name:ullAllocatedSize" json:"allocated_size"`
	LogicalSectorSize    uint32                                     `idl:"name:ulLogicalSectorSize" json:"logical_sector_size"`
	PhysicalSectorSize   uint32                                     `idl:"name:ulPhysicalSectorSize" json:"physical_sector_size"`
	PartitionCount       uint32                                     `idl:"name:ulPartitionCount" json:"partition_count"`
	Status               DiskStatus                                 `idl:"name:status" json:"status"`
	Health               Health                                     `idl:"name:health" json:"health"`
	BusType              StorageBusType                             `idl:"name:BusType" json:"bus_type"`
	PartitionStyle       PartitionStyle                             `idl:"name:PartitionStyle" json:"partition_style"`
	AdvancedDiskProperty *AdvancedDiskProperty_AdvancedDiskProperty `idl:"name:AdvancedDiskProperty;switch_is:PartitionStyle" json:"advanced_disk_property"`
	Flags                uint32                                     `idl:"name:ulFlags" json:"flags"`
	DeviceType           uint32                                     `idl:"name:dwDeviceType" json:"device_type"`
}

AdvancedDiskProperty structure represents VDS_ADVANCEDDISK_PROP RPC structure.

func (*AdvancedDiskProperty) MarshalNDR

func (o *AdvancedDiskProperty) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AdvancedDiskProperty) UnmarshalNDR

func (o *AdvancedDiskProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type AdvancedDiskProperty_AdvancedDiskProperty

type AdvancedDiskProperty_AdvancedDiskProperty struct {
	// Types that are assignable to Value
	//
	// *AdvancedDiskProperty_Signature
	// *AdvancedDiskProperty_DiskGUID
	Value is_AdvancedDiskProperty_AdvancedDiskProperty `json:"value"`
}

AdvancedDiskProperty_AdvancedDiskProperty structure represents VDS_ADVANCEDDISK_PROP union anonymous member.

func (*AdvancedDiskProperty_AdvancedDiskProperty) GetValue

func (*AdvancedDiskProperty_AdvancedDiskProperty) MarshalUnionNDR

func (*AdvancedDiskProperty_AdvancedDiskProperty) NDRSwitchValue

func (*AdvancedDiskProperty_AdvancedDiskProperty) UnmarshalUnionNDR

type AdvancedDiskProperty_DiskGUID

type AdvancedDiskProperty_DiskGUID struct {
	DiskGUID *dtyp.GUID `idl:"name:DiskGuid" json:"disk_guid"`
}

AdvancedDiskProperty_DiskGUID structure represents AdvancedDiskProperty_AdvancedDiskProperty RPC union arm.

It has following labels: 2

func (*AdvancedDiskProperty_DiskGUID) MarshalNDR

func (*AdvancedDiskProperty_DiskGUID) UnmarshalNDR

func (o *AdvancedDiskProperty_DiskGUID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type AdvancedDiskProperty_Signature

type AdvancedDiskProperty_Signature struct {
	Signature uint32 `idl:"name:dwSignature" json:"signature"`
}

AdvancedDiskProperty_Signature structure represents AdvancedDiskProperty_AdvancedDiskProperty RPC union arm.

It has following labels: 1

func (*AdvancedDiskProperty_Signature) MarshalNDR

func (*AdvancedDiskProperty_Signature) UnmarshalNDR

type AdviseSink

type AdviseSink dcom.InterfacePointer

AdviseSink structure represents IVdsAdviseSink RPC structure.

func (*AdviseSink) InterfacePointer

func (o *AdviseSink) InterfacePointer() *dcom.InterfacePointer

func (*AdviseSink) MarshalNDR

func (o *AdviseSink) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AdviseSink) NDRSizeInfo

func (o *AdviseSink) NDRSizeInfo() []uint64

func (*AdviseSink) UnmarshalNDR

func (o *AdviseSink) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Async

type Async dcom.InterfacePointer

Async structure represents IVdsAsync RPC structure.

func (*Async) InterfacePointer

func (o *Async) InterfacePointer() *dcom.InterfacePointer

func (*Async) MarshalNDR

func (o *Async) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Async) NDRSizeInfo

func (o *Async) NDRSizeInfo() []uint64

func (*Async) UnmarshalNDR

func (o *Async) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type AsyncOutput

type AsyncOutput struct {
	// type:  A value from the VDS_ASYNC_OUTPUT_TYPE enumeration that indicates the type
	// of operation information.
	Type        AsyncOutputType          `idl:"name:type" json:"type"`
	AsyncOutput *AsyncOutput_AsyncOutput `idl:"name:async_output;switch_is:type" json:"async_output"`
}

AsyncOutput structure represents VDS_ASYNC_OUTPUT RPC structure.

The VDS_ASYNC_OUTPUT structure provides information from a completed asynchronous operation.

func (*AsyncOutput) MarshalNDR

func (o *AsyncOutput) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AsyncOutput) UnmarshalNDR

func (o *AsyncOutput) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type AsyncOutputType

type AsyncOutputType uint16

AsyncOutputType type represents VDS_ASYNC_OUTPUT_TYPE RPC enumeration.

The VDS_ASYNC_OUTPUT_TYPE enumeration defines the types of operation information that the VDS_ASYNC_OUTPUT structure returns.

var (
	// VDS_ASYNCOUT_UNKNOWN:  Information is about an unknown type of operation.
	AsyncOutputTypeUnknown AsyncOutputType = 0
	// VDS_ASYNCOUT_CREATEVOLUME:  Information is about creating a volume.
	AsyncOutputTypeCreateVolume AsyncOutputType = 1
	// VDS_ASYNCOUT_EXTENDVOLUME:  Information is about extending the size of a volume.
	AsyncOutputTypeExtendVolume AsyncOutputType = 2
	// VDS_ASYNCOUT_SHRINKVOLUME:  Information is about shrinking the size of a volume.
	AsyncOutputTypeShrinkVolume AsyncOutputType = 3
	// VDS_ASYNCOUT_ADDVOLUMEPLEX:  Information is about adding a volume plex.
	AsyncOutputTypeAddVolumePlex AsyncOutputType = 4
	// VDS_ASYNCOUT_BREAKVOLUMEPLEX:  Information is about breaking a volume plex.
	AsyncOutputTypeBreakVolumePlex AsyncOutputType = 5
	// VDS_ASYNCOUT_REMOVEVOLUMEPLEX:  Information is about removing a volume plex.
	AsyncOutputTypeRemoveVolumePlex AsyncOutputType = 6
	// VDS_ASYNCOUT_REPAIRVOLUMEPLEX:  Information is about repairing a volume plex.
	AsyncOutputTypeRepairVolumePlex AsyncOutputType = 7
	// VDS_ASYNCOUT_RECOVERPACK:  Information is about recovering a pack.
	AsyncOutputTypeRecoverPack AsyncOutputType = 8
	// VDS_ASYNCOUT_REPLACEDISK:  Information is about replacing a disk.
	AsyncOutputTypeReplaceDisk AsyncOutputType = 9
	// VDS_ASYNCOUT_CREATEPARTITION:  Information is about creating a partition.
	AsyncOutputTypeCreatePartition AsyncOutputType = 10
	// VDS_ASYNCOUT_CLEAN:  Information is about cleaning a disk.
	AsyncOutputTypeClean AsyncOutputType = 11
	// VDS_ASYNCOUT_CREATELUN:  Information is about creating a LUN.
	AsyncOutputTypeCreateLUN AsyncOutputType = 50
	// VDS_ASYNCOUT_FORMAT:  Information is about formatting a file system.
	AsyncOutputTypeFormat AsyncOutputType = 101
	// VDS_ASYNCOUT_CREATE_VDISK:  Information is about creating a virtual disk.
	AsyncOutputTypeCreateVDisk AsyncOutputType = 200
	// VDS_ASYNCOUT_SURFACE_VDISK:  Information is about attaching a virtual disk.
	AsyncOutputTypeSurfaceVDisk AsyncOutputType = 201
	// VDS_ASYNCOUT_COMPACT_VDISK:  Information is about compacting a virtual disk.
	AsyncOutputTypeCompactVDisk AsyncOutputType = 202
	// VDS_ASYNCOUT_MERGE_VDISK:  Information is about merging a virtual disk.
	AsyncOutputTypeMergeVDisk AsyncOutputType = 203
	// VDS_ASYNCOUT_EXPAND_VDISK:  Information is about expanding a virtual disk.
	AsyncOutputTypeExpandVDisk AsyncOutputType = 204
)

func (AsyncOutputType) String

func (o AsyncOutputType) String() string

type AsyncOutput_AsyncOutput

type AsyncOutput_AsyncOutput struct {
	// Types that are assignable to Value
	//
	// *AsyncOutput_CreatePartition
	// *AsyncOutput_CreateVolume
	// *AsyncOutput_BreakVolumePlex
	// *AsyncOutput_ShrinkVolume
	// *AsyncOutput_CreateVDisk
	Value is_AsyncOutput_AsyncOutput `json:"value"`
}

AsyncOutput_AsyncOutput structure represents VDS_ASYNC_OUTPUT union anonymous member.

The VDS_ASYNC_OUTPUT structure provides information from a completed asynchronous operation.

func (*AsyncOutput_AsyncOutput) GetValue

func (o *AsyncOutput_AsyncOutput) GetValue() any

func (*AsyncOutput_AsyncOutput) MarshalUnionNDR

func (o *AsyncOutput_AsyncOutput) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint16) error

func (*AsyncOutput_AsyncOutput) NDRSwitchValue

func (o *AsyncOutput_AsyncOutput) NDRSwitchValue(sw uint16) uint16

func (*AsyncOutput_AsyncOutput) UnmarshalUnionNDR

func (o *AsyncOutput_AsyncOutput) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint16) error

type AsyncOutput_AsyncOutput_BreakVolumePlex

type AsyncOutput_AsyncOutput_BreakVolumePlex struct {
	// pVolumeUnk:  A pointer to the IUnknown interface of the newly created volume.
	VolumeUnknown *dcom.Unknown `idl:"name:pVolumeUnk" json:"volume_unknown"`
}

AsyncOutput_AsyncOutput_BreakVolumePlex structure represents VDS_ASYNC_OUTPUT structure anonymous member.

The VDS_ASYNC_OUTPUT structure provides information from a completed asynchronous operation.

func (*AsyncOutput_AsyncOutput_BreakVolumePlex) MarshalNDR

func (*AsyncOutput_AsyncOutput_BreakVolumePlex) UnmarshalNDR

type AsyncOutput_AsyncOutput_CreatePartition

type AsyncOutput_AsyncOutput_CreatePartition struct {
	// ullOffset:  The byte offset of the partition from the beginning of the disk.
	Offset uint64 `idl:"name:ullOffset" json:"offset"`
	// volumeId:  The VDS object ID of the associated volume object, if the partition is
	// a volume.
	VolumeID *ObjectID `idl:"name:volumeId" json:"volume_id"`
}

AsyncOutput_AsyncOutput_CreatePartition structure represents VDS_ASYNC_OUTPUT structure anonymous member.

The VDS_ASYNC_OUTPUT structure provides information from a completed asynchronous operation.

func (*AsyncOutput_AsyncOutput_CreatePartition) MarshalNDR

func (*AsyncOutput_AsyncOutput_CreatePartition) UnmarshalNDR

type AsyncOutput_AsyncOutput_CreateVDisk

type AsyncOutput_AsyncOutput_CreateVDisk struct {
	// pVDiskUnk:  A pointer to the IUnknown interface of the newly created virtual disk.
	VDiskUnknown *dcom.Unknown `idl:"name:pVDiskUnk" json:"v_disk_unknown"`
}

AsyncOutput_AsyncOutput_CreateVDisk structure represents VDS_ASYNC_OUTPUT structure anonymous member.

The VDS_ASYNC_OUTPUT structure provides information from a completed asynchronous operation.

func (*AsyncOutput_AsyncOutput_CreateVDisk) MarshalNDR

func (*AsyncOutput_AsyncOutput_CreateVDisk) UnmarshalNDR

type AsyncOutput_AsyncOutput_CreateVolume

type AsyncOutput_AsyncOutput_CreateVolume struct {
	// pVolumeUnk:  A pointer to the IUnknown interface of the newly created volume.
	VolumeUnknown *dcom.Unknown `idl:"name:pVolumeUnk" json:"volume_unknown"`
}

AsyncOutput_AsyncOutput_CreateVolume structure represents VDS_ASYNC_OUTPUT structure anonymous member.

The VDS_ASYNC_OUTPUT structure provides information from a completed asynchronous operation.

func (*AsyncOutput_AsyncOutput_CreateVolume) MarshalNDR

func (*AsyncOutput_AsyncOutput_CreateVolume) UnmarshalNDR

type AsyncOutput_AsyncOutput_ShrinkVolume

type AsyncOutput_AsyncOutput_ShrinkVolume struct {
	// ullReclaimedBytes:  The number of bytes that the volume shrink operation reclaimed.
	ReclaimedBytes uint64 `idl:"name:ullReclaimedBytes" json:"reclaimed_bytes"`
}

AsyncOutput_AsyncOutput_ShrinkVolume structure represents VDS_ASYNC_OUTPUT structure anonymous member.

The VDS_ASYNC_OUTPUT structure provides information from a completed asynchronous operation.

func (*AsyncOutput_AsyncOutput_ShrinkVolume) MarshalNDR

func (*AsyncOutput_AsyncOutput_ShrinkVolume) UnmarshalNDR

type AsyncOutput_BreakVolumePlex

type AsyncOutput_BreakVolumePlex struct {
	// bvp:  The bvp structure provides information about a volume after a plex is broken.
	BreakVolumePlex *AsyncOutput_AsyncOutput_BreakVolumePlex `idl:"name:bvp" json:"break_volume_plex"`
}

AsyncOutput_BreakVolumePlex structure represents AsyncOutput_AsyncOutput RPC union arm.

It has following labels: 5

func (*AsyncOutput_BreakVolumePlex) MarshalNDR

func (*AsyncOutput_BreakVolumePlex) UnmarshalNDR

func (o *AsyncOutput_BreakVolumePlex) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type AsyncOutput_CreatePartition

type AsyncOutput_CreatePartition struct {
	// cp:  The cp structure provides information about a newly created partition.
	CreatePartition *AsyncOutput_AsyncOutput_CreatePartition `idl:"name:cp" json:"create_partition"`
}

AsyncOutput_CreatePartition structure represents AsyncOutput_AsyncOutput RPC union arm.

It has following labels: 10

func (*AsyncOutput_CreatePartition) MarshalNDR

func (*AsyncOutput_CreatePartition) UnmarshalNDR

func (o *AsyncOutput_CreatePartition) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type AsyncOutput_CreateVDisk

type AsyncOutput_CreateVDisk struct {
	// cvd:  The cvd structure provides information about a newly created virtual disk.
	CreateVDisk *AsyncOutput_AsyncOutput_CreateVDisk `idl:"name:cvd" json:"create_v_disk"`
}

AsyncOutput_CreateVDisk structure represents AsyncOutput_AsyncOutput RPC union arm.

It has following labels: 200

func (*AsyncOutput_CreateVDisk) MarshalNDR

func (o *AsyncOutput_CreateVDisk) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AsyncOutput_CreateVDisk) UnmarshalNDR

func (o *AsyncOutput_CreateVDisk) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type AsyncOutput_CreateVolume

type AsyncOutput_CreateVolume struct {
	// cv:  The cv structure provides information about a newly created volume.
	CreateVolume *AsyncOutput_AsyncOutput_CreateVolume `idl:"name:cv" json:"create_volume"`
}

AsyncOutput_CreateVolume structure represents AsyncOutput_AsyncOutput RPC union arm.

It has following labels: 1

func (*AsyncOutput_CreateVolume) MarshalNDR

func (o *AsyncOutput_CreateVolume) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AsyncOutput_CreateVolume) UnmarshalNDR

func (o *AsyncOutput_CreateVolume) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type AsyncOutput_ShrinkVolume

type AsyncOutput_ShrinkVolume struct {
	// sv:  The sv structure provides information about a volume shrink operation.
	ShrinkVolume *AsyncOutput_AsyncOutput_ShrinkVolume `idl:"name:sv" json:"shrink_volume"`
}

AsyncOutput_ShrinkVolume structure represents AsyncOutput_AsyncOutput RPC union arm.

It has following labels: 3

func (*AsyncOutput_ShrinkVolume) MarshalNDR

func (o *AsyncOutput_ShrinkVolume) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AsyncOutput_ShrinkVolume) UnmarshalNDR

func (o *AsyncOutput_ShrinkVolume) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type AttachVirtualDiskFlag

type AttachVirtualDiskFlag uint16

AttachVirtualDiskFlag type represents ATTACH_VIRTUAL_DISK_FLAG RPC enumeration.

The ATTACH_VIRTUAL_DISK_FLAG enumeration defines options for attaching a virtual disk.

var (
	// ATTACH_VIRTUAL_DISK_FLAG_NONE:  Indicates that no flag has been specified. This
	// flag implies that the operating system disk device created when the virtual disk
	// is attached will be read\write.
	AttachVirtualDiskFlagNone AttachVirtualDiskFlag = 0
	// ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY:  Attaches the operating system disk device created
	// when the virtual disk is attached as read-only.
	AttachVirtualDiskFlagReadOnly AttachVirtualDiskFlag = 1
	// ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER:  If this flag is set, no drive letters
	// are assigned to the disk's volumes.
	AttachVirtualDiskFlagNoDriveLetter AttachVirtualDiskFlag = 2
	// ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME:  MUST NOT be used by virtual disk providers
	// or their clients.<52>
	AttachVirtualDiskFlagPermanentLifetime AttachVirtualDiskFlag = 4
	// ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST:  Specifies that the operating system disk
	// device created when the virtual disk is attached will not be exposed to the local
	// system, but rather to a virtual machine running on the local system.
	AttachVirtualDiskFlagNoLocalHost AttachVirtualDiskFlag = 8
)

func (AttachVirtualDiskFlag) String

func (o AttachVirtualDiskFlag) String() string

type ChangeAttributesParameters

type ChangeAttributesParameters struct {
	// style:  The value from the VDS_PARTITION_STYLE enumeration that describes the partition
	// format of the disk. If the disk partitioning format is MBR, the only value that can
	// be changed is the bootIndicator. If the disk partitioning format is GPT, the only
	// value that can be changed is the GPT attribute.
	Style                      PartitionStyle                                         `idl:"name:style" json:"style"`
	ChangeAttributesParameters *ChangeAttributesParameters_ChangeAttributesParameters `idl:"name:change_attributes_parameters;switch_is:style" json:"change_attributes_parameters"`
}

ChangeAttributesParameters structure represents CHANGE_ATTRIBUTES_PARAMETERS RPC structure.

The CHANGE_ATTRIBUTES_PARAMETERS structure describes the attributes to change on a partition.

func (*ChangeAttributesParameters) MarshalNDR

func (o *ChangeAttributesParameters) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ChangeAttributesParameters) UnmarshalNDR

func (o *ChangeAttributesParameters) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ChangeAttributesParameters_ChangeAttributesParameters

type ChangeAttributesParameters_ChangeAttributesParameters struct {
	// Types that are assignable to Value
	//
	// *ChangeAttributesParameters_MBRPartitionInfo
	// *ChangeAttributesParameters_GPTPartitionInfo
	Value is_ChangeAttributesParameters_ChangeAttributesParameters `json:"value"`
}

ChangeAttributesParameters_ChangeAttributesParameters structure represents CHANGE_ATTRIBUTES_PARAMETERS union anonymous member.

The CHANGE_ATTRIBUTES_PARAMETERS structure describes the attributes to change on a partition.

func (*ChangeAttributesParameters_ChangeAttributesParameters) GetValue

func (*ChangeAttributesParameters_ChangeAttributesParameters) MarshalUnionNDR

func (*ChangeAttributesParameters_ChangeAttributesParameters) NDRSwitchValue

func (*ChangeAttributesParameters_ChangeAttributesParameters) UnmarshalUnionNDR

type ChangeAttributesParameters_ChangeAttributesParameters_GPTPartitionInfo

type ChangeAttributesParameters_ChangeAttributesParameters_GPTPartitionInfo struct {
	// attributes:  The bitwise OR operator of attributes to change; it can have a combination
	// of the following values.
	//
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                                             |                                                                                  |
	//	|                            VALUE                            |                                     MEANING                                      |
	//	|                                                             |                                                                                  |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| GPT_ATTRIBUTE_PLATFORM_REQUIRED 0x0000000000000001          | Partition is required for the platform to function properly.<46>                 |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY 0x1000000000000000       | The partition can be read from but not written to. Used only with the basic data |
	//	|                                                             | partition type.                                                                  |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| GPT_BASIC_DATA_ATTRIBUTE_HIDDEN 0x4000000000000000          | The partition is hidden and is not mounted. Used only with the basic data        |
	//	|                                                             | partition type.                                                                  |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER 0x8000000000000000 | The partition does not receive a drive letter by default when moving the disk to |
	//	|                                                             | another machine. Used only with the basic data partition type.                   |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	Attributes uint64 `idl:"name:attributes" json:"attributes"`
}

ChangeAttributesParameters_ChangeAttributesParameters_GPTPartitionInfo structure represents CHANGE_ATTRIBUTES_PARAMETERS structure anonymous member.

The CHANGE_ATTRIBUTES_PARAMETERS structure describes the attributes to change on a partition.

func (*ChangeAttributesParameters_ChangeAttributesParameters_GPTPartitionInfo) MarshalNDR

func (*ChangeAttributesParameters_ChangeAttributesParameters_GPTPartitionInfo) UnmarshalNDR

type ChangeAttributesParameters_ChangeAttributesParameters_MBRPartitionInfo

type ChangeAttributesParameters_ChangeAttributesParameters_MBRPartitionInfo struct {
	// bootIndicator:  The Boolean value that indicates whether the partition is bootable.
	BootIndicator bool `idl:"name:bootIndicator" json:"boot_indicator"`
}

ChangeAttributesParameters_ChangeAttributesParameters_MBRPartitionInfo structure represents CHANGE_ATTRIBUTES_PARAMETERS structure anonymous member.

The CHANGE_ATTRIBUTES_PARAMETERS structure describes the attributes to change on a partition.

func (*ChangeAttributesParameters_ChangeAttributesParameters_MBRPartitionInfo) MarshalNDR

func (*ChangeAttributesParameters_ChangeAttributesParameters_MBRPartitionInfo) UnmarshalNDR

type ChangeAttributesParameters_GPTPartitionInfo

type ChangeAttributesParameters_GPTPartitionInfo struct {
	// GptPartInfo:  Contains information for a partition in a GPT.
	GPTPartitionInfo *ChangeAttributesParameters_ChangeAttributesParameters_GPTPartitionInfo `idl:"name:GptPartInfo" json:"gpt_partition_info"`
}

ChangeAttributesParameters_GPTPartitionInfo structure represents ChangeAttributesParameters_ChangeAttributesParameters RPC union arm.

It has following labels: 2

func (*ChangeAttributesParameters_GPTPartitionInfo) MarshalNDR

func (*ChangeAttributesParameters_GPTPartitionInfo) UnmarshalNDR

type ChangeAttributesParameters_MBRPartitionInfo

type ChangeAttributesParameters_MBRPartitionInfo struct {
	// MbrPartInfo:  Contains information for an MBR partition.
	MBRPartitionInfo *ChangeAttributesParameters_ChangeAttributesParameters_MBRPartitionInfo `idl:"name:MbrPartInfo" json:"mbr_partition_info"`
}

ChangeAttributesParameters_MBRPartitionInfo structure represents ChangeAttributesParameters_ChangeAttributesParameters RPC union arm.

It has following labels: 1

func (*ChangeAttributesParameters_MBRPartitionInfo) MarshalNDR

func (*ChangeAttributesParameters_MBRPartitionInfo) UnmarshalNDR

type ChangePartitionTypeParameters

type ChangePartitionTypeParameters struct {
	// style:  A value from the VDS_PARITION_STYLE enumeration that describes the disk partition
	// format.
	Style                         PartitionStyle                                               `idl:"name:style" json:"style"`
	ChangePartitionTypeParameters *ChangePartitionTypeParameters_ChangePartitionTypeParameters `idl:"name:change_partition_type_parameters;switch_is:style" json:"change_partition_type_parameters"`
}

ChangePartitionTypeParameters structure represents CHANGE_PARTITION_TYPE_PARAMETERS RPC structure.

The CHANGE_PARTITION_TYPE_PARAMETERS structure describes parameters to use when changing a partition type.<47>

func (*ChangePartitionTypeParameters) MarshalNDR

func (*ChangePartitionTypeParameters) UnmarshalNDR

func (o *ChangePartitionTypeParameters) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ChangePartitionTypeParameters_ChangePartitionTypeParameters

type ChangePartitionTypeParameters_ChangePartitionTypeParameters struct {
	// Types that are assignable to Value
	//
	// *ChangePartitionTypeParameters_MBRPartitionInfo
	// *ChangePartitionTypeParameters_GPTPartitionInfo
	Value is_ChangePartitionTypeParameters_ChangePartitionTypeParameters `json:"value"`
}

ChangePartitionTypeParameters_ChangePartitionTypeParameters structure represents CHANGE_PARTITION_TYPE_PARAMETERS union anonymous member.

The CHANGE_PARTITION_TYPE_PARAMETERS structure describes parameters to use when changing a partition type.<47>

func (*ChangePartitionTypeParameters_ChangePartitionTypeParameters) GetValue

func (*ChangePartitionTypeParameters_ChangePartitionTypeParameters) MarshalUnionNDR

func (*ChangePartitionTypeParameters_ChangePartitionTypeParameters) NDRSwitchValue

func (*ChangePartitionTypeParameters_ChangePartitionTypeParameters) UnmarshalUnionNDR

type ChangePartitionTypeParameters_ChangePartitionTypeParameters_GPTPartitionInfo

type ChangePartitionTypeParameters_ChangePartitionTypeParameters_GPTPartitionInfo struct {
	// partitionType:  The byte value indicating the partition type to change the partition
	// to.
	PartitionType *dtyp.GUID `idl:"name:partitionType" json:"partition_type"`
}

ChangePartitionTypeParameters_ChangePartitionTypeParameters_GPTPartitionInfo structure represents CHANGE_PARTITION_TYPE_PARAMETERS structure anonymous member.

The CHANGE_PARTITION_TYPE_PARAMETERS structure describes parameters to use when changing a partition type.<47>

func (*ChangePartitionTypeParameters_ChangePartitionTypeParameters_GPTPartitionInfo) MarshalNDR

func (*ChangePartitionTypeParameters_ChangePartitionTypeParameters_GPTPartitionInfo) UnmarshalNDR

type ChangePartitionTypeParameters_ChangePartitionTypeParameters_MBRPartitionInfo

type ChangePartitionTypeParameters_ChangePartitionTypeParameters_MBRPartitionInfo struct {
	// partitionType:  The byte value indicating the partition type to change the partition
	// to.
	PartitionType uint8 `idl:"name:partitionType" json:"partition_type"`
}

ChangePartitionTypeParameters_ChangePartitionTypeParameters_MBRPartitionInfo structure represents CHANGE_PARTITION_TYPE_PARAMETERS structure anonymous member.

The CHANGE_PARTITION_TYPE_PARAMETERS structure describes parameters to use when changing a partition type.<47>

func (*ChangePartitionTypeParameters_ChangePartitionTypeParameters_MBRPartitionInfo) MarshalNDR

func (*ChangePartitionTypeParameters_ChangePartitionTypeParameters_MBRPartitionInfo) UnmarshalNDR

type ChangePartitionTypeParameters_GPTPartitionInfo

type ChangePartitionTypeParameters_GPTPartitionInfo struct {
	// GptPartInfo:  Contains information for the partition of a GPT.
	GPTPartitionInfo *ChangePartitionTypeParameters_ChangePartitionTypeParameters_GPTPartitionInfo `idl:"name:GptPartInfo" json:"gpt_partition_info"`
}

ChangePartitionTypeParameters_GPTPartitionInfo structure represents ChangePartitionTypeParameters_ChangePartitionTypeParameters RPC union arm.

It has following labels: 2

func (*ChangePartitionTypeParameters_GPTPartitionInfo) MarshalNDR

func (*ChangePartitionTypeParameters_GPTPartitionInfo) UnmarshalNDR

type ChangePartitionTypeParameters_MBRPartitionInfo

type ChangePartitionTypeParameters_MBRPartitionInfo struct {
	// MbrPartInfo:  Contains information for an MBR partition.
	MBRPartitionInfo *ChangePartitionTypeParameters_ChangePartitionTypeParameters_MBRPartitionInfo `idl:"name:MbrPartInfo" json:"mbr_partition_info"`
}

ChangePartitionTypeParameters_MBRPartitionInfo structure represents ChangePartitionTypeParameters_ChangePartitionTypeParameters RPC union arm.

It has following labels: 1

func (*ChangePartitionTypeParameters_MBRPartitionInfo) MarshalNDR

func (*ChangePartitionTypeParameters_MBRPartitionInfo) UnmarshalNDR

type CompactVirtualDiskFlag

type CompactVirtualDiskFlag uint16

CompactVirtualDiskFlag type represents COMPACT_VIRTUAL_DISK_FLAG RPC enumeration.

The COMPACT_VIRTUAL_DISK_FLAG enumeration defines options for compacting a virtual disk.

var (
	// COMPACT_VIRTUAL_DISK_FLAG_NONE:  Indicates that no flag has been specified. Currently,
	// this is the only flag defined.
	CompactVirtualDiskFlagNone CompactVirtualDiskFlag = 0
)

func (CompactVirtualDiskFlag) String

func (o CompactVirtualDiskFlag) String() string

type CreatePartitionEx

type CreatePartitionEx dcom.InterfacePointer

CreatePartitionEx structure represents IVdsCreatePartitionEx RPC structure.

func (*CreatePartitionEx) InterfacePointer

func (o *CreatePartitionEx) InterfacePointer() *dcom.InterfacePointer

func (*CreatePartitionEx) MarshalNDR

func (o *CreatePartitionEx) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreatePartitionEx) NDRSizeInfo

func (o *CreatePartitionEx) NDRSizeInfo() []uint64

func (*CreatePartitionEx) UnmarshalNDR

func (o *CreatePartitionEx) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type CreatePartitionParameters

type CreatePartitionParameters struct {
	// style:  A value from the VDS_PARTITION_STYLE enumeration that describes the disk
	// partition format.
	Style                     PartitionStyle                                       `idl:"name:style" json:"style"`
	CreatePartitionParameters *CreatePartitionParameters_CreatePartitionParameters `idl:"name:CreatePartitionParameters;switch_is:style" json:"create_partition_parameters"`
}

CreatePartitionParameters structure represents CREATE_PARTITION_PARAMETERS RPC structure.

The CREATE_PARTITION_PARAMETERS structure provides information about partition properties.

func (*CreatePartitionParameters) MarshalNDR

func (o *CreatePartitionParameters) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreatePartitionParameters) UnmarshalNDR

func (o *CreatePartitionParameters) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type CreatePartitionParameters_CreatePartitionParameters

type CreatePartitionParameters_CreatePartitionParameters struct {
	// Types that are assignable to Value
	//
	// *CreatePartitionParameters_MBRPartitionInfo
	// *CreatePartitionParameters_GPTPartitionInfo
	Value is_CreatePartitionParameters_CreatePartitionParameters `json:"value"`
}

CreatePartitionParameters_CreatePartitionParameters structure represents CREATE_PARTITION_PARAMETERS union anonymous member.

The CREATE_PARTITION_PARAMETERS structure provides information about partition properties.

func (*CreatePartitionParameters_CreatePartitionParameters) GetValue

func (*CreatePartitionParameters_CreatePartitionParameters) MarshalUnionNDR

func (*CreatePartitionParameters_CreatePartitionParameters) NDRSwitchValue

func (*CreatePartitionParameters_CreatePartitionParameters) UnmarshalUnionNDR

type CreatePartitionParameters_CreatePartitionParameters_GPTPartitionInfo

type CreatePartitionParameters_CreatePartitionParameters_GPTPartitionInfo struct {
	// partitionType:  The byte value that indicates the partition type to create.
	PartitionType *dtyp.GUID `idl:"name:partitionType" json:"partition_type"`
	// partitionId:  The GUID of the partition.
	PartitionID *dtyp.GUID `idl:"name:partitionId" json:"partition_id"`
	// attributes:  A bitwise OR operator of attributes that is used to create the partition;
	// it can have a combination of the following values.
	//
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                                             |                                                                                  |
	//	|                            VALUE                            |                                     MEANING                                      |
	//	|                                                             |                                                                                  |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| GPT_ATTRIBUTE_PLATFORM_REQUIRED 0x0000000000000001          | A partition is required for the platform to function properly.<25>               |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY 0x1000000000000000       | The partition can be read from, but not written to. Used only with the basic     |
	//	|                                                             | data partition type.                                                             |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| GPT_BASIC_DATA_ATTRIBUTE_HIDDEN 0x4000000000000000          | The partition is hidden and is not mounted. Used only with the basic data        |
	//	|                                                             | partition type.                                                                  |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER 0x8000000000000000 | The partition does not receive a drive letter by default when moving the disk to |
	//	|                                                             | another computer. Used only with the basic data partition type.                  |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	Attributes uint64 `idl:"name:attributes" json:"attributes"`
	// name:  The null-terminated Unicode name of the partition.
	Name []uint16 `idl:"name:name" json:"name"`
}

CreatePartitionParameters_CreatePartitionParameters_GPTPartitionInfo structure represents CREATE_PARTITION_PARAMETERS structure anonymous member.

The CREATE_PARTITION_PARAMETERS structure provides information about partition properties.

func (*CreatePartitionParameters_CreatePartitionParameters_GPTPartitionInfo) MarshalNDR

func (*CreatePartitionParameters_CreatePartitionParameters_GPTPartitionInfo) UnmarshalNDR

type CreatePartitionParameters_CreatePartitionParameters_MBRPartitionInfo

type CreatePartitionParameters_CreatePartitionParameters_MBRPartitionInfo struct {
	// partitionType:  The byte value that indicates the partition type to create.
	PartitionType uint8 `idl:"name:partitionType" json:"partition_type"`
	// bootIndicator:  A Boolean value that indicates whether the partition is bootable.
	BootIndicator bool `idl:"name:bootIndicator" json:"boot_indicator"`
}

CreatePartitionParameters_CreatePartitionParameters_MBRPartitionInfo structure represents CREATE_PARTITION_PARAMETERS structure anonymous member.

The CREATE_PARTITION_PARAMETERS structure provides information about partition properties.

func (*CreatePartitionParameters_CreatePartitionParameters_MBRPartitionInfo) MarshalNDR

func (*CreatePartitionParameters_CreatePartitionParameters_MBRPartitionInfo) UnmarshalNDR

type CreatePartitionParameters_GPTPartitionInfo

type CreatePartitionParameters_GPTPartitionInfo struct {
	// GptPartInfo:  Contains information about a GPT partition.
	GPTPartitionInfo *CreatePartitionParameters_CreatePartitionParameters_GPTPartitionInfo `idl:"name:GptPartInfo" json:"gpt_partition_info"`
}

CreatePartitionParameters_GPTPartitionInfo structure represents CreatePartitionParameters_CreatePartitionParameters RPC union arm.

It has following labels: 2

func (*CreatePartitionParameters_GPTPartitionInfo) MarshalNDR

func (*CreatePartitionParameters_GPTPartitionInfo) UnmarshalNDR

type CreatePartitionParameters_MBRPartitionInfo

type CreatePartitionParameters_MBRPartitionInfo struct {
	// MbrPartInfo:  Contains information for an MBR partition.
	MBRPartitionInfo *CreatePartitionParameters_CreatePartitionParameters_MBRPartitionInfo `idl:"name:MbrPartInfo" json:"mbr_partition_info"`
}

CreatePartitionParameters_MBRPartitionInfo structure represents CreatePartitionParameters_CreatePartitionParameters RPC union arm.

It has following labels: 1

func (*CreatePartitionParameters_MBRPartitionInfo) MarshalNDR

func (*CreatePartitionParameters_MBRPartitionInfo) UnmarshalNDR

type CreateVDiskParameters

type CreateVDiskParameters struct {
	// UniqueId:  A unique and non-zero GUID value to be assigned to the virtual disk.
	UniqueID *dtyp.GUID `idl:"name:UniqueId" json:"unique_id"`
	// MaximumSize:  The maximum virtual size, in bytes, of the virtual disk object.
	MaximumSize uint64 `idl:"name:MaximumSize" json:"maximum_size"`
	// BlockSizeInBytes:  The internal block size, in bytes, of the virtual disk object.
	// If the virtual disk object being created is a differencing disk, this value MUST
	// be 0. If the virtual disk object being created is not a differencing disk, setting
	// this value to 0 causes the virtual disk object being created to use the default block
	// size.<50>
	BlockSizeInBytes uint32 `idl:"name:BlockSizeInBytes" json:"block_size_in_bytes"`
	// SectorSizeInBytes:  Internal sector size, in bytes, of the virtual disk object. This
	// value MUST be set to 512 (CREATE_VIRTUAL_DISK_PARAMETERS_DEFAULT_SECTOR_SIZE).
	SectorSizeInBytes uint32 `idl:"name:SectorSizeInBytes" json:"sector_size_in_bytes"`
	// pParentPath:  A null-terminated wide-character string containing an optional path
	// to a parent virtual disk object. This member associates the new virtual hard disk
	// with an existing virtual hard disk. Used when creating a differencing disk. The differencing
	// disk gets its size from its parent.
	ParentPath string `idl:"name:pParentPath;string" json:"parent_path"`
	// pSourcePath:  A null-terminated wide-character string containing an optional path
	// to a source of data to be copied to the new virtual hard disk. When pSourcePath is
	// specified, data from the input virtual disk file is copied block for block from the
	// input virtual disk file to the created virtual disk file. There is no parent-child
	// relationship established.
	SourcePath string `idl:"name:pSourcePath;string" json:"source_path"`
}

CreateVDiskParameters structure represents VDS_CREATE_VDISK_PARAMETERS RPC structure.

The VDS_CREATE_VDISK_PARAMETERS structure contains the parameters to be used when a virtual disk is created.

func (*CreateVDiskParameters) MarshalNDR

func (o *CreateVDiskParameters) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreateVDiskParameters) UnmarshalNDR

func (o *CreateVDiskParameters) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type CreateVirtualDiskFlag

type CreateVirtualDiskFlag uint16

CreateVirtualDiskFlag type represents CREATE_VIRTUAL_DISK_FLAG RPC enumeration.

The CREATE_VIRTUAL_DISK_FLAG enumeration defines the properties of a virtual disk that is being created.

var (
	// CREATE_VIRTUAL_DISK_FLAG_NONE:  Indicates to the server that no flags have been
	// specified. CREATE_VIRTUAL_DISK_FLAG_NONE specifies that a virtual disk file will
	// be allocated as the backing store for the virtual disk and that this file will automatically
	// increase in size to accommodate the allocated data.
	//
	// A virtual disk created using the CREATE_ VIRTUAL_DISK_FLAG_NONE flag has a virtual
	// disk file backing store that at any given time is as large as the actual data written
	// to it, plus the size of the header and footer. As more data is written, the virtual
	// disk file automatically increases in size.
	CreateVirtualDiskFlagNone CreateVirtualDiskFlag = 0
	// CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION: Specifies that the server preallocates
	// all physical space necessary for the virtual size of the virtual disk. A fixed size
	// virtual disk file will be allocated as the backing store for the virtual disk. For
	// example, creating a fixed size virtual disk that is 2 gigabytes in size using this
	// flag will result in a virtual disk file that is approximately 2 gigabytes in size.
	CreateVirtualDiskFlagFullPhysicalAllocation CreateVirtualDiskFlag = 1
)

func (CreateVirtualDiskFlag) String

func (o CreateVirtualDiskFlag) String() string

type DependentDiskFlag

type DependentDiskFlag uint16

DependentDiskFlag type represents DEPENDENT_DISK_FLAG RPC enumeration.

The DEPENDENT_DISK_FLAG enumeration contains virtual disk dependency information flags.

var (
	// DEPENDENT_DISK_FLAG_NONE:  No flags specified. Use system defaults.
	DependentDiskFlagNone DependentDiskFlag = 0
	// DEPENDENT_DISK_FLAG_MULT_BACKING_FILES:  Multiple files backing the virtual disk.
	DependentDiskFlagMultBackingFiles DependentDiskFlag = 1
	// DEPENDENT_DISK_FLAG_FULLY_ALLOCATED:  Fully allocated virtual disk.
	DependentDiskFlagFullyAllocated DependentDiskFlag = 2
	// DEPENDENT_DISK_FLAG_READ_ONLY:  Read-only virtual disk.
	DependentDiskFlagReadOnly DependentDiskFlag = 4
	// DEPENDENT_DISK_FLAG_REMOTE:  The backing file of the virtual disk is not on a local
	// physical disk.
	DependentDiskFlagRemote DependentDiskFlag = 8
	// DEPENDENT_DISK_FLAG_SYSTEM_VOLUME:  Reserved.
	DependentDiskFlagSystemVolume DependentDiskFlag = 16
	// DEPENDENT_DISK_FLAG_SYSTEM_VOLUME_PARENT:  The backing file of the virtual disk
	// is on the system volume.
	DependentDiskFlagSystemVolumeParent DependentDiskFlag = 32
	// DEPENDENT_DISK_FLAG_REMOVABLE:  The backing file of the virtual disk is on a removable
	// physical disk.
	DependentDiskFlagRemovable DependentDiskFlag = 64
	// DEPENDENT_DISK_FLAG_NO_DRIVE_LETTER:  Drive letters are not automatically assigned
	// to the volumes on the virtual disk.
	DependentDiskFlagNoDriveLetter DependentDiskFlag = 128
	// DEPENDENT_DISK_FLAG_PARENT:  The virtual disk is a parent in a differencing chain.
	DependentDiskFlagParent DependentDiskFlag = 256
	// DEPENDENT_DISK_FLAG_NO_HOST_DISK:  The virtual disk is not surfaced on (attached
	// to) the local host. For example, it is attached to a guest virtual machine.
	DependentDiskFlagNoHostDisk DependentDiskFlag = 512
	// DEPENDENT_DISK_FLAG_PERMANENT_LIFETIME:  The lifetime of the virtual disk is not
	// tied to any application or process.
	DependentDiskFlagPermanentLifetime DependentDiskFlag = 1024
)

func (DependentDiskFlag) String

func (o DependentDiskFlag) String() string

type DetachVirtualDiskFlag

type DetachVirtualDiskFlag uint16

DetachVirtualDiskFlag type represents DETACH_VIRTUAL_DISK_FLAG RPC enumeration.

The DETACH_VIRTUAL_DISK_FLAG enumeration defines options for detaching a virtual disk.

var (
	// DETACH_VIRTUAL_DISK_FLAG_NONE:  Indicates that no flag has been specified. Currently,
	// this is the only flag defined.
	DetachVirtualDiskFlagNone DetachVirtualDiskFlag = 0
)

func (DetachVirtualDiskFlag) String

func (o DetachVirtualDiskFlag) String() string

type Disk

Disk structure represents IVdsDisk RPC structure.

func (*Disk) InterfacePointer

func (o *Disk) InterfacePointer() *dcom.InterfacePointer

func (*Disk) MarshalNDR

func (o *Disk) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Disk) NDRSizeInfo

func (o *Disk) NDRSizeInfo() []uint64

func (*Disk) UnmarshalNDR

func (o *Disk) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Disk2

type Disk2 dcom.InterfacePointer

Disk2 structure represents IVdsDisk2 RPC structure.

func (*Disk2) InterfacePointer

func (o *Disk2) InterfacePointer() *dcom.InterfacePointer

func (*Disk2) MarshalNDR

func (o *Disk2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Disk2) NDRSizeInfo

func (o *Disk2) NDRSizeInfo() []uint64

func (*Disk2) UnmarshalNDR

func (o *Disk2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Disk3

type Disk3 dcom.InterfacePointer

Disk3 structure represents IVdsDisk3 RPC structure.

func (*Disk3) InterfacePointer

func (o *Disk3) InterfacePointer() *dcom.InterfacePointer

func (*Disk3) MarshalNDR

func (o *Disk3) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Disk3) NDRSizeInfo

func (o *Disk3) NDRSizeInfo() []uint64

func (*Disk3) UnmarshalNDR

func (o *Disk3) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskExtent

type DiskExtent struct {
	// diskId:  The VDS object ID of the disk object on which the extent resides.
	DiskID *ObjectID `idl:"name:diskId" json:"disk_id"`
	// type:  The value from the VDS_DISK_EXTENT_TYPE enumeration that indicates the type
	// of the extent.
	Type DiskExtentType `idl:"name:type" json:"type"`
	// ullOffset:  The byte offset of the disk extent from the beginning of the disk.
	Offset uint64 `idl:"name:ullOffset" json:"offset"`
	// ullSize:  The size, in bytes, of the extent.
	Size uint64 `idl:"name:ullSize" json:"size"`
	// volumeId:  The VDS object ID of the volume object to which the extent belongs, if
	// any.
	VolumeID *ObjectID `idl:"name:volumeId" json:"volume_id"`
	// plexId:  The VDS object ID of the volume plex object to which the extent belongs,
	// if it belongs to a volume.
	PlexID *ObjectID `idl:"name:plexId" json:"plex_id"`
	// memberIdx:  The zero-based index of the volume plex member to which the extent belongs,
	// if it belongs to a volume plex.
	MemberIndex uint32 `idl:"name:memberIdx" json:"member_index"`
}

DiskExtent structure represents VDS_DISK_EXTENT RPC structure.

The VDS_DISK_EXTENT structure provides information about a disk extent.

func (*DiskExtent) MarshalNDR

func (o *DiskExtent) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DiskExtent) UnmarshalNDR

func (o *DiskExtent) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskExtentType

type DiskExtentType uint16

DiskExtentType type represents VDS_DISK_EXTENT_TYPE RPC enumeration.

The VDS_DISK_EXTENT_TYPE enumeration defines the set of valid types for a disk extent.

var (
	// VDS_DET_UNKNOWN:  The extent belongs to an unknown partition type.
	DiskExtentTypeUnknown DiskExtentType = 0
	// VDS_DET_FREE:  The extent belongs to an area of free space.
	DiskExtentTypeFree DiskExtentType = 1
	// VDS_DET_DATA:  The extent belongs to a volume.
	DiskExtentTypeData DiskExtentType = 2
	// VDS_DET_OEM:  The extent belongs to an OEM partition.
	DiskExtentTypeOEM DiskExtentType = 3
	// VDS_DET_ESP:  The extent belongs to an Extensible Firmware Interface (EFI) system
	// partition.
	DiskExtentTypeESP DiskExtentType = 4
	// VDS_DET_MSR:  The extent belongs to a Microsoft Reserved (MSR) partition.
	DiskExtentTypeMSR DiskExtentType = 5
	// VDS_DET_LDM:  The extent belongs to a disk management metadata partition.
	DiskExtentTypeLDM DiskExtentType = 6
	// VDS_DET_UNUSABLE:  The extent belongs to an area of unusable space.
	DiskExtentTypeUnusable DiskExtentType = 32767
)

func (DiskExtentType) String

func (o DiskExtentType) String() string

type DiskFlag

type DiskFlag uint16

DiskFlag type represents VDS_DISK_FLAG RPC enumeration.

The VDS_DISK_FLAG enumeration defines the properties of a disk.

var (
	// VDS_DF_AUDIO_CD:  The disk is an audio CD, as specified in [IEC60908].
	DiskFlagAudioCD DiskFlag = 1
	// VDS_DF_HOTSPARE:  The disk is a hot spare.
	DiskFlagHotSpare DiskFlag = 2
	// VDS_DF_RESERVE_CAPABLE:  The disk can be reserved for a host.
	DiskFlagReserveCapable DiskFlag = 4
	// VDS_DF_MASKED:  The disk is currently hidden from the host.
	DiskFlagMasked DiskFlag = 8
	// VDS_DF_STYLE_CONVERTIBLE:  The disk is convertible between the MBR partition format
	// and the GPT partition format.
	DiskFlagStyleConvertible DiskFlag = 16
	// VDS_DF_CLUSTERED:  The disk is clustered.
	DiskFlagClustered DiskFlag = 32
	// VDS_DF_READ_ONLY:  The disk read-only attribute is set.
	DiskFlagReadOnly DiskFlag = 64
	// VDS_DF_SYSTEM_DISK:  The disk contains the system volume.
	DiskFlagSystemDisk DiskFlag = 128
	// VDS_DF_BOOT_DISK:  The disk contains the boot volume.
	DiskFlagBootDisk DiskFlag = 256
	// VDS_DF_PAGEFILE_DISK:  The disk contains the paging file on one of its volumes.
	DiskFlagPageFileDisk DiskFlag = 512
	// VDS_DF_HIBERNATIONFILE_DISK:  The disk contains the hibernation file on one of its
	// volumes.
	DiskFlagHibernationFileDisk DiskFlag = 1024
	// VDS_DF_CRASHDUMP_DISK:  The disk is configured to contain a crash-dump file on one
	// of its volumes.
	DiskFlagCrashDumpDisk DiskFlag = 2048
	// VDS_DF_HAS_ARC_PATH:  The disk has an Advanced RISC Computing (ARC) path specified
	// in the BIOS. For information on ARC paths, see [KB102873].
	DiskFlagHasARCPath DiskFlag = 4096
	// VDS_DF_DYNAMIC:  The disk is a logical disk manager dynamic disk.
	DiskFlagDynamic DiskFlag = 8192
	// VDS_DF_BOOT_FROM_DISK:  Indicates the disk from which the machine will boot. Note
	// that this is BIOS disk 0 on the MBR, not the current system volume disk. For example,
	// if the machine boots to Windows PE, this flag is set on BIOS disk 0. For EFI machines,
	// this flag is set on a disk containing the EFI system partition used to boot the machine.
	DiskFlagBootFromDisk DiskFlag = 16384
	// VDS_DF_CURRENT_READ_ONLY:  Indicates that the disk is in a read-only state. If this
	// flag is not set, the disk is read/write. Unlike the VDS_DF_READ_ONLY flag, which
	// is used to indicate the disk's read-only attribute maintained by the operating system,
	// this flag reflects the actual disk state. This flag cannot be set by using the IVdsDisk::SetFlags
	// method or cleared by using the IVdsDisk::ClearFlags method.
	DiskFlagCurrentReadOnly DiskFlag = 32768
)

func (DiskFlag) String

func (o DiskFlag) String() string

type DiskFreeExtent

type DiskFreeExtent struct {
	// diskId:  The VDS object ID of the disk object on which the extent resides.
	DiskID *ObjectID `idl:"name:diskId" json:"disk_id"`
	// ullOffset:  The byte offset of the disk extent from the beginning of the disk.
	Offset uint64 `idl:"name:ullOffset" json:"offset"`
	// ullSize:  The size, in bytes, of the extent.
	Size uint64 `idl:"name:ullSize" json:"size"`
}

DiskFreeExtent structure represents VDS_DISK_FREE_EXTENT RPC structure.

The VDS_DISK_FREE_EXTENT structure provides information about a disk extent associated with free space on the disk.

func (*DiskFreeExtent) MarshalNDR

func (o *DiskFreeExtent) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DiskFreeExtent) UnmarshalNDR

func (o *DiskFreeExtent) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskNotification

type DiskNotification struct {
	// ulEvent:  The type of disk notification; it MUST be one of the following values.
	//
	//	+-------------------------------+--------------------------------------------------------+
	//	|                               |                                                        |
	//	|             VALUE             |                        MEANING                         |
	//	|                               |                                                        |
	//	+-------------------------------+--------------------------------------------------------+
	//	+-------------------------------+--------------------------------------------------------+
	//	| VDS_NF_DISK_ARRIVE 0x00000008 | The disk has become visible to the operating system.   |
	//	+-------------------------------+--------------------------------------------------------+
	//	| VDS_NF_DISK_DEPART 0x00000009 | The disk is no longer visible to the operating system. |
	//	+-------------------------------+--------------------------------------------------------+
	//	| VDS_NF_DISK_MODIFY 0x0000000A | The disk or its properties were modified.              |
	//	+-------------------------------+--------------------------------------------------------+
	Event uint32 `idl:"name:ulEvent" json:"event"`
	// diskId:  The VDS object ID of the disk object to which the notification refers.
	DiskID *ObjectID `idl:"name:diskId" json:"disk_id"`
}

DiskNotification structure represents VDS_DISK_NOTIFICATION RPC structure.

The VDS_DISK_NOTIFICATION structure provides information about a disk notification.

func (*DiskNotification) MarshalNDR

func (o *DiskNotification) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DiskNotification) UnmarshalNDR

func (o *DiskNotification) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskOfflineReason

type DiskOfflineReason uint16

DiskOfflineReason type represents VDS_DISK_OFFLINE_REASON RPC enumeration.

The VDS_DISK_OFFLINE_REASON enumeration defines the reason for the disk to be kept offline.

var (
	// VDSDiskOfflineReasonNone:  The reason is unknown.
	DiskOfflineReasonNone DiskOfflineReason = 0
	// VDSDiskOfflineReasonPolicy:  The disk is offline because of the SAN policy.
	DiskOfflineReasonPolicy DiskOfflineReason = 1
	// VDSDiskOfflineReasonRedundantPath:  The disk is offline because it was determined
	// that the disk is a redundant path to another disk that is online.
	DiskOfflineReasonRedundantPath DiskOfflineReason = 2
	// VDSDiskOfflineReasonSnapshot:  The disk is offline because it is a snapshot disk.
	DiskOfflineReasonSnapshot DiskOfflineReason = 3
	// VDSDiskOfflineReasonCollision:  The disk is offline because its disk signature is
	// the same as the disk signature of another disk that is online.
	DiskOfflineReasonCollision DiskOfflineReason = 4
	// VDSDiskOfflineReasonResourceExhaustion<43>:  The disk is offline because of lack
	// of capacity.
	DiskOfflineReasonResourceExhaustion DiskOfflineReason = 5
	// VDSDiskOfflineReasonWriteFailure<44>:  The disk is offline because of critical write
	// failures.
	DiskOfflineReasonWriteFailure DiskOfflineReason = 6
	// VDSDiskOfflineReasonDIScan<45>:  The disk is offline because a data integrity scan
	// is required.
	DiskOfflineReasonDIScan DiskOfflineReason = 7
)

func (DiskOfflineReason) String

func (o DiskOfflineReason) String() string

type DiskOnline

type DiskOnline dcom.InterfacePointer

DiskOnline structure represents IVdsDiskOnline RPC structure.

func (*DiskOnline) InterfacePointer

func (o *DiskOnline) InterfacePointer() *dcom.InterfacePointer

func (*DiskOnline) MarshalNDR

func (o *DiskOnline) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DiskOnline) NDRSizeInfo

func (o *DiskOnline) NDRSizeInfo() []uint64

func (*DiskOnline) UnmarshalNDR

func (o *DiskOnline) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskPartitionMF

type DiskPartitionMF dcom.InterfacePointer

DiskPartitionMF structure represents IVdsDiskPartitionMF RPC structure.

func (*DiskPartitionMF) InterfacePointer

func (o *DiskPartitionMF) InterfacePointer() *dcom.InterfacePointer

func (*DiskPartitionMF) MarshalNDR

func (o *DiskPartitionMF) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DiskPartitionMF) NDRSizeInfo

func (o *DiskPartitionMF) NDRSizeInfo() []uint64

func (*DiskPartitionMF) UnmarshalNDR

func (o *DiskPartitionMF) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskPartitionMF2

type DiskPartitionMF2 dcom.InterfacePointer

DiskPartitionMF2 structure represents IVdsDiskPartitionMF2 RPC structure.

func (*DiskPartitionMF2) InterfacePointer

func (o *DiskPartitionMF2) InterfacePointer() *dcom.InterfacePointer

func (*DiskPartitionMF2) MarshalNDR

func (o *DiskPartitionMF2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DiskPartitionMF2) NDRSizeInfo

func (o *DiskPartitionMF2) NDRSizeInfo() []uint64

func (*DiskPartitionMF2) UnmarshalNDR

func (o *DiskPartitionMF2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskProperty

type DiskProperty struct {
	// id:  The VDS object ID of the disk object.
	ID *ObjectID `idl:"name:id" json:"id"`
	// status:  The value from the VDS_DISK_STATUS enumeration that indicates the disk status.
	Status DiskStatus `idl:"name:status" json:"status"`
	// ReserveMode:  The value from the VDS_LUN_RESERVE_MODE enumeration that indicates
	// the sharing mode of the disk.
	ReserveMode LUNReserveMode `idl:"name:ReserveMode" json:"reserve_mode"`
	// health:  The value from the VDS_HEALTH enumeration that indicates the health of the
	// disk.
	Health Health `idl:"name:health" json:"health"`
	// dwDeviceType:  The device type of the disk. Note that this value refers to the disk
	// type and not the drive type. Thus, if there is CD media in a DVD/CD drive, it is
	// identified as FILE_DEVICE_CD_ROM; however, DVD media in the same drive is identified
	// as FILE_DEVICE_DVD. This field can have the following values.
	//
	//	+-------------------------------+------------------------------------------------+
	//	|                               |                                                |
	//	|             VALUE             |                    MEANING                     |
	//	|                               |                                                |
	//	+-------------------------------+------------------------------------------------+
	//	+-------------------------------+------------------------------------------------+
	//	| FILE_DEVICE_CD_ROM 0x00000002 | The device is a CD-ROM.                        |
	//	+-------------------------------+------------------------------------------------+
	//	| FILE_DEVICE_DISK 0x00000007   | The device is a hard disk or removable device. |
	//	+-------------------------------+------------------------------------------------+
	//	| FILE_DEVICE_DVD 0x00000033    | The device is a DVD.                           |
	//	+-------------------------------+------------------------------------------------+
	DeviceType uint32 `idl:"name:dwDeviceType" json:"device_type"`
	// dwMediaType:  The media type of the disk; it can have the following values.
	//
	//	+---------------------------+---------------------------------+
	//	|                           |                                 |
	//	|           VALUE           |             MEANING             |
	//	|                           |                                 |
	//	+---------------------------+---------------------------------+
	//	+---------------------------+---------------------------------+
	//	| Unknown 0x00000000        | The disk media type is unknown. |
	//	+---------------------------+---------------------------------+
	//	| RemovableMedia 0x0000000B | The disk media is removable.    |
	//	+---------------------------+---------------------------------+
	//	| FixedMedia 0x0000000C     | The disk media is fixed.        |
	//	+---------------------------+---------------------------------+
	MediaType uint32 `idl:"name:dwMediaType" json:"media_type"`
	// ullSize:  The size of the disk, in bytes.
	Size uint64 `idl:"name:ullSize" json:"size"`
	// ulBytesPerSector:  The size of the sectors for the disk, in bytes.
	BytesPerSector uint32 `idl:"name:ulBytesPerSector" json:"bytes_per_sector"`
	// ulSectorsPerTrack:  The number of sectors per track on the disk.
	SectorsPerTrack uint32 `idl:"name:ulSectorsPerTrack" json:"sectors_per_track"`
	// ulTracksPerCylinder:  The number of tracks per cylinder on the disk.
	TracksPerCylinder uint32 `idl:"name:ulTracksPerCylinder" json:"tracks_per_cylinder"`
	// ulFlags:  The combination of any values, by using a bitwise OR operator, that are
	// defined in the VDS_DISK_FLAG enumeration. This field can be zero if none of the VDS_DISK_FLAG
	// values apply.
	Flags uint32 `idl:"name:ulFlags" json:"flags"`
	// BusType:  The value from the VDS_STORAGE_BUS_TYPE enumeration that indicates the
	// type of bus where the disk resides.
	BusType StorageBusType `idl:"name:BusType" json:"bus_type"`
	// PartitionStyle:  The value from the VDS_PARTITION_STYLE enumeration that indicates
	// the partitioning format of the disk.
	PartitionStyle PartitionStyle             `idl:"name:PartitionStyle" json:"partition_style"`
	DiskProperty   *DiskProperty_DiskProperty `idl:"name:DiskProperty;switch_is:PartitionStyle" json:"disk_property"`
	// pwszDiskAddress:  The null-terminated Unicode address of the disk, if the disk uses
	// a SCSI-like address; otherwise, NULL. If present, a client can use this property
	// to determine the port number, bus, target number, and LUN of the disk.
	DiskAddress string `idl:"name:pwszDiskAddress;string" json:"disk_address"`
	// pwszName:  The null-terminated Unicode name that the operating system uses to identify
	// the disk. If present, a client can use this property to determine the disk's PNP
	// device number. This is the number obtained from the DeviceNumber member of STORAGE_DEVICE_NUMBER
	// (see [MSDN-STRGEDEVNUM]). For a hard disk, this name has the format \\?\PhysicalDriveN,
	// where N signifies the device number of the disk. For a DVD/CD drive, this name has
	// the format \\?\CdRomN, where N signifies the device number of the DVD/CD drive. A
	// client can use this property to identify the disk.
	Name string `idl:"name:pwszName;string" json:"name"`
	// pwszFriendlyName:  The null-terminated Unicode friendly (human-readable) name of
	// the disk as assigned by the operating system. This property MAY be NULL. If present,
	// a client can use this property to display a human-readable name of the disk.
	FriendlyName string `idl:"name:pwszFriendlyName;string" json:"friendly_name"`
	// pwszAdaptorName:  The null-terminated Unicode name that the operating system assigns
	// to the adapter to which the disk is attached. This property MAY be NULL. If present,
	// a client can use this property to display the adapter name of the disk.
	AdaptorName string `idl:"name:pwszAdaptorName;string" json:"adaptor_name"`
	// pwszDevicePath:  The null-terminated Unicode device path that the operating system
	// uses to identify the device for the disk. This property MAY be NULL. If present,
	// a client can use this property to display the device path of the disk. This string
	// is used to load the property page information for a disk.
	DevicePath string `idl:"name:pwszDevicePath;string" json:"device_path"`
}

DiskProperty structure represents VDS_DISK_PROP RPC structure.

The VDS_DISK_PROP structure provides the properties of a disk.

func (*DiskProperty) MarshalNDR

func (o *DiskProperty) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DiskProperty) UnmarshalNDR

func (o *DiskProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskProperty2

type DiskProperty2 struct {
	// id:  The VDS object ID of the disk object.
	ID *ObjectID `idl:"name:id" json:"id"`
	// status:  The value from the VDS_DISK_STATUS enumeration that indicates the disk status.
	Status DiskStatus `idl:"name:status" json:"status"`
	// ReserveMode:  The value from the VDS_LUN_RESERVE_MODE enumeration that includes the
	// sharing mode of the disk.
	ReserveMode LUNReserveMode `idl:"name:ReserveMode" json:"reserve_mode"`
	// health:  The value from the VDS_HEALTH enumeration that indicates the health of the
	// disk.
	Health Health `idl:"name:health" json:"health"`
	// dwDeviceType:  The device type of the disk. Note that this volume refers to the disk
	// type and not the drive type. Thus, if there is CD media in a DVD/CD drive, it is
	// identified as FILE_DEVICE_CD_ROM; however, DVD media in the same drive is identified
	// as FILE_DEVICE_DVD. This field can have the following values.
	//
	//	+-------------------------------+------------------------------------------------+
	//	|                               |                                                |
	//	|             VALUE             |                    MEANING                     |
	//	|                               |                                                |
	//	+-------------------------------+------------------------------------------------+
	//	+-------------------------------+------------------------------------------------+
	//	| FILE_DEVICE_CD_ROM 0x00000002 | The device is a CD-ROM.                        |
	//	+-------------------------------+------------------------------------------------+
	//	| FILE_DEVICE_DISK 0x00000007   | The device is a hard disk or removable device. |
	//	+-------------------------------+------------------------------------------------+
	//	| FILE_DEVICE_DVD 0x00000033    | The device is a DVD.                           |
	//	+-------------------------------+------------------------------------------------+
	DeviceType uint32 `idl:"name:dwDeviceType" json:"device_type"`
	// dwMediaType:  The media type of the disk. It can have the following values.
	//
	//	+---------------------------+---------------------------------+
	//	|                           |                                 |
	//	|           VALUE           |             MEANING             |
	//	|                           |                                 |
	//	+---------------------------+---------------------------------+
	//	+---------------------------+---------------------------------+
	//	| Unknown 0x00000000        | The disk media type is unknown. |
	//	+---------------------------+---------------------------------+
	//	| RemovableMedia 0x0000000B | The disk is removable media.    |
	//	+---------------------------+---------------------------------+
	//	| FixedMedia 0x0000000C     | The disk media is fixed.        |
	//	+---------------------------+---------------------------------+
	MediaType uint32 `idl:"name:dwMediaType" json:"media_type"`
	// ullSize:  The size of the disk, in bytes.
	Size uint64 `idl:"name:ullSize" json:"size"`
	// ulBytesPerSector:  The size of the sectors for the disk, in bytes.
	BytesPerSector uint32 `idl:"name:ulBytesPerSector" json:"bytes_per_sector"`
	// ulSectorsPerTrack:  The number of sectors per track on the disk.
	SectorsPerTrack uint32 `idl:"name:ulSectorsPerTrack" json:"sectors_per_track"`
	// ulTracksPerCylinder:  The number of tracks per cylinder on the disk.
	TracksPerCylinder uint32 `idl:"name:ulTracksPerCylinder" json:"tracks_per_cylinder"`
	// ulFlags:  The combination of any values, by using a bitwise OR operator, that are
	// defined in the VDS_DISK_FLAG enumeration.
	Flags uint32 `idl:"name:ulFlags" json:"flags"`
	// BusType:  The value from the VDS_STORAGE_BUS_TYPE enumeration that indicates the
	// type of bus where the disk resides.
	BusType StorageBusType `idl:"name:BusType" json:"bus_type"`
	// PartitionStyle:  The value from the VDS_PARTITION_STYLE enumeration that indicates
	// the partitioning format of the disk.
	PartitionStyle PartitionStyle               `idl:"name:PartitionStyle" json:"partition_style"`
	DiskProperty2  *DiskProperty2_DiskProperty2 `idl:"name:DiskProperty2;switch_is:PartitionStyle" json:"disk_property2"`
	// pwszDiskAddress:  The null-terminated Unicode address of the disk, if the disk uses
	// a SCSI-like address. Otherwise, NULL. If present, a client can use this property
	// to determine the port number, bus, target number, and LUN of the disk.
	DiskAddress string `idl:"name:pwszDiskAddress;string" json:"disk_address"`
	// pwszName:  The null-terminated Unicode name that the operating system uses to identify
	// the disk. If present, a client can use this property to determine the disk's PNP
	// device number. For a hard disk, this name has the format \\?\PhysicalDriveN; where
	// N signifies the device number of the disk. For a DVD/CD drive, this name has the
	// format \\?\CdRomN; where N signifies the device number of the DVD/CD drive. A client
	// can use this property to identify the disk.
	Name string `idl:"name:pwszName;string" json:"name"`
	// pwszFriendlyName:  The null-terminated Unicode friendly (human-readable) name of
	// the disk as assigned by the operating system. This property MAY be NULL. If present,
	// a client can use this property to display a human-readable name of the disk.
	FriendlyName string `idl:"name:pwszFriendlyName;string" json:"friendly_name"`
	// pwszAdaptorName:  The null-terminated Unicode name that the operating system assigns
	// to the adapter to which the disk is attached. This property MAY be NULL. If present,
	// a client can use this property to display the adapter name of the disk.
	AdaptorName string `idl:"name:pwszAdaptorName;string" json:"adaptor_name"`
	// pwszDevicePath:  The null-terminated Unicode device path that the operating system
	// uses to identify the device for the disk. This property MAY be NULL. If present,
	// a client can use this property to display the device path of the disk. This string
	// is used to load the property page information for a disk.
	DevicePath string `idl:"name:pwszDevicePath;string" json:"device_path"`
	// pwszLocationPath:  This string is built from a combination of the DEVPKEY_Device_LocationPaths
	// value for the disk's adapter, the bus type, and the SCSI address. The DEVPKEY_Device_LocationPaths
	// property represents the location of a device instance in the device tree.
	//
	// The following table shows examples of location paths built for various bus/disk types.
	//
	//	+-------------------+----------------------------------------------------------+
	//	|     BUS/DISK      |                         LOCATION                         |
	//	|       TYPE        |                           PATH                           |
	//	+-------------------+----------------------------------------------------------+
	//	+-------------------+----------------------------------------------------------+
	//	| IDE\ATA\PATA\SATA | PCIROOT(0)#PCI(0100)#ATA(C01T03L00)                      |
	//	+-------------------+----------------------------------------------------------+
	//	| SCSI              | PCIROOT(0)#PCI(1C00)#PCI(0000)#SCSI(P00T01L01)           |
	//	+-------------------+----------------------------------------------------------+
	//	| SAS               | PCIROOT(1)#PCI(0300)#SAS(P00T03L00)                      |
	//	+-------------------+----------------------------------------------------------+
	//	| PCI RAID          | PCIROOT(0)#PCI(0200)#PCI(0003)#PCI(0100)#RAID(P02T00L00) |
	//	+-------------------+----------------------------------------------------------+
	LocationPath string `idl:"name:pwszLocationPath;string" json:"location_path"`
}

DiskProperty2 structure represents VDS_DISK_PROP2 RPC structure.

The VDS_DISK_PROP2 structure provides the properties of a disk.

func (*DiskProperty2) MarshalNDR

func (o *DiskProperty2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DiskProperty2) UnmarshalNDR

func (o *DiskProperty2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskProperty2_DiskGUID

type DiskProperty2_DiskGUID struct {
	// DiskGuid:  The GUID in the GPT that identifies the disk.
	DiskGUID *dtyp.GUID `idl:"name:DiskGuid" json:"disk_guid"`
}

DiskProperty2_DiskGUID structure represents DiskProperty2_DiskProperty2 RPC union arm.

It has following labels: 2

func (*DiskProperty2_DiskGUID) MarshalNDR

func (o *DiskProperty2_DiskGUID) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DiskProperty2_DiskGUID) UnmarshalNDR

func (o *DiskProperty2_DiskGUID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskProperty2_DiskProperty2

type DiskProperty2_DiskProperty2 struct {
	// Types that are assignable to Value
	//
	// *DiskProperty2_Signature
	// *DiskProperty2_DiskGUID
	Value is_DiskProperty2_DiskProperty2 `json:"value"`
}

DiskProperty2_DiskProperty2 structure represents VDS_DISK_PROP2 union anonymous member.

The VDS_DISK_PROP2 structure provides the properties of a disk.

func (*DiskProperty2_DiskProperty2) GetValue

func (o *DiskProperty2_DiskProperty2) GetValue() any

func (*DiskProperty2_DiskProperty2) MarshalUnionNDR

func (o *DiskProperty2_DiskProperty2) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint16) error

func (*DiskProperty2_DiskProperty2) NDRSwitchValue

func (o *DiskProperty2_DiskProperty2) NDRSwitchValue(sw uint16) uint16

func (*DiskProperty2_DiskProperty2) UnmarshalUnionNDR

func (o *DiskProperty2_DiskProperty2) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint16) error

type DiskProperty2_Signature

type DiskProperty2_Signature struct {
	// dwSignature:  The MBR disk signature of the disk.
	Signature uint32 `idl:"name:dwSignature" json:"signature"`
}

DiskProperty2_Signature structure represents DiskProperty2_DiskProperty2 RPC union arm.

It has following labels: 1

func (*DiskProperty2_Signature) MarshalNDR

func (o *DiskProperty2_Signature) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DiskProperty2_Signature) UnmarshalNDR

func (o *DiskProperty2_Signature) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskProperty_DiskGUID

type DiskProperty_DiskGUID struct {
	// DiskGuid:  The GUID in the GPT that identifies the disk.
	DiskGUID *dtyp.GUID `idl:"name:DiskGuid" json:"disk_guid"`
}

DiskProperty_DiskGUID structure represents DiskProperty_DiskProperty RPC union arm.

It has following labels: 2

func (*DiskProperty_DiskGUID) MarshalNDR

func (o *DiskProperty_DiskGUID) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DiskProperty_DiskGUID) UnmarshalNDR

func (o *DiskProperty_DiskGUID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskProperty_DiskProperty

type DiskProperty_DiskProperty struct {
	// Types that are assignable to Value
	//
	// *DiskProperty_Signature
	// *DiskProperty_DiskGUID
	Value is_DiskProperty_DiskProperty `json:"value"`
}

DiskProperty_DiskProperty structure represents VDS_DISK_PROP union anonymous member.

The VDS_DISK_PROP structure provides the properties of a disk.

func (*DiskProperty_DiskProperty) GetValue

func (o *DiskProperty_DiskProperty) GetValue() any

func (*DiskProperty_DiskProperty) MarshalUnionNDR

func (o *DiskProperty_DiskProperty) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint16) error

func (*DiskProperty_DiskProperty) NDRSwitchValue

func (o *DiskProperty_DiskProperty) NDRSwitchValue(sw uint16) uint16

func (*DiskProperty_DiskProperty) UnmarshalUnionNDR

func (o *DiskProperty_DiskProperty) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint16) error

type DiskProperty_Signature

type DiskProperty_Signature struct {
	// dwSignature:  The MBR disk signature of the disk.
	Signature uint32 `idl:"name:dwSignature" json:"signature"`
}

DiskProperty_Signature structure represents DiskProperty_DiskProperty RPC union arm.

It has following labels: 1

func (*DiskProperty_Signature) MarshalNDR

func (o *DiskProperty_Signature) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DiskProperty_Signature) UnmarshalNDR

func (o *DiskProperty_Signature) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskStatus

type DiskStatus uint16

DiskStatus type represents VDS_DISK_STATUS RPC enumeration.

The VDS_DISK_STATUS enumeration defines the status of a disk.

var (
	// VDS_DS_UNKNOWN:  The disk status is unknown.
	DiskStatusUnknown DiskStatus = 0
	// VDS_DS_ONLINE:  The disk is online.
	DiskStatusOnline DiskStatus = 1
	// VDS_DS_NOT_READY:  The disk is not ready.
	DiskStatusNotReady DiskStatus = 2
	// VDS_DS_NO_MEDIA:  The disk has no media.
	DiskStatusNoMedia DiskStatus = 3
	// VDS_DS_OFFLINE:  The disk is offline. Offline disks have no volume devices exposed.
	DiskStatusOffline DiskStatus = 4
	// VDS_DS_FAILED:  The disk failed.
	DiskStatusFailed DiskStatus = 5
	// VDS_DS_MISSING:  The disk is missing; it is no longer available to the operating
	// system.
	DiskStatusMissing DiskStatus = 6
)

func (DiskStatus) String

func (o DiskStatus) String() string

type DriveLetterFlag

type DriveLetterFlag uint16

DriveLetterFlag type represents VDS_DRIVE_LETTER_FLAG RPC enumeration.

The VDS_DRIVE_LETTER_FLAG enumeration defines the set of valid flags for a drive letter.

var (
	// VDS_DLF_NON_PERSISTENT:  If set, the drive letter no longer appears after the computer
	// is restarted.
	DriveLetterFlagNonPersistent DriveLetterFlag = 1
)

func (DriveLetterFlag) String

func (o DriveLetterFlag) String() string

type DriveLetterNotification

type DriveLetterNotification struct {
	// ulEvent:  Determines the drive-letter event for which an application will be notified;
	// it MUST be one of the following values.
	//
	//	+---------------------------------------+-------------------------------------------------+
	//	|                                       |                                                 |
	//	|                 VALUE                 |                     MEANING                     |
	//	|                                       |                                                 |
	//	+---------------------------------------+-------------------------------------------------+
	//	+---------------------------------------+-------------------------------------------------+
	//	| VDS_NF_DRIVE_LETTER_FREE 0x000000C9   | The drive letter is no longer in use.           |
	//	+---------------------------------------+-------------------------------------------------+
	//	| VDS_NF_DRIVE_LETTER_ASSIGN 0x000000CA | The drive letter has been assigned to a volume. |
	//	+---------------------------------------+-------------------------------------------------+
	Event uint32 `idl:"name:ulEvent" json:"event"`
	// wcLetter:  The drive letter that triggered the event, as a single uppercase or lowercase
	// alphabetical (A-Z) Unicode character.
	Letter uint16 `idl:"name:wcLetter" json:"letter"`
	// volumeId:  The VDS object ID of the volume object to which the drive letter is assigned.
	// If the drive letter is freed, the volume identifier is GUID_NULL.
	VolumeID *ObjectID `idl:"name:volumeId" json:"volume_id"`
}

DriveLetterNotification structure represents VDS_DRIVE_LETTER_NOTIFICATION RPC structure.

The VDS_DRIVE_LETTER_NOTIFICATION structure provides information about a drive letter notification.

func (*DriveLetterNotification) MarshalNDR

func (o *DriveLetterNotification) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DriveLetterNotification) UnmarshalNDR

func (o *DriveLetterNotification) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DriveLetterProperty

type DriveLetterProperty struct {
	// wcLetter:  The drive letter as a single uppercase or lowercase alphabetical (A-Z)
	// Unicode character.
	Letter uint16 `idl:"name:wcLetter" json:"letter"`
	// volumeId:  The VDS object ID of the volume object to which the drive letter is assigned.
	// If the drive letter is not assigned to any volume, the value MUST be GUID_NULL.
	VolumeID *ObjectID `idl:"name:volumeId" json:"volume_id"`
	// ulFlags:  The combination of any values, by using a bitwise OR operator, that is
	// defined in the VDS_DRIVE_LETTER_FLAG enumeration.
	Flags uint32 `idl:"name:ulFlags" json:"flags"`
	// bUsed:  A Boolean value that indicates whether the drive letter is already in use.
	Used int32 `idl:"name:bUsed" json:"used"`
}

DriveLetterProperty structure represents VDS_DRIVE_LETTER_PROP RPC structure.

The VDS_DRIVE_LETTER_PROP structure provides information about a drive letter .

func (*DriveLetterProperty) MarshalNDR

func (o *DriveLetterProperty) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DriveLetterProperty) UnmarshalNDR

func (o *DriveLetterProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type EnumObject

type EnumObject dcom.InterfacePointer

EnumObject structure represents IEnumVdsObject RPC structure.

func (*EnumObject) InterfacePointer

func (o *EnumObject) InterfacePointer() *dcom.InterfacePointer

func (*EnumObject) MarshalNDR

func (o *EnumObject) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumObject) NDRSizeInfo

func (o *EnumObject) NDRSizeInfo() []uint64

func (*EnumObject) UnmarshalNDR

func (o *EnumObject) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ExpandVirtualDiskFlag

type ExpandVirtualDiskFlag uint16

ExpandVirtualDiskFlag type represents EXPAND_VIRTUAL_DISK_FLAG RPC enumeration.

The EXPAND_VIRTUAL_DISK_FLAG enumeration defines options for expanding a virtual disk.

var (
	// EXPAND_VIRTUAL_DISK_FLAG_NONE:  Indicates that no flag has been specified. Currently,
	// this is the only flag defined.
	ExpandVirtualDiskFlagNone ExpandVirtualDiskFlag = 0
)

func (ExpandVirtualDiskFlag) String

func (o ExpandVirtualDiskFlag) String() string

type FileSystemFlag

type FileSystemFlag uint32

FileSystemFlag type represents VDS_FILE_SYSTEM_FLAG RPC enumeration.

The VDS_FILE_SYSTEM_FLAG enumeration defines the set of valid flags for a file system format type.

If more than one flag is specified, the file system type supports all the file system allocation sizes that are specified. However, a specific file system on a volume does not have multiple allocation sizes at the same time.

var (
	// VDS_FSF_SUPPORT_FORMAT:  If set, the file system format type supports format.
	FileSystemFlagSupportFormat FileSystemFlag = 1
	// VDS_FSF_SUPPORT_QUICK_FORMAT:  If set, the file system format type supports quick
	// format.
	FileSystemFlagSupportQuickFormat FileSystemFlag = 2
	// VDS_FSF_SUPPORT_COMPRESS:  If set, the file system format type supports file compression.
	FileSystemFlagSupportCompress FileSystemFlag = 4
	// VDS_FSF_SUPPORT_SPECIFY_LABEL:  If set, the file system format type supports file
	// system labels.
	FileSystemFlagSupportSpecifyLabel FileSystemFlag = 8
	// VDS_FSF_SUPPORT_MOUNT_POINT:  If set, the file system format type supports mount
	// points.
	FileSystemFlagSupportMountPoint FileSystemFlag = 16
	// VDS_FSF_SUPPORT_REMOVABLE_MEDIA:  If set, the file system format type supports removable
	// media.
	FileSystemFlagSupportRemovableMedia FileSystemFlag = 32
	// VDS_FSF_SUPPORT_EXTEND:  If set, the file system format type supports extending
	// volumes.
	FileSystemFlagSupportExtend FileSystemFlag = 64
	// VDS_FSF_ALLOCATION_UNIT_512:  If set, the file system format supports allocation
	// units of 512 bytes.
	FileSystemFlagAllocationUnit512 FileSystemFlag = 65536
	// VDS_FSF_ALLOCATION_UNIT_1K:  If set, the file system format type supports allocation
	// units of 1 kilobyte.
	FileSystemFlagAllocationUnit1k FileSystemFlag = 131072
	// VDS_FSF_ALLOCATION_UNIT_2K:  If set, the file system format type supports allocation
	// units of 2 kilobytes.
	FileSystemFlagAllocationUnit2k FileSystemFlag = 262144
	// VDS_FSF_ALLOCATION_UNIT_4K:  If set, the file system format type supports allocation
	// units of 4 kilobytes.
	FileSystemFlagAllocationUnit4k FileSystemFlag = 524288
	// VDS_FSF_ALLOCATION_UNIT_8K:  If set, the file system format type supports allocation
	// units of 8 kilobytes.
	FileSystemFlagAllocationUnit8k FileSystemFlag = 1048576
	// VDS_FSF_ALLOCATION_UNIT_16K:  If set, the file system format type supports allocation
	// units of 16 kilobytes.
	FileSystemFlagAllocationUnit16k FileSystemFlag = 2097152
	// VDS_FSF_ALLOCATION_UNIT_32K:  If set, the file system format type supports allocation
	// units of 32 kilobytes.
	FileSystemFlagAllocationUnit32k FileSystemFlag = 4194304
	// VDS_FSF_ALLOCATION_UNIT_64K:  If set, the file system format type supports allocation
	// units of 64 kilobytes.
	FileSystemFlagAllocationUnit64k FileSystemFlag = 8388608
	// VDS_FSF_ALLOCATION_UNIT_128K:  If set, the file system format type supports allocation
	// units of 128 kilobytes.
	FileSystemFlagAllocationUnit128k FileSystemFlag = 16777216
	// VDS_FSF_ALLOCATION_UNIT_256K:  If set, the file system format type supports allocation
	// units of 256 kilobytes.
	FileSystemFlagAllocationUnit256k FileSystemFlag = 33554432
)

func (FileSystemFlag) String

func (o FileSystemFlag) String() string

type FileSystemFormatSupportFlag

type FileSystemFormatSupportFlag uint16

FileSystemFormatSupportFlag type represents VDS_FILE_SYSTEM_FORMAT_SUPPORT_FLAG RPC enumeration.

The VDS_FILE_SYSTEM_FORMAT_SUPPORT_FLAG enumeration defines the properties of file systems that are supported for formatting volumes.<12>

var (
	// VDS_FSS_DEFAULT:  The file system is the default file system for formatting the
	// volume.
	FileSystemFormatSupportFlagDefault FileSystemFormatSupportFlag = 1
	// VDS_FSS_PREVIOUS_REVISION:  The revision of the file system is not the latest revision
	// that is supported for formatting the volume.
	FileSystemFormatSupportFlagPreviousRevision FileSystemFormatSupportFlag = 2
	// VDS_FSS_RECOMMENDED:  The file system is the recommended file system for formatting
	// the volume.
	FileSystemFormatSupportFlagRecommended FileSystemFormatSupportFlag = 4
)

func (FileSystemFormatSupportFlag) String

type FileSystemFormatSupportProperty

type FileSystemFormatSupportProperty struct {
	// ulFlags:  The combination of any values, by using the bitwise OR operator, that are
	// defined in the VDS_FILE_SYSTEM_FORMAT_SUPPORT_FLAG enumeration.
	Flags uint32 `idl:"name:ulFlags" json:"flags"`
	// usRevision:  A 16-bit, binary-coded decimal number that indicates the file system
	// version, if any. The first two (most significant) digits (8-bits) indicate the major
	// version while the last two (least significant) digits (8-bits) indicate the minor
	// version. For example, a value that has a bit pattern of 00000010 01010000 (0x0250
	// in hexadecimal) represents version 2.50; 0x1195 represents version 11.95, and so
	// on.
	Revision uint16 `idl:"name:usRevision" json:"revision"`
	// ulDefaultUnitAllocationSize:  The default allocation unit size, in bytes, that the
	// file system uses for formatting the volume. This value MUST be a power of 2 and MUST
	// also appear in rgulAllowedUnitAllocationSizes.
	DefaultUnitAllocationSize uint32 `idl:"name:ulDefaultUnitAllocationSize" json:"default_unit_allocation_size"`
	// rgulAllowedUnitAllocationSizes:  A zero-terminated array of allocation unit sizes,
	// in bytes, that the file system supports for formatting the volume. An array is not
	// zero-terminated if the array contains 32 elements. Each of the values in the array
	// MUST be a power of 2.
	AllowedUnitAllocationSizes []uint32 `idl:"name:rgulAllowedUnitAllocationSizes" json:"allowed_unit_allocation_sizes"`
	// wszName:  A null-terminated Unicode wide-character string that indicates the name
	// of the file system.
	Name []uint16 `idl:"name:wszName" json:"name"`
}

FileSystemFormatSupportProperty structure represents VDS_FILE_SYSTEM_FORMAT_SUPPORT_PROP RPC structure.

The VDS_FILE_SYSTEM_FORMAT_SUPPORT_PROP structure provides information about file systems that are supported for formatting volumes.<23>

func (*FileSystemFormatSupportProperty) MarshalNDR

func (*FileSystemFormatSupportProperty) UnmarshalNDR

type FileSystemNotification

type FileSystemNotification struct {
	// ulEvent:  Determines the file system event for which an application will be notified;
	// it MUST be one of the following values.
	//
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                               |                                                                                  |
	//	|                     VALUE                     |                                     MEANING                                      |
	//	|                                               |                                                                                  |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| VDS_NF_FILE_SYSTEM_MODIFY 0x000000CB          | A volume received a new label, or a file system was extended or shrunk; does not |
	//	|                                               | include a change to the file system compression flags.                           |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| VDS_NF_FILE_SYSTEM_FORMAT_PROGRESS 0x000000CC | A file system is being formatted.                                                |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	Event uint32 `idl:"name:ulEvent" json:"event"`
	// volumeId:  The VDS object ID of the volume object containing the file system that
	// triggered the event.
	VolumeID *ObjectID `idl:"name:volumeId" json:"volume_id"`
	// dwPercentCompleted:  The completed format progress as a percentage of the whole.
	PercentCompleted uint32 `idl:"name:dwPercentCompleted" json:"percent_completed"`
}

FileSystemNotification structure represents VDS_FILE_SYSTEM_NOTIFICATION RPC structure.

The VDS_FILE_SYSTEM_NOTIFICATION structure provides information about a file system notification.

func (*FileSystemNotification) MarshalNDR

func (o *FileSystemNotification) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*FileSystemNotification) UnmarshalNDR

func (o *FileSystemNotification) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type FileSystemProperty

type FileSystemProperty struct {
	// type:  A VDS_FILE_SYSTEM_TYPE value that provides information about the type of the
	// file system.
	Type FileSystemType `idl:"name:type" json:"type"`
	// volumeId:  The VDS object ID of the volume object on which the file system resides.
	VolumeID *ObjectID `idl:"name:volumeId" json:"volume_id"`
	// ulFlags:  The combination of any values, by using the bitwise OR operator, that are
	// defined in the VDS_FILE_SYSTEM_PROP_FLAG enumeration.
	Flags uint32 `idl:"name:ulFlags" json:"flags"`
	// ullTotalAllocationUnits:  The total number of allocation units on the file system.
	TotalAllocationUnits uint64 `idl:"name:ullTotalAllocationUnits" json:"total_allocation_units"`
	// ullAvailableAllocationUnits:  The number of allocation units available on the file
	// system.
	AvailableAllocationUnits uint64 `idl:"name:ullAvailableAllocationUnits" json:"available_allocation_units"`
	// ulAllocationUnitSize:  The size of the allocation units in use by the file system.
	AllocationUnitSize uint32 `idl:"name:ulAllocationUnitSize" json:"allocation_unit_size"`
	// pwszLabel:  A null-terminated Unicode label of the file system.
	Label string `idl:"name:pwszLabel;string" json:"label"`
}

FileSystemProperty structure represents VDS_FILE_SYSTEM_PROP RPC structure.

The VDS_FILE_SYSTEM_PROP structure provides information about the properties of a file system.

func (*FileSystemProperty) MarshalNDR

func (o *FileSystemProperty) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*FileSystemProperty) UnmarshalNDR

func (o *FileSystemProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type FileSystemPropertyFlag

type FileSystemPropertyFlag uint16

FileSystemPropertyFlag type represents VDS_FILE_SYSTEM_PROP_FLAG RPC enumeration.

The VDS_FILE_SYSTEM_PROP_FLAG enumeration defines the set of fields for a file system. A value that accepts these flags SHOULD have the following flag set.

var (
	// VDS_FPF_COMPRESSED:  If set, the file system supports file compression.
	FileSystemPropertyFlagCompressed FileSystemPropertyFlag = 1
)

func (FileSystemPropertyFlag) String

func (o FileSystemPropertyFlag) String() string

type FileSystemType

type FileSystemType uint16

FileSystemType type represents VDS_FILE_SYSTEM_TYPE RPC enumeration.

The VDS_FILE_SYSTEM_TYPE enumeration defines the set of valid types for a file system.

var (
	// VDS_FST_UNKNOWN:  The file system is unknown.
	FileSystemTypeUnknown FileSystemType = 0
	// VDS_FST_RAW:  The file system is raw.
	FileSystemTypeRaw FileSystemType = 1
	// VDS_FST_FAT:  The file system is a FAT file system.
	FileSystemTypeFAT FileSystemType = 2
	// VDS_FST_FAT32:  The file system is FAT32.
	FileSystemTypeFAT32 FileSystemType = 3
	// VDS_FST_NTFS:  The file system is the NTFS file system.
	FileSystemTypeNTFS FileSystemType = 4
	// VDS_FST_CDFS:  The file system is the Compact Disc File System (CDFS).
	FileSystemTypeCDFS FileSystemType = 5
	// VDS_FST_UDF:  The file system is Universal Disk Format (UDF).
	FileSystemTypeUDF FileSystemType = 6
	// VDS_FST_EXFAT:  The file system is Extended File Allocation Table (ExFAT). For more
	// information, see [MSDN-EFFS].
	FileSystemTypeExFAT FileSystemType = 7
	// VDS_FST_CSVFS<10>:  The file system is Cluster Shared Volume File System (CSVFS).
	FileSystemTypeCSVFS FileSystemType = 8
	// VDS_FST_REFS<11>:  The file system is Resilient File System (ReFS).
	FileSystemTypeReFS FileSystemType = 9
)

func (FileSystemType) String

func (o FileSystemType) String() string

type FileSystemTypeProperty

type FileSystemTypeProperty struct {
	// type:  A value from the VDS_FILE_SYSTEM_TYPE enumeration that indicates the file
	// system format type.
	Type FileSystemType `idl:"name:type" json:"type"`
	// wszName:  A null-terminated Unicode name of the file system format, for example,
	// NTFS or FAT32.
	Name []uint16 `idl:"name:wszName" json:"name"`
	// ulFlags:  A combination of any values, by using a bitwise OR operator, that are defined
	// in the VDS_FILE_SYSTEM_FLAG enumeration.
	Flags uint32 `idl:"name:ulFlags" json:"flags"`
	// ulCompressionFlags:  A bitwise OR operator of any allocation units that are defined
	// in the VDS_FILE_SYSTEM_PROP_FLAG enumeration.
	CompressionFlags uint32 `idl:"name:ulCompressionFlags" json:"compression_flags"`
	// ulMaxLabelLength:  The maximum allowable length of a label for the file system format.
	MaxLabelLength uint32 `idl:"name:ulMaxLabelLength" json:"max_label_length"`
	// pwszIllegalLabelCharSet:  A null-terminated sequence of Unicode characters that are
	// not allowed in the label of the file system format.
	IllegalLabelCharSet string `idl:"name:pwszIllegalLabelCharSet;string" json:"illegal_label_char_set"`
}

FileSystemTypeProperty structure represents VDS_FILE_SYSTEM_TYPE_PROP RPC structure.

The VDS_FILE_SYSTEM_TYPE_PROP structure provides information about a file system format.<30>

func (*FileSystemTypeProperty) MarshalNDR

func (o *FileSystemTypeProperty) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*FileSystemTypeProperty) UnmarshalNDR

func (o *FileSystemTypeProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type FormatOptionFlags

type FormatOptionFlags uint16

FormatOptionFlags type represents VDS_FORMAT_OPTION_FLAGS RPC enumeration.

The VDS_FORMAT_OPTION_FLAGS enumeration defines the set of valid format option values.

var (
	FormatOptionFlagNone              FormatOptionFlags = 0
	FormatOptionFlagForce             FormatOptionFlags = 1
	FormatOptionFlagQuick             FormatOptionFlags = 2
	FormatOptionFlagCompression       FormatOptionFlags = 4
	FormatOptionFlagDuplicateMetadata FormatOptionFlags = 8
)

func (FormatOptionFlags) String

func (o FormatOptionFlags) String() string

type HBAPort

type HBAPort dcom.InterfacePointer

HBAPort structure represents IVdsHbaPort RPC structure.

func (*HBAPort) InterfacePointer

func (o *HBAPort) InterfacePointer() *dcom.InterfacePointer

func (*HBAPort) MarshalNDR

func (o *HBAPort) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*HBAPort) NDRSizeInfo

func (o *HBAPort) NDRSizeInfo() []uint64

func (*HBAPort) UnmarshalNDR

func (o *HBAPort) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type HBAPortProperty

type HBAPortProperty struct {
	// id:  The VDS object ID of the HBA port object.
	ID *ObjectID `idl:"name:id" json:"id"`
	// wwnNode:  The node WWN for the HBA port.
	Node *WWN `idl:"name:wwnNode" json:"node"`
	// wwnPort:  The port WWN of the HBA port.
	Port *WWN `idl:"name:wwnPort" json:"port"`
	// type:  The type of the HBA port that VDS_HBAPORT_TYPE enumerates.
	Type HBAPortType `idl:"name:type" json:"type"`
	// status:  The status of the HBA port that VDS_HBAPORT_STATUS enumerates.
	Status HBAPortStatus `idl:"name:status" json:"status"`
	// ulPortSpeed:  The speed of the HBA port that VDS_HBAPORT_SPEED_FLAG enumerates. Only
	// one bit can be set in this bitmask.
	PortSpeed uint32 `idl:"name:ulPortSpeed" json:"port_speed"`
	// ulSupportedPortSpeed:  The combination of values, by using a bitwise OR operator,
	// from the VDS_HBAPORT_SPEED_FLAG enumeration that describes the set of supported speeds
	// of the HBA port.
	SupportedPortSpeed uint32 `idl:"name:ulSupportedPortSpeed" json:"supported_port_speed"`
}

HBAPortProperty structure represents VDS_HBAPORT_PROP RPC structure.

The VDS_HBAPORT_PROP structure defines the properties of an HBA port.<38>

func (*HBAPortProperty) MarshalNDR

func (o *HBAPortProperty) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*HBAPortProperty) UnmarshalNDR

func (o *HBAPortProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type HBAPortSpeedFlag

type HBAPortSpeedFlag uint16

HBAPortSpeedFlag type represents VDS_HBAPORT_SPEED_FLAG RPC enumeration.

The VDS_HBAPORT_SPEED_FLAG enumeration type defines the set of valid flags for determining the speeds that an HBA port supports. These values are used in the ulPortSpeed member of the VDS_HBAPORT_PROP structure. These flags correspond to the HBA_PORTSPEED flags, as specified in [HBAAPI].<36>

var (
	// VDS_HSF_UNKNOWN:  The HBA port speed is unknown.
	HBAPortSpeedFlagUnknown HBAPortSpeedFlag = 0
	// VDS_HSF_1GBIT:  The HBA port supports a transfer rate of 1 gigabit per second.
	HBAPortSpeedFlag1Gbit HBAPortSpeedFlag = 1
	// VDS_HSF_2GBIT:  The HBA port supports a transfer rate of 2 gigabits per second.
	HBAPortSpeedFlag2Gbit HBAPortSpeedFlag = 2
	// VDS_HSF_10GBIT:  The HBA port supports a transfer rate of 10 gigabits per second.
	HBAPortSpeedFlag10Gbit HBAPortSpeedFlag = 4
	// VDS_HSF_4GBIT:  The HBA port supports a transfer rate of 4 gigabits per second.
	HBAPortSpeedFlag4Gbit HBAPortSpeedFlag = 8
	// VDS_HSF_NOT_NEGOTIATED:  The HBA port speed has not been established.
	HBAPortSpeedFlagNotNegotiated HBAPortSpeedFlag = 32768
)

func (HBAPortSpeedFlag) String

func (o HBAPortSpeedFlag) String() string

type HBAPortStatus

type HBAPortStatus uint16

HBAPortStatus type represents VDS_HBAPORT_STATUS RPC enumeration.

The VDS_HBAPORT_STATUS enumeration defines the set of valid statuses for an HBA port. These values are used in the status member of the VDS_HBAPORT_PROP structure. These states correspond to the HBA_PORTSTATE values, as specified in [HBAAPI].<35>

var (
	// VDS_HPS_UNKNOWN:  The HBA port status is unknown.
	HBAPortStatusUnknown HBAPortStatus = 1
	// VDS_HPS_ONLINE:  The HBA port is operational.
	HBAPortStatusOnline HBAPortStatus = 2
	// VDS_HPS_OFFLINE:  The HBA port was set offline by a user.
	HBAPortStatusOffline HBAPortStatus = 3
	// VDS_HPS_BYPASSED:  The HBA port is bypassed.
	HBAPortStatusBypassed HBAPortStatus = 4
	// VDS_HPS_DIAGNOSTICS:  The HBA port is in diagnostics mode.
	HBAPortStatusDiagnostics HBAPortStatus = 5
	// VDS_HPS_LINKDOWN:  The HBA port link is down.
	HBAPortStatusLinkDown HBAPortStatus = 6
	// VDS_HPS_ERROR:  The HBA port has an error.
	HBAPortStatusError HBAPortStatus = 7
	// VDS_HPS_LOOPBACK:  The HBA port is loopback.
	HBAPortStatusLoopback HBAPortStatus = 8
)

func (HBAPortStatus) String

func (o HBAPortStatus) String() string

type HBAPortType

type HBAPortType uint16

HBAPortType type represents VDS_HBAPORT_TYPE RPC enumeration.

The VDS_HBAPORT_TYPE enumeration defines the set of valid types for an HBA port. These types correspond to the HBA_PORTTYPE values, as specified in [HBAAPI]. These values are used in the type member of the VDS_HBAPORT_PROP structure.<34>

var (
	// VDS_HPT_UNKNOWN:  The port type is unknown.
	HBAPortTypeUnknown HBAPortType = 1
	// VDS_HPT_OTHER:  The port type is another (undefined) type.
	HBAPortTypeOther HBAPortType = 2
	// VDS_HPT_NOTPRESENT:  The port type is not present.
	HBAPortTypeNotPresent HBAPortType = 3
	// VDS_HPT_NPORT:  The port type is a fabric.
	HBAPortTypeN HBAPortType = 5
	// VDS_HPT_NLPORT:  The port type is a public loop.
	HBAPortTypeNL HBAPortType = 6
	// VDS_HPT_FLPORT:  The port type is a fabric on a loop.
	HBAPortTypeFL HBAPortType = 7
	// VDS_HPT_FPORT:  The port type is a fabric port.
	HBAPortTypeF HBAPortType = 8
	// VDS_HPT_EPORT:  The port type is a fabric expansion port.
	HBAPortTypeE HBAPortType = 9
	// VDS_HPT_GPORT:  The port type is a generic fabric port.
	HBAPortTypeG HBAPortType = 10
	// VDS_HPT_LPORT:  The port type is a private loop.
	HBAPortTypeL HBAPortType = 20
	// VDS_HPT_PTP:  The port type is point-to-point.
	HBAPortTypePTP HBAPortType = 21
)

func (HBAPortType) String

func (o HBAPortType) String() string

type Health

type Health uint16

Health type represents VDS_HEALTH RPC enumeration.

The VDS_HEALTH enumeration defines the possible health states of the storage objects in the Virtual Disk Service Remote Protocol. The storage objects are packs, volumes, volume plexes and disks.

var (
	// VDS_H_UNKNOWN:  The health of the object cannot be determined.
	HealthUnknown Health = 0
	// VDS_H_HEALTHY:  The object indicates online status. If the object is a disk, the
	// disk is not missing, dynamic disk log and configuration files are synchronized, and
	// the disk is free of input/output errors. If the object is a LUN or volume, all plexes
	// (mirrored, simple, spanned, and striped) and columns (RAID-5) are active. For a volume,
	// VDS_H_HEALTHY implies no disks containing volume extents have IO errors. For a LUN,
	// VDS_H_HEALTHY implies no drives containing LUN extents have IO errors.
	HealthHealthy Health = 1
	// VDS_H_REBUILDING:  The volume is resynchronizing all plexes, or a striped with parity
	// (RAID-5) plex is regenerating the parity.
	HealthRebuilding Health = 2
	// VDS_H_STALE:  The object configuration is stale.
	HealthStale Health = 3
	// VDS_H_FAILING:  The object is failing but still working. For example, a volume with
	// failing health might produce occasional input/output errors from which it can still
	// recover.
	HealthFailing Health = 4
	// VDS_H_FAILING_REDUNDANCY:  One or more plexes have errors, but the object is working
	// and all plexes are online.
	HealthFailingRedundancy Health = 5
	// VDS_H_FAILED_REDUNDANCY:  One or more plexes have failed, but at least one plex
	// is working.
	HealthFailedRedundancy Health = 6
	// VDS_H_FAILED_REDUNDANCY_FAILING:  The last working plex is failing.
	HealthFailedRedundancyFailing Health = 7
	// VDS_H_FAILED:  The object has failed. Any object with a failed health status also
	// has a failed object status.
	HealthFailed Health = 8
)

func (Health) String

func (o Health) String() string

type HwProvider

type HwProvider dcom.InterfacePointer

HwProvider structure represents IVdsHwProvider RPC structure.

func (*HwProvider) InterfacePointer

func (o *HwProvider) InterfacePointer() *dcom.InterfacePointer

func (*HwProvider) MarshalNDR

func (o *HwProvider) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*HwProvider) NDRSizeInfo

func (o *HwProvider) NDRSizeInfo() []uint64

func (*HwProvider) UnmarshalNDR

func (o *HwProvider) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type IPAddress

type IPAddress struct {
	// type:  The type of address as enumerated by VDS_IPADDRESS_TYPE.
	Type IPAddressType `idl:"name:type" json:"type"`
	// ipv4Address:  If the type member is VDS_IPT_IPV4, this member contains the binary
	// IPv4 address in network byte order. The field 3 (last octet) byte value is contained
	// in bits 0 through 7. The byte value for field 2 is contained in bits 8 through 15.
	// The byte value for field 1 is contained in bits 16 through 23. The byte value for
	// field 0 is contained in bits 24 through 31. Otherwise, this value is ignored.
	IPv4Address uint32 `idl:"name:ipv4Address" json:"ipv4_address"`
	// ipv6Address:  If the type member is VDS_IPT_IPV6, this member contains the binary
	// IPv6 address in network byte order. Otherwise, this value is ignored.
	IPv6Address []byte `idl:"name:ipv6Address" json:"ipv6_address"`
	// ulIpv6FlowInfo:  If the type member is VDS_IPT_IPV6, this member contains the flow
	// information as defined in IPv6. Otherwise, this value is ignored.
	IPv6FlowInfo uint32 `idl:"name:ulIpv6FlowInfo" json:"ipv6_flow_info"`
	// ulIpv6ScopeId:  If the type member is VDS_IPT_IPV6, this member contains the scope
	// ID as defined in IPv6. Otherwise, this value is ignored.
	IPv6ScopeID uint32 `idl:"name:ulIpv6ScopeId" json:"ipv6_scope_id"`
	// wszTextAddress:  If the type member is VDS_IPT_TEXT, this member contains the null-terminated
	// Unicode text address, which is either a DNS address, an IPv4 dotted address, or an
	// IPv6 hexadecimal address. Otherwise, this value is ignored.
	TextAddress []uint16 `idl:"name:wszTextAddress" json:"text_address"`
	// ulPort:  If the type member is VDS_IPT_IPV4, VDS_IPT_IPV6, or VDS_IPT_TEXT, this
	// member contains the TCP port number. Otherwise, this value is ignored.
	Port uint32 `idl:"name:ulPort" json:"port"`
}

IPAddress structure represents VDS_IPADDRESS RPC structure.

The VDS_IPADDRESS structure defines an IP address and port.<41>

func (*IPAddress) MarshalNDR

func (o *IPAddress) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*IPAddress) UnmarshalNDR

func (o *IPAddress) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type IPAddressType

type IPAddressType uint16

IPAddressType type represents VDS_IPADDRESS_TYPE RPC enumeration.

The VDS_IPADDRESS_TYPE enumeration defines the set of valid types for an IP address. These type values are used in the type member of the VDS_IPADDRESS structure.<40>

var (
	// VDS_IPT_TEXT:  The IP address is a text string.
	IPAddressTypeText IPAddressType = 0
	// VDS_IPT_IPV4:  The IP address is an IPv4 address.
	IPAddressTypeIPv4 IPAddressType = 1
	// VDS_IPT_IPV6:  The IP address is an IPv6 address.
	IPAddressTypeIPv6 IPAddressType = 2
	// VDS_IPT_EMPTY:  An IP address is not specified.
	IPAddressTypeEmpty IPAddressType = 3
)

func (IPAddressType) String

func (o IPAddressType) String() string

type ISCSIInitiatorAdapter

type ISCSIInitiatorAdapter dcom.InterfacePointer

ISCSIInitiatorAdapter structure represents IVdsIscsiInitiatorAdapter RPC structure.

func (*ISCSIInitiatorAdapter) InterfacePointer

func (o *ISCSIInitiatorAdapter) InterfacePointer() *dcom.InterfacePointer

func (*ISCSIInitiatorAdapter) MarshalNDR

func (o *ISCSIInitiatorAdapter) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ISCSIInitiatorAdapter) NDRSizeInfo

func (o *ISCSIInitiatorAdapter) NDRSizeInfo() []uint64

func (*ISCSIInitiatorAdapter) UnmarshalNDR

func (o *ISCSIInitiatorAdapter) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ISCSIInitiatorAdapterProperty

type ISCSIInitiatorAdapterProperty struct {
	// id:  The VDS object ID of the initiator adapter object.
	ID *ObjectID `idl:"name:id" json:"id"`
	// pwszName:  A human-readable, null-terminated Unicode string that is the name of the
	// initiator adapter.
	Name string `idl:"name:pwszName;string" json:"name"`
}

ISCSIInitiatorAdapterProperty structure represents VDS_ISCSI_INITIATOR_ADAPTER_PROP RPC structure.

The VDS_ISCSI_INITIATOR_ADAPTER_PROP structure defines the properties of an iSCSI initiator adapter.<39>

func (*ISCSIInitiatorAdapterProperty) MarshalNDR

func (*ISCSIInitiatorAdapterProperty) UnmarshalNDR

func (o *ISCSIInitiatorAdapterProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ISCSIInitiatorPortal

type ISCSIInitiatorPortal dcom.InterfacePointer

ISCSIInitiatorPortal structure represents IVdsIscsiInitiatorPortal RPC structure.

func (*ISCSIInitiatorPortal) InterfacePointer

func (o *ISCSIInitiatorPortal) InterfacePointer() *dcom.InterfacePointer

func (*ISCSIInitiatorPortal) MarshalNDR

func (o *ISCSIInitiatorPortal) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ISCSIInitiatorPortal) NDRSizeInfo

func (o *ISCSIInitiatorPortal) NDRSizeInfo() []uint64

func (*ISCSIInitiatorPortal) UnmarshalNDR

func (o *ISCSIInitiatorPortal) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ISCSIInitiatorPortalProperty

type ISCSIInitiatorPortalProperty struct {
	// id:  The VDS object ID of the initiator portal object.
	ID *ObjectID `idl:"name:id" json:"id"`
	// address:  The IP address and port of the portal.
	Address *IPAddress `idl:"name:address" json:"address"`
	// ulPortIndex:  The port index that the iSCSI initiators service assigned to the portal.
	PortIndex uint32 `idl:"name:ulPortIndex" json:"port_index"`
}

ISCSIInitiatorPortalProperty structure represents VDS_ISCSI_INITIATOR_PORTAL_PROP RPC structure.

The VDS_ISCSI_INITIATOR_PORTAL_PROP structure defines the properties of an iSCSI initiator portal.<42>

func (*ISCSIInitiatorPortalProperty) MarshalNDR

func (*ISCSIInitiatorPortalProperty) UnmarshalNDR

func (o *ISCSIInitiatorPortalProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ISCSISharedSecret

type ISCSISharedSecret struct {
	// pSharedSecret:  A pointer to an array of bytes that contains the secret.
	SharedSecret []byte `idl:"name:pSharedSecret;size_is:(ulSharedSecretSize)" json:"shared_secret"`
	// ulSharedSecretSize:  The number of bytes contained in the array that pSharedSecret
	// references. Bytes MUST be at least 12 and less than or equal to 16.<33> If a shared
	// secret of size less than 12 bytes is used, the server does not return an error. However,
	// the operation will not complete.
	SharedSecretSize uint32 `idl:"name:ulSharedSecretSize" json:"shared_secret_size"`
}

ISCSISharedSecret structure represents VDS_ISCSI_SHARED_SECRET RPC structure.

The VDS_ISCSI_SHARED_SECRET structure defines the Challenge-Handshake Authentication Protocol (CHAP), as specified in [MS-CHAP], shared secret for an iSCSI initiator.

func (*ISCSISharedSecret) MarshalNDR

func (o *ISCSISharedSecret) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ISCSISharedSecret) UnmarshalNDR

func (o *ISCSISharedSecret) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type InputDisk

type InputDisk struct {
	// diskId:  The VDS object ID of the disk object.
	DiskID *ObjectID `idl:"name:diskId" json:"disk_id"`
	// ullSize:  The size of the disk to use, in bytes.
	Size uint64 `idl:"name:ullSize" json:"size"`
	// plexId:  When extending a volume, the VDS object ID of the plex object to which the
	// disk will be added. A volume can only be extended by extending all members of all
	// plexes in the same operation. This member is used when extending any volume and ignored
	// when creating a volume or repairing a RAID-5 volume.
	PlexID *ObjectID `idl:"name:plexId" json:"plex_id"`
	// memberIdx:  The zero-based member index of the disk to which the extent belongs.
	// Either specify a memberIdx for all disks or specify it for none. VDS uses disks with
	// the same memberIdx in the order they appear in the array. For example, the first
	// disk in the array is always used first, even if it does not have the lowest index.
	// This member is ignored when repairing a RAID-5 volume.
	MemberIndex uint32 `idl:"name:memberIdx" json:"member_index"`
}

InputDisk structure represents VDS_INPUT_DISK RPC structure.

The VDS_INPUT_DISK structure provides information about a disk for volume creation and modification.

func (*InputDisk) MarshalNDR

func (o *InputDisk) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*InputDisk) UnmarshalNDR

func (o *InputDisk) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Interconnect

type Interconnect struct {
	// m_addressType:  A VDS_INTERCONNECT_ADDRESS_TYPE structure that stores the address
	// type of the interconnect.
	AddressType InterconnectAddressType `idl:"name:m_addressType" json:"address_type"`
	// m_cbPort:  The size, in bytes, of the interconnect address data for the LUN port
	// to which m_pbPort refers.
	PortLength uint32 `idl:"name:m_cbPort" json:"port_length"`
	// m_pbPort:  A pointer to the interconnect address data for the LUN port.
	Port []byte `idl:"name:m_pbPort;size_is:(m_cbPort)" json:"port"`
	// m_cbAddress:  The size, in bytes, of the interconnect address data for the LUN to
	// which m_pbAddress refers.
	AddressLength uint32 `idl:"name:m_cbAddress" json:"address_length"`
	// m_pbAddress:  A pointer to the interconnect address data for the LUN.
	Address []byte `idl:"name:m_pbAddress;size_is:(m_cbAddress)" json:"address"`
}

Interconnect structure represents VDS_INTERCONNECT RPC structure.

The VDS_INTERCONNECT structure defines the address data of a physical interconnect, as specified in [SPC-3].

func (*Interconnect) MarshalNDR

func (o *Interconnect) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Interconnect) UnmarshalNDR

func (o *Interconnect) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type InterconnectAddressType

type InterconnectAddressType uint16

InterconnectAddressType type represents VDS_INTERCONNECT_ADDRESS_TYPE RPC enumeration.

The VDS_INTERCONNECT_ADDRESS_TYPE enumeration defines the set of valid address types of a physical interconnect.

var (
	// VDS_IA_UNKNOWN:  This value is reserved.
	InterconnectAddressTypeUnknown InterconnectAddressType = 0
	// VDS_IA_FCFS:  Address type is first come, first served.
	InterconnectAddressTypeFCFS InterconnectAddressType = 1
	// VDS_IA_FCPH:  Address type is FC-PH. For more information, see [ANSI-289-1996].
	InterconnectAddressTypeFCPH InterconnectAddressType = 2
	// VDS_IA_FCPH3:  Address type is FC-PH-3. For more information, see [ANSI-289-1996].
	InterconnectAddressTypeFCPH3 InterconnectAddressType = 3
	// VDS_IA_MAC:  Address type is media access control (MAC).
	InterconnectAddressTypeMAC InterconnectAddressType = 4
	// VDS_IA_SCSI:  Address type is SCSI.
	InterconnectAddressTypeSCSI InterconnectAddressType = 5
)

func (InterconnectAddressType) String

func (o InterconnectAddressType) String() string

type LUNInformation

type LUNInformation struct {
	// m_version:  The version number of the VDS_LUN_INFORMATION structure. As of the current
	// version of this protocol, this value is always VER_VDS_LUN_INFORMATION (0x00000001).
	Version uint32 `idl:"name:m_version" json:"version"`
	// m_DeviceType:  The SCSI-2 device type of the device, as specified in [SPC-3].
	DeviceType uint8 `idl:"name:m_DeviceType" json:"device_type"`
	// m_DeviceTypeModifier:  The SCSI-2 device type modifier, if any, as specified in [SPC-3].
	DeviceTypeModifier uint8 `idl:"name:m_DeviceTypeModifier" json:"device_type_modifier"`
	// m_bCommandQueuing:  A Boolean value that indicates whether the device supports multiple
	// outstanding commands.
	CommandQueuing int32 `idl:"name:m_bCommandQueuing" json:"command_queuing"`
	// m_BusType:  A value from the VDS_STORAGE_BUS_TYPE enumeration that indicates the
	// bus type of the device.
	BusType StorageBusType `idl:"name:m_BusType" json:"bus_type"`
	// m_szVendorId:  The null-terminated vendor identification Unicode string of the device.
	// This value is NULL if no vendor ID exists.
	VendorID string `idl:"name:m_szVendorId;string" json:"vendor_id"`
	// m_szProductId:  The null-terminated product identification Unicode string of the
	// device. This value is NULL if no product ID exists.
	ProductID string `idl:"name:m_szProductId;string" json:"product_id"`
	// m_szProductRevision:  The null-terminated product revision Unicode string of the
	// device. This value is NULL if no product revision information exists.
	ProductRevision string `idl:"name:m_szProductRevision;string" json:"product_revision"`
	// m_szSerialNumber:  The null-terminated serial number of the device. This value is
	// NULL if no serial number exists.
	SerialNumber string `idl:"name:m_szSerialNumber;string" json:"serial_number"`
	// m_diskSignature:  The disk signature of the disk.
	DiskSignature *dtyp.GUID `idl:"name:m_diskSignature" json:"disk_signature"`
	// m_deviceIdDescriptor:  A VDS_STORAGE_DEVICE_ID_DESCRIPTOR structure that contains
	// the identification descriptor of the device.
	DeviceIDDescriptor *StorageDeviceIDDescriptor `idl:"name:m_deviceIdDescriptor" json:"device_id_descriptor"`
	// m_cInterconnects:  The number of elements in the m_rgInterconnects array.
	InterconnectsCount uint32 `idl:"name:m_cInterconnects" json:"interconnects_count"`
	// m_rgInterconnects:  Any array of VDS_INTERCONNECT structures that describe the physical
	// interconnects to the device.
	Interconnects []*Interconnect `idl:"name:m_rgInterconnects;size_is:(m_cInterconnects)" json:"interconnects"`
}

LUNInformation structure represents VDS_LUN_INFORMATION RPC structure.

The VDS_LUN_INFORMATION structure provides information about a SCSI-2 device. For information about a SCSI-2 device, see [ANSI-131-1994].

func (*LUNInformation) MarshalNDR

func (o *LUNInformation) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*LUNInformation) UnmarshalNDR

func (o *LUNInformation) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type LUNReserveMode

type LUNReserveMode uint16

LUNReserveMode type represents VDS_LUN_RESERVE_MODE RPC enumeration.

The VDS_LUN_RESERVE_MODE enumeration defines the sharing mode of a disk.

var (
	// VDS_LRM_NONE:  The disk has no assigned sharing mode.
	LUNReserveModeNone LUNReserveMode = 0
	// VDS_LRM_EXCLUSIVE_RW:  The disk is reserved for exclusive access.
	LUNReserveModeExclusiveRW LUNReserveMode = 1
	// VDS_LRM_EXCLUSIVE_RO:  The disk is available for read access.
	LUNReserveModeExclusiveReadOnly LUNReserveMode = 2
	// VDS_LRM_SHARED_RO:  The disk is available for shared read access.
	LUNReserveModeSharedReadOnly LUNReserveMode = 3
	// VDS_LRM_SHARED_RW:  The disk is available for shared read/write access.
	LUNReserveModeSharedRW LUNReserveMode = 4
)

func (LUNReserveMode) String

func (o LUNReserveMode) String() string

type MergeVirtualDiskFlag

type MergeVirtualDiskFlag uint16

MergeVirtualDiskFlag type represents MERGE_VIRTUAL_DISK_FLAG RPC enumeration.

The MERGE_VIRTUAL_DISK_FLAG enumeration defines options for merging a virtual disk.

var (
	// MERGE_VIRTUAL_DISK_FLAG_NONE:  Indicates that no flag has been specified. Currently,
	// this is the only flag defined.
	MergeVirtualDiskFlagNone MergeVirtualDiskFlag = 0
)

func (MergeVirtualDiskFlag) String

func (o MergeVirtualDiskFlag) String() string

type MountPointNotification

type MountPointNotification struct {
	// ulEvent:  Determines the mount point event for which an application will be notified;
	// it MUST be the following value.
	//
	//	+---------------------------------------+--------------------------+
	//	|                                       |                          |
	//	|                 VALUE                 |         MEANING          |
	//	|                                       |                          |
	//	+---------------------------------------+--------------------------+
	//	+---------------------------------------+--------------------------+
	//	| VDS_NF_MOUNT_POINTS_CHANGE 0x000000CD | The mount point changed. |
	//	+---------------------------------------+--------------------------+
	Event uint32 `idl:"name:ulEvent" json:"event"`
	// volumeId:  The VDS object ID of the volume object containing the mount point that
	// triggered the event.
	VolumeID *ObjectID `idl:"name:volumeId" json:"volume_id"`
}

MountPointNotification structure represents VDS_MOUNT_POINT_NOTIFICATION RPC structure.

The VDS_MOUNT_POINT_NOTIFICATION structure provides information about a mount point change notification.

func (*MountPointNotification) MarshalNDR

func (o *MountPointNotification) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*MountPointNotification) UnmarshalNDR

func (o *MountPointNotification) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Notification

type Notification struct {
	// objectType:  A value defined in the VDS_NOTIFICATION_TARGET_TYPE enumeration that
	// describes the type of notification.
	ObjectType   NotificationTargetType     `idl:"name:objectType" json:"object_type"`
	Notification *Notification_Notification `idl:"name:Notification;switch_is:objectType" json:"notification"`
}

Notification structure represents VDS_NOTIFICATION RPC structure.

The VDS_NOTIFICATION structure provides information about a notification.

func (*Notification) MarshalNDR

func (o *Notification) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Notification) UnmarshalNDR

func (o *Notification) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type NotificationTargetType

type NotificationTargetType uint16

NotificationTargetType type represents VDS_NOTIFICATION_TARGET_TYPE RPC enumeration.

The VDS_NOTIFICATION_TARGET_TYPE enumeration defines the set of valid target types (subjects) of a Virtual Disk Service Remote Protocol notification.

var (
	// VDS_NTT_UNKNOWN:  Notification is of an unknown type.
	NotificationTargetTypeUnknown NotificationTargetType = 0
	// VDS_NTT_PACK:  Notification refers to a pack.
	NotificationTargetTypePack NotificationTargetType = 10
	// VDS_NTT_VOLUME:  Notification refers to a volume.
	NotificationTargetTypeVolume NotificationTargetType = 11
	// VDS_NTT_DISK:  Notification refers to a disk.
	NotificationTargetTypeDisk NotificationTargetType = 13
	// VDS_NTT_PARTITION:  Notification refers to a partition.
	NotificationTargetTypePartition NotificationTargetType = 60
	// VDS_NTT_DRIVE_LETTER:  Notification refers to a drive letter.
	NotificationTargetTypeDriveLetter NotificationTargetType = 61
	// VDS_NTT_FILE_SYSTEM:  Notification refers to a file system.
	NotificationTargetTypeFileSystem NotificationTargetType = 62
	// VDS_NTT_MOUNT_POINT:  Notification refers to a mount point.
	NotificationTargetTypeMountPoint NotificationTargetType = 63
	// VDS_NTT_SERVICE:  Notification refers to the Virtual Disk Service.<6>
	NotificationTargetTypeService NotificationTargetType = 200
)

func (NotificationTargetType) String

func (o NotificationTargetType) String() string

type Notification_Disk

type Notification_Disk struct {
	// Disk:  A VDS_DISK_NOTIFICATION structure that describes a disk change.
	Disk *DiskNotification `idl:"name:Disk" json:"disk"`
}

Notification_Disk structure represents Notification_Notification RPC union arm.

It has following labels: 13

func (*Notification_Disk) MarshalNDR

func (o *Notification_Disk) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Notification_Disk) UnmarshalNDR

func (o *Notification_Disk) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Notification_FileSystem

type Notification_FileSystem struct {
	// FileSystem:  A VDS_FILE_SYSTEM_NOTIFICATION structure that describes a file system
	// change.
	FileSystem *FileSystemNotification `idl:"name:FileSystem" json:"file_system"`
}

Notification_FileSystem structure represents Notification_Notification RPC union arm.

It has following labels: 62

func (*Notification_FileSystem) MarshalNDR

func (o *Notification_FileSystem) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Notification_FileSystem) UnmarshalNDR

func (o *Notification_FileSystem) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Notification_Letter

type Notification_Letter struct {
	// Letter:  A VDS_DRIVE_LETTER_NOTIFICATION structure that describes a drive letter
	// change.
	Letter *DriveLetterNotification `idl:"name:Letter" json:"letter"`
}

Notification_Letter structure represents Notification_Notification RPC union arm.

It has following labels: 61

func (*Notification_Letter) MarshalNDR

func (o *Notification_Letter) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Notification_Letter) UnmarshalNDR

func (o *Notification_Letter) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Notification_MountPoint

type Notification_MountPoint struct {
	// MountPoint:  A VDS_MOUNT_POINT_NOTIFICATION structure that describes a mount point
	// change.
	MountPoint *MountPointNotification `idl:"name:MountPoint" json:"mount_point"`
}

Notification_MountPoint structure represents Notification_Notification RPC union arm.

It has following labels: 63

func (*Notification_MountPoint) MarshalNDR

func (o *Notification_MountPoint) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Notification_MountPoint) UnmarshalNDR

func (o *Notification_MountPoint) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Notification_Notification

type Notification_Notification struct {
	// Types that are assignable to Value
	//
	// *Notification_Pack
	// *Notification_Disk
	// *Notification_Volume
	// *Notification_Partition
	// *Notification_Letter
	// *Notification_FileSystem
	// *Notification_MountPoint
	// *Notification_Service
	Value is_Notification_Notification `json:"value"`
}

Notification_Notification structure represents VDS_NOTIFICATION union anonymous member.

The VDS_NOTIFICATION structure provides information about a notification.

func (*Notification_Notification) GetValue

func (o *Notification_Notification) GetValue() any

func (*Notification_Notification) MarshalUnionNDR

func (o *Notification_Notification) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint16) error

func (*Notification_Notification) NDRSwitchValue

func (o *Notification_Notification) NDRSwitchValue(sw uint16) uint16

func (*Notification_Notification) UnmarshalUnionNDR

func (o *Notification_Notification) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint16) error

type Notification_Pack

type Notification_Pack struct {
	// Pack:  A VDS_PACK_NOTIFICATION structure that describes a pack change.
	Pack *PackNotification `idl:"name:Pack" json:"pack"`
}

Notification_Pack structure represents Notification_Notification RPC union arm.

It has following labels: 10

func (*Notification_Pack) MarshalNDR

func (o *Notification_Pack) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Notification_Pack) UnmarshalNDR

func (o *Notification_Pack) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Notification_Partition

type Notification_Partition struct {
	// Partition:  A VDS_PARTITION_NOTIFICATION structure that describes a partition change.
	Partition *PartitionNotification `idl:"name:Partition" json:"partition"`
}

Notification_Partition structure represents Notification_Notification RPC union arm.

It has following labels: 60

func (*Notification_Partition) MarshalNDR

func (o *Notification_Partition) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Notification_Partition) UnmarshalNDR

func (o *Notification_Partition) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Notification_Service

type Notification_Service struct {
	// Service:  A VDS_SERVICE_NOTIFICATION structure that provides information about a
	// state change to the service object.
	Service *ServiceNotification `idl:"name:Service" json:"service"`
}

Notification_Service structure represents Notification_Notification RPC union arm.

It has following labels: 200

func (*Notification_Service) MarshalNDR

func (o *Notification_Service) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Notification_Service) UnmarshalNDR

func (o *Notification_Service) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Notification_Volume

type Notification_Volume struct {
	// Volume:  A VDS_VOLUME_NOTIFICATION structure that describes a volume change.
	Volume *VolumeNotification `idl:"name:Volume" json:"volume"`
}

Notification_Volume structure represents Notification_Notification RPC union arm.

It has following labels: 11

func (*Notification_Volume) MarshalNDR

func (o *Notification_Volume) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Notification_Volume) UnmarshalNDR

func (o *Notification_Volume) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ObjectID

type ObjectID dtyp.GUID

ObjectID structure represents VDS_OBJECT_ID RPC structure.

func (*ObjectID) GUID

func (o *ObjectID) GUID() *dtyp.GUID

func (*ObjectID) MarshalNDR

func (o *ObjectID) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ObjectID) UnmarshalNDR

func (o *ObjectID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ObjectType

type ObjectType uint16

ObjectType type represents VDS_OBJECT_TYPE RPC enumeration.

The VDS_OBJECT_TYPE enumeration defines the set of valid VDS object types.

var (
	// VDS_OT_UNKNOWN:  The object has an unknown type.
	ObjectTypeUnknown ObjectType = 0
	// VDS_OT_PROVIDER:  The object is a provider.
	ObjectTypeProvider ObjectType = 1
	// VDS_OT_PACK:  The object is a pack (a disk group).
	ObjectTypePack ObjectType = 10
	// VDS_OT_VOLUME:  The object is a volume.
	ObjectTypeVolume ObjectType = 11
	// VDS_OT_VOLUME_PLEX:  The object is a plex of a volume.
	ObjectTypeVolumePlex ObjectType = 12
	// VDS_OT_DISK:  The object is a disk.
	ObjectTypeDisk ObjectType = 13
	// VDS_OT_HBAPORT:  The object is an HBA port.
	ObjectTypeHBAPort ObjectType = 90
	// VDS_OT_INIT_ADAPTER:  The object is an iSCSI initiator adapter.
	ObjectTypeInitiatorAdapter ObjectType = 91
	// VDS_OT_INIT_PORTAL:  The object is an iSCSI initiator portal.
	ObjectTypeInitiatorPortal ObjectType = 92
	// VDS_OT_ASYNC:  The object maintains the status of an asynchronous VDS operation.
	ObjectTypeAsync ObjectType = 100
	// VDS_OT_ENUM:  The object is an enumerator that contains an enumeration of other
	// VDS objects.
	ObjectTypeEnum ObjectType = 101
	// VDS_OT_VDISK:  The object is a virtual disk.
	ObjectTypeVDisk ObjectType = 200
	// VDS_OT_OPEN_VDISK:  The object represents an open virtual disk (an OpenVirtualDisk
	// object).
	ObjectTypeOpenVDisk ObjectType = 201
)

func (ObjectType) String

func (o ObjectType) String() string

type OpenVDisk

type OpenVDisk dcom.InterfacePointer

OpenVDisk structure represents IVdsOpenVDisk RPC structure.

func (*OpenVDisk) InterfacePointer

func (o *OpenVDisk) InterfacePointer() *dcom.InterfacePointer

func (*OpenVDisk) MarshalNDR

func (o *OpenVDisk) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenVDisk) NDRSizeInfo

func (o *OpenVDisk) NDRSizeInfo() []uint64

func (*OpenVDisk) UnmarshalNDR

func (o *OpenVDisk) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type OpenVirtualDiskFlag

type OpenVirtualDiskFlag uint16

OpenVirtualDiskFlag type represents OPEN_VIRTUAL_DISK_FLAG RPC enumeration.

The OPEN_VIRTUAL_DISK_FLAG enumeration defines flags that are used to open a virtual disk object.

var (
	// OPEN_VIRTUAL_DISK_FLAG_NONE:  Indicates that no flag has been specified.
	OpenVirtualDiskFlagNone OpenVirtualDiskFlag = 0
	// OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS:  Applicable only to differencing type virtual
	// disks. Opens the backing store without opening the backing store for any differencing
	// chain parents.
	OpenVirtualDiskFlagNoParents OpenVirtualDiskFlag = 1
	// OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE:  Opens the backing store as an empty file without
	// performing virtual disk verification.
	OpenVirtualDiskFlagBlankFile OpenVirtualDiskFlag = 2
	// OPEN_VIRTUAL_DISK_FLAG_BOOT_DRIVE:  This flag MUST not be used by VDS virtual disk
	// providers or their clients.<51>
	OpenVirtualDiskFlagBootDrive OpenVirtualDiskFlag = 4
)

func (OpenVirtualDiskFlag) String

func (o OpenVirtualDiskFlag) String() string

type Pack

Pack structure represents IVdsPack RPC structure.

func (*Pack) InterfacePointer

func (o *Pack) InterfacePointer() *dcom.InterfacePointer

func (*Pack) MarshalNDR

func (o *Pack) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Pack) NDRSizeInfo

func (o *Pack) NDRSizeInfo() []uint64

func (*Pack) UnmarshalNDR

func (o *Pack) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Pack2

type Pack2 dcom.InterfacePointer

Pack2 structure represents IVdsPack2 RPC structure.

func (*Pack2) InterfacePointer

func (o *Pack2) InterfacePointer() *dcom.InterfacePointer

func (*Pack2) MarshalNDR

func (o *Pack2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Pack2) NDRSizeInfo

func (o *Pack2) NDRSizeInfo() []uint64

func (*Pack2) UnmarshalNDR

func (o *Pack2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PackFlag

type PackFlag uint16

PackFlag type represents VDS_PACK_FLAG RPC enumeration.

The VDS_PACK_FLAG enumeration defines the set of valid flags for a disk pack object.

var (
	// VDS_PKF_FOREIGN:  If set, an external disk pack is eligible for online status.
	PackFlagForeign PackFlag = 1
	// VDS_PKF_NOQUORUM:  If set, a dynamic disk pack lacks the required disk quorum.
	PackFlagNoQuorum PackFlag = 2
	// VDS_PKF_POLICY:  If set, management policy forbids the disk pack from gaining online
	// status.
	PackFlagPolicy PackFlag = 4
	// VDS_PKF_CORRUPTED:  If set, a disk pack contains a disk that has a corrupted LDM
	// database.
	PackFlagCorrupted PackFlag = 8
	// VDS_PKF_ONLINE_ERROR:  If set, a disk pack with sufficient disk quorum failed to
	// achieve online status due to an error.
	PackFlagOnlineError PackFlag = 16
)

func (PackFlag) String

func (o PackFlag) String() string

type PackNotification

type PackNotification struct {
	// ulEvent:  The type of pack notification; it MUST be one of the following values.
	//
	//	+-------------------------------+-----------------------------+
	//	|                               |                             |
	//	|             VALUE             |           MEANING           |
	//	|                               |                             |
	//	+-------------------------------+-----------------------------+
	//	+-------------------------------+-----------------------------+
	//	| VDS_NF_PACK_ARRIVE 0x00000001 | The pack was newly created. |
	//	+-------------------------------+-----------------------------+
	//	| VDS_NF_PACK_DEPART 0x00000002 | The pack was deleted.       |
	//	+-------------------------------+-----------------------------+
	//	| VDS_NF_PACK_MODIFY 0x00000003 | The pack was modified.      |
	//	+-------------------------------+-----------------------------+
	Event uint32 `idl:"name:ulEvent" json:"event"`
	// packId:  The VDS object ID of the pack object to which the notification refers.
	PackID *ObjectID `idl:"name:packId" json:"pack_id"`
}

PackNotification structure represents VDS_PACK_NOTIFICATION RPC structure.

The VDS_PACK_NOTIFICATION structure provides information about a pack notification.

func (*PackNotification) MarshalNDR

func (o *PackNotification) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PackNotification) UnmarshalNDR

func (o *PackNotification) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PackProperty

type PackProperty struct {
	// id:  The VDS object ID of the disk pack object.
	ID *ObjectID `idl:"name:id" json:"id"`
	// pwszName:  The null-terminated Unicode name of the disk pack. If the pack has no
	// name, this pointer is set to NULL.
	Name string `idl:"name:pwszName;string" json:"name"`
	// status:  The value from the VDS_PACK_STATUS enumeration that indicates the status
	// of the disk pack.
	Status PackStatus `idl:"name:status" json:"status"`
	// ulFlags:  A combination of any values, by using a bitwise OR operator, of the disk
	// pack flags that are defined in the VDS_PACK_FLAG enumeration. ulFlags can be 0 if
	// none of the VDS_PACK_FLAG values apply.
	Flags uint32 `idl:"name:ulFlags" json:"flags"`
}

PackProperty structure represents VDS_PACK_PROP RPC structure.

The VDS_PACK_PROP structure provides information about the properties of a disk pack.

func (*PackProperty) MarshalNDR

func (o *PackProperty) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PackProperty) UnmarshalNDR

func (o *PackProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PackStatus

type PackStatus uint16

PackStatus type represents VDS_PACK_STATUS RPC enumeration.

The VDS_PACK_STATUS enumeration defines the set of object status values for a disk pack.

var (
	// VDS_PS_UNKNOWN:  The status of the disk pack cannot be determined.
	PackStatusUnknown PackStatus = 0
	// VDS_PS_ONLINE:  The disk pack is available.
	PackStatusOnline PackStatus = 1
	// VDS_PS_OFFLINE:  The disk pack is unavailable; the disks are not accessible.
	PackStatusOffline PackStatus = 4
)

func (PackStatus) String

func (o PackStatus) String() string

type PartitionFlag

type PartitionFlag uint16

PartitionFlag type represents VDS_PARTITION_FLAG RPC enumeration.

The VDS_PARTITION_FLAG enumeration defines flags that describe partitions. A value that accepts these flags MUST have the following flag set or MUST have the value set to 0 if the flag is not applicable to a given partition.

var (
	// VDS_PTF_SYSTEM:  Value that indicates that the partition is a system partition.
	PartitionFlagSystem PartitionFlag = 1
)

func (PartitionFlag) String

func (o PartitionFlag) String() string

type PartitionInfoGPT

type PartitionInfoGPT struct {
	// partitionType:  A GUID indicating the partition type.<21>
	PartitionType *dtyp.GUID `idl:"name:partitionType" json:"partition_type"`
	// partitionId:  The GUID of the partition.
	PartitionID *dtyp.GUID `idl:"name:partitionId" json:"partition_id"`
	// attributes:  The attributes of the partition; they can have a combination of the
	// following values.
	//
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                                             |                                                                                  |
	//	|                            VALUE                            |                                     MEANING                                      |
	//	|                                                             |                                                                                  |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| GPT_ATTRIBUTE_PLATFORM_REQUIRED 0x0000000000000001          | Partition is required for the platform to function properly.<22>                 |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY 0x1000000000000000       | Partition cannot be written to but can be read from. Used only with the basic    |
	//	|                                                             | data partition type.                                                             |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| GPT_BASIC_DATA_ATTRIBUTE_SHADOW_COPY 0x2000000000000000     | Partition is a shadow copy. Used only with the basic data partition type.        |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| GPT_BASIC_DATA_ATTRIBUTE_HIDDEN 0x4000000000000000          | Partition is hidden and will not be mounted. Used only with the basic data       |
	//	|                                                             | partition type.                                                                  |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	//	| GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER 0x8000000000000000 | Partition does not receive a drive letter by default when moving the disk to     |
	//	|                                                             | another machine. Used only with the basic data partition type.                   |
	//	+-------------------------------------------------------------+----------------------------------------------------------------------------------+
	Attributes uint64 `idl:"name:attributes" json:"attributes"`
	// name:  Null-terminated Unicode name of the partition.
	Name []uint16 `idl:"name:name" json:"name"`
}

PartitionInfoGPT structure represents VDS_PARTITION_INFO_GPT RPC structure.

The VDS_PARTITION_INFO_GPT structure provides information about a partition in a GPT.

func (*PartitionInfoGPT) MarshalNDR

func (o *PartitionInfoGPT) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PartitionInfoGPT) UnmarshalNDR

func (o *PartitionInfoGPT) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PartitionInfoMBR

type PartitionInfoMBR struct {
	// partitionType:  The byte value indicating the partition type.<20>
	PartitionType uint8 `idl:"name:partitionType" json:"partition_type"`
	// bootIndicator:  A Boolean value that indicates whether the partition is bootable.
	BootIndicator bool `idl:"name:bootIndicator" json:"boot_indicator"`
	// recognizedPartition:  A Boolean value that indicates whether the partition will be
	// exposed as a volume.
	RecognizedPartition bool `idl:"name:recognizedPartition" json:"recognized_partition"`
	// hiddenSectors:  The number of sectors between the start of the partition and the
	// partition's first usable area.
	HiddenSectors uint32 `idl:"name:hiddenSectors" json:"hidden_sectors"`
}

PartitionInfoMBR structure represents VDS_PARTITION_INFO_MBR RPC structure.

The VDS_PARTITION_INFO_MBR structure provides information about an MBR partition.

func (*PartitionInfoMBR) MarshalNDR

func (o *PartitionInfoMBR) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PartitionInfoMBR) UnmarshalNDR

func (o *PartitionInfoMBR) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PartitionNotification

type PartitionNotification struct {
	// ulEvent:  Determines the partition event for which an application will be notified;
	// it MUST be one of the following values.
	//
	//	+------------------------------------+---------------------------------------------------------------------+
	//	|                                    |                                                                     |
	//	|               VALUE                |                               MEANING                               |
	//	|                                    |                                                                     |
	//	+------------------------------------+---------------------------------------------------------------------+
	//	+------------------------------------+---------------------------------------------------------------------+
	//	| VDS_NF_PARTITION_ARRIVE 0x0000000B | A new partition is visible to the operating system.                 |
	//	+------------------------------------+---------------------------------------------------------------------+
	//	| VDS_NF_PARTITION_DEPART 0x0000000C | An existing partition is no longer visible to the operating system. |
	//	+------------------------------------+---------------------------------------------------------------------+
	//	| VDS_NF_PARTITION_MODIFY 0x0000000D | An existing partition changed.                                      |
	//	+------------------------------------+---------------------------------------------------------------------+
	Event uint32 `idl:"name:ulEvent" json:"event"`
	// diskId:  The VDS object ID of the disk object containing the partition that triggered
	// the event.
	DiskID *ObjectID `idl:"name:diskId" json:"disk_id"`
	// ullOffset:  The byte offset of the partition from the beginning of the disk.
	Offset uint64 `idl:"name:ullOffset" json:"offset"`
}

PartitionNotification structure represents VDS_PARTITION_NOTIFICATION RPC structure.

The VDS_PARTITION_NOTIFICATION structure provides information about a partition notification.

func (*PartitionNotification) MarshalNDR

func (o *PartitionNotification) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PartitionNotification) UnmarshalNDR

func (o *PartitionNotification) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PartitionProperty

type PartitionProperty struct {
	// PartitionStyle:  The value from the VDS_PARTITION_STYLE enumeration that describes
	// the partition format of the disk where the partition resides.
	PartitionStyle PartitionStyle `idl:"name:PartitionStyle" json:"partition_style"`
	// ulFlags:  The combination of any values, by using the bitwise OR operator, from the
	// VDS_PARTITION_FLAG enumeration describing the partition.
	Flags uint32 `idl:"name:ulFlags" json:"flags"`
	// ulPartitionNumber:  The one-based index number of the partition that the operating
	// system assigns.
	PartitionNumber uint32 `idl:"name:ulPartitionNumber" json:"partition_number"`
	// ullOffset:  The byte offset of the partition from the beginning of the disk.
	Offset uint64 `idl:"name:ullOffset" json:"offset"`
	// ullSize:  The size of the partition, in bytes.
	Size              uint64                               `idl:"name:ullSize" json:"size"`
	PartitionProperty *PartitionProperty_PartitionProperty `idl:"name:PartitionProperty;switch_is:PartitionStyle" json:"partition_property"`
}

PartitionProperty structure represents VDS_PARTITION_PROP RPC structure.

The VDS_PARTITION_PROP structure provides information about partition properties.

func (*PartitionProperty) MarshalNDR

func (o *PartitionProperty) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PartitionProperty) UnmarshalNDR

func (o *PartitionProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PartitionProperty_GPT

type PartitionProperty_GPT struct {
	// Gpt:  A VDS_PARTITION_INFO_GPT structure that describes the GPT partition.
	GPT *PartitionInfoGPT `idl:"name:Gpt" json:"gpt"`
}

PartitionProperty_GPT structure represents PartitionProperty_PartitionProperty RPC union arm.

It has following labels: 2

func (*PartitionProperty_GPT) MarshalNDR

func (o *PartitionProperty_GPT) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PartitionProperty_GPT) UnmarshalNDR

func (o *PartitionProperty_GPT) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PartitionProperty_MBR

type PartitionProperty_MBR struct {
	// Mbr:  A VDS_PARTITION_INFO_MBR structure that describes the MBR partition.
	MBR *PartitionInfoMBR `idl:"name:Mbr" json:"mbr"`
}

PartitionProperty_MBR structure represents PartitionProperty_PartitionProperty RPC union arm.

It has following labels: 1

func (*PartitionProperty_MBR) MarshalNDR

func (o *PartitionProperty_MBR) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PartitionProperty_MBR) UnmarshalNDR

func (o *PartitionProperty_MBR) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PartitionProperty_PartitionProperty

type PartitionProperty_PartitionProperty struct {
	// Types that are assignable to Value
	//
	// *PartitionProperty_MBR
	// *PartitionProperty_GPT
	Value is_PartitionProperty_PartitionProperty `json:"value"`
}

PartitionProperty_PartitionProperty structure represents VDS_PARTITION_PROP union anonymous member.

The VDS_PARTITION_PROP structure provides information about partition properties.

func (*PartitionProperty_PartitionProperty) GetValue

func (*PartitionProperty_PartitionProperty) MarshalUnionNDR

func (o *PartitionProperty_PartitionProperty) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint16) error

func (*PartitionProperty_PartitionProperty) NDRSwitchValue

func (o *PartitionProperty_PartitionProperty) NDRSwitchValue(sw uint16) uint16

func (*PartitionProperty_PartitionProperty) UnmarshalUnionNDR

func (o *PartitionProperty_PartitionProperty) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint16) error

type PartitionStyle

type PartitionStyle uint16

PartitionStyle type represents VDS_PARTITION_STYLE RPC enumeration.

The VDS_PARTITION_STYLE enumeration defines the styles of partitions.

var (
	// VDS_PST_UNKNOWN:  The partition format is unknown.
	PartitionStyleUnknown PartitionStyle = 0
	// VDS_PST_MBR:  The partition format is master boot record (MBR).
	PartitionStyleMBR PartitionStyle = 1
	// VDS_PST_GPT:  The partition format is GUID partitioning table (GPT).
	PartitionStyleGPT PartitionStyle = 2
)

func (PartitionStyle) String

func (o PartitionStyle) String() string

type PartitionStyle2

type PartitionStyle2 uint16

PartitionStyle2 type represents __VDS_PARTITION_STYLE2 RPC enumeration.

var (
	PartitionStyle2MBR PartitionStyle2 = 0
	PartitionStyle2GPT PartitionStyle2 = 1
	PartitionStyle2Raw PartitionStyle2 = 2
)

func (PartitionStyle2) String

func (o PartitionStyle2) String() string

type PathStatus

type PathStatus uint16

PathStatus type represents VDS_PATH_STATUS RPC enumeration.

The VDS_PATH_STATUS enumeration defines the set of status values for a path to a storage device.

var (
	// VDS_MPS_UNKNOWN:  The status of the path is unknown.
	PathStatusUnknown PathStatus = 0
	// VDS_MPS_ONLINE:  The path is available.
	PathStatusOnline PathStatus = 1
	// VDS_MPS_FAILED:  The path is unavailable.
	PathStatusFailed PathStatus = 5
	// VDS_MPS_STANDBY:  The path is on standby; it is available but will not be used unless
	// other paths fail.
	PathStatusStandby PathStatus = 7
)

func (PathStatus) String

func (o PathStatus) String() string

type Provider

type Provider dcom.InterfacePointer

Provider structure represents IVdsProvider RPC structure.

func (*Provider) InterfacePointer

func (o *Provider) InterfacePointer() *dcom.InterfacePointer

func (*Provider) MarshalNDR

func (o *Provider) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Provider) NDRSizeInfo

func (o *Provider) NDRSizeInfo() []uint64

func (*Provider) UnmarshalNDR

func (o *Provider) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ProviderFlag

type ProviderFlag uint32

ProviderFlag type represents VDS_PROVIDER_FLAG RPC enumeration.

The VDS_PROVIDER_FLAG enumeration defines the set of valid flags for a provider object.

var (
	// VDS_PF_DYNAMIC:  If set, all disks that the current provider manages are dynamic.
	// This flag MUST be set only by a dynamic provider. By definition, dynamic providers
	// manage only dynamic disks.
	ProviderFlagDynamic ProviderFlag = 1
	// VDS_PF_INTERNAL_HARDWARE_PROVIDER:  Reserved for internal use.
	ProviderFlagInternalHardwareProvider ProviderFlag = 2
	// VDS_PF_ONE_DISK_ONLY_PER_PACK:  If set, the provider supports single disk packs
	// only. Typically, the basic provider sets this flag to simulate a disk pack that has
	// one disk.
	ProviderFlagOneDiskOnlyPerPack ProviderFlag = 4
	// VDS_PF_ONE_PACK_ONLINE_ONLY:  If set, the dynamic provider supports online status
	// for only one pack at a time.
	ProviderFlagOnePackOnlineOnly ProviderFlag = 8
	// VDS_PF_VOLUME_SPACE_MUST_BE_CONTIGUOUS:  If set, all volumes that this provider
	// manages MUST have contiguous space. This flag applies to the basic provider only.
	ProviderFlagVolumeSpaceMustBeContiguous ProviderFlag = 16
	// VDS_PF_SUPPORT_MIRROR:  If set, the provider supports mirrored volumes (RAID-1).
	ProviderFlagSupportMirror ProviderFlag = 32
	// VDS_PF_SUPPORT_RAID5:  If set, the provider supports striped with parity volumes
	// (RAID-5).
	ProviderFlagSupportRAID5 ProviderFlag = 64
	// VDS_PF_SUPPORT_DYNAMIC_1394:  If set, the provider supports IEEE 1394 dynamic disks.
	// This flag MUST be set only by the dynamic provider on systems that support IEEE 1394
	// dynamic disks.
	ProviderFlagSupportDynamic1394 ProviderFlag = 536870912
	// VDS_PF_SUPPORT_FAULT_TOLERANT:  If set, the provider supports fault-tolerant disks.
	// This flag MUST be set only by the dynamic provider on systems that support fault-tolerant
	// volumes.
	ProviderFlagSupportFaultTolerant ProviderFlag = 1073741824
	// VDS_PF_SUPPORT_DYNAMIC:  If set, the provider supports managing dynamic disks. This
	// flag MUST be set only by the dynamic provider on systems that support dynamic disks.
	ProviderFlagSupportDynamic ProviderFlag = 2147483648
)

func (ProviderFlag) String

func (o ProviderFlag) String() string

type ProviderProperty

type ProviderProperty struct {
	// id:  The VDS object ID of the provider object.
	ID *ObjectID `idl:"name:id" json:"id"`
	// pwszName:  The null-terminated Unicode name of the provider.
	Name string `idl:"name:pwszName;string" json:"name"`
	// guidVersionId:  The version GUID of the provider. This GUID MUST be unique to each
	// version of the provider.
	VersionID *dtyp.GUID `idl:"name:guidVersionId" json:"version_id"`
	// pwszVersion:  The null-terminated Unicode version string of the provider. The convention
	// for this string is <major version number>.<minor version number>.
	Version string `idl:"name:pwszVersion;string" json:"version"`
	// type:  A value from the VDS_PROVIDER_TYPE enumeration that indicates the provider
	// type.
	Type ProviderType `idl:"name:type" json:"type"`
	// ulFlags:  A combination of any values, by using a bitwise OR operator, from the VDS_PROVIDER_FLAG
	// enumeration.
	Flags uint32 `idl:"name:ulFlags" json:"flags"`
	// ulStripeSizeFlags:  Stripe size that the provider supports, which MUST be a power
	// of 2. Each bit in the 32-bit integer represents a size that the provider supports.
	// For example, if the nth bit is set, the provider supports a stripe size of 2^n. This
	// parameter is used only for software providers. The basic provider sets this value
	// to zero and the dynamic provider sets this value to 64K.
	StripeSizeFlags uint32 `idl:"name:ulStripeSizeFlags" json:"stripe_size_flags"`
	// sRebuildPriority:  The rebuild priority of all volumes that the provider manages.
	// It specifies the regeneration order when a mirrored or RAID-5 volume requires rebuilding.
	// Priority levels MUST be from 0 through 15. A higher value indicates a higher priority.
	// This parameter is used only for software providers and does not apply to the basic
	// provider.
	RebuildPriority int16 `idl:"name:sRebuildPriority" json:"rebuild_priority"`
}

ProviderProperty structure represents VDS_PROVIDER_PROP RPC structure.

The VDS_PROVIDER_PROP structure provides information about provider properties.

func (*ProviderProperty) MarshalNDR

func (o *ProviderProperty) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ProviderProperty) UnmarshalNDR

func (o *ProviderProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ProviderType

type ProviderType uint16

ProviderType type represents VDS_PROVIDER_TYPE RPC enumeration.

The VDS_PROVIDER_TYPE enumeration defines the set of valid types for a provider.

var (
	// VDS_PT_UNKNOWN:  The type is neither a software nor a hardware provider.
	ProviderTypeUnknown ProviderType = 0
	// VDS_PT_SOFTWARE:  The type indicates a program that is responsible for volume management.
	ProviderTypeSoftware ProviderType = 1
	// VDS_PT_HARDWARE:  The type indicates a program that is responsible for aspects of
	// hardware storage management.
	ProviderTypeHardware ProviderType = 2
	// VDS_PT_VIRTUALDISK:  The type indicates a program that is responsible for aspects
	// of hardware storage management.
	ProviderTypeVirtualDisk ProviderType = 3
	// VDS_PT_MAX:  Denotes the maximum acceptable value for this type. VDS_PT_MAX - 1,
	// ('3'), is the maximum acceptable value.
	ProviderTypeMax ProviderType = 4
)

func (ProviderType) String

func (o ProviderType) String() string

type QueryProviderFlag

type QueryProviderFlag uint16

QueryProviderFlag type represents VDS_QUERY_PROVIDER_FLAG RPC enumeration.

The VDS_QUERY_PROVIDER_FLAG enumeration defines the set of valid flags for provider query operations. Callers can query for hardware providers, software providers, or both.<28>

var (
	// VDS_QUERY_SOFTWARE_PROVIDERS:  If set, the operation queries for software providers.
	QueryProviderFlagSoftwareProviders QueryProviderFlag = 1
	// VDS_QUERY_HARDWARE_PROVIDERS:  If set, the operation queries for hardware providers.
	QueryProviderFlagHardwareProviders QueryProviderFlag = 2
	// VDS_QUERY_VIRTUALDISK_PROVIDERS:  If set, the operation queries for virtual disk
	// providers.
	QueryProviderFlagVirtualDiskProviders QueryProviderFlag = 4
)

func (QueryProviderFlag) String

func (o QueryProviderFlag) String() string

type RecoverAction

type RecoverAction uint16

RecoverAction type represents VDS_RECOVER_ACTION RPC enumeration.

The VDS_RECOVER_ACTION enumeration defines the set of valid client actions to be taken in response to a notification with target type VDS_NTT_SERVICE.

var (
	// VDS_RA_UNKNOWN:  Client action to be taken is unknown.
	RecoverActionUnknown RecoverAction = 0
	// VDS_RA_REFRESH:  Client action to be taken is to call the IVdsService::Refresh (section
	// 3.4.5.2.4.10) method.
	RecoverActionRefresh RecoverAction = 1
	// VDS_RA_RESTART:  Client action to be taken is to restart the service.
	RecoverActionRestart RecoverAction = 2
)

func (RecoverAction) String

func (o RecoverAction) String() string

type Removable

type Removable dcom.InterfacePointer

Removable structure represents IVdsRemovable RPC structure.

func (*Removable) InterfacePointer

func (o *Removable) InterfacePointer() *dcom.InterfacePointer

func (*Removable) MarshalNDR

func (o *Removable) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Removable) NDRSizeInfo

func (o *Removable) NDRSizeInfo() []uint64

func (*Removable) UnmarshalNDR

func (o *Removable) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ReparsePointProperty

type ReparsePointProperty struct {
	// SourceVolumeId:  The VDS object ID of the volume object that the reparse point refers
	// to.
	SourceVolumeID *ObjectID `idl:"name:SourceVolumeId" json:"source_volume_id"`
	// pwszPath:  The null-terminated Unicode path of the reparse point. The path does not
	// contain a drive letter; for example, "\mount".
	Path string `idl:"name:pwszPath;string" json:"path"`
}

ReparsePointProperty structure represents VDS_REPARSE_POINT_PROP RPC structure.

The VDS_REPARSE_POINT_PROP structure defines the reparse point properties of the mount point to a volume object.

func (*ReparsePointProperty) MarshalNDR

func (o *ReparsePointProperty) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ReparsePointProperty) UnmarshalNDR

func (o *ReparsePointProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SANPolicy

type SANPolicy uint16

SANPolicy type represents VDS_SAN_POLICY RPC enumeration.

The VDS_SAN_POLICY enumeration defines the set of valid SAN policy values.

var (
	// VDS_SP_UNKNOWN:  The SAN policy is unknown.
	SANPolicyUnknown SANPolicy = 0
	// VDS_SP_ONLINE:  All newly discovered disks are brought online and made WRITABLE.
	// If the disk is offline, no volume devices are exposed for the disk. If the disk is
	// online, the volume devices for the disk are exposed. WRITABLE is the normal state
	// for a disk. A disk can also be made READONLY. If the disk is READONLY, disk data
	// and metadata can be read, but writes to the disk will fail.
	SANPolicyOnline SANPolicy = 1
	// VDS_SP_OFFLINE_SHARED:  All newly discovered disks not residing on a shared bus
	// are brought online and made WRITABLE. If the disk is offline, no volume devices are
	// exposed for the disk. If the disk is online, the volume devices for the disk are
	// exposed. WRITABLE is the normal state for a disk. A disk can also be made READONLY.
	// If the disk is READONLY, disk data and metadata can be read, but writes to the disk
	// will fail.
	SANPolicyOfflineShared SANPolicy = 2
	// VDS_SP_OFFLINE:  All newly discovered disks remain offline and READONLY. If the
	// disk is offline, no volume devices are exposed for the disk. If the disk is online,
	// the volume devices for the disk are exposed. WRITABLE is the normal state for a disk.
	// A disk can also be made READONLY. If the disk is READONLY, disk data and metadata
	// can be read, but writes to the disk will fail.
	SANPolicyOffline SANPolicy = 3
	// VDS_SP_OFFLINE_INTERNAL<31>:  All newly discovered internal disks remain offline
	// and READONLY. If the disk is offline, no volume devices are exposed for the disk.
	// If the disk is online, the volume devices for the disk are exposed. WRITABLE is the
	// normal state for a disk. A disk can also be made READONLY. If the disk is READONLY,
	// disk data and metadata can be read, but writes to the disk will fail.
	SANPolicyOfflineInternal SANPolicy = 4
	// VDS_SP_MAX<32>:  Denotes the maximum acceptable value for this type. VDS_SP_MAX
	// - 1, ('4'), is the maximum acceptable value.
	SANPolicyMax SANPolicy = 5
)

func (SANPolicy) String

func (o SANPolicy) String() string

type Service

type Service dcom.InterfacePointer

Service structure represents IVdsService RPC structure.

func (*Service) InterfacePointer

func (o *Service) InterfacePointer() *dcom.InterfacePointer

func (*Service) MarshalNDR

func (o *Service) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Service) NDRSizeInfo

func (o *Service) NDRSizeInfo() []uint64

func (*Service) UnmarshalNDR

func (o *Service) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceFlag

type ServiceFlag uint16

ServiceFlag type represents VDS_SERVICE_FLAG RPC enumeration.

The VDS_SERVICE_FLAG enumeration defines the properties of the service.

var (
	// VDS_SVF_SUPPORT_DYNAMIC:  The server supports dynamic disks.
	ServiceFlagSupportDynamic ServiceFlag = 1
	// VDS_SVF_SUPPORT_FAULT_TOLERANT:  The server supports fault-tolerant disks.
	ServiceFlagSupportFaultTolerant ServiceFlag = 2
	// VDS_SVF_SUPPORT_GPT:  The server supports the GPT partition format.
	ServiceFlagSupportGPT ServiceFlag = 4
	// VDS_SVF_SUPPORT_DYNAMIC_1394:  The server supports dynamic disks that use the IEEE
	// 1394 interface for the host bus adapter connection. For more information on IEEE
	// 1394, see [IEEE1394-2008].
	ServiceFlagSupportDynamic1394 ServiceFlag = 8
	// VDS_SVF_CLUSTER_SERVICE_CONFIGURED:  The server is running on a cluster.
	ServiceFlagClusterServiceConfigured ServiceFlag = 16
	// VDS_SVF_AUTO_MOUNT_OFF:  The server will not automatically mount disks.
	ServiceFlagAutoMountOff ServiceFlag = 32
	// VDS_SVF_OS_UNINSTALL_VALID:  The server has an uninstall image to which it can roll
	// back.
	ServiceFlagOSUninstallValid ServiceFlag = 64
	// VDS_SVF_EFI:  The computer starts an EFI from a GPT partition.
	ServiceFlagEFI ServiceFlag = 128
	// VDS_SVF_SUPPORT_MIRROR:  The server supports mirrored volumes (RAID-1).
	ServiceFlagSupportMirror ServiceFlag = 256
	// VDS_SVF_SUPPORT_RAIDS:  The server supports striped with parity volumes (RAID-5).
	ServiceFlagSupportRAID5 ServiceFlag = 512
	// VDS_SVF_SUPPORT_REFS<27>:  The server supports the ReFS.
	ServiceFlagReFS ServiceFlag = 1024
)

func (ServiceFlag) String

func (o ServiceFlag) String() string

type ServiceHBA

type ServiceHBA dcom.InterfacePointer

ServiceHBA structure represents IVdsServiceHba RPC structure.

func (*ServiceHBA) InterfacePointer

func (o *ServiceHBA) InterfacePointer() *dcom.InterfacePointer

func (*ServiceHBA) MarshalNDR

func (o *ServiceHBA) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceHBA) NDRSizeInfo

func (o *ServiceHBA) NDRSizeInfo() []uint64

func (*ServiceHBA) UnmarshalNDR

func (o *ServiceHBA) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceISCSI

type ServiceISCSI dcom.InterfacePointer

ServiceISCSI structure represents IVdsServiceIscsi RPC structure.

func (*ServiceISCSI) InterfacePointer

func (o *ServiceISCSI) InterfacePointer() *dcom.InterfacePointer

func (*ServiceISCSI) MarshalNDR

func (o *ServiceISCSI) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceISCSI) NDRSizeInfo

func (o *ServiceISCSI) NDRSizeInfo() []uint64

func (*ServiceISCSI) UnmarshalNDR

func (o *ServiceISCSI) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceInitialization

type ServiceInitialization dcom.InterfacePointer

ServiceInitialization structure represents IVdsServiceInitialization RPC structure.

func (*ServiceInitialization) InterfacePointer

func (o *ServiceInitialization) InterfacePointer() *dcom.InterfacePointer

func (*ServiceInitialization) MarshalNDR

func (o *ServiceInitialization) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceInitialization) NDRSizeInfo

func (o *ServiceInitialization) NDRSizeInfo() []uint64

func (*ServiceInitialization) UnmarshalNDR

func (o *ServiceInitialization) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceLoader

type ServiceLoader dcom.InterfacePointer

ServiceLoader structure represents IVdsServiceLoader RPC structure.

func (*ServiceLoader) InterfacePointer

func (o *ServiceLoader) InterfacePointer() *dcom.InterfacePointer

func (*ServiceLoader) MarshalNDR

func (o *ServiceLoader) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceLoader) NDRSizeInfo

func (o *ServiceLoader) NDRSizeInfo() []uint64

func (*ServiceLoader) UnmarshalNDR

func (o *ServiceLoader) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceNotification

type ServiceNotification struct {
	// ulEvent:  The type of service notification; it MUST be set to the following value.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                                       |                                                                                  |
	//	|                 VALUE                 |                                     MEANING                                      |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| VDS_NF_SERVICE_OUT_OF_SYNC 0x0000012D | The service's cache has become inconsistent or the service has encountered an    |
	//	|                                       | error requiring client action.                                                   |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	Event uint32 `idl:"name:ulEvent" json:"event"`
	// action:  The type of action required by the client to return the service to a functioning,
	// consistent state; it MUST be one of the following values.
	//
	//	+---------------------------+----------------------------------------------------------------------------------+
	//	|                           |                                                                                  |
	//	|           VALUE           |                                     MEANING                                      |
	//	|                           |                                                                                  |
	//	+---------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------+----------------------------------------------------------------------------------+
	//	| VDS_RA_UNKNOWN 0x00000000 | The client corrective action is unknown.                                         |
	//	+---------------------------+----------------------------------------------------------------------------------+
	//	| VDS_RA_REFRESH 0x00000001 | The client corrective action is to call the IVdsService::Refresh (section        |
	//	|                           | 3.4.5.2.4.10) method.                                                            |
	//	+---------------------------+----------------------------------------------------------------------------------+
	//	| VDS_RA_RESTART 0x00000002 | The client corrective action is to restart the service.                          |
	//	+---------------------------+----------------------------------------------------------------------------------+
	Action RecoverAction `idl:"name:action" json:"action"`
}

ServiceNotification structure represents VDS_SERVICE_NOTIFICATION RPC structure.

The VDS_ SERVICE _NOTIFICATION structure provides information about state changes to the service object.<19>

func (*ServiceNotification) MarshalNDR

func (o *ServiceNotification) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceNotification) UnmarshalNDR

func (o *ServiceNotification) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceProperty

type ServiceProperty struct {
	// pwszVersion:  The version of VDS; a human-readable, null-terminated Unicode string.
	// This string can be any human-readable, null-terminated Unicode value.<29>
	Version string `idl:"name:pwszVersion;string" json:"version"`
	// ulFlags:  A combination of any values, by using the bitwise OR operator, that is
	// defined in the VDS_SERVICE_FLAG enumeration.
	Flags uint32 `idl:"name:ulFlags" json:"flags"`
}

ServiceProperty structure represents VDS_SERVICE_PROP RPC structure.

The VDS_SERVICE_PROP structure provides information about the properties of a service.

func (*ServiceProperty) MarshalNDR

func (o *ServiceProperty) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceProperty) UnmarshalNDR

func (o *ServiceProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceSAN

type ServiceSAN dcom.InterfacePointer

ServiceSAN structure represents IVdsServiceSAN RPC structure.

func (*ServiceSAN) InterfacePointer

func (o *ServiceSAN) InterfacePointer() *dcom.InterfacePointer

func (*ServiceSAN) MarshalNDR

func (o *ServiceSAN) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceSAN) NDRSizeInfo

func (o *ServiceSAN) NDRSizeInfo() []uint64

func (*ServiceSAN) UnmarshalNDR

func (o *ServiceSAN) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceSw

type ServiceSw dcom.InterfacePointer

ServiceSw structure represents IVdsServiceSw RPC structure.

func (*ServiceSw) InterfacePointer

func (o *ServiceSw) InterfacePointer() *dcom.InterfacePointer

func (*ServiceSw) MarshalNDR

func (o *ServiceSw) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceSw) NDRSizeInfo

func (o *ServiceSw) NDRSizeInfo() []uint64

func (*ServiceSw) UnmarshalNDR

func (o *ServiceSw) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ServiceUninstallDisk

type ServiceUninstallDisk dcom.InterfacePointer

ServiceUninstallDisk structure represents IVdsServiceUninstallDisk RPC structure.

func (*ServiceUninstallDisk) InterfacePointer

func (o *ServiceUninstallDisk) InterfacePointer() *dcom.InterfacePointer

func (*ServiceUninstallDisk) MarshalNDR

func (o *ServiceUninstallDisk) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ServiceUninstallDisk) NDRSizeInfo

func (o *ServiceUninstallDisk) NDRSizeInfo() []uint64

func (*ServiceUninstallDisk) UnmarshalNDR

func (o *ServiceUninstallDisk) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type StorageBusType

type StorageBusType uint16

StorageBusType type represents VDS_STORAGE_BUS_TYPE RPC enumeration.

The VDS_STORAGE_BUS_TYPE enumeration defines the type of bus on which a disk resides.

var (
	// VDSBusTypeUnknown:  Bus type is unknown.
	StorageBusTypeUnknown StorageBusType = 0
	// VDSBusTypeScsi:  Disk resides on a SCSI bus.
	StorageBusTypeSCSI StorageBusType = 1
	// VDSBusTypeAtapi:  Disk resides on an AT Attachment Packet Interface (ATAPI) bus.
	// For more information on this bus type, see [ANSI/INCITS-397-2005].
	StorageBusTypeATAPI StorageBusType = 2
	// VDSBusTypeAta:  Disk resides on an AT Attached (ATA) bus. For more information on
	// this bus type, see [ANSI/INCITS-451-2008].
	StorageBusTypeATA StorageBusType = 3
	// VDSBusType1394:  Disk resides on an IEEE 1394 bus. For more information, see [IEEE1394-2008].
	StorageBusTypeType1394 StorageBusType = 4
	// VDSBusTypeSsa:  Disk resides on a serial storage architecture (SSA) bus. For more
	// information on this bus type, see [IEEE-SSA].
	StorageBusTypeSSA StorageBusType = 5
	// VDSBusTypeFibre:  Disk resides on a fiber channel bus.
	StorageBusTypeFibre StorageBusType = 6
	// VDSBusTypeUsb:  Disk resides on a universal serial bus (USB).
	StorageBusTypeUSB StorageBusType = 7
	// VDSBusTypeRAID:  Disk resides on a RAID bus.
	StorageBusTypeRAID StorageBusType = 8
	// VDSBusTypeiScsi:  Disk resides on an iSCSI bus.
	StorageBusTypeISCSI StorageBusType = 9
	// VDSBusTypeSas:  Disk resides on a Serial Attached SCSI (SAS) bus. For more information
	// on this bus type, see [ANSI/INCITS-457-2010].
	StorageBusTypeSAS StorageBusType = 10
	// VDSBusTypeSata:  Disk resides on a Serial ATA (SATA) bus. For more information on
	// this bus type, see [SATA-3.0].
	StorageBusTypeSATA StorageBusType = 11
	// VDSBusTypeSd:  Disk resides on a secure digital (SD) bus.
	StorageBusTypeSD StorageBusType = 12
	// VDSBusTypeMmc:  Indicates a multimedia card (MMC) bus type. For information on multimedia
	// cards, which are a flash memory card standard, see [JEDEC-MO227-A].
	StorageBusTypeMMC StorageBusType = 13
	// VDSBusTypeMax:  Maximum bus type value. Note that this value does not identify a
	// particular bus type; rather, it serves as an end value of the enumeration.<7>
	StorageBusTypeMax StorageBusType = 14
	// VDSBusTypeVirtual:  The disk SHOULD<8> reside on a virtual bus
	StorageBusTypeVirtual StorageBusType = 14
	// VDSBusTypeFileBackedVirtual:  Disk is backed by a file.
	StorageBusTypeFileBackedVirtual StorageBusType = 15
	// VDSBusTypeSpaces:  The disk SHOULD<9> be backed by Storage Spaces.
	StorageBusTypeSpaces StorageBusType = 16
	// VDSBusTypeMaxReserved:  Maximum reserved bus type value. Bus type values below this
	// range are reserved.
	StorageBusTypeMaxReserved StorageBusType = 127
)

func (StorageBusType) String

func (o StorageBusType) String() string

type StorageDeviceIDDescriptor

type StorageDeviceIDDescriptor struct {
	// m_version:  The version number of the VDS_STORAGE_DEVICE_ID_DESCRIPTOR structure
	// as specified by the device manufacturer and in [SPC-3].
	Version uint32 `idl:"name:m_version" json:"version"`
	// m_cIdentifiers:  The number of elements in the m_rgIdentifiers array.
	IdentifiersCount uint32 `idl:"name:m_cIdentifiers" json:"identifiers_count"`
	// m_rgIdentifiers:  The array of VDS_STORAGE_IDENTIFIER structures that contain the
	// storage identifier information.
	Identifiers []*StorageID `idl:"name:m_rgIdentifiers;size_is:(m_cIdentifiers)" json:"identifiers"`
}

StorageDeviceIDDescriptor structure represents VDS_STORAGE_DEVICE_ID_DESCRIPTOR RPC structure.

The VDS_STORAGE_DEVICE_ID_DESCRIPTOR structure provides information about a device identification descriptor.

func (*StorageDeviceIDDescriptor) MarshalNDR

func (o *StorageDeviceIDDescriptor) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*StorageDeviceIDDescriptor) UnmarshalNDR

func (o *StorageDeviceIDDescriptor) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type StorageID

type StorageID struct {
	// m_CodeSet:  Value from the VDS_STORAGE_IDENTIFIER_CODE_SET enumeration that defines
	// the code set of the storage identifier.
	CodeSet StorageIDCodeSet `idl:"name:m_CodeSet" json:"code_set"`
	// m_Type:  Value from the VDS_STORAGE_IDENTIFIER_TYPE enumeration that defines the
	// type of the storage identifier.
	Type StorageIDType `idl:"name:m_Type" json:"type"`
	// m_cbIdentifier:  Length of the m_rgbIdentifier identifier in bytes.
	IDLength uint32 `idl:"name:m_cbIdentifier" json:"id_length"`
	// m_rgbIdentifier:  Value of the storage identifier. These identifiers depend on both
	// the code set and the type.
	ID []byte `idl:"name:m_rgbIdentifier;size_is:(m_cbIdentifier)" json:"id"`
}

StorageID structure represents VDS_STORAGE_IDENTIFIER RPC structure.

The VDS_STORAGE_IDENTIFIER structure provides information about a storage identifier.

func (*StorageID) MarshalNDR

func (o *StorageID) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*StorageID) UnmarshalNDR

func (o *StorageID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type StorageIDCodeSet

type StorageIDCodeSet uint16

StorageIDCodeSet type represents VDS_STORAGE_IDENTIFIER_CODE_SET RPC enumeration.

The VDS_STORAGE_IDENTIFIER_CODE_SET enumeration defines the code set that is used by the storage device identifier, as specified in [SPC-3]

var (
	// VDSStorageIdCodeSetReserved:  This value is reserved by the SPC-3 standard and is
	// not used.
	StorageIDCodeSetReserved StorageIDCodeSet = 0
	// VDSStorageIdCodeSetBinary:  The identifier contains binary values.
	StorageIDCodeSetBinary StorageIDCodeSet = 1
	// VDSStorageIdCodeSetAscii:  The identifier contains ASCII values.
	StorageIDCodeSetASCII StorageIDCodeSet = 2
	// VDSStorageIdCodeSetUtf8:  The identifier contains UTF-8 values.
	StorageIDCodeSetUTF8 StorageIDCodeSet = 3
)

func (StorageIDCodeSet) String

func (o StorageIDCodeSet) String() string

type StorageIDType

type StorageIDType uint16

StorageIDType type represents VDS_STORAGE_IDENTIFIER_TYPE RPC enumeration.

The VDS_STORAGE_IDENTIFIER_TYPE enumeration defines the types of storage device identifiers, as specified in [SPC-3].

var (
	// VDSStorageIdTypeVendorSpecific:  Storage identifier is vendor-specific.
	StorageIDTypeVendorSpecific StorageIDType = 0
	// VDSStorageIdTypeVendorId:  Storage identifier is a vendor identifier.
	StorageIDTypeVendorID StorageIDType = 1
	// VDSStorageIdTypeEUI64:  Storage identifier is a 64-bit extended unique identifier
	// (EUI-64).
	StorageIDTypeEUI64 StorageIDType = 2
	// VDSStorageIdTypeFCPHName:  Storage identifier is a Fibre Channel Physical and Signaling
	// Interface (FC-PH) identifier.
	StorageIDTypeFCPHName StorageIDType = 3
	// VDSStorageIdTypePortRelative:  Storage identifier is a relative target port identifier.
	StorageIDTypePortRelative StorageIDType = 4
	// VDSStorageIdTypeTargetPortGroup:  Storage identifier is a target port group number.
	StorageIDTypeTargetPortGroup StorageIDType = 5
	// VDSStorageIdTypeLogicalUnitGroup:  Storage identifier is a logical unit group number.
	StorageIDTypeLogicalUnitGroup StorageIDType = 6
	// VDSStorageIdTypeMD5LogicalUnitIdentifier:  Storage identifier is an MD5 logical
	// unit number (LUN).
	StorageIDTypeMD5LogicalUnitID StorageIDType = 7
	// VDSStorageIdTypeScsiNameString:  Storage identifier is an SCSI name string identifier.
	StorageIDTypeSCSINameString StorageIDType = 8
)

func (StorageIDType) String

func (o StorageIDType) String() string

type SubSystemImportTarget

type SubSystemImportTarget dcom.InterfacePointer

SubSystemImportTarget structure represents IVdsSubSystemImportTarget RPC structure.

func (*SubSystemImportTarget) InterfacePointer

func (o *SubSystemImportTarget) InterfacePointer() *dcom.InterfacePointer

func (*SubSystemImportTarget) MarshalNDR

func (o *SubSystemImportTarget) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SubSystemImportTarget) NDRSizeInfo

func (o *SubSystemImportTarget) NDRSizeInfo() []uint64

func (*SubSystemImportTarget) UnmarshalNDR

func (o *SubSystemImportTarget) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SwProvider

type SwProvider dcom.InterfacePointer

SwProvider structure represents IVdsSwProvider RPC structure.

func (*SwProvider) InterfacePointer

func (o *SwProvider) InterfacePointer() *dcom.InterfacePointer

func (*SwProvider) MarshalNDR

func (o *SwProvider) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SwProvider) NDRSizeInfo

func (o *SwProvider) NDRSizeInfo() []uint64

func (*SwProvider) UnmarshalNDR

func (o *SwProvider) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type TransitionState

type TransitionState uint16

TransitionState type represents VDS_TRANSITION_STATE RPC enumeration.

The VDS_TRANSITION_STATE enumeration defines the set of valid transition state values for a VDS object.

var (
	// VDS_TS_UNKNOWN:  The transition state of the object cannot be determined.
	TransitionStateUnknown TransitionState = 0
	// VDS_TS_STABLE:  The object is stable. No configuration activity is currently in
	// progress.
	TransitionStateStable TransitionState = 1
	// VDS_TS_EXTENDING:  The object is being extended.
	TransitionStateExtending TransitionState = 2
	// VDS_TS_SHRINKING:  The object is being shrunk.
	TransitionStateShrinking TransitionState = 3
	// VDS_TS_RECONFIGING:  The object is being automatically reconfigured.
	TransitionStateReconfiging TransitionState = 4
)

func (TransitionState) String

func (o TransitionState) String() string

type VDisk

type VDisk dcom.InterfacePointer

VDisk structure represents IVdsVDisk RPC structure.

func (*VDisk) InterfacePointer

func (o *VDisk) InterfacePointer() *dcom.InterfacePointer

func (*VDisk) MarshalNDR

func (o *VDisk) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*VDisk) NDRSizeInfo

func (o *VDisk) NDRSizeInfo() []uint64

func (*VDisk) UnmarshalNDR

func (o *VDisk) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VDiskProperties

type VDiskProperties struct {
	// Id:  A unique VDS-specific session identifier of the disk.
	ID *ObjectID `idl:"name:Id" json:"id"`
	// State:  A VDS_VDISK_STATE enumeration value that specifies the virtual disk state.
	State VDiskState `idl:"name:State" json:"state"`
	// VirtualDeviceType:  A pointer to a VIRTUAL_STORAGE_TYPE structure that specifies
	// the storage device type of the virtual disk.
	VirtualDeviceType *VirtualStorageType `idl:"name:VirtualDeviceType" json:"virtual_device_type"`
	// VirtualSize:  The size, in bytes, of the virtual disk.
	VirtualSize uint64 `idl:"name:VirtualSize" json:"virtual_size"`
	// PhysicalSize:  The on-disk size, in bytes, of the virtual hard disk backing file.
	PhysicalSize uint64 `idl:"name:PhysicalSize" json:"physical_size"`
	// pPath:  A null-terminated wide-character string containing the name and directory
	// path of the backing file for the virtual hard disk.
	Path string `idl:"name:pPath;string" json:"path"`
	// pDeviceName:  A null-terminated wide-character string containing the name and device
	// path of the disk device object for the volume where the virtual hard disk resides.
	DeviceName string `idl:"name:pDeviceName;string" json:"device_name"`
	// DiskFlag:  Type of virtual disk that uses values from the DEPENDENT_DISK_FLAG (section
	// 2.2.2.19.1.3) enumeration.
	DiskFlag DependentDiskFlag `idl:"name:DiskFlag" json:"disk_flag"`
	// bIsChild:  A Boolean value that specifies if the virtual disk is a child virtual
	// disk.
	IsChild bool `idl:"name:bIsChild" json:"is_child"`
	// pParentPath:  A null-terminated wide-character string containing an optional path
	// to the parent virtual disk.
	ParentPath string `idl:"name:pParentPath;string" json:"parent_path"`
}

VDiskProperties structure represents VDS_VDISK_PROPERTIES RPC structure.

The VDS_VDISK_PROPERTIES structure defines the properties of a virtual disk.

func (*VDiskProperties) MarshalNDR

func (o *VDiskProperties) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*VDiskProperties) UnmarshalNDR

func (o *VDiskProperties) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VDiskProvider

type VDiskProvider dcom.InterfacePointer

VDiskProvider structure represents IVdsVdProvider RPC structure.

func (*VDiskProvider) InterfacePointer

func (o *VDiskProvider) InterfacePointer() *dcom.InterfacePointer

func (*VDiskProvider) MarshalNDR

func (o *VDiskProvider) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*VDiskProvider) NDRSizeInfo

func (o *VDiskProvider) NDRSizeInfo() []uint64

func (*VDiskProvider) UnmarshalNDR

func (o *VDiskProvider) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VDiskState

type VDiskState uint16

VDiskState type represents VDS_VDISK_STATE RPC enumeration.

The VDS_VDISK_STATE enumeration describes the state of a virtual disk.

var (
	// VDS_VST_UNKNOWN:  VDS was not able to identify the disk's current status.
	VDiskStateUnknown VDiskState = 0
	// VDS_VST_ADDED:  The virtual disk is added to the service's list of objects.
	VDiskStateAdded VDiskState = 1
	// VDS_VST_OPEN:  The virtual disk has been added to the service's list of objects,
	// and the virtual disk file has been opened using IVdsVDisk::Open.
	VDiskStateOpen VDiskState = 2
	// VDS_VST_ATTACH_PENDING:  The virtual disk has been added to the service's list of
	// objects, the virtual disk file has been opened using IVdsVDisk::Open, and the virtual
	// disk is in the process of being attached.
	VDiskStateAttachPending VDiskState = 3
	// VDS_VST_ATTACHED_NOT_OPEN:  The virtual disk has been added to the service's list
	// of objects and the virtual disk is attached, but the virtual disk file is not open.
	VDiskStateAttachedNotOpen VDiskState = 4
	// VDS_VST_ATTACHED:  The virtual disk has been added to the service's list of objects,
	// the virtual disk file has been opened using IVdsVDisk::Open, and the virtual disk
	// is attached.
	VDiskStateAttached VDiskState = 5
	// VDS_VST_DETACH_PENDING:  The virtual disk has been added to the service's list of
	// objects, the virtual disk file has been opened using IVdsVDisk::Open, and the virtual
	// disk is in the process of being detached.
	VDiskStateDetachPending VDiskState = 6
	// VDS_VST_COMPACTING:  The virtual disk has been added to the service's list of objects,
	// the virtual disk file has been opened using IVdsVDisk::Open, and the virtual disk
	// is being compacted.
	VDiskStateCompacting VDiskState = 7
	// VDS_VST_MERGING:  The virtual disk has been added to the service's list of objects,
	// the virtual disk file has been opened using IVdsVDisk::Open, and the virtual disk
	// is being merged.
	VDiskStateMerging VDiskState = 8
	// VDS_VST_EXPANDING:  The virtual disk has been added to the service's list of objects,
	// the virtual disk file has been opened using IVdsVDisk::Open, and the virtual disk
	// is being expanded.
	VDiskStateExpanding VDiskState = 9
	// VDS_VST_DELETED:  The virtual disk has been deleted.
	VDiskStateDeleted VDiskState = 10
	// VDS_VST_MAX:  Denotes the maximum acceptable value for this type. VDS_VST_MAX -
	// 1 is the maximum acceptable value.
	//
	// When the service has been made aware of a virtual disk, the state is set to VDS_VST_ADDED.
	// In order to perform any operations on the virtual disk such as attaching it, detaching
	// it, merging, compacting, or expanding, the virtual disk file is opened using IVdsVDisk::Open.
	// Once the virtual disk is opened, its state transitions to VDS_VST_OPEN.
	//
	// Attach: To attach a virtual disk, the virtual disk object is first added to the service's
	// list of objects and its state is set to VDS_VS_ADDED. Next IVdsVDisk::Open MUST be
	// called against the virtual disk, and the state transitions to VDS_VST_OPEN. When
	// the attach operation is initiated against the virtual disk, the state of the virtual
	// disk transitions to VDS_VST_ATTACH_PENDING. The virtual disk remains in this state
	// until the operating system disk object corresponding to the virtual disk has been
	// instantiated. Once this object is instantiated, the virtual disk object's state transitions
	// to VDS_VST_ATTACHED. The IVdsOpenVDisk interface is then released, the OpenVirtualDisk
	// object is removed, and the state transitions to VDS_VST_ATTACHED_NOT_OPEN.
	//
	// Detach: To detach a virtual disk, the virtual disk object is first added to the service's
	// list of objects and its state is set to VDS_VST_ADDED. Next IVdsVDisk::Open MUST
	// be called against the virtual disk, and the state transitions to VDS_VST_OPEN. When
	// the detach operation is initiated against the virtual disk, the state of the virtual
	// disk transitions to VDS_VST_DETACH_PENDING. The virtual disk remains in this state
	// until the operating system disk object corresponding to the virtual disk has been
	// removed. Once this object is removed, the virtual disk object's state transitions
	// to VDS_VST_OPEN. The IVdsOpenVDisk interface is then released, the OpenVirtualDisk
	// object is removed, and the state transitions to VDS_VST_ADDED.
	VDiskStateMax VDiskState = 11
)

func (VDiskState) String

func (o VDiskState) String() string

type VirtualDiskAccessMask

type VirtualDiskAccessMask uint32

VirtualDiskAccessMask type represents VIRTUAL_DISK_ACCESS_MASK RPC enumeration.

The VIRTUAL_DISK_ACCESS_MASK enumeration contains the bit mask for specifying access rights to a virtual hard disk (VHD).

var (
	// VIRTUAL_DISK_ACCESS_SURFACE_RO:  Open the VHD for read-only surfacing (attaching)
	// access. The caller MUST have READ access to the virtual disk image file. If used
	// in a request to open a VHD that is already open, the other handles are limited to
	// either VIRTUAL_DISK_ACCESS_UNSURFACE or VIRTUAL_DISK_ACCESS_GET_INFO access; otherwise,
	// the open request with this flag will fail.
	VirtualDiskAccessMaskSurfaceReadOnly VirtualDiskAccessMask = 65536
	// VIRTUAL_DISK_ACCESS_SURFACE_RW:  Open the VHD for read-write surfacing (attaching) access. The caller MUST have (READ | WRITE) access to the virtual disk image file. If used in a request to open a VHD that is already open, the other handles are limited to either VIRTUAL_DISK_ACCESS_UNSURFACE or VIRTUAL_DISK_ACCESS_GET_INFO access; otherwise, the open request with this flag will fail. If the VHD is part of a differencing chain, the disk number for this request cannot be less than the ReadWriteDepth specified during the prior open request for that differencing chain.
	VirtualDiskAccessMaskSurfaceRW VirtualDiskAccessMask = 131072
	// VIRTUAL_DISK_ACCESS_UNSURFACE:  Open the VHD to allow unsurfacing (detaching) of a surfaced (attached) VHD. The caller MUST have (FILE_READ_ATTRIBUTES | FILE_READ_DATA) access to the virtual disk image file.
	VirtualDiskAccessMaskUnsurface VirtualDiskAccessMask = 262144
	// VIRTUAL_DISK_ACCESS_GET_INFO:  Open the VHD for retrieval of information. The caller
	// MUST have READ access to the virtual disk image file.
	VirtualDiskAccessMaskGetInfo VirtualDiskAccessMask = 524288
	// VIRTUAL_DISK_ACCESS_CREATE:  Open the VHD for creation.
	VirtualDiskAccessMaskCreate VirtualDiskAccessMask = 1048576
	// VIRTUAL_DISK_ACCESS_METAOPS:  Open the VHD to perform offline metaoperations. For information on the offline metaoperations, see [MSDN-CompactVirtualDisk], [MSDN-ExpandVirtualDisk], [MSDN-MergeVirtualDisk], [MSDN-SetVirtualDiskInfo], and [MSDN-VIRTDSKACCMSK]. The caller MUST have (READ | WRITE) access to the virtual disk image file, up to ReadWriteDepth if working with a differencing chain. If the VHD is part of a differencing chain, the backing store (host volume) is opened in read/write exclusive mode up to ReadWriteDepth.
	VirtualDiskAccessMaskMetaops VirtualDiskAccessMask = 2097152
	// VIRTUAL_DISK_ACCESS_READ:  Reserved.
	VirtualDiskAccessMaskRead VirtualDiskAccessMask = 851968
	// VIRTUAL_DISK_ACCESS_ALL:  Allows unrestricted access to the VHD. The caller MUST
	// have unrestricted access rights to the virtual disk image file.
	VirtualDiskAccessMaskAll VirtualDiskAccessMask = 4128768
	// VIRTUAL_DISK_ACCESS_WRITABLE:  Reserved.
	VirtualDiskAccessMaskWritable VirtualDiskAccessMask = 3276800
)

func (VirtualDiskAccessMask) String

func (o VirtualDiskAccessMask) String() string

type VirtualStorageType

type VirtualStorageType struct {
	// DeviceId:  The virtual disk type. It can have one of the following values.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                                       |                                                                                  |
	//	|                 VALUE                 |                                     MEANING                                      |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| VIRTUAL_STORAGE_TYPE_DEVICE_UNKNOWN 0 | The virtual disk type is unknown.                                                |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| VIRTUAL_STORAGE_TYPE_DEVICE_ISO 1     | The virtual disk is an ISO image (.iso) file. For more information, see          |
	//	|                                       | [ECMA-119] and [OSTA-UDFS].                                                      |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| VIRTUAL_STORAGE_TYPE_DEVICE_VHD 2     | The virtual disk is a virtual hard disk (.vhd) file.                             |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	DeviceID uint32 `idl:"name:DeviceId" json:"device_id"`
	// VendorId:  A GUID that uniquely identifies the virtual disk vendor.
	VendorID *dtyp.GUID `idl:"name:VendorId" json:"vendor_id"`
}

VirtualStorageType structure represents VIRTUAL_STORAGE_TYPE RPC structure.

The VIRTUAL_STORAGE_TYPE structure specifies the device and vendor of the virtual disk.<26>

func (*VirtualStorageType) MarshalNDR

func (o *VirtualStorageType) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*VirtualStorageType) UnmarshalNDR

func (o *VirtualStorageType) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Volume

type Volume dcom.InterfacePointer

Volume structure represents IVdsVolume RPC structure.

func (*Volume) InterfacePointer

func (o *Volume) InterfacePointer() *dcom.InterfacePointer

func (*Volume) MarshalNDR

func (o *Volume) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Volume) NDRSizeInfo

func (o *Volume) NDRSizeInfo() []uint64

func (*Volume) UnmarshalNDR

func (o *Volume) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Volume2

type Volume2 dcom.InterfacePointer

Volume2 structure represents IVdsVolume2 RPC structure.

func (*Volume2) InterfacePointer

func (o *Volume2) InterfacePointer() *dcom.InterfacePointer

func (*Volume2) MarshalNDR

func (o *Volume2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Volume2) NDRSizeInfo

func (o *Volume2) NDRSizeInfo() []uint64

func (*Volume2) UnmarshalNDR

func (o *Volume2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VolumeFlag

type VolumeFlag uint32

VolumeFlag type represents VDS_VOLUME_FLAG RPC enumeration.

The VDS_VOLUME_FLAG enumeration defines the set of valid flags for a volume object.

var (
	// VDS_VF_SYSTEM_VOLUME:  If set, the volume is a system volume. It contains the boot
	// loader that is used to invoke the operating system on the boot volume.
	VolumeFlagSystemVolume VolumeFlag = 1
	// VDS_VF_BOOT_VOLUME:  If set, the volume is a boot volume that contains the operating
	// system.
	VolumeFlagBootVolume VolumeFlag = 2
	// VDS_VF_ACTIVE:  If set, the volume is an active volume. It can become the system
	// volume at system startup if the BIOS is configured to select that disk for startup.
	VolumeFlagActive VolumeFlag = 4
	// VDS_VF_READONLY:  If set, the volume can be read from but not written to.
	VolumeFlagReadonly VolumeFlag = 8
	// VDS_VF_HIDDEN:  If set, the volume does not automatically get assigned mount points
	// or drive letters that can be used to access the volume.
	VolumeFlagHidden VolumeFlag = 16
	// VDS_VF_CAN_EXTEND:  If set, the volume size can be extended.
	VolumeFlagCanExtend VolumeFlag = 32
	// VDS_VF_CAN_SHRINK:  If set, the volume size can be reduced.
	VolumeFlagCanShrink VolumeFlag = 64
	// VDS_VF_PAGEFILE:  If this flag is set, the volume contains a page file.
	VolumeFlagPageFile VolumeFlag = 128
	// VDS_VF_HIBERNATION:  If set, the volume holds the files that are used when the system
	// hibernates.
	VolumeFlagHibernation VolumeFlag = 256
	// VDS_VF_CRASHDUMP:  If set, the volume acts as a crash-dump device.
	VolumeFlagCrashDump VolumeFlag = 512
	// VDS_VF_INSTALLABLE:  If set, callers can use the volume to install an operating
	// system.
	VolumeFlagInstallable VolumeFlag = 1024
	// VDS_VF_LBN_REMAP_ENABLED:  If set, VDS can dynamically change the position of the
	// volume on the disk. This flag is not valid for basic and dynamic volumes and is only
	// supported by some third-party volume managers.
	VolumeFlagLbnRemapEnabled VolumeFlag = 2048
	// VDS_VF_FORMATTING:  If set, the volume is being formatted.
	VolumeFlagFormatting VolumeFlag = 4096
	// VDS_VF_NOT_FORMATTABLE:  If set, the volume cannot be formatted.
	VolumeFlagNotFormattable VolumeFlag = 8192
	// VDS_VF_NTFS_NOT_SUPPORTED:  If set, the volume does not support the NTFS file system
	// but can support other file systems.
	VolumeFlagNTFSNotSupported VolumeFlag = 16384
	// VDS_VF_FAT32_NOT_SUPPORTED:  If set, the volume does not support FAT32.
	VolumeFlagFAT32NotSupported VolumeFlag = 32768
	// VDS_VF_FAT_NOT_SUPPORTED:  If set, the volume does not support FAT.
	VolumeFlagFATNotSupported VolumeFlag = 65536
	// VDS_VF_NO_DEFAULT_DRIVE_LETTER:  If set, the operating system does not automatically
	// assign a drive letter when the volume is created or a disk containing existing volumes
	// is connected to the operating system. When cleared, the operating system assigns
	// a drive letter to the volume. Callers can set and clear this flag. For basic GPT
	// volumes and dynamic disk volumes, assigning or removing a drive letter toggles this
	// flag.<14>
	VolumeFlagNoDefaultDriveLetter VolumeFlag = 131072
	// VDS_VF_PERMANENTLY_DISMOUNTED:  If set, the volume is unavailable and requires a
	// mount-point assignment. VDS sets this flag after the caller invokes the IVdsVolumeMF::Dismount
	// method, setting the bForce and bPermanent parameters to TRUE.
	VolumeFlagPermanentlyDismounted VolumeFlag = 262144
	// VDS_VF_PERMANENT_DISMOUNT_SUPPORTED:  If set, the volume supports bPermanent for
	// the IVdsVolumeMF::Dismount method. This flag cannot be set or cleared by the client.
	// This flag is set by the server if it applies.
	VolumeFlagPermanentDismountSupported VolumeFlag = 524288
	// VDS_VF_SHADOW_COPY:  If set, the volume is a shadow copy of another volume. This
	// flag is set when the snapshot is taken, and it is cleared when the snapshot is broken
	// from the original volume. The VDS_VF_SHADOW_COPY flag is an indication for software-like
	// file system filter drivers (for example, antivirus) to avoid attaching to the volume.
	// Applications can use the attribute to differentiate snapshots from production volumes.
	// Applications that create a Fast Recovery, in which a shadow copy LUN is made into
	// a non-snapshot by clearing the read-only and hidden bit, will need to clear this
	// bit as well.
	VolumeFlagShadowCopy VolumeFlag = 1048576
	// VDS_VF_FVE_ENABLED:  The volume is encrypted with full-volume encryption.<15>
	VolumeFlagFveEnabled VolumeFlag = 2097152
	// VDS_VF_DIRTY<16>:  The volume's dirty bit is set.
	VolumeFlagDirty VolumeFlag = 4194304
	// VDS_VF_REFS_NOT_SUPPORTED<17>:  The volume does not support ReFS.
	//
	// * *Dynamic disk volumes* - The flag is per volume. *VDS_VF_NO_DEFAULT_DRIVE_LETTER*
	// is set at volume creation. <18> ( 6b2552ee-ba27-409f-99a8-18841573327a#Appendix_A_18
	// ) The flag toggles when drive letters are assigned or removed, and can also be set
	// or cleared using any of the Set/ClearFlags methods.
	//
	// * *MBR basic disk volumes* - The flag is applied to all volumes created on the disk
	// after the flag is set. It is set per disk for basic MBR ( 8eef5d42-22d7-4302-aed9-12face91505a#gt_b251c771-5ccf-40f2-b98d-0119db210b4b
	// ) disks, not per volume. The flag is only set or cleared if an explicit call is made
	// to the IVdsVolume::SetFlags (section 3.4.5.2.32.10) ( b0ed8172-e096-4685-9e68-f07fb6fddc4d
	// ) and IVdsVolume::ClearFlag (section 3.4.5.2.32.11) ( 002b6121-2e6d-4334-864a-be59ecbb8a07
	// ) methods, respectively. For example, the *VDS_VF_NO_DEFAULT_DRIVE_LETTER* flag is
	// not toggled as drive letters are assigned to or removed from specific volumes.
	//
	// * *GPT basic disk volumes* - The flag is per volume, data partitions ( 8eef5d42-22d7-4302-aed9-12face91505a#gt_2f24f458-7d39-47a2-93f7-de433ea85c75
	// ) only. *VDS_VF_NO_DEFAULT_DRIVE_LETTER* is set at volume creation and toggled when
	// drive letters are assigned or removed (by VDS).
	VolumeFlagReFSNotSupported VolumeFlag = 8388608
)

func (VolumeFlag) String

func (o VolumeFlag) String() string

type VolumeMF

type VolumeMF dcom.InterfacePointer

VolumeMF structure represents IVdsVolumeMF RPC structure.

func (*VolumeMF) InterfacePointer

func (o *VolumeMF) InterfacePointer() *dcom.InterfacePointer

func (*VolumeMF) MarshalNDR

func (o *VolumeMF) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*VolumeMF) NDRSizeInfo

func (o *VolumeMF) NDRSizeInfo() []uint64

func (*VolumeMF) UnmarshalNDR

func (o *VolumeMF) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VolumeMF2

type VolumeMF2 dcom.InterfacePointer

VolumeMF2 structure represents IVdsVolumeMF2 RPC structure.

func (*VolumeMF2) InterfacePointer

func (o *VolumeMF2) InterfacePointer() *dcom.InterfacePointer

func (*VolumeMF2) MarshalNDR

func (o *VolumeMF2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*VolumeMF2) NDRSizeInfo

func (o *VolumeMF2) NDRSizeInfo() []uint64

func (*VolumeMF2) UnmarshalNDR

func (o *VolumeMF2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VolumeMF3

type VolumeMF3 dcom.InterfacePointer

VolumeMF3 structure represents IVdsVolumeMF3 RPC structure.

func (*VolumeMF3) InterfacePointer

func (o *VolumeMF3) InterfacePointer() *dcom.InterfacePointer

func (*VolumeMF3) MarshalNDR

func (o *VolumeMF3) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*VolumeMF3) NDRSizeInfo

func (o *VolumeMF3) NDRSizeInfo() []uint64

func (*VolumeMF3) UnmarshalNDR

func (o *VolumeMF3) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VolumeNotification

type VolumeNotification struct {
	// ulEvent:  Determines the volume event for which an application will be notified;
	// it MUST be one of the following values.
	//
	//	+----------------------------------------------+------------------------------------------------------------------+
	//	|                                              |                                                                  |
	//	|                    VALUE                     |                             MEANING                              |
	//	|                                              |                                                                  |
	//	+----------------------------------------------+------------------------------------------------------------------+
	//	+----------------------------------------------+------------------------------------------------------------------+
	//	| VDS_NF_VOLUME_ARRIVE 0x00000004              | A new volume is visible to the operating system.                 |
	//	+----------------------------------------------+------------------------------------------------------------------+
	//	| VDS_NF_VOLUME_DEPART 0x00000005              | An existing volume is no longer visible to the operating system. |
	//	+----------------------------------------------+------------------------------------------------------------------+
	//	| VDS_NF_VOLUME_MODIFY 0x00000006              | The volume was modified.                                         |
	//	+----------------------------------------------+------------------------------------------------------------------+
	//	| VDS_NF_VOLUME_REBUILDING_PROGRESS 0x00000007 | A fault tolerant volume is being regenerated or resynchronized.  |
	//	+----------------------------------------------+------------------------------------------------------------------+
	Event uint32 `idl:"name:ulEvent" json:"event"`
	// volumeId:  The VDS object ID of the volume object to which the notification refers.
	VolumeID *ObjectID `idl:"name:volumeId" json:"volume_id"`
	// plexId:  The VDS object ID of a volume plex object to which the notification refers,
	// if any. VDS applies this identifier during the rebuild operation, which can execute
	// on multiple plexes at different rates.
	PlexID *ObjectID `idl:"name:plexId" json:"plex_id"`
	// ulPercentCompleted:  The percentage of completion for the operation. Valid values
	// range from 0-100.
	PercentCompleted uint32 `idl:"name:ulPercentCompleted" json:"percent_completed"`
}

VolumeNotification structure represents VDS_VOLUME_NOTIFICATION RPC structure.

The VDS_VOLUME_NOTIFICATION structure provides information about a volume change notification.

func (*VolumeNotification) MarshalNDR

func (o *VolumeNotification) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*VolumeNotification) UnmarshalNDR

func (o *VolumeNotification) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VolumeOnline

type VolumeOnline dcom.InterfacePointer

VolumeOnline structure represents IVdsVolumeOnline RPC structure.

func (*VolumeOnline) InterfacePointer

func (o *VolumeOnline) InterfacePointer() *dcom.InterfacePointer

func (*VolumeOnline) MarshalNDR

func (o *VolumeOnline) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*VolumeOnline) NDRSizeInfo

func (o *VolumeOnline) NDRSizeInfo() []uint64

func (*VolumeOnline) UnmarshalNDR

func (o *VolumeOnline) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VolumePlex

type VolumePlex dcom.InterfacePointer

VolumePlex structure represents IVdsVolumePlex RPC structure.

func (*VolumePlex) InterfacePointer

func (o *VolumePlex) InterfacePointer() *dcom.InterfacePointer

func (*VolumePlex) MarshalNDR

func (o *VolumePlex) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*VolumePlex) NDRSizeInfo

func (o *VolumePlex) NDRSizeInfo() []uint64

func (*VolumePlex) UnmarshalNDR

func (o *VolumePlex) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VolumePlexProperty

type VolumePlexProperty struct {
	// id:  The GUID of the plex object.
	ID *ObjectID `idl:"name:id" json:"id"`
	// type:  The plex type that is enumerated by VDS_VOLUME_PLEX_TYPE. The type of the
	// plex need not match that of the volume to which it belongs. For example, a mirrored
	// RAID-1 volume can be composed of plexes that are simple (composed of extents from
	// exactly one disk).
	Type VolumePlexType `idl:"name:type" json:"type"`
	// status:  The status of the plex object that is enumerated by VDS_VOLUME_PLEX_STATUS.
	// The status of the plex need not match that of the volume to which it belongs. For
	// example, a volume plex can have a failed status (VDS_VPS_FAILED), but if the volume
	// is fault-tolerant and its other plexes are online (VDS_VPS_ONLINE), the volume will
	// still be online (VDS_VS_ONLINE).
	Status VolumePlexStatus `idl:"name:status" json:"status"`
	// health:  Value from the VDS_HEALTH enumeration that defines the health of the volume.
	// The health of the plex need not match that of the volume to which it belongs. For
	// instance, a volume's plex can have failed health (VDS_H_FAILED), but if the volume
	// is a mirror volume (RAID-1) and its other plexes are healthy (VDS_H_HEALTHY), the
	// volume will have failed redundancy health (VDS_H_FAILED_REDUNDANCY).
	Health Health `idl:"name:health" json:"health"`
	// TransitionState:  Value from the VDS_TRANSITION_STATE enumeration that defines the
	// configuration stability of the plex. The TransitionState of the plex matches the
	// TransitionState of the volume to which it belongs.
	TransitionState TransitionState `idl:"name:TransitionState" json:"transition_state"`
	// ullSize:  The size of the plex, in bytes. The size can be equal to, or greater than,
	// that of the volume to which it belongs. The plex cannot be smaller than the volume.
	Size uint64 `idl:"name:ullSize" json:"size"`
	// ulStripeSize:  The stripe interleave size, in bytes. This member applies only for
	// plexes of type VDS_VPT_STRIPE (striped) and VDS_VPT_PARITY (striped with parity).
	StripeSize uint32 `idl:"name:ulStripeSize" json:"stripe_size"`
	// ulNumberOfMembers:  The number of members (RAID columns) in the volume plex.
	NumberOfMembers uint32 `idl:"name:ulNumberOfMembers" json:"number_of_members"`
}

VolumePlexProperty structure represents VDS_VOLUME_PLEX_PROP RPC structure.

The VDS_VOLUME_PLEX_PROP structure provides information about the properties of a volume plex.

func (*VolumePlexProperty) MarshalNDR

func (o *VolumePlexProperty) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*VolumePlexProperty) UnmarshalNDR

func (o *VolumePlexProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VolumePlexStatus

type VolumePlexStatus uint16

VolumePlexStatus type represents VDS_VOLUME_PLEX_STATUS RPC enumeration.

The VDS_VOLUME_PLEX_STATUS enumeration defines the set of object status values for a volume plex.

var (
	// VDS_VPS_UNKNOWN:  The status of the volume plex is unknown.
	VolumePlexStatusUnknown VolumePlexStatus = 0
	// VDS_VPS_ONLINE:  The volume plex is available.
	VolumePlexStatusOnline VolumePlexStatus = 1
	// VDS_VPS_NO_MEDIA:  The volume plex has no media.
	VolumePlexStatusNoMedia VolumePlexStatus = 3
	// VDS_VPS_FAILED:  The volume plex is unavailable.
	VolumePlexStatusFailed VolumePlexStatus = 5
)

func (VolumePlexStatus) String

func (o VolumePlexStatus) String() string

type VolumePlexType

type VolumePlexType uint16

VolumePlexType type represents VDS_VOLUME_PLEX_TYPE RPC enumeration.

The VDS_VOLUME_PLEX_TYPE enumeration defines the set of valid types for a volume plex.

var (
	// VDS_VPT_UNKNOWN:  The volume plex type is unknown.
	VolumePlexTypeUnknown VolumePlexType = 0
	// VDS_VPT_SIMPLE:  The plex type is simple; it is composed of extents from exactly
	// one disk.
	VolumePlexTypeSimple VolumePlexType = 10
	// VDS_VPT_SPAN:  The plex type is spanned; it is composed of extents from more than
	// one disk.
	VolumePlexTypeSpan VolumePlexType = 11
	// VDS_VPT_STRIPE:  The plex type is striped, which is equivalent to RAID-0.
	VolumePlexTypeStripe VolumePlexType = 12
	// VDS_VPT_PARITY:  The plex type is striped with parity, which accounts for RAID levels
	// 3, 4, 5, and 6.
	VolumePlexTypeParity VolumePlexType = 14
)

func (VolumePlexType) String

func (o VolumePlexType) String() string

type VolumeProperty

type VolumeProperty struct {
	// id:  The VDS object ID of the volume object.
	ID *ObjectID `idl:"name:id" json:"id"`
	// type:  The value from the VDS_VOLUME_TYPE enumeration that defines the type of the
	// volume.
	Type VolumeType `idl:"name:type" json:"type"`
	// status:  The value from the VDS_VOLUME_STATUS enumeration that defines the status
	// of the volume.
	Status VolumeStatus `idl:"name:status" json:"status"`
	// health:  The value from the VDS_HEALTH enumeration that defines the health of the
	// volume.
	Health Health `idl:"name:health" json:"health"`
	// TransitionState:  The value from the VDS_TRANSITION_STATE enumeration that defines
	// the configuration stability of the volume.
	TransitionState TransitionState `idl:"name:TransitionState" json:"transition_state"`
	// ullSize:  The size of the volume, in bytes.
	Size uint64 `idl:"name:ullSize" json:"size"`
	// ulFlags:  The combination of any values by using the bitwise OR operator of volume
	// flags from the VDS_VOLUME_FLAG enumeration.
	Flags uint32 `idl:"name:ulFlags" json:"flags"`
	// RecommendedFileSystemType:  The value from the VDS_FILE_SYSTEM_TYPE enumeration that
	// defines the recommended file system type for the volume.
	RecommendedFileSystemType FileSystemType `idl:"name:RecommendedFileSystemType" json:"recommended_file_system_type"`
	// pwszName:  The null-terminated Unicode name that the operating system uses to identify
	// the volume.
	Name string `idl:"name:pwszName;string" json:"name"`
}

VolumeProperty structure represents VDS_VOLUME_PROP RPC structure.

The VDS_VOLUME_PROP structure that provides the properties of a volume.

func (*VolumeProperty) MarshalNDR

func (o *VolumeProperty) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*VolumeProperty) UnmarshalNDR

func (o *VolumeProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VolumeProperty2

type VolumeProperty2 struct {
	// id:  The VDS object ID of the volume object.
	ID *ObjectID `idl:"name:id" json:"id"`
	// type:  The value from the VDS_VOLUME_TYPE enumeration that defines the type of the
	// volume.
	Type VolumeType `idl:"name:type" json:"type"`
	// status:  The value from the VDS_VOLUME_STATUS enumeration that defines the status
	// of the volume.
	Status VolumeStatus `idl:"name:status" json:"status"`
	// health:  The value from the VDS_HEALTH enumeration that defines the health of the
	// volume.
	Health Health `idl:"name:health" json:"health"`
	// TransitionState:  The value from the VDS_TRANSITION_STATE enumeration that defines
	// the configuration stability of the volume.
	TransitionState TransitionState `idl:"name:TransitionState" json:"transition_state"`
	// ullSize:  The size of the volume, in bytes.
	Size uint64 `idl:"name:ullSize" json:"size"`
	// ulFlags:  The combination of any values, by using the bitwise OR operator, of volume
	// flags from the VDS_VOLUME_FLAG enumeration.
	Flags uint32 `idl:"name:ulFlags" json:"flags"`
	// RecommendedFileSystemType:  The value from the VDS_FILE_SYSTEM_TYPE enumeration that
	// defines the recommended file system type for the volume.
	RecommendedFileSystemType FileSystemType `idl:"name:RecommendedFileSystemType" json:"recommended_file_system_type"`
	// cbUniqueId:  Count of bytes for pUniqueId.
	UniqueIDLength uint32 `idl:"name:cbUniqueId" json:"unique_id_length"`
	// pwszName:  The null-terminated Unicode name that the operating system uses to identify
	// the volume.
	Name string `idl:"name:pwszName;string" json:"name"`
	// pUniqueId:  A byte array containing the volume's unique id.
	UniqueID []byte `idl:"name:pUniqueId;size_is:(cbUniqueId)" json:"unique_id"`
}

VolumeProperty2 structure represents VDS_VOLUME_PROP2 RPC structure.

The VDS_VOLUME_PROP2 structure provides the properties of a volume.

func (*VolumeProperty2) MarshalNDR

func (o *VolumeProperty2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*VolumeProperty2) UnmarshalNDR

func (o *VolumeProperty2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VolumeShrink

type VolumeShrink dcom.InterfacePointer

VolumeShrink structure represents IVdsVolumeShrink RPC structure.

func (*VolumeShrink) InterfacePointer

func (o *VolumeShrink) InterfacePointer() *dcom.InterfacePointer

func (*VolumeShrink) MarshalNDR

func (o *VolumeShrink) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*VolumeShrink) NDRSizeInfo

func (o *VolumeShrink) NDRSizeInfo() []uint64

func (*VolumeShrink) UnmarshalNDR

func (o *VolumeShrink) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VolumeStatus

type VolumeStatus uint16

VolumeStatus type represents VDS_VOLUME_STATUS RPC enumeration.

The VDS_VOLUME_STATUS enumeration defines the set of object status values for a volume.

var (
	// VDS_VS_UNKNOWN:  The status of the volume is unknown.
	VolumeStatusUnknown VolumeStatus = 0
	// VDS_VS_ONLINE:  The volume is available.
	VolumeStatusOnline VolumeStatus = 1
	// VDS_VS_NO_MEDIA:  The volume belongs to a removable media device, such as a CD-ROM
	// or DVD-ROM drive, but the device does not currently have media in the drive.
	VolumeStatusNoMedia VolumeStatus = 3
	// VDS_VS_OFFLINE:  When this status is set, it (1) indicates that no path names for the volume are available for use by applications, and (2) prevents READ and READ|WRITE handles to the volume device being opened. When a volume transitions to this state, calls to open a new handle against the volume device fail, but any in-progress I/O against the volume will complete before all I/O to the volume is stopped.<13>
	VolumeStatusOffline VolumeStatus = 4
	// VDS_VS_FAILED:  The volume is unavailable.
	VolumeStatusFailed VolumeStatus = 5
)

func (VolumeStatus) String

func (o VolumeStatus) String() string

type VolumeType

type VolumeType uint16

VolumeType type represents VDS_VOLUME_TYPE RPC enumeration.

The VDS_VOLUME_TYPE enumeration defines the set of valid types for a volume object.

var (
	// VDS_VT_UNKNOWN:  The status of the volume is unknown.
	VolumeTypeUnknown VolumeType = 0
	// VDS_VT_SIMPLE:  The volume type is simple: it is composed of extents from exactly
	// one disk.
	VolumeTypeSimple VolumeType = 10
	// VDS_VT_SPAN:  The volume type is spanned: it is composed of extents from more than
	// one disk.
	VolumeTypeSpan VolumeType = 11
	// VDS_VT_STRIPE:  The volume type is striped, which is equivalent to RAID-0.
	VolumeTypeStripe VolumeType = 12
	// VDS_VT_MIRROR:  The volume type is mirrored, which is equivalent to RAID-1.
	VolumeTypeMirror VolumeType = 13
	// VDS_VT_PARITY:  The volume type is striped with parity, which accounts for RAID
	// levels 3, 4, 5, and 6.
	VolumeTypeParity VolumeType = 14
)

func (VolumeType) String

func (o VolumeType) String() string

type WWN

type WWN struct {
	// rguchWwn:  An array of 8 bytes that specifies the 64-bit WWN value. The first element
	// of the array is the most significant byte of the WWN, and the most significant bit
	// of that byte is the most significant bit of the WWN.
	WWN []byte `idl:"name:rguchWwn" json:"wwn"`
}

WWN structure represents VDS_WWN RPC structure.

The VDS_WWN structure defines a worldwide name (WWN). This structure corresponds to the HBA_WWN structure, as specified in [HBAAPI], which also defines the WWN term.<37>

func (*WWN) MarshalNDR

func (o *WWN) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*WWN) UnmarshalNDR

func (o *WWN) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

Directories

Path Synopsis
ienumvdsobject
v0
ivdsadvanceddisk
v0
ivdsadvanceddisk2
v0
ivdsadvanceddisk3
v0
ivdsadvisesink
v0
ivdsasync
v0
ivdscreatepartitionex
v0
ivdsdisk
v0
ivdsdisk2
v0
ivdsdisk3
v0
ivdsdiskonline
v0
ivdsdiskpartitionmf
v0
ivdsdiskpartitionmf2
v0
ivdshbaport
v0
ivdshwprovider
v0
ivdsiscsiinitiatoradapter
v0
ivdsiscsiinitiatorportal
v0
ivdsopenvdisk
v0
ivdspack
v0
ivdspack2
v0
ivdsprovider
v0
ivdsremovable
v0
ivdsservice
v0
ivdsservicehba
v0
ivdsserviceinitialization
v0
ivdsserviceiscsi
v0
ivdsserviceloader
v0
ivdsservicesan
v0
ivdsservicesw
v0
ivdsserviceuninstalldisk
v0
ivdssubsystemimporttarget
v0
ivdsswprovider
v0
ivdsvdisk
v0
ivdsvdprovider
v0
ivdsvolume
v0
ivdsvolume2
v0
ivdsvolumemf
v0
ivdsvolumemf2
v0
ivdsvolumemf3
v0
ivdsvolumeonline
v0
ivdsvolumeplex
v0
ivdsvolumeshrink
v0

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL