ivdsopenvdisk

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// IVdsOpenVDisk interface identifier 75c8f324-f715-4fe3-a28e-f9011b61a4a1
	OpenVDiskIID = &dcom.IID{Data1: 0x75c8f324, Data2: 0xf715, Data3: 0x4fe3, Data4: []byte{0xa2, 0x8e, 0xf9, 0x01, 0x1b, 0x61, 0xa4, 0xa1}}
	// Syntax UUID
	OpenVDiskSyntaxUUID = &uuid.UUID{TimeLow: 0x75c8f324, TimeMid: 0xf715, TimeHiAndVersion: 0x4fe3, ClockSeqHiAndReserved: 0xa2, ClockSeqLow: 0x8e, Node: [6]uint8{0xf9, 0x1, 0x1b, 0x61, 0xa4, 0xa1}}
	// Syntax ID
	OpenVDiskSyntaxV0_0 = &dcerpc.SyntaxID{IfUUID: OpenVDiskSyntaxUUID, IfVersionMajor: 0, IfVersionMinor: 0}
)
View Source
var (
	// import guard
	GoPackage = "dcom/vds"
)

Functions

func NewOpenVDiskServerHandle

func NewOpenVDiskServerHandle(o OpenVDiskServer) dcerpc.ServerHandle

func OpenVDiskServerHandle

func OpenVDiskServerHandle(ctx context.Context, o OpenVDiskServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)

func RegisterOpenVDiskServer

func RegisterOpenVDiskServer(conn dcerpc.Conn, o OpenVDiskServer, opts ...dcerpc.Option)

Types

type AttachRequest

type AttachRequest struct {
	// This: ORPCTHIS structure that is used to send ORPC extension data to the server.
	This *dcom.ORPCThis `idl:"name:This" json:"this"`
	// pStringSecurityDescriptor: A NULL-terminated wide-character string containing the
	// security descriptor to be applied to the virtual disk.<140> If this parameter is
	// NULL, the security descriptor in the caller's access token MUST be used.
	StringSecurityDescriptor string `idl:"name:pStringSecurityDescriptor;pointer:unique" json:"string_security_descriptor"`
	// Flags: A bitmask of ATTACH_VIRTUAL_DISK_FLAG (section 2.2.2.20.1.1) enumeration values
	// specifying virtual disk attaching options.
	Flags vds.AttachVirtualDiskFlag `idl:"name:Flags" json:"flags"`
	// ProviderSpecificFlags: A bitmask of flags that are specific to the type of virtual
	// disk that is being surfaced. These flags are provider-specific.<141>
	ProviderSpecificFlags uint32 `idl:"name:ProviderSpecificFlags" json:"provider_specific_flags"`
	// TimeoutInMs: The length of time, in milliseconds, before this method MAY<142> return
	// after waiting for the virtual disk to be surfaced completely. If this parameter is
	// zero, the method returns immediately without waiting for the disk to be surfaced.
	// If this parameter is INFINITE, the method does not return until the surfacing operation
	// is complete. If this parameter is set to a value other than zero or INFINITE and
	// the time-out value is reached, the method guarantees that the disk is not surfaced
	// after the operation is complete.
	TimeoutInMs uint32 `idl:"name:TimeoutInMs" json:"timeout_in_ms"`
}

AttachRequest structure represents the Attach operation request

func (*AttachRequest) MarshalNDR

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

func (*AttachRequest) UnmarshalNDR

