csvp

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

Overview

The csvp package implements the CSVP client protocol.

Introduction

The Failover Cluster: Setup and Validation Protocol (ClusPrep) consists of DCOM interfaces, as specified in [MS-DCOM], that are used for remotely configuring cluster nodes cleaning up cluster nodes and validating that hardware and software settings are compatible with use in a failover cluster.

Overview

The Failover Cluster: Setup and Validation Protocol (ClusPrep) is a COM/DCOM protocol to setup, cleanup, and validate a set of machines for failover cluster capability. The setup of state includes pushing to a new server the state required to participate in the failover cluster. Validation of state includes retrieving failover cluster state from a server to validate the state and directing the server to perform specific tasks and report status to validate it is functioning correctly. Cleanup of state includes removing restrictions on accessing shared disks and deletion of cluster state from the server.

The ClusPrep Protocol provides DCOM interfaces that enable a client to:

* Validate the server configuration so as to make it eligible to become a node ( b30bcd1c-8ff6-46d2-a27e-61bd85ace9f4#gt_762051d8-4fdc-437e-af9d-3f4da77c3c7d ) in a failover cluster ( b30bcd1c-8ff6-46d2-a27e-61bd85ace9f4#gt_acd8b49c-8762-48fd-9272-26a03643322b ).

* Configure a server to no longer be a node in a failover cluster.

* Retrieve log information from a node in a failover cluster.

* Determine whether the hardware/software settings of a server meet the requirements to be part of a failover cluster.

Index

Constants

This section is empty.

Variables

View Source
var ClusterCleanupClassID = &dcom.ClassID{Data1: 0xa6d3e32b, Data2: 0x9814, Data3: 0x4409, Data4: []byte{0x8d, 0xe3, 0xcf, 0xa6, 0x73, 0xe6, 0xd3, 0xde}}

ClusterCleanup class identifier a6d3e32b-9814-4409-8de3-cfa673e6d3de

View Source
var ClusterFirewallClassID = &dcom.ClassID{Data1: 0x3cfee98c, Data2: 0xfb4b, Data3: 0x44c6, Data4: []byte{0xbd, 0x98, 0xa1, 0xdb, 0x14, 0xab, 0xca, 0x3f}}

ClusterFirewall class identifier 3cfee98c-fb4b-44c6-bd98-a1db14abca3f

View Source
var ClusterLogClassID = &dcom.ClassID{Data1: 0x88e7ac6d, Data2: 0xc561, Data3: 0x4f03, Data4: []byte{0x9a, 0x60, 0x39, 0xdd, 0x76, 0x8f, 0x86, 0x7d}}

ClusterLog class identifier 88e7ac6d-c561-4f03-9a60-39dd768f867d

View Source
var ClusterNetwork2ClassID = &dcom.ClassID{Data1: 0xe1568352, Data2: 0x586d, Data3: 0x43e4, Data4: []byte{0x93, 0x3f, 0x8e, 0x6d, 0xc4, 0xde, 0x31, 0x7a}}

ClusterNetwork2 class identifier e1568352-586d-43e4-933f-8e6dc4de317a

View Source
var ClusterSetupClassID = &dcom.ClassID{Data1: 0x04d55210, Data2: 0xb6ac, Data3: 0x4248, Data4: []byte{0x9e, 0x69, 0x2a, 0x56, 0x9d, 0x1d, 0x2a, 0xb6}}

ClusterSetup class identifier 04d55210-b6ac-4248-9e69-2a569d1d2ab6

View Source
var ClusterStorage2ClassID = &dcom.ClassID{Data1: 0xc72b09db, Data2: 0x4d53, Data3: 0x4f41, Data4: []byte{0x8d, 0xcc, 0x2d, 0x75, 0x2a, 0xb5, 0x6f, 0x7c}}

ClusterStorage2 class identifier c72b09db-4d53-4f41-8dcc-2d752ab56f7c

View Source
var ClusterUpdateClassID = &dcom.ClassID{Data1: 0x4142dd5d, Data2: 0x3472, Data3: 0x4370, Data4: []byte{0x86, 0x41, 0xde, 0x78, 0x56, 0x43, 0x1f, 0xb0}}

ClusterUpdate class identifier 4142dd5d-3472-4370-8641-de7856431fb0

View Source
var (
	// import guard
	GoPackage = "dcom/csvp"
)

Functions

This section is empty.

Types

type AddRoutesReply

type AddRoutesReply struct {
	// indices:  An array of unsigned integers matching the indices previously designated
	// by the client in an ADD_ROUTES_REQUEST data structure.
	Indices *oaut.SafeArray `idl:"name:indices" json:"indices"`
	// replies:  An array of ROUTE_LOSS_AND_STATE (section 2.2.21) objects representing
	// the communication data collected by the server using implementation-specific mechanisms.
	Replies *oaut.SafeArray `idl:"name:replies" json:"replies"`
	// routeUnavailable:  A value of TRUE indicates that the server was not in the correct
	// state to set the remaining fields of the ROUTE_LOSS_AND_STATE data structure. In
	// this case, the indices and replies fields MUST be ignored.
	RouteUnavailable bool `idl:"name:routeUnavailable" json:"route_unavailable"`
}

AddRoutesReply structure represents ADD_ROUTES_REPLY RPC structure.

The ADD_ROUTES_REPLY structure<11> contains information about packet loss and route status for routes previously added by the client.

func (*AddRoutesReply) MarshalNDR

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

func (*AddRoutesReply) UnmarshalNDR

func (o *AddRoutesReply) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type AddRoutesRequest

type AddRoutesRequest struct {
	// localVirtualIP:  The IP address that is common to all routes initiated from a server.
	// Typically a client uses an arbitrary localVirtualIP as the common identifier for
	// all communication routes from the server to any remote host. The IP address is represented
	// as a Unicode string and can be either IPv4 or IPv6. IPv4 addresses MUST be represented
	// in dotted decimal notation. IPv6 addresses MUST be represented in the form specified
	// by [RFC1924].
	LocalVirtualIP *oaut.String `idl:"name:localVirtualIP" json:"local_virtual_ip"`
	// nodeRouteInfos:  An array of NODE_ROUTE_INFO objects.
	NodeRouteInfos *oaut.SafeArray `idl:"name:nodeRouteInfos" json:"node_route_infos"`
}

AddRoutesRequest structure represents ADD_ROUTES_REQUEST RPC structure.

The ADD_ROUTES_REQUEST structure<8> designates a collection of communication routes to monitor for status and packet loss. The manifestation of a communication route is implementation-specific. A communication route includes network endpoints, identified by IP addresses, between which packets can be sent and received.

func (*AddRoutesRequest) MarshalNDR

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

func (*AddRoutesRequest) UnmarshalNDR

func (o *AddRoutesRequest) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterCert

type ClusterCert struct {
	// CbCertData: Length of the CertData field.
	CertDataLength uint32 `idl:"name:CbCertData" json:"cert_data_length"`
	// CbKeyData: Length of the KeyData field.
	KeyDataLength uint32 `idl:"name:CbKeyData" json:"key_data_length"`
	// CertData: Exported certificate blob from the certificate store.
	CertData []byte `idl:"name:CertData" json:"cert_data"`
	// KeyData: Exported private key blob from the crypto container that matches the certificate.
	KeyData []byte `idl:"name:KeyData" json:"key_data"`
	// ClusterSecret: Cluster secret data as defined in section 3.10.1.
	ClusterSecret []uint16 `idl:"name:ClusterSecret" json:"cluster_secret"`
}

ClusterCert structure represents CLUSTER_CERT RPC structure.

The CLUSTER_CERT structure contains certificate information and the cluster secret that is distributed by the client to all nodes in the cluster.

func (*ClusterCert) MarshalNDR

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

func (*ClusterCert) UnmarshalNDR

func (o *ClusterCert) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterCertType

type ClusterCertType uint16

ClusterCertType type represents CLUSTER_CERTTYPE RPC enumeration.

var (
	ClusterCertTypeSChannel    ClusterCertType = 0
	ClusterCertTypeSetSChannel ClusterCertType = 1
	ClusterCertTypePku2u       ClusterCertType = 2
	ClusterCertTypeSetPku2u    ClusterCertType = 3
)

func (ClusterCertType) String

func (o ClusterCertType) String() string

type ClusterCleanup

type ClusterCleanup dcom.InterfacePointer

ClusterCleanup structure represents IClusterCleanup RPC structure.

func (*ClusterCleanup) InterfacePointer

func (o *ClusterCleanup) InterfacePointer() *dcom.InterfacePointer

func (*ClusterCleanup) MarshalNDR

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

func (*ClusterCleanup) NDRSizeInfo

func (o *ClusterCleanup) NDRSizeInfo() []uint64

func (*ClusterCleanup) UnmarshalNDR

func (o *ClusterCleanup) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterDiskID

type ClusterDiskID struct {
	// DiskIdType:  This MUST be one of the valid CPREP_DISKID_ENUM values.
	DiskIDType    ClusterDiskIDEnum            `idl:"name:DiskIdType" json:"disk_id_type"`
	ClusterDiskID *ClusterDiskID_ClusterDiskID `idl:"name:ClusterDiskID;switch_is:DiskIdType" json:"cluster_disk_id"`
}

ClusterDiskID structure represents CPREP_DISKID RPC structure.

The CPREP_DISKID structure identifies an operating system disk and typically corresponds to a LUN. This structure holds either the operating system disk number (not the BIOS disk number) or the disk signature .

func (*ClusterDiskID) MarshalNDR

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

func (*ClusterDiskID) UnmarshalNDR

func (o *ClusterDiskID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterDiskIDEnum

type ClusterDiskIDEnum uint16

ClusterDiskIDEnum type represents CPREP_DISKID_ENUM RPC enumeration.

The CPREP_DISKID_ENUM enumeration defines possible kinds of disk identifiers.

var (
	// CprepIdSignature:  A small computer system interface (SCSI) signature that is 4
	// bytes in length. Used to identify master boot record (MBR) disks.
	ClusterDiskIDEnumSignature ClusterDiskIDEnum = 0
	// CprepIdGuid:  A signature of a GUID partitioning table (GPT) disk, which is a GUID.
	// A GUID, also known as a UUID, is a 16-byte structure, intended to serve as a unique
	// identifier for an object.
	ClusterDiskIDEnumGUID ClusterDiskIDEnum = 1
	// CprepIdNumber:  The number by which the disk is identified.
	ClusterDiskIDEnumNumber ClusterDiskIDEnum = 4000
	// CprepIdUnknown:  Used for disks that are not identified via one of the previously
	// described ways.
	ClusterDiskIDEnumUnknown ClusterDiskIDEnum = 5000
)

func (ClusterDiskIDEnum) String

func (o ClusterDiskIDEnum) String() string

type ClusterDiskID_ClusterDiskID

type ClusterDiskID_ClusterDiskID struct {
	// Types that are assignable to Value
	//
	// *ClusterDiskID_DiskSignature
	// *ClusterDiskID_DiskGUID
	// *ClusterDiskID_DeviceNumber
	// *ClusterDiskID_Junk
	Value is_ClusterDiskID_ClusterDiskID `json:"value"`
}

ClusterDiskID_ClusterDiskID structure represents CPREP_DISKID union anonymous member.

The CPREP_DISKID structure identifies an operating system disk and typically corresponds to a LUN. This structure holds either the operating system disk number (not the BIOS disk number) or the disk signature .

func (*ClusterDiskID_ClusterDiskID) GetValue

func (o *ClusterDiskID_ClusterDiskID) GetValue() any

func (*ClusterDiskID_ClusterDiskID) MarshalUnionNDR

func (o *ClusterDiskID_ClusterDiskID) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint16) error

func (*ClusterDiskID_ClusterDiskID) NDRSwitchValue

func (o *ClusterDiskID_ClusterDiskID) NDRSwitchValue(sw uint16) uint16

func (*ClusterDiskID_ClusterDiskID) UnmarshalUnionNDR

func (o *ClusterDiskID_ClusterDiskID) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint16) error

