Documentation ¶
Index ¶
- Variables
- func NewOpenVDiskServerHandle(o OpenVDiskServer) dcerpc.ServerHandle
- func OpenVDiskServerHandle(ctx context.Context, o OpenVDiskServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)
- func RegisterOpenVDiskServer(conn dcerpc.Conn, o OpenVDiskServer, opts ...dcerpc.Option)
- type AttachRequest
- type AttachResponse
- type CompactRequest
- type CompactResponse
- type DetachAndDeleteRequest
- type DetachAndDeleteResponse
- type DetachRequest
- type DetachResponse
- type ExpandRequest
- type ExpandResponse
- type MergeRequest
- type MergeResponse
- type OpenVDiskClient
- type OpenVDiskServer
Constants ¶
This section is empty.
Variables ¶
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} )
var (
// import guard
GoPackage = "dcom/vds"
)
Functions ¶
func NewOpenVDiskServerHandle ¶
func NewOpenVDiskServerHandle(o OpenVDiskServer) dcerpc.ServerHandle
func OpenVDiskServerHandle ¶
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 (*AttachRequest) UnmarshalNDR ¶
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 (*AttachResponse) UnmarshalNDR ¶
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 (*CompactRequest) UnmarshalNDR ¶
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 (*CompactResponse) UnmarshalNDR ¶
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 (*DetachAndDeleteRequest) UnmarshalNDR ¶
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 (*DetachAndDeleteResponse) UnmarshalNDR ¶
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 (*DetachRequest) UnmarshalNDR ¶
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 (*DetachResponse) UnmarshalNDR ¶
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 (*ExpandRequest) UnmarshalNDR ¶
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 (*ExpandResponse) UnmarshalNDR ¶
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 (*MergeRequest) UnmarshalNDR ¶
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 (*MergeResponse) UnmarshalNDR ¶
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 ¶
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.