func (o *AttachRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AttachResponse

type AttachResponse struct {
	// That: ORPCTHAT structure that is used to return ORPC extension data to the client.
	That *dcom.ORPCThat `idl:"name:That" json:"that"`
	// ppAsync: A pointer to an IVdsAsync (section 3.1.3.1) interface that, if the operation
	// is successfully completed, receives the IVdsAsync interface to monitor and control
	// this operation. Callers MUST release the interface when they are done with it.
	Async *vds.Async `idl:"name:ppAsync" json:"async"`
	// Return: The Attach return value.
	Return int32 `idl:"name:Return" json:"return"`
}

AttachResponse structure represents the Attach operation response

func (*AttachResponse) MarshalNDR

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

func (*AttachResponse) UnmarshalNDR

func (o *AttachResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CompactRequest

type CompactRequest struct {
	// This: ORPCTHIS structure that is used to send ORPC extension data to the server.
	This *dcom.ORPCThis `idl:"name:This" json:"this"`
	// Flags: A COMPACT_VIRTUAL_DISK_FLAG (section 2.2.2.20.1.3) enumeration value that
	// specifies how the virtual disk is to be compacted.
	Flags vds.CompactVirtualDiskFlag `idl:"name:Flags" json:"flags"`
}

CompactRequest structure represents the Compact operation request

func (*CompactRequest) MarshalNDR

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

func (*CompactRequest) UnmarshalNDR

func (o *CompactRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CompactResponse

type CompactResponse struct {
	// That: ORPCTHAT structure that is used to return ORPC extension data to the client.
	That *dcom.ORPCThat `idl:"name:That" json:"that"`
	// ppAsync: A pointer to an IVdsAsync (section 3.1.3.1) interface that if the operation
	// is successfully completed receives the IVdsAsync interface to monitor and control
	// this operation. Callers MUST release the interface when they are done with it.
	Async *vds.Async `idl:"name:ppAsync" json:"async"`
	// Return: The Compact return value.
	Return int32 `idl:"name:Return" json:"return"`
}

CompactResponse structure represents the Compact operation response

func (*CompactResponse) MarshalNDR

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

func (*CompactResponse) UnmarshalNDR

func (o *CompactResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DetachAndDeleteRequest

type DetachAndDeleteRequest struct {
	// This: ORPCTHIS structure that is used to send ORPC extension data to the server.
	This *dcom.ORPCThis `idl:"name:This" json:"this"`
	// Flags: A DETACH_VIRTUAL_DISK_FLAG (section 2.2.2.20.1.2) enumeration value that specifies
	// how the virtual disk is to be detached.
	Flags vds.DetachVirtualDiskFlag `idl:"name:Flags" json:"flags"`
	// ProviderSpecificFlags: Flags specific to the type of virtual disk being detached.<144>
	ProviderSpecificFlags uint32 `idl:"name:ProviderSpecificFlags" json:"provider_specific_flags"`
}

DetachAndDeleteRequest structure represents the DetachAndDelete operation request

func (*DetachAndDeleteRequest) MarshalNDR

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

func (*DetachAndDeleteRequest) UnmarshalNDR

func (o *DetachAndDeleteRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DetachAndDeleteResponse

type DetachAndDeleteResponse struct {
	// That: ORPCTHAT structure that is used to return ORPC extension data to the client.
	That *dcom.ORPCThat `idl:"name:That" json:"that"`
	// Return: The DetachAndDelete return value.
	Return int32 `idl:"name:Return" json:"return"`
}

DetachAndDeleteResponse structure represents the DetachAndDelete operation response

func (*DetachAndDeleteResponse) MarshalNDR

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

func (*DetachAndDeleteResponse) UnmarshalNDR

func (o *DetachAndDeleteResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DetachRequest

type DetachRequest struct {
	// This: ORPCTHIS structure that is used to send ORPC extension data to the server.
	This *dcom.ORPCThis `idl:"name:This" json:"this"`
	// Flags: A DETACH_VIRTUAL_DISK_FLAG (section 2.2.2.20.1.2) enumeration value that specifies
	// how the virtual disk is to be detached.
	Flags vds.DetachVirtualDiskFlag `idl:"name:Flags" json:"flags"`
	// ProviderSpecificFlags: Flags specific to the type of virtual disk being detached.<143>
	ProviderSpecificFlags uint32 `idl:"name:ProviderSpecificFlags" json:"provider_specific_flags"`
}

DetachRequest structure represents the Detach operation request

func (*DetachRequest) MarshalNDR

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

func (*DetachRequest) UnmarshalNDR

func (o *DetachRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DetachResponse

type DetachResponse struct {
	// That: ORPCTHAT structure that is used to return ORPC extension data to the client.
	That *dcom.ORPCThat `idl:"name:That" json:"that"`
	// Return: The Detach return value.
	Return int32 `idl:"name:Return" json:"return"`
}

DetachResponse structure represents the Detach operation response

func (*DetachResponse) MarshalNDR

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

func (*DetachResponse) UnmarshalNDR

func (o *DetachResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ExpandRequest

type ExpandRequest struct {
	// This: ORPCTHIS structure that is used to send ORPC extension data to the server.
	This *dcom.ORPCThis `idl:"name:This" json:"this"`
	// Flags: An EXPAND_VIRTUAL_DISK_FLAG (section 2.2.2.20.1.5) enumeration value that
	// specifies how the virtual disk is to be compacted.
	Flags vds.ExpandVirtualDiskFlag `idl:"name:Flags" json:"flags"`
	// NewSize: The desired size, in bytes, of the expanded virtual disk.
	NewSize uint64 `idl:"name:NewSize" json:"new_size"`
}

ExpandRequest structure represents the Expand operation request

func (*ExpandRequest) MarshalNDR

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

func (*ExpandRequest) UnmarshalNDR

func (o *ExpandRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ExpandResponse

type ExpandResponse struct {
	// That: ORPCTHAT structure that is used to return ORPC extension data to the client.
	That *dcom.ORPCThat `idl:"name:That" json:"that"`
	// ppAsync: A pointer to an IVdsAsync (section 3.1.3.1) interface that, if the operation
	// is successfully completed, receives the IVdsAsync interface to monitor and control
	// this operation. Callers MUST release the interface when they are done with it.
	Async *vds.Async `idl:"name:ppAsync" json:"async"`
	// Return: The Expand return value.
	Return int32 `idl:"name:Return" json:"return"`
}

ExpandResponse structure represents the Expand operation response

func (*ExpandResponse) MarshalNDR

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

func (*ExpandResponse) UnmarshalNDR

func (o *ExpandResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type MergeRequest

type MergeRequest struct {
	// This: ORPCTHIS structure that is used to send ORPC extension data to the server.
	This *dcom.ORPCThis `idl:"name:This" json:"this"`
	// Flags: A MERGE_VIRTUAL_DISK_FLAG (section 2.2.2.20.1.4) enumeration value that specifies
	// how the virtual disk is to be merged.
	Flags vds.MergeVirtualDiskFlag `idl:"name:Flags" json:"flags"`
	// MergeDepth: Number of parent backing store files in the differencing chain to be
	// updated. For example, if MergeDepth has a value of 1, the data blocks from the given
	// differencing disk are moved into its parent. If the given differencing disk's parent
	// is also a differencing disk, (in other words the given disk is diskA, its parent
	// is diskB, and diskB's parent is diskC), and the MergeDepth parameter value is 2,
	// the data blocks from the given differencing disk (diskA) are moved into its parent
	// (diskB), and then its parent's (diskB's) data blocks are moved into its parent (diskC).<146>
	MergeDepth uint32 `idl:"name:MergeDepth" json:"merge_depth"`
}

MergeRequest structure represents the Merge operation request

func (*MergeRequest) MarshalNDR

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

func (*MergeRequest) UnmarshalNDR

func (o *MergeRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type MergeResponse

type MergeResponse struct {
	// That: ORPCTHAT structure that is used to return ORPC extension data to the client.
	That *dcom.ORPCThat `idl:"name:That" json:"that"`
	// ppAsync: A pointer to an IVdsAsync (section 3.1.3.1) interface that, if the operation
	// is successfully completed, receives the IVdsAsync interface to monitor and control
	// this operation. Callers MUST release the interface when they are done with it.
	Async *vds.Async `idl:"name:ppAsync" json:"async"`
	// Return: The Merge return value.
	Return int32 `idl:"name:Return" json:"return"`
}

MergeResponse structure represents the Merge operation response

func (*MergeResponse) MarshalNDR

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

func (*MergeResponse) UnmarshalNDR

func (o *MergeResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenVDiskClient

type OpenVDiskClient interface {

	// IUnknown retrieval method.
	Unknown() iunknown.UnknownClient

	// The Attach method creates an operating system disk device for a virtual disk.
	//
	// Return Values: This method MUST return zero to indicate success, or return an implementation-specific
	// nonzero error code to indicate failure.
	Attach(context.Context, *AttachRequest, ...dcerpc.CallOption) (*AttachResponse, error)

	// The Detach method removes the operating system disk device that represents a virtual
	// disk.
	//
	// Return Values: The method MUST return zero to indicate success, or return an implementation-specific
	// nonzero error code to indicate failure.
	Detach(context.Context, *DetachRequest, ...dcerpc.CallOption) (*DetachResponse, error)

	// The DetachAndDelete method removes the operating system disk device that represents
	// a virtual disk and deletes any backing store file.
	//
	// Return Values: The method MUST return zero to indicate success, or return an implementation-specific
	// nonzero error code to indicate failure.
	DetachAndDelete(context.Context, *DetachAndDeleteRequest, ...dcerpc.CallOption) (*DetachAndDeleteResponse, error)

	// The Compact method reduces the size of the virtual disk file (the backing store).
	// This requires that the virtual disk be detached. Compact is applicable only to differencing
	// type virtual disks and virtual disks created using CREATE_VIRTUAL_DISK_FLAG_NONE.
	// The Compact method does not change the size of the virtual disk.
	//
	// Return Values: The method MUST return zero to indicate success, or return an implementation-specific
	// nonzero error code to indicate failure.
	Compact(context.Context, *CompactRequest, ...dcerpc.CallOption) (*CompactResponse, error)

	//	This method is applicable only to differencing type virtual disks. The Merge method moves all data blocks from a differencing virtual disk into its parent virtual disk. Merging a virtual disk requires that the virtual disk be detached during the operation. Both the virtual disk and its parent are opened READ|WRITE using the IVdsVDisk::Open method called against the virtual disk with an appropriate value for the ReadWriteDepth, as described later in this section.<145>
	//
	// For example, to merge a differencing disk that is a child of a single parent disk
	// into that parent disk, call the IVdsVDisk::Open method on the child disk with the
	// ReadWriteDepth parameter set to the value 2. This value opens both disks with the
	// READ and WRITE flags set, which is necessary for disks to be merged with subsequent
	// call to the IVdsOpenVDisk::Merge method.
	//
	// Return Values: The method MUST return zero to indicate success, or return an implementation-specific
	// nonzero error code to indicate failure.
	Merge(context.Context, *MergeRequest, ...dcerpc.CallOption) (*MergeResponse, error)

	//	The Expand method increases the size of a virtual disk. Expanding a virtual disk requires that the virtual disk be detached during the operation. The virtual disk file is opened with READ|WRITE privileges using the IVdsVDisk::Open method.<147>
	//
	// Return Values: The method MUST return zero to indicate success, or return an implementation-specific
	// nonzero error code to indicate failure.
	Expand(context.Context, *ExpandRequest, ...dcerpc.CallOption) (*ExpandResponse, error)

	// AlterContext alters the client context.
	AlterContext(context.Context, ...dcerpc.Option) error

	// IPID sets the object interface identifier.
	IPID(context.Context, *dcom.IPID) OpenVDiskClient
}

IVdsOpenVDisk interface.

func NewOpenVDiskClient

func NewOpenVDiskClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (OpenVDiskClient, error)

type OpenVDiskServer

type OpenVDiskServer interface {

	// IUnknown base class.
	iunknown.UnknownServer

	// The Attach method creates an operating system disk device for a virtual disk.
	//
	// Return Values: This method MUST return zero to indicate success, or return an implementation-specific
	// nonzero error code to indicate failure.
	Attach(context.Context, *AttachRequest) (*AttachResponse, error)

	// The Detach method removes the operating system disk device that represents a virtual
	// disk.
	//
	// Return Values: The method MUST return zero to indicate success, or return an implementation-specific
	// nonzero error code to indicate failure.
	Detach(context.Context, *DetachRequest) (*DetachResponse, error)

	// The DetachAndDelete method removes the operating system disk device that represents
	// a virtual disk and deletes any backing store file.
	//
	// Return Values: The method MUST return zero to indicate success, or return an implementation-specific
	// nonzero error code to indicate failure.
	DetachAndDelete(context.Context, *DetachAndDeleteRequest) (*DetachAndDeleteResponse, error)

	// The Compact method reduces the size of the virtual disk file (the backing store).
	// This requires that the virtual disk be detached. Compact is applicable only to differencing
	// type virtual disks and virtual disks created using CREATE_VIRTUAL_DISK_FLAG_NONE.
	// The Compact method does not change the size of the virtual disk.
	//
	// Return Values: The method MUST return zero to indicate success, or return an implementation-specific
	// nonzero error code to indicate failure.
	Compact(context.Context, *CompactRequest) (*CompactResponse, error)

	//	This method is applicable only to differencing type virtual disks. The Merge method moves all data blocks from a differencing virtual disk into its parent virtual disk. Merging a virtual disk requires that the virtual disk be detached during the operation. Both the virtual disk and its parent are opened READ|WRITE using the IVdsVDisk::Open method called against the virtual disk with an appropriate value for the ReadWriteDepth, as described later in this section.<145>
	//
	// For example, to merge a differencing disk that is a child of a single parent disk
	// into that parent disk, call the IVdsVDisk::Open method on the child disk with the
	// ReadWriteDepth parameter set to the value 2. This value opens both disks with the
	// READ and WRITE flags set, which is necessary for disks to be merged with subsequent
	// call to the IVdsOpenVDisk::Merge method.
	//
	// Return Values: The method MUST return zero to indicate success, or return an implementation-specific
	// nonzero error code to indicate failure.
	Merge(context.Context, *MergeRequest) (*MergeResponse, error)

	//	The Expand method increases the size of a virtual disk. Expanding a virtual disk requires that the virtual disk be detached during the operation. The virtual disk file is opened with READ|WRITE privileges using the IVdsVDisk::Open method.<147>
	//
	// Return Values: The method MUST return zero to indicate success, or return an implementation-specific
	// nonzero error code to indicate failure.
	Expand(context.Context, *ExpandRequest) (*ExpandResponse, error)
}

IVdsOpenVDisk server interface.

Jump to

Keyboard shortcuts

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