type ClusterDiskID_DeviceNumber

type ClusterDiskID_DeviceNumber struct {
	// DeviceNumber:  This field is valid only if DiskIdType is CprepIdNumber. It MUST contain
	// the operating system disk number, not the BIOS disk number. The device number ranges
	// from zero to the number of disks accessible by the server minus one. How the device
	// number is assigned is implementation-specific.
	DeviceNumber uint32 `idl:"name:DeviceNumber" json:"device_number"`
}

ClusterDiskID_DeviceNumber structure represents ClusterDiskID_ClusterDiskID RPC union arm.

It has following labels: 4000

func (*ClusterDiskID_DeviceNumber) MarshalNDR

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

func (*ClusterDiskID_DeviceNumber) UnmarshalNDR

func (o *ClusterDiskID_DeviceNumber) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterDiskID_DiskGUID

type ClusterDiskID_DiskGUID struct {
	// DiskGuid:   This field is valid only if DiskIdType is CprepIdGuid. It MUST contain
	// the GUID that identifies the disk. How the disk GUID is assigned is implementation-specific.
	DiskGUID *dtyp.GUID `idl:"name:DiskGuid" json:"disk_guid"`
}

ClusterDiskID_DiskGUID structure represents ClusterDiskID_ClusterDiskID RPC union arm.

