Documentation ¶
Index ¶
- Variables
- func NewPackServerHandle(o PackServer) dcerpc.ServerHandle
- func PackServerHandle(ctx context.Context, o PackServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)
- func RegisterPackServer(conn dcerpc.Conn, o PackServer, opts ...dcerpc.Option)
- type AddDiskRequest
- type AddDiskResponse
- type CreateVolumeRequest
- type CreateVolumeResponse
- type GetPropertiesRequest
- type GetPropertiesResponse
- type GetProviderRequest
- type GetProviderResponse
- type MigrateDisksRequest
- type MigrateDisksResponse
- type PackClient
- type PackServer
- type QueryDisksRequest
- type QueryDisksResponse
- type QueryVolumesRequest
- type QueryVolumesResponse
- type RecoverRequest
- type RecoverResponse
- type RemoveMissingDiskRequest
- type RemoveMissingDiskResponse
Constants ¶
This section is empty.
Variables ¶
var ( // IVdsPack interface identifier 3b69d7f5-9d94-4648-91ca-79939ba263bf PackIID = &dcom.IID{Data1: 0x3b69d7f5, Data2: 0x9d94, Data3: 0x4648, Data4: []byte{0x91, 0xca, 0x79, 0x93, 0x9b, 0xa2, 0x63, 0xbf}} // Syntax UUID PackSyntaxUUID = &uuid.UUID{TimeLow: 0x3b69d7f5, TimeMid: 0x9d94, TimeHiAndVersion: 0x4648, ClockSeqHiAndReserved: 0x91, ClockSeqLow: 0xca, Node: [6]uint8{0x79, 0x93, 0x9b, 0xa2, 0x63, 0xbf}} // Syntax ID PackSyntaxV0_0 = &dcerpc.SyntaxID{IfUUID: PackSyntaxUUID, IfVersionMajor: 0, IfVersionMinor: 0} )
var (
// import guard
GoPackage = "dcom/vds"
)
Functions ¶
func NewPackServerHandle ¶
func NewPackServerHandle(o PackServer) dcerpc.ServerHandle
func PackServerHandle ¶
func RegisterPackServer ¶
func RegisterPackServer(conn dcerpc.Conn, o PackServer, opts ...dcerpc.Option)
Types ¶
type AddDiskRequest ¶
type AddDiskRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` // DiskId: The VDS object ID of the disk object. DiskID *vds.ObjectID `idl:"name:DiskId" json:"disk_id"` // PartitionStyle: A value from the VDS_PARTITION_STYLE enumeration that indicates the // partition format. PartitionStyle vds.PartitionStyle `idl:"name:PartitionStyle" json:"partition_style"` // bAsHotSpare: The Virtual Disk Service Remote Protocol does not support this parameter; // callers MUST set it to FALSE. AsHotSpare int32 `idl:"name:bAsHotSpare" json:"as_hot_spare"` }
AddDiskRequest structure represents the AddDisk operation request
func (*AddDiskRequest) MarshalNDR ¶
func (*AddDiskRequest) UnmarshalNDR ¶
type AddDiskResponse ¶
type AddDiskResponse 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 AddDisk return value. Return int32 `idl:"name:Return" json:"return"` }
AddDiskResponse structure represents the AddDisk operation response
func (*AddDiskResponse) MarshalNDR ¶
func (*AddDiskResponse) UnmarshalNDR ¶
type CreateVolumeRequest ¶
type CreateVolumeRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` // type: A value from the VDS_VOLUME_TYPE enumeration that indicates the type of volume // to create. Type vds.VolumeType `idl:"name:type" json:"type"` // pInputDiskArray: An array of VDS_INPUT_DISK structures that indicate the disks on // which to create the volume.<80> InputDiskArray []*vds.InputDisk `idl:"name:pInputDiskArray;size_is:(lNumberOfDisks)" json:"input_disk_array"` // lNumberOfDisks: The number of elements in pInputDiskArray. NumberOfDisks int32 `idl:"name:lNumberOfDisks" json:"number_of_disks"` // ulStripeSize: The stripe size of the new volume.<81> StripeSize uint32 `idl:"name:ulStripeSize" json:"stripe_size"` }
CreateVolumeRequest structure represents the CreateVolume operation request
func (*CreateVolumeRequest) MarshalNDR ¶
func (*CreateVolumeRequest) UnmarshalNDR ¶
type CreateVolumeResponse ¶
type CreateVolumeResponse 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 // (Opnum 4) method is called on the interface, the interfaces returned in the VDS_ASYNC_OUTPUT // structure MUST be released as well. For information on handling asynchronous tasks, // see section 3.4.5.1.9. Async *vds.Async `idl:"name:ppAsync" json:"async"` // Return: The CreateVolume return value. Return int32 `idl:"name:Return" json:"return"` }
CreateVolumeResponse structure represents the CreateVolume operation response
func (*CreateVolumeResponse) MarshalNDR ¶
func (*CreateVolumeResponse) 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"` PackProperty *vds.PackProperty `idl:"name:pPackProp" json:"pack_property"` // 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 GetProviderRequest ¶
type GetProviderRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` }
GetProviderRequest structure represents the GetProvider operation request
func (*GetProviderRequest) MarshalNDR ¶
func (*GetProviderRequest) UnmarshalNDR ¶
type GetProviderResponse ¶
type GetProviderResponse struct { // That: ORPCTHAT structure that is used to return ORPC extension data to the client. That *dcom.ORPCThat `idl:"name:That" json:"that"` // ppProvider: A pointer to an IVdsProvider interface that, if the operation is successfully // completed, receives the IVdsProvider interface of the provider object that the pack // belongs to. Callers MUST release the interface when they are done with it. Provider *vds.Provider `idl:"name:ppProvider" json:"provider"` // Return: The GetProvider return value. Return int32 `idl:"name:Return" json:"return"` }
GetProviderResponse structure represents the GetProvider operation response
func (*GetProviderResponse) MarshalNDR ¶
func (*GetProviderResponse) UnmarshalNDR ¶
type MigrateDisksRequest ¶
type MigrateDisksRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` // pDiskArray: A pointer to an array of VDS object IDs--one for each disk object that // corresponds to the disks to migrate. DiskArray []*vds.ObjectID `idl:"name:pDiskArray;size_is:(lNumberOfDisks)" json:"disk_array"` // lNumberOfDisks: The number of disks specified in pDiskArray. NumberOfDisks int32 `idl:"name:lNumberOfDisks" json:"number_of_disks"` // TargetPack: The VDS object ID of the pack object. TargetPack *vds.ObjectID `idl:"name:TargetPack" json:"target_pack"` // bForce: A Boolean that determines whether disk migration is forced. When the client // makes the call to migrate disks, the provider(s) that owns the disks is notified // by the server that the disks are about to be migrated. The provider(s) can respond // to this notification with an error. Force int32 `idl:"name:bForce" json:"force"` // bQueryOnly: A Boolean that determines whether the disk migration will actually happen. QueryOnly int32 `idl:"name:bQueryOnly" json:"query_only"` }
MigrateDisksRequest structure represents the MigrateDisks operation request
func (*MigrateDisksRequest) MarshalNDR ¶
func (*MigrateDisksRequest) UnmarshalNDR ¶
type MigrateDisksResponse ¶
type MigrateDisksResponse struct { // That: ORPCTHAT structure that is used to return ORPC extension data to the client. That *dcom.ORPCThat `idl:"name:That" json:"that"` // pResults: A pointer to an array of HRESULT values that, if the operation is successfully // completed, receives the HRESULTs returned by each disk migration request. There MUST // be one HRESULT value in the array for each disk in pDiskArray. If any of the disks // fail to migrate properly, the specific error code for that failure is received in // the corresponding entry in pResults. Results []int32 `idl:"name:pResults;size_is:(lNumberOfDisks)" json:"results"` // pbRebootNeeded: A pointer to a Boolean that, if the operation is successfully completed, // receives an indication of whether the user needs to reboot the remote machine in // order to complete the migration process. RebootNeeded int32 `idl:"name:pbRebootNeeded" json:"reboot_needed"` // Return: The MigrateDisks return value. Return int32 `idl:"name:Return" json:"return"` }
MigrateDisksResponse structure represents the MigrateDisks operation response
func (*MigrateDisksResponse) MarshalNDR ¶
func (*MigrateDisksResponse) UnmarshalNDR ¶
type PackClient ¶
type PackClient interface { // IUnknown retrieval method. Unknown() iunknown.UnknownClient // GetProperties operation. GetProperties(context.Context, *GetPropertiesRequest, ...dcerpc.CallOption) (*GetPropertiesResponse, error) // The GetProvider method retrieves the provider that the disk pack belongs to. // // 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. GetProvider(context.Context, *GetProviderRequest, ...dcerpc.CallOption) (*GetProviderResponse, error) // The QueryVolumes method retrieves the volumes of a disk pack. // // 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. QueryVolumes(context.Context, *QueryVolumesRequest, ...dcerpc.CallOption) (*QueryVolumesResponse, error) // The QueryDisks method retrieves the disks of a disk pack. // // 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. QueryDisks(context.Context, *QueryDisksRequest, ...dcerpc.CallOption) (*QueryDisksResponse, error) // The CreateVolume method creates a volume in a disk pack. // // 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. CreateVolume(context.Context, *CreateVolumeRequest, ...dcerpc.CallOption) (*CreateVolumeResponse, error) // This method initializes a disk that has no partitioning format defined, and then // adds the disk to the disk pack. AddDisk cannot redefine the partitioning format on // a disk.<82> // // 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. AddDisk(context.Context, *AddDiskRequest, ...dcerpc.CallOption) (*AddDiskResponse, error) // The MigrateDisks method migrates a set of disks from one pack to another pack.<83> // // 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) MigrateDisks(context.Context, *MigrateDisksRequest, ...dcerpc.CallOption) (*MigrateDisksResponse, error) // The IVdsPack::RemoveMissingDisk method removes the specified missing disk from a // disk pack. This method only applies to dynamic disks. At least one dynamic disk needs // to be present to enumerate missing disks. // // 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. RemoveMissingDisk(context.Context, *RemoveMissingDiskRequest, ...dcerpc.CallOption) (*RemoveMissingDiskResponse, error) // The Recover method restores a disk pack to a healthy state. This method is not supported // on basic disk packs or the INVALID dynamic disk pack (the value of VDS_PACK_PROP::pwszName // is INVALID for this pack). The INVALID dynamic disk pack contains dynamic disks that // have failed to be joined to the owning pack because there are errors or data corruption // has occurred. // // 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. Recover(context.Context, *RecoverRequest, ...dcerpc.CallOption) (*RecoverResponse, error) // AlterContext alters the client context. AlterContext(context.Context, ...dcerpc.Option) error // IPID sets the object interface identifier. IPID(context.Context, *dcom.IPID) PackClient }
IVdsPack interface.
func NewPackClient ¶
type PackServer ¶
type PackServer interface { // IUnknown base class. iunknown.UnknownServer // GetProperties operation. GetProperties(context.Context, *GetPropertiesRequest) (*GetPropertiesResponse, error) // The GetProvider method retrieves the provider that the disk pack belongs to. // // 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. GetProvider(context.Context, *GetProviderRequest) (*GetProviderResponse, error) // The QueryVolumes method retrieves the volumes of a disk pack. // // 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. QueryVolumes(context.Context, *QueryVolumesRequest) (*QueryVolumesResponse, error) // The QueryDisks method retrieves the disks of a disk pack. // // 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. QueryDisks(context.Context, *QueryDisksRequest) (*QueryDisksResponse, error) // The CreateVolume method creates a volume in a disk pack. // // 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. CreateVolume(context.Context, *CreateVolumeRequest) (*CreateVolumeResponse, error) // This method initializes a disk that has no partitioning format defined, and then // adds the disk to the disk pack. AddDisk cannot redefine the partitioning format on // a disk.<82> // // 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. AddDisk(context.Context, *AddDiskRequest) (*AddDiskResponse, error) // The MigrateDisks method migrates a set of disks from one pack to another pack.<83> // // 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) MigrateDisks(context.Context, *MigrateDisksRequest) (*MigrateDisksResponse, error) // The IVdsPack::RemoveMissingDisk method removes the specified missing disk from a // disk pack. This method only applies to dynamic disks. At least one dynamic disk needs // to be present to enumerate missing disks. // // 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. RemoveMissingDisk(context.Context, *RemoveMissingDiskRequest) (*RemoveMissingDiskResponse, error) // The Recover method restores a disk pack to a healthy state. This method is not supported // on basic disk packs or the INVALID dynamic disk pack (the value of VDS_PACK_PROP::pwszName // is INVALID for this pack). The INVALID dynamic disk pack contains dynamic disks that // have failed to be joined to the owning pack because there are errors or data corruption // has occurred. // // 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. Recover(context.Context, *RecoverRequest) (*RecoverResponse, error) }
IVdsPack server interface.
type QueryDisksRequest ¶
type QueryDisksRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` }
QueryDisksRequest structure represents the QueryDisks operation request
func (*QueryDisksRequest) MarshalNDR ¶
func (*QueryDisksRequest) UnmarshalNDR ¶
type QueryDisksResponse ¶
type QueryDisksResponse 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 containing an enumeration // of disk objects in the pack. Callers MUST release the interface when they are done // with it. Enum *vds.EnumObject `idl:"name:ppEnum" json:"enum"` // Return: The QueryDisks return value. Return int32 `idl:"name:Return" json:"return"` }
QueryDisksResponse structure represents the QueryDisks operation response
func (*QueryDisksResponse) MarshalNDR ¶
func (*QueryDisksResponse) UnmarshalNDR ¶
type QueryVolumesRequest ¶
type QueryVolumesRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` }
QueryVolumesRequest structure represents the QueryVolumes operation request
func (*QueryVolumesRequest) MarshalNDR ¶
func (*QueryVolumesRequest) UnmarshalNDR ¶
type QueryVolumesResponse ¶
type QueryVolumesResponse 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 objects in the pack. Callers MUST release the interface when they are done // with it. Enum *vds.EnumObject `idl:"name:ppEnum" json:"enum"` // Return: The QueryVolumes return value. Return int32 `idl:"name:Return" json:"return"` }
QueryVolumesResponse structure represents the QueryVolumes operation response
func (*QueryVolumesResponse) MarshalNDR ¶
func (*QueryVolumesResponse) UnmarshalNDR ¶
type RecoverRequest ¶
type RecoverRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` }
RecoverRequest structure represents the Recover operation request
func (*RecoverRequest) MarshalNDR ¶
func (*RecoverRequest) UnmarshalNDR ¶
type RecoverResponse ¶
type RecoverResponse 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 Recover return value. Return int32 `idl:"name:Return" json:"return"` }
RecoverResponse structure represents the Recover operation response
func (*RecoverResponse) MarshalNDR ¶
func (*RecoverResponse) UnmarshalNDR ¶
type RemoveMissingDiskRequest ¶
type RemoveMissingDiskRequest struct { // This: ORPCTHIS structure that is used to send ORPC extension data to the server. This *dcom.ORPCThis `idl:"name:This" json:"this"` // DiskId: The VDS object ID of the disk object to remove. DiskID *vds.ObjectID `idl:"name:DiskId" json:"disk_id"` }
RemoveMissingDiskRequest structure represents the RemoveMissingDisk operation request
func (*RemoveMissingDiskRequest) MarshalNDR ¶
func (*RemoveMissingDiskRequest) UnmarshalNDR ¶
type RemoveMissingDiskResponse ¶
type RemoveMissingDiskResponse 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 RemoveMissingDisk return value. Return int32 `idl:"name:Return" json:"return"` }
RemoveMissingDiskResponse structure represents the RemoveMissingDisk operation response