ivdsopenvdisk

package
v1.2.2 Latest Latest
Warning

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

Go to latest
Published: Mar 6, 2025 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

	// Conn returns the client connection (unsafe)
	Conn() dcerpc.Conn

	// 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.

type UnimplementedOpenVDiskServer added in v1.1.5

type UnimplementedOpenVDiskServer struct {
	iunknown.UnimplementedUnknownServer
}

Unimplemented IVdsOpenVDisk

func (UnimplementedOpenVDiskServer) Attach added in v1.1.5

func (UnimplementedOpenVDiskServer) Compact added in v1.1.5

func (UnimplementedOpenVDiskServer) Detach added in v1.1.5

func (UnimplementedOpenVDiskServer) DetachAndDelete added in v1.1.5

func (UnimplementedOpenVDiskServer) Expand added in v1.1.5

func (UnimplementedOpenVDiskServer) Merge added in v1.1.5

Jump to

Keyboard shortcuts

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