Documentation ¶
Index ¶
- Variables
- func NewVolumeServerHandle(o VolumeServer) dcerpc.ServerHandle
- func RegisterVolumeServer(conn dcerpc.Conn, o VolumeServer, opts ...dcerpc.Option)
- func VolumeServerHandle(ctx context.Context, o VolumeServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)
- type AddPlexRequest
- type AddPlexResponse
- type BreakPlexRequest
- type BreakPlexResponse
- type ClearFlagsRequest
- type ClearFlagsResponse
- type DeleteRequest
- type DeleteResponse
- type ExtendRequest
- type ExtendResponse
- type GetPackRequest
- type GetPackResponse
- type GetPropertiesRequest
- type GetPropertiesResponse
- type QueryPlexesRequest
- type QueryPlexesResponse
- type RemovePlexRequest
- type RemovePlexResponse
- type SetFlagsRequest
- type SetFlagsResponse
- type ShrinkRequest
- type ShrinkResponse
- type VolumeClient
- type VolumeServer
Constants ¶
This section is empty.
Variables ¶
var ( // IVdsVolume interface identifier 88306bb2-e71f-478c-86a2-79da200a0f11 VolumeIID = &dcom.IID{Data1: 0x88306bb2, Data2: 0xe71f, Data3: 0x478c, Data4: []byte{0x86, 0xa2, 0x79, 0xda, 0x20, 0x0a, 0x0f, 0x11}} // Syntax UUID VolumeSyntaxUUID = &uuid.UUID{TimeLow: 0x88306bb2, TimeMid: 0xe71f, TimeHiAndVersion: 0x478c, ClockSeqHiAndReserved: 0x86, ClockSeqLow: 0xa2, Node: [6]uint8{0x79, 0xda, 0x20, 0xa, 0xf, 0x11}} // Syntax ID VolumeSyntaxV0_0 = &dcerpc.SyntaxID{IfUUID: VolumeSyntaxUUID, IfVersionMajor: 0, IfVersionMinor: 0} )
var (
// import guard
GoPackage = "dcom/vds"
)
Functions ¶
func NewVolumeServerHandle ¶
func NewVolumeServerHandle(o VolumeServer) dcerpc.ServerHandle
func RegisterVolumeServer ¶
func RegisterVolumeServer(conn dcerpc.Conn, o VolumeServer, opts ...dcerpc.Option)
Types ¶
type AddPlexRequest ¶
type AddPlexRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` // VolumeId: The VDS object ID of the volume object to add as a plex. VolumeID *vds.ObjectID `idl:"name:VolumeId" json:"volume_id"` }
AddPlexRequest structure represents the AddPlex operation request
func (*AddPlexRequest) MarshalNDR ¶
func (*AddPlexRequest) UnmarshalNDR ¶
type AddPlexResponse ¶
type AddPlexResponse 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 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 AddPlex return value. Return int32 `idl:"name:Return" json:"return"` }
AddPlexResponse structure represents the AddPlex operation response
func (*AddPlexResponse) MarshalNDR ¶
func (*AddPlexResponse) UnmarshalNDR ¶
type BreakPlexRequest ¶
type BreakPlexRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` // plexId: The GUID of the plex to be broken. PlexID *vds.ObjectID `idl:"name:plexId" json:"plex_id"` }
BreakPlexRequest structure represents the BreakPlex operation request
func (*BreakPlexRequest) MarshalNDR ¶
func (*BreakPlexRequest) UnmarshalNDR ¶
type BreakPlexResponse ¶
type BreakPlexResponse 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 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. If the IVdsAsync::Wait // method is called on the interface, the interfaces returned in the VDS_ASYNC_OUTPUT // structure MUST be released as well. For information on asynchronous tasks, see section // 3.4.5.1.9. Async *vds.Async `idl:"name:ppAsync" json:"async"` // Return: The BreakPlex return value. Return int32 `idl:"name:Return" json:"return"` }
BreakPlexResponse structure represents the BreakPlex operation response
func (*BreakPlexResponse) MarshalNDR ¶
func (*BreakPlexResponse) UnmarshalNDR ¶
type ClearFlagsRequest ¶
type ClearFlagsRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` Flags uint32 `idl:"name:ulFlags" json:"flags"` }
ClearFlagsRequest structure represents the ClearFlags operation request
func (*ClearFlagsRequest) MarshalNDR ¶
func (*ClearFlagsRequest) UnmarshalNDR ¶
type ClearFlagsResponse ¶
type ClearFlagsResponse 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 ClearFlags return value. Return int32 `idl:"name:Return" json:"return"` }
ClearFlagsResponse structure represents the ClearFlags operation response
func (*ClearFlagsResponse) MarshalNDR ¶
func (*ClearFlagsResponse) UnmarshalNDR ¶
type DeleteRequest ¶
type DeleteRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` // bForce: A Boolean that determines whether all plexes in a volume are deleted when // the volume is in use. Force int32 `idl:"name:bForce" json:"force"` }
DeleteRequest structure represents the Delete operation request
func (*DeleteRequest) MarshalNDR ¶
func (*DeleteRequest) UnmarshalNDR ¶
type DeleteResponse ¶
type DeleteResponse 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 Delete return value. Return int32 `idl:"name:Return" json:"return"` }
DeleteResponse structure represents the Delete operation response
func (*DeleteResponse) MarshalNDR ¶
func (*DeleteResponse) UnmarshalNDR ¶
type ExtendRequest ¶
type ExtendRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` // pInputDiskArray: A pointer to an array of VDS_INPUT_DISK structures that describe // the disk extents to add to the volume--one structure for each disk. Callers SHOULD // specify the member index for all the disk extents together with the Extend method, // unless the volume has only one plex with only one member. InputDiskArray []*vds.InputDisk `idl:"name:pInputDiskArray;size_is:(lNumberOfDisks);pointer:unique" json:"input_disk_array"` // lNumberOfDisks: The number of elements in pInputDiskArrray.<111> NumberOfDisks int32 `idl:"name:lNumberOfDisks" json:"number_of_disks"` }
ExtendRequest structure represents the Extend operation request
func (*ExtendRequest) MarshalNDR ¶
func (*ExtendRequest) UnmarshalNDR ¶
type ExtendResponse ¶
type ExtendResponse 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 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 Extend return value. Return int32 `idl:"name:Return" json:"return"` }
ExtendResponse structure represents the Extend operation response
func (*ExtendResponse) MarshalNDR ¶
func (*ExtendResponse) UnmarshalNDR ¶
type GetPackRequest ¶
type GetPackRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` }
GetPackRequest structure represents the GetPack operation request
func (*GetPackRequest) MarshalNDR ¶
func (*GetPackRequest) UnmarshalNDR ¶
type GetPackResponse ¶
type GetPackResponse struct { // That: ORPCTHAT structure that is used to return ORPC extension data to the client. That *dcom.ORPCThat `idl:"name:That" json:"that"` Pack *vds.Pack `idl:"name:ppPack" json:"pack"` // Return: The GetPack return value. Return int32 `idl:"name:Return" json:"return"` }
GetPackResponse structure represents the GetPack operation response
func (*GetPackResponse) MarshalNDR ¶
func (*GetPackResponse) UnmarshalNDR ¶
type GetPropertiesRequest ¶
type GetPropertiesRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` }
GetPropertiesRequest structure represents the GetProperties operation request
func (*GetPropertiesRequest) MarshalNDR ¶
func (*GetPropertiesRequest) UnmarshalNDR ¶
type GetPropertiesResponse ¶
type GetPropertiesResponse struct { // That: ORPCTHAT structure that is used to return ORPC extension data to the client. That *dcom.ORPCThat `idl:"name:That" json:"that"` VolumeProperties *vds.VolumeProperty `idl:"name:pVolumeProperties" json:"volume_properties"` // Return: The GetProperties return value. Return int32 `idl:"name:Return" json:"return"` }
GetPropertiesResponse structure represents the GetProperties operation response
func (*GetPropertiesResponse) MarshalNDR ¶
func (*GetPropertiesResponse) UnmarshalNDR ¶
type QueryPlexesRequest ¶
type QueryPlexesRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` }
QueryPlexesRequest structure represents the QueryPlexes operation request
func (*QueryPlexesRequest) MarshalNDR ¶
func (*QueryPlexesRequest) UnmarshalNDR ¶
type QueryPlexesResponse ¶
type QueryPlexesResponse struct { // That: ORPCTHAT structure that is used to return ORPC extension data to the client. That *dcom.ORPCThat `idl:"name:That" json:"that"` // ppEnum: A pointer to an IEnumVdsObject interface that, if the operation is successfully // completed, receives the IEnumVdsObject interface of the object that contains an enumeration // of volume plex objects in the volume. Callers MUST release the interface when they // are done with it. Enum *vds.EnumObject `idl:"name:ppEnum" json:"enum"` // Return: The QueryPlexes return value. Return int32 `idl:"name:Return" json:"return"` }
QueryPlexesResponse structure represents the QueryPlexes operation response
func (*QueryPlexesResponse) MarshalNDR ¶
func (*QueryPlexesResponse) UnmarshalNDR ¶
type RemovePlexRequest ¶
type RemovePlexRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` // plexId: The VDS object ID of the volume plex object to remove. PlexID *vds.ObjectID `idl:"name:plexId" json:"plex_id"` }
RemovePlexRequest structure represents the RemovePlex operation request
func (*RemovePlexRequest) MarshalNDR ¶
func (*RemovePlexRequest) UnmarshalNDR ¶
type RemovePlexResponse ¶
type RemovePlexResponse 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 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 RemovePlex return value. Return int32 `idl:"name:Return" json:"return"` }
RemovePlexResponse structure represents the RemovePlex operation response
func (*RemovePlexResponse) MarshalNDR ¶
func (*RemovePlexResponse) UnmarshalNDR ¶
type SetFlagsRequest ¶
type SetFlagsRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` Flags uint32 `idl:"name:ulFlags" json:"flags"` RevertOnClose int32 `idl:"name:bRevertOnClose" json:"revert_on_close"` }
SetFlagsRequest structure represents the SetFlags operation request
func (*SetFlagsRequest) MarshalNDR ¶
func (*SetFlagsRequest) UnmarshalNDR ¶
type SetFlagsResponse ¶
type SetFlagsResponse 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 SetFlags return value. Return int32 `idl:"name:Return" json:"return"` }
SetFlagsResponse structure represents the SetFlags operation response
func (*SetFlagsResponse) MarshalNDR ¶
func (*SetFlagsResponse) UnmarshalNDR ¶
type ShrinkRequest ¶
type ShrinkRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` NumberOfBytesToRemove uint64 `idl:"name:ullNumberOfBytesToRemove" json:"number_of_bytes_to_remove"` }
ShrinkRequest structure represents the Shrink operation request
func (*ShrinkRequest) MarshalNDR ¶
func (*ShrinkRequest) UnmarshalNDR ¶
type ShrinkResponse ¶
type ShrinkResponse struct { // That: ORPCTHAT structure that is used to return ORPC extension data to the client. That *dcom.ORPCThat `idl:"name:That" json:"that"` Async *vds.Async `idl:"name:ppAsync" json:"async"` // Return: The Shrink return value. Return int32 `idl:"name:Return" json:"return"` }
ShrinkResponse structure represents the Shrink operation response
func (*ShrinkResponse) MarshalNDR ¶
func (*ShrinkResponse) UnmarshalNDR ¶
type VolumeClient ¶
type VolumeClient interface { // IUnknown retrieval method. Unknown() iunknown.UnknownClient // GetProperties operation. GetProperties(context.Context, *GetPropertiesRequest, ...dcerpc.CallOption) (*GetPropertiesResponse, error) // GetPack operation. GetPack(context.Context, *GetPackRequest, ...dcerpc.CallOption) (*GetPackResponse, error) // The QueryPlexes method enumerates the plexes of a volume. // // Return Values: The method MUST return zero or a non-error HRESULT (as specified in // [MS-ERREF]) to indicate success, or return an implementation-specific nonzero error // code to indicate failure. For the HRESULT values predefined by the Virtual Disk Service // Remote Protocol, see section 2.2.3. QueryPlexes(context.Context, *QueryPlexesRequest, ...dcerpc.CallOption) (*QueryPlexesResponse, error) // The Extend method expands the size of the current volume by adding disk extents to // each member of each plex. // // Return Values: The method MUST return zero or a non-error HRESULT (as specified in // [MS-ERREF]) to indicate success, or return an implementation-specific nonzero error // code to indicate failure. For the HRESULT values predefined by the Virtual Disk Service // Remote Protocol, see section 2.2.3. Extend(context.Context, *ExtendRequest, ...dcerpc.CallOption) (*ExtendResponse, error) // Shrink operation. Shrink(context.Context, *ShrinkRequest, ...dcerpc.CallOption) (*ShrinkResponse, error) // The AddPlex method adds a volume as a plex to the current volume. // // Return Values: The method MUST return zero or a non-error HRESULT (as specified in // [MS-ERREF]) to indicate success, or return an implementation-specific nonzero error // code to indicate failure. For the HRESULT values predefined by the Virtual Disk Service // Remote Protocol, see section 2.2.3. AddPlex(context.Context, *AddPlexRequest, ...dcerpc.CallOption) (*AddPlexResponse, error) // The BreakPlex method removes a specified plex from the current volume. The interface // pointer for the new volume object can be retrieved by calling IVdsAsync::Wait through // the ppAsync parameter. The VDS_ASYNC_OUTPUT structure that is returned contains the // volume object interface pointer in the bvp.pVolumeUnk member. // // Return Values: The method MUST return zero or a non-error HRESULT (as specified in // [MS-ERREF]) to indicate success, or return an implementation-specific nonzero error // code to indicate failure. For the HRESULT values predefined by the Virtual Disk Service // Remote Protocol, see section 2.2.3. BreakPlex(context.Context, *BreakPlexRequest, ...dcerpc.CallOption) (*BreakPlexResponse, error) // The RemovePlex method removes a specified plex from a volume. The last plex of a // volume cannot be removed. // // Return Values: The method MUST return zero or a non-error HRESULT (as specified in // [MS-ERREF]) to indicate success, or return an implementation-specific nonzero error // code to indicate failure. For the HRESULT values predefined by the Virtual Disk Service // Remote Protocol, see section 2.2.3. RemovePlex(context.Context, *RemovePlexRequest, ...dcerpc.CallOption) (*RemovePlexResponse, error) // The Delete method deletes all plexes in a volume.<118> // // Return Values: The method MUST return zero or a non-error HRESULT (as specified in // [MS-ERREF]) to indicate success, or return an implementation-specific nonzero error // code to indicate failure. For the HRESULT values predefined by the Virtual Disk Service // Remote Protocol, see section 2.2.3. // // ERROR_SUCCESS (0x00000000) Delete(context.Context, *DeleteRequest, ...dcerpc.CallOption) (*DeleteResponse, error) // SetFlags operation. SetFlags(context.Context, *SetFlagsRequest, ...dcerpc.CallOption) (*SetFlagsResponse, error) // ClearFlags operation. ClearFlags(context.Context, *ClearFlagsRequest, ...dcerpc.CallOption) (*ClearFlagsResponse, error) // AlterContext alters the client context. AlterContext(context.Context, ...dcerpc.Option) error // IPID sets the object interface identifier. IPID(context.Context, *dcom.IPID) VolumeClient }
IVdsVolume interface.
func NewVolumeClient ¶
type VolumeServer ¶
type VolumeServer interface { // IUnknown base class. iunknown.UnknownServer // GetProperties operation. GetProperties(context.Context, *GetPropertiesRequest) (*GetPropertiesResponse, error) // GetPack operation. GetPack(context.Context, *GetPackRequest) (*GetPackResponse, error) // The QueryPlexes method enumerates the plexes of a volume. // // Return Values: The method MUST return zero or a non-error HRESULT (as specified in // [MS-ERREF]) to indicate success, or return an implementation-specific nonzero error // code to indicate failure. For the HRESULT values predefined by the Virtual Disk Service // Remote Protocol, see section 2.2.3. QueryPlexes(context.Context, *QueryPlexesRequest) (*QueryPlexesResponse, error) // The Extend method expands the size of the current volume by adding disk extents to // each member of each plex. // // Return Values: The method MUST return zero or a non-error HRESULT (as specified in // [MS-ERREF]) to indicate success, or return an implementation-specific nonzero error // code to indicate failure. For the HRESULT values predefined by the Virtual Disk Service // Remote Protocol, see section 2.2.3. Extend(context.Context, *ExtendRequest) (*ExtendResponse, error) // Shrink operation. Shrink(context.Context, *ShrinkRequest) (*ShrinkResponse, error) // The AddPlex method adds a volume as a plex to the current volume. // // Return Values: The method MUST return zero or a non-error HRESULT (as specified in // [MS-ERREF]) to indicate success, or return an implementation-specific nonzero error // code to indicate failure. For the HRESULT values predefined by the Virtual Disk Service // Remote Protocol, see section 2.2.3. AddPlex(context.Context, *AddPlexRequest) (*AddPlexResponse, error) // The BreakPlex method removes a specified plex from the current volume. The interface // pointer for the new volume object can be retrieved by calling IVdsAsync::Wait through // the ppAsync parameter. The VDS_ASYNC_OUTPUT structure that is returned contains the // volume object interface pointer in the bvp.pVolumeUnk member. // // Return Values: The method MUST return zero or a non-error HRESULT (as specified in // [MS-ERREF]) to indicate success, or return an implementation-specific nonzero error // code to indicate failure. For the HRESULT values predefined by the Virtual Disk Service // Remote Protocol, see section 2.2.3. BreakPlex(context.Context, *BreakPlexRequest) (*BreakPlexResponse, error) // The RemovePlex method removes a specified plex from a volume. The last plex of a // volume cannot be removed. // // Return Values: The method MUST return zero or a non-error HRESULT (as specified in // [MS-ERREF]) to indicate success, or return an implementation-specific nonzero error // code to indicate failure. For the HRESULT values predefined by the Virtual Disk Service // Remote Protocol, see section 2.2.3. RemovePlex(context.Context, *RemovePlexRequest) (*RemovePlexResponse, error) // The Delete method deletes all plexes in a volume.<118> // // Return Values: The method MUST return zero or a non-error HRESULT (as specified in // [MS-ERREF]) to indicate success, or return an implementation-specific nonzero error // code to indicate failure. For the HRESULT values predefined by the Virtual Disk Service // Remote Protocol, see section 2.2.3. // // ERROR_SUCCESS (0x00000000) Delete(context.Context, *DeleteRequest) (*DeleteResponse, error) // SetFlags operation. SetFlags(context.Context, *SetFlagsRequest) (*SetFlagsResponse, error) // ClearFlags operation. ClearFlags(context.Context, *ClearFlagsRequest) (*ClearFlagsResponse, error) }
IVdsVolume server interface.