It has following labels: 1

func (*ClusterDiskID_DiskGUID) MarshalNDR

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

func (*ClusterDiskID_DiskGUID) UnmarshalNDR

func (o *ClusterDiskID_DiskGUID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterDiskID_DiskSignature

type ClusterDiskID_DiskSignature struct {
	// DiskSignature:  This field is valid only if DiskIdType is CprepIdSignature. It MUST
	// contain the 4-byte signature of the disk. How the disk signature is assigned is implementation-specific.
	DiskSignature uint32 `idl:"name:DiskSignature" json:"disk_signature"`
}

ClusterDiskID_DiskSignature structure represents ClusterDiskID_ClusterDiskID RPC union arm.

It has following labels: 0

func (*ClusterDiskID_DiskSignature) MarshalNDR

func (*ClusterDiskID_DiskSignature) UnmarshalNDR

func (o *ClusterDiskID_DiskSignature) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterDiskID_Junk

type ClusterDiskID_Junk struct {
	// Junk:   This field is valid only if DiskIdType is CprepIdUnknown. The value of this
	// field is not used.
	Junk uint32 `idl:"name:Junk" json:"junk"`
}

ClusterDiskID_Junk structure represents ClusterDiskID_ClusterDiskID RPC union arm.

It has following labels: 5000

func (*ClusterDiskID_Junk) MarshalNDR

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

func (*ClusterDiskID_Junk) UnmarshalNDR

func (o *ClusterDiskID_Junk) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterFirewall

type ClusterFirewall dcom.InterfacePointer

ClusterFirewall structure represents IClusterFirewall RPC structure.

func (*ClusterFirewall) InterfacePointer

func (o *ClusterFirewall) InterfacePointer() *dcom.InterfacePointer

func (*ClusterFirewall) MarshalNDR

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

func (*ClusterFirewall) NDRSizeInfo

func (o *ClusterFirewall) NDRSizeInfo() []uint64

func (*ClusterFirewall) UnmarshalNDR

func (o *ClusterFirewall) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterLog

type ClusterLog dcom.InterfacePointer

ClusterLog structure represents IClusterLog RPC structure.

func (*ClusterLog) InterfacePointer

func (o *ClusterLog) InterfacePointer() *dcom.InterfacePointer

func (*ClusterLog) MarshalNDR

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

func (*ClusterLog) NDRSizeInfo

func (o *ClusterLog) NDRSizeInfo() []uint64

func (*ClusterLog) UnmarshalNDR

func (o *ClusterLog) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterLogEx

type ClusterLogEx dcom.InterfacePointer

ClusterLogEx structure represents IClusterLogEx RPC structure.

func (*ClusterLogEx) InterfacePointer

func (o *ClusterLogEx) InterfacePointer() *dcom.InterfacePointer

func (*ClusterLogEx) MarshalNDR

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

func (*ClusterLogEx) NDRSizeInfo

func (o *ClusterLogEx) NDRSizeInfo() []uint64

func (*ClusterLogEx) UnmarshalNDR

func (o *ClusterLogEx) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterLogExFlag

type ClusterLogExFlag uint16

ClusterLogExFlag type represents ClusterLogExFlag RPC enumeration.

var (
	ClusterLogExFlagNone             ClusterLogExFlag = 0
	ClusterLogExFlagLocalTime        ClusterLogExFlag = 1
	ClusterLogExFlagSkipClusterState ClusterLogExFlag = 2
)

func (ClusterLogExFlag) String

func (o ClusterLogExFlag) String() string

type ClusterNetwork2

type ClusterNetwork2 dcom.InterfacePointer

ClusterNetwork2 structure represents IClusterNetwork2 RPC structure.

func (*ClusterNetwork2) InterfacePointer

func (o *ClusterNetwork2) InterfacePointer() *dcom.InterfacePointer

func (*ClusterNetwork2) MarshalNDR

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

func (*ClusterNetwork2) NDRSizeInfo

func (o *ClusterNetwork2) NDRSizeInfo() []uint64

func (*ClusterNetwork2) UnmarshalNDR

func (o *ClusterNetwork2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterNetworkProfile

type ClusterNetworkProfile uint16

ClusterNetworkProfile type represents CLUSTER_NETWORK_PROFILE RPC enumeration.

The CLUSTER_NETWORK_PROFILE enumeration defines the valid values for network adapter firewall profiles. When the server firewall enforces policies specified in [MS-FASP], the server SHOULD determine the network adapter firewall profile by querying the server firewall for the network adapter profile and mapping that value as specified below.

var (
	// ClusterNetworkProfilePublic:  See FW_PROFILE_TYPE_PUBLIC in [MS-FASP] section 2.2.2.
	ClusterNetworkProfilePublic ClusterNetworkProfile = 0
	// ClusterNetworkProfilePrivate:  See FW_PROFILE_TYPE_PRIVATE in [MS-FASP] section
	// 2.2.2.
	ClusterNetworkProfilePrivate ClusterNetworkProfile = 1
	// ClusterNetworkProfileDomainAuthenticated:  See FW_PROFILE_TYPE_DOMAIN in [MS-FASP]
	// section 2.2.2.
	ClusterNetworkProfileDomainAuthenticated ClusterNetworkProfile = 2
)

func (ClusterNetworkProfile) String

func (o ClusterNetworkProfile) String() string

type ClusterSCSIAddress

type ClusterSCSIAddress struct {
	// Length:  Contains the length of this structure in bytes.
	Length uint32 `idl:"name:Length" json:"length"`
	// PortNumber:  Contains the number of the SCSI adapter.
	PortNumber uint8 `idl:"name:PortNumber" json:"port_number"`
	// PathId:  Contains the number of the bus.
	PathID uint8 `idl:"name:PathId" json:"path_id"`
	// TargetId:  Contains the number of the target device.
	TargetID uint8 `idl:"name:TargetId" json:"target_id"`
	// Lun:  Contains the logical unit number.
	LUN uint8 `idl:"name:Lun" json:"lun"`
}

ClusterSCSIAddress structure represents CPREP_SCSI_ADDRESS RPC structure.

The CPREP_SCSI_ADDRESS structure holds information to identify a disk via the SCSI protocol. The structure is included in this document because it is referenced by the DISK_PROPS structure; however, the values in this structure are never read by the client.

func (*ClusterSCSIAddress) MarshalNDR

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

func (*ClusterSCSIAddress) UnmarshalNDR

func (o *ClusterSCSIAddress) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterSetup

type ClusterSetup dcom.InterfacePointer

ClusterSetup structure represents IClusterSetup RPC structure.

func (*ClusterSetup) InterfacePointer

func (o *ClusterSetup) InterfacePointer() *dcom.InterfacePointer

func (*ClusterSetup) MarshalNDR

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

func (*ClusterSetup) NDRSizeInfo

func (o *ClusterSetup) NDRSizeInfo() []uint64

func (*ClusterSetup) UnmarshalNDR

func (o *ClusterSetup) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterStorage2

type ClusterStorage2 dcom.InterfacePointer

ClusterStorage2 structure represents IClusterStorage2 RPC structure.

func (*ClusterStorage2) InterfacePointer

func (o *ClusterStorage2) InterfacePointer() *dcom.InterfacePointer

func (*ClusterStorage2) MarshalNDR

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

func (*ClusterStorage2) NDRSizeInfo

func (o *ClusterStorage2) NDRSizeInfo() []uint64

func (*ClusterStorage2) UnmarshalNDR

func (o *ClusterStorage2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterStorage3

type ClusterStorage3 dcom.InterfacePointer

ClusterStorage3 structure represents IClusterStorage3 RPC structure.

func (*ClusterStorage3) InterfacePointer

func (o *ClusterStorage3) InterfacePointer() *dcom.InterfacePointer

func (*ClusterStorage3) MarshalNDR

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

func (*ClusterStorage3) NDRSizeInfo

func (o *ClusterStorage3) NDRSizeInfo() []uint64

func (*ClusterStorage3) UnmarshalNDR

func (o *ClusterStorage3) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClusterUpdate

type ClusterUpdate dcom.InterfacePointer

ClusterUpdate structure represents IClusterUpdate RPC structure.

func (*ClusterUpdate) InterfacePointer

func (o *ClusterUpdate) InterfacePointer() *dcom.InterfacePointer

func (*ClusterUpdate) MarshalNDR

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

func (*ClusterUpdate) NDRSizeInfo

func (o *ClusterUpdate) NDRSizeInfo() []uint64

func (*ClusterUpdate) UnmarshalNDR

func (o *ClusterUpdate) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskMediaType

type DiskMediaType uint16

DiskMediaType type represents DiskMediaType RPC enumeration.

var (
	DiskMediaTypeUnknown DiskMediaType = 0
	DiskMediaTypeHDD     DiskMediaType = 1
	DiskMediaTypeSSD     DiskMediaType = 2
	DiskMediaTypeSCM     DiskMediaType = 3
)

func (DiskMediaType) String

func (o DiskMediaType) String() string

type DiskProperties

type DiskProperties struct {
	// DiskNumber:  The zero-based device number assigned to the disk by the operating system.
	DiskNumber uint32 `idl:"name:DiskNumber" json:"disk_number"`
	// DiskId:  A valid CPREP_DISKID structure with the correct identifier for the disk.
	DiskID *ClusterDiskID `idl:"name:DiskId" json:"disk_id"`
	// DiskBusType:  The type of bus to which the disk is attached. It MAY<4> be one of
	// the following values.
	//
	//	+-------------------------------------+--------------------------------------------------------------+
	//	|                                     |                                                              |
	//	|                VALUE                |                           MEANING                            |
	//	|                                     |                                                              |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeUnknown 0x00000000           | The bus type is not one of those that follows.               |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeScsi 0x00000001              | The bus type is SCSI.                                        |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeAtapi 0x00000002             | The bus type is AT attachment packet interface (ATAPI).      |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeAta 0x00000003               | The bus type is advanced technology attachment (ATA).        |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusType1394 0x00000004              | The bus type is IEEE 1394.                                   |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeSsa 0x00000005               | The bus type is serial storage architecture (SSA).           |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeFibre 0x00000006             | The bus type is Fibre Channel.                               |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeUsb 0x00000007               | The bus type is universal serial bus (USB).                  |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeRAID 0x00000008              | The bus type is redundant array of independent disks (RAID). |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeiScsi 0x00000009             | The bus type is iSCSI.                                       |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeSas 0x0000000A               | The bus type is Serial Attached SCSI (SAS).                  |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeSata 0x0000000B              | The bus type is Serial ATA (SATA).                           |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeSd 0x0000000C                | The bus type is Sd.                                          |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeMmc 0x0000000D               | The bus type is Mmc.                                         |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeVirtual 0x0000000E           | The bus type is Virtual.                                     |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeFileBackedVirtual 0x0000000F | The bus type is File Backed Virtual.                         |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeSpaces 0x00000010            | The bus is type Spaces.                                      |
	//	+-------------------------------------+--------------------------------------------------------------+
	DiskBusType uint32 `idl:"name:DiskBusType" json:"disk_bus_type"`
	// StackType:  The driver subtype of the device driver. It MUST be one of the valid
	// values for DiskStackType.
	StackType DiskStackType `idl:"name:StackType" json:"stack_type"`
	// ScsiAddress:  The SCSI address of the disk. It MUST be a valid CPREP_SCSI_ADDRESS.
	SCSIAddress *ClusterSCSIAddress `idl:"name:ScsiAddress" json:"scsi_address"`
	// DiskIsClusterable:  A Boolean flag that indicates whether the disk can be represented
	// by a storage class resource in a failover cluster, as specified in [MS-CMRP]. A value
	// of TRUE or 1 indicates that the disk can be represented by a storage class resource.
	// A value of FALSE or 0 indicates that the disk cannot be represented by a storage
	// class resource. The value of the DiskIsClusterable member can be determined in an
	// implementation-specific way.
	DiskIsClusterable int32 `idl:"name:DiskIsClusterable" json:"disk_is_clusterable"`
	// AdapterDesc:  A user-friendly description of the adapter to which the disk is connected.
	AdapterDesc []uint16 `idl:"name:AdapterDesc" json:"adapter_desc"`
	// NumPaths:  The number of IO paths to the disk. A Multipath I/O (MPIO) disk has a
	// number greater than 1.
	PathsLength uint32 `idl:"name:NumPaths" json:"paths_length"`
	// Flags:  Information about the disk. It MAY<5> be one or more of the following values
	// bitwise OR'd together.
	//
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                         |                                                                                  |
	//	|                  VALUE                  |                                     MEANING                                      |
	//	|                                         |                                                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_BOOT 0x00000001                    | The disk is the boot device.                                                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_SYSTEM 0x00000002                  | The disk contains the operating system.                                          |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_PAGEFILE 0x00000004                | The disk contains an operating system pagefile.                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_HIBERNATE 0x00000008               | The disk will be used to store system hibernation data.                          |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_CRASHDUMP 0x00000010               | The disk will be used to store system crash dump data.                           |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_REMOVABLE 0x00000020               | The disk is on removable media.                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_CLUSTERNOSUPP 0x00000040           | The disk is not supported by the cluster implementation. The criteria for        |
	//	|                                         | support are implementation-specific.                                             |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_BUSNOSUPP 0x00000100               | The disk is on a bus not supported by the cluster implementation. The criteria   |
	//	|                                         | for support are implementation-specific.                                         |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_SYSTEMBUS 0x00000200               | The disk is on the same bus as the disk containing the operating system.         |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_ALREADY_CLUSTERED 0x00000400       | The disk is already controlled by the cluster.                                   |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_SYTLE_MBR 0x00001000               | The disk is MBR.                                                                 |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_STYLE_GPT 0x00002000               | The disk is GPT.                                                                 |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_STYLE_RAW 0x00004000               | The disk is neither MBR nor GPT.                                                 |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_PART_BASIC 0x00008000              | The disk is configured with basic volumes.                                       |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_PART_DYNAMIC 0x00010000            | The disk is configured with dynamic volumes.                                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_CLUSTERED_ONLINE 0x00020000        | The disk is controlled by the cluster and is online.                             |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_UNREADABLE 0x00040000              | The disk cannot be read.                                                         |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_MPIO 0x00080000                    | The disk is controlled by MPIO.                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_CLUSTERED_OTHER 0x00100000         | The disk is controlled by cluster software other than the failover cluster       |
	//	|                                         | implementation.                                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_MISSING 0x00200000                 | The disk could not be found.                                                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_REDUNDANT 0x00400000               | The disk is exposed to the operating system multiple times through redundant     |
	//	|                                         | paths.                                                                           |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_SNAPSHOT 0x00800000                | The disk is a snapshot disk.                                                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_FAILING_IO 0x02000000              | The disk is unable to gather disk information.                                   |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_NO_PAGE83 0x04000000               | The disk does not have a Device Identification VPD page (see [SPC-3] section     |
	//	|                                         | 7.6.3) with PAGE CODE (see [SPC-3] table 294) set to 83h, a device ASSOCIATION   |
	//	|                                         | (see [SPC-3] table 297), and IDENTIFIER TYPE (see [SPC-3] table 298) of Type 8,  |
	//	|                                         | Type 3, or Type 2.                                                               |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_COLLISION 0x08000000               | The disk's signature collides with the signature on another disk visible to this |
	//	|                                         | server, and disk signature collision resolution is disabled.                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_OUTOFSPACE 0x10000000              | The disk is a thin-provisioned LUN that has no free space.                       |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_POOL_DRIVE 0x20000000              | The disk is a member of a storage pool.                                          |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_POOL_DRIVE_NOT_TESTABLE 0x40000000 | The disk is a member of a storage pool and cannot be tested because the storage  |
	//	|                                         | pool is in use.                                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_POOL_CLUSTERED 0x80000000          | The disk is member of a storage pool and the storage pool to which it belongs is |
	//	|                                         | a cluster resource.                                                              |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	Flags uint32 `idl:"name:Flags" json:"flags"`
}

DiskProperties structure represents DISK_PROPS RPC structure.

The DISK_PROPS structure holds information about a single disk.<3>

func (*DiskProperties) MarshalNDR

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

func (*DiskProperties) UnmarshalNDR

func (o *DiskProperties) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskPropertiesEx

type DiskPropertiesEx struct {
	// DiskNumber:  The zero-based device number assigned to the disk by the operating system.
	DiskNumber uint32 `idl:"name:DiskNumber" json:"disk_number"`
	// DiskId:  A valid CPREP_DISKID structure with the correct identifier for the disk.
	DiskID *ClusterDiskID `idl:"name:DiskId" json:"disk_id"`
	// DiskBusType:  The type of bus to which the disk is attached. It contains one of the
	// following values.
	//
	//	+-------------------------------------+--------------------------------------------------------------+
	//	|                                     |                                                              |
	//	|                VALUE                |                           MEANING                            |
	//	|                                     |                                                              |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeUnknown 0x00000000           | The bus type is not one of those that follow.                |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeScsi 0x00000001              | The bus type is SCSI.                                        |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeAtapi 0x00000002             | The bus type is AT attachment packet interface (ATAPI).      |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeAta 0x00000003               | The bus type is advanced technology attachment (ATA).        |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusType1394 0x00000004              | The bus type is IEEE 1394.                                   |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeSsa 0x00000005               | The bus type is serial storage architecture (SSA).           |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeFibre 0x00000006             | The bus type is Fibre Channel.                               |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeUsb 0x00000007               | The bus type is universal serial bus (USB).                  |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeRAID 0x00000008              | The bus type is redundant array of independent disks (RAID). |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeiScsi 0x00000009             | The bus type is iSCSI.                                       |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeSas 0x0000000A               | The bus type is Serial Attached SCSI (SAS).                  |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeSata 0x0000000B              | The bus type is Serial ATA (SATA).                           |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeSd 0x0000000C                | The bus type is Sd.                                          |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeMmc 0x0000000D               | The bus type is Mmc.                                         |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeVirtual 0x0000000E           | The bus type is Virtual.                                     |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeFileBackedVirtual 0x0000000F | The bus type is File Backed Virtual.                         |
	//	+-------------------------------------+--------------------------------------------------------------+
	//	| BusTypeSpaces 0x00000010            | The bus type is Spaces.                                      |
	//	+-------------------------------------+--------------------------------------------------------------+
	DiskBusType uint32 `idl:"name:DiskBusType" json:"disk_bus_type"`
	// StackType:  The driver subtype of the device driver. It MUST be one of the valid
	// values for DiskStackType.
	StackType DiskStackType `idl:"name:StackType" json:"stack_type"`
	// ScsiAddress:  The SCSI address of the disk. It MUST be a valid CPREP_SCSI_ADDRESS.
	SCSIAddress *ClusterSCSIAddress `idl:"name:ScsiAddress" json:"scsi_address"`
	// DiskIsClusterable:  A Boolean flag that indicates whether the disk can be clustered.
	// A value of TRUE or 1 indicates that the disk can be clustered. A value of FALSE or
	// 0 indicates that the disk cannot be clustered. The value of the DiskIsClusterable
	// member can be determined in an implementation-specific way.
	DiskIsClusterable bool `idl:"name:DiskIsClusterable" json:"disk_is_clusterable"`
	// AdapterDesc:  A user-friendly description of the adapter to which the disk is connected.
	AdapterDesc []uint16 `idl:"name:AdapterDesc" json:"adapter_desc"`
	// pwszFriendlyName:  A null-terminated string containing a user-friendly description
	// of the disk. Memory for this string is allocated by the server and MUST be freed
	// by the client.
	FriendlyName string `idl:"name:pwszFriendlyName;string" json:"friendly_name"`
	// NumPaths:  The number of IO paths to the disk. A Multipath I/O (MPIO) disk has a
	// number greater than 1.
	PathsLength uint32 `idl:"name:NumPaths" json:"paths_length"`
	// Flags:  Information about the disk. It contains one or more of the following values
	// bitwise OR'd together.
	//
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                         |                                                                                  |
	//	|                  VALUE                  |                                     MEANING                                      |
	//	|                                         |                                                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_BOOT 0x00000001                    | The disk is the boot device.                                                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_SYSTEM 0x00000002                  | The disk contains the operating system.                                          |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_PAGEFILE 0x00000004                | The disk contains an operating system pagefile.                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_HIBERNATE 0x00000008               | The disk will be used to store system hibernation data.                          |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_CRASHDUMP 0x00000010               | The disk will be used to store system crash dump data.                           |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_REMOVABLE 0x00000020               | The disk is on removable media.                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_CLUSTERNOSUPP 0x00000040           | The disk is not supported by the cluster implementation. The criteria for        |
	//	|                                         | support are implementation-specific.                                             |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_BUSNOSUPP 0x00000100               | The disk is on a bus not supported by the cluster implementation. The criteria   |
	//	|                                         | for support are implementation-specific.                                         |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_SYSTEMBUS 0x00000200               | The disk is on the same bus as the disk containing the operating system.         |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_ALREADY_CLUSTERED 0x00000400       | The disk is already controlled by the cluster.                                   |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_SYTLE_MBR 0x00001000               | The disk is MBR.                                                                 |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_STYLE_GPT 0x00002000               | The disk is GPT.                                                                 |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_STYLE_RAW 0x00004000               | The disk is neither MBR nor GPT.                                                 |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_PART_BASIC 0x00008000              | The disk is configured with basic volumes.                                       |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_PART_DYNAMIC 0x00010000            | The disk is configured with dynamic volumes.                                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_CLUSTERED_ONLINE 0x00020000        | The disk is controlled by the cluster and is online.                             |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_UNREADABLE 0x00040000              | The disk cannot be read.                                                         |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_MPIO 0x00080000                    | The disk is controlled by MPIO.                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_CLUSTERED_OTHER 0x00100000         | The disk is controlled by cluster software other than the failover cluster       |
	//	|                                         | implementation.                                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_MISSING 0x00200000                 | The disk could not be found.                                                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_REDUNDANT 0x00400000               | The disk is exposed to the operating system more than once through redundant     |
	//	|                                         | paths.                                                                           |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_SNAPSHOT 0x00800000                | The disk is a snapshot disk.                                                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_FAILING_IO 0x02000000              | The disk is unable to gather disk information.                                   |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_NO_PAGE83 0x04000000               | The disk does not have a Device Identification VPD page (see [SPC-3] section     |
	//	|                                         | 7.6.3) with PAGE CODE (see [SPC-3] table 294) set to 83h, a device ASSOCIATION   |
	//	|                                         | (see [SPC-3] table 297), and IDENTIFIER TYPE (see [SPC-3] table 298) of Type 8,  |
	//	|                                         | Type 3, or Type 2.                                                               |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_COLLISION 0x08000000               | The disk's signature collides with the signature of another disk visible to this |
	//	|                                         | server, and disk signature collision resolution is disabled.                     |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_OUTOFSPACE 0x10000000              | The disk is a thin-provisioned LUN that has no free space.                       |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_POOL_DRIVE 0x20000000              | The disk is a member of a storage pool.                                          |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_POOL_DRIVE_NOT_TESTABLE 0x40000000 | The disk is a member of a storage pool but does not meet implementation-specific |
	//	|                                         | criteria for testing.                                                            |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_POOL_CLUSTERED 0x80000000          | The disk is a member of a storage pool, and the storage pool to which it belongs |
	//	|                                         | is a cluster resource.                                                           |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	Flags uint32 `idl:"name:Flags" json:"flags"`
	// ExtendedFlags:  Additional information about the disk. It contains one or more of
	// the following values bitwise OR'd together.
	//
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                         |                                                                                  |
	//	|                  VALUE                  |                                     MEANING                                      |
	//	|                                         |                                                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_EX_SPLITPOOLCONFIG 0x00000001      | The storage pool drive is configured for both pool and non-pool data.            |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| DISK_EX_POOL_NOT_CLUSTERABLE 0x00000002 | The storage pool drive is part of a pool that is not suitable for failover       |
	//	|                                         | clustering.                                                                      |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	ExtendedFlags uint32 `idl:"name:ExtendedFlags" json:"extended_flags"`
	// pwszPoolName:  A null-terminated string indicating the name of the storage pool that
	// the disk is a member of. If the disk is not a member of a storage pool, this field
	// MUST be initialized to NULL.
	PoolName string `idl:"name:pwszPoolName;string" json:"pool_name"`
	// pwszPage83Id:  A null-terminated string containing a VPD 83h identifier (see [SPC-3]
	// section 7.6.3) associated with the addressed logical unit number. The VPD 83h ASSOCIATION
	// field (see [SPC-3] table 297) has the value 00bh, and IDENTIFIER TYPE (see [SPC-3]
	// table 298) equal to SCSI name string (8h), NAA (3h), or EUI-64 based (2h).
	//
	// The order of precedence when choosing a VPD 83h identifier to return is: SCSI name
	// string type has precedence over NAA or EUI-64 based, and NAA has precedence over
	// EUI-64 based.
	Page83ID string `idl:"name:pwszPage83Id;string" json:"page83_id"`
	// pwszSerialNumber:  A null-terminated string containing the VPD page 80h (Unit Serial
	// Number see [SPC-3]section 7.6.10). This field is optional, as defined in [SPC-3]
	// (it can be all spaces). Memory for this string is allocated by the server and MUST
	// be freed by the client.
	SerialNumber string `idl:"name:pwszSerialNumber;string" json:"serial_number"`
	// guidPoolId:  The identifier of the storage pool that the disk is a member of. If
	// the disk is not a member of a storage pool, this field MUST be initialized to zero.
	PoolID *dtyp.GUID `idl:"name:guidPoolId" json:"pool_id"`
}

DiskPropertiesEx structure represents DISK_PROPS_EX RPC structure.

The DISK_PROPS_EX structure holds information about a single disk. This structure SHOULD<6> be supported and is required for the IClusterStorage3 interface.

func (*DiskPropertiesEx) MarshalNDR

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

func (*DiskPropertiesEx) UnmarshalNDR

func (o *DiskPropertiesEx) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DiskStackType

type DiskStackType uint16

DiskStackType type represents DiskStackType RPC enumeration.

The DiskStackType enumeration defines valid driver types that a disk driver is implemented as.

var (
	// DiskStackScsiPort:  The driver is a SCSIPort driver.
	DiskStackTypeSCSIPort DiskStackType = 0
	// DiskStackStorPort:  The driver is a StorPort driver.
	DiskStackTypeStorPort DiskStackType = 1
	// DiskStackFullPort:  The driver is a monolithic driver and does not conform to any
	// storage driver submodel.
	DiskStackTypeFullPort DiskStackType = 2
)

func (DiskStackType) String

func (o DiskStackType) String() string

type NodeRouteInfo

type NodeRouteInfo struct {
	// remoteVirtualIP:  An IP address that is common to all routes designated by the NODE_ROUTE_INFO
	// data structure. A client uses a remoteVirtualIP as the common identifier for all
	// communication routes to a remote host.
	RemoteVirtualIP *oaut.String `idl:"name:remoteVirtualIP" json:"remote_virtual_ip"`
	// localUnicastIPs:  An array of IP addresses. A client sets the elements of localUnicastIPs
	// to the IP addresses from which the server can send network traffic to a remote host.
	LocalUnicastIPs *oaut.SafeArray `idl:"name:localUnicastIPs" json:"local_unicast_i_ps"`
	// remoteUnicastIPs:  An array of IP addresses. A client sets the elements of remoteUnicastIPs
	// to the IP address to which network traffic can be sent on a remote host.
	RemoteUnicastIPs *oaut.SafeArray `idl:"name:remoteUnicastIPs" json:"remote_unicast_i_ps"`
	// indices:  An array of unsigned integers that MUST be unique among all indices specified
	// in all NODE_ROUTE_INFO structures contained in an ADD_ROUTES_REQUEST structure.
	Indices *oaut.SafeArray `idl:"name:indices" json:"indices"`
}

NodeRouteInfo structure represents NODE_ROUTE_INFO RPC structure.

A client uses a NODE_ROUTE_INFO structure<7> to add routes that share the same remoteVirtualIP IP address field.

The IP addresses in the remoteVirtualIP field and the elements of the localUnicastIPs array and the remoteUnicastIPs array can be either IPv4 or IPv6 and are contained in Unicode strings. IPv4 addresses MUST be represented in dotted decimal notation. IPv6 addresses MUST be represented in the form specified by [RFC1924].

func (*NodeRouteInfo) MarshalNDR

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

func (*NodeRouteInfo) UnmarshalNDR

func (o *NodeRouteInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type RouteLossAndState

type RouteLossAndState struct {
	// packetLoss:  A value between 0x00000000 and 0x00000064. Designates the reliability
	// of communication on the route measured by the server using implementation-specific
	// mechanisms. A value of 0x00000000 represents most reliable, and 0x00000064 designates
	// least reliable. A server sends a collection of network packets to the remote host
	// and measures the number of packets that are successfully delivered.
	PacketLoss uint32 `idl:"name:packetLoss" json:"packet_loss"`
	// status:  The status of the communication route.
	Status RouteStatus `idl:"name:status" json:"status"`
}

RouteLossAndState structure represents ROUTE_LOSS_AND_STATE RPC structure.

The ROUTE_LOSS_AND_STATE structure<10> contains information about a route’s packet loss and its status.

func (*RouteLossAndState) MarshalNDR

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

func (*RouteLossAndState) UnmarshalNDR

func (o *RouteLossAndState) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type RouteStatus

type RouteStatus uint16

RouteStatus type represents ROUTE_STATUS RPC enumeration.

The ROUTE_STATUS enumeration<9> defines the possible states of a communication route.

var (
	// DOWN:  Using implementation-specific mechanisms, the server deemed the route unsuitable
	// for communication to the remote host.
	RouteStatusDown RouteStatus = 0
	// UP:  Using implementation-specific mechanisms, the server deemed the route suitable
	// for communication to the remote host.
	RouteStatusUp RouteStatus = 1
	// UP_DOWN:  Using implementation-specific mechanisms, the server deemed the route
	// neither consistently suitable nor consistently unsuitable for communication to the
	// remote host.
	RouteStatusUpDown RouteStatus = 2
)

func (RouteStatus) String

func (o RouteStatus) String() string

Directories

Path Synopsis
iclustercleanup
v0
iclusterfirewall
v0
iclusterlog
v0
iclusterlogex
v0
iclusternetwork2
v0
iclustersetup
v0
iclusterstorage2
v0
iclusterstorage3
v0
iclusterupdate
v0

Jump to

Keyboard shortcuts

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