version 1.1.2.1, 2012/01/24 13:50:07
|
version 1.1.2.2, 2012/02/15 17:46:20
|
|
|
|
// Copyright (c) 2005 DMTF. All rights reserved. |
|
[Version ( "2.10.0" ), |
|
UMLPackagePath ( "CIM::Device::ProtocolController" ), |
|
Description ( |
|
"The ControllerConfigurationService provides methods that allow " |
|
"a client to manipulate LUN Masking in a storage system." )] |
|
class CIM_ControllerConfigurationService : CIM_Service { |
|
|
|
|
|
[Description ( |
|
"This method creates an appropriate subclass of " |
|
"ProtocolController. In addition to its role of " |
|
"controlling downstream devices, a ProtocolControl is " |
|
"used to provide a central management point for access " |
|
"control with respect to those devices. Certain storage " |
|
"system implementations across multiple vendors require " |
|
"permissions to be established atomically with the " |
|
"creation of a ProtocolController. This method provides " |
|
"this capability via the Privilege and Identity " |
|
"properties. By supplying appropriate information in " |
|
"those properties, this method will assure that " |
|
"appropriate AuthorizedTarget and AuthorizedSubject " |
|
"associations, (as defined in the User and Security " |
|
"Model), are instantiated to restrict access to the " |
|
"logical devices \'behind\' it. \n" |
|
"If multiple target ports are specified in the Ports " |
|
"input parameter, all expose the same view (i.e., have " |
|
"the same unit numbers and permissions). This method does " |
|
"not create the port instances, but does create " |
|
"ProtocolControllerForPort associations between the " |
|
"specified ports and the new ProtocolController. The new " |
|
"ProtocolController is defined to be weak to the same " |
|
"System as the ControllerConfigurationService." ), |
|
ValueMap { "0", "1", "2", "3", "4", "5", "6..4095", "4096", |
|
"4097", "4098", "4099..32767", "32768..65535" }, |
|
Values { "Success", "Not Supported", "Unspecified Error", |
|
"Timeout", "Failed", "Invalid Parameter", "DMTF Reserved", |
|
"ID Parameter Missing or Not Unique", |
|
"Hardware Implementation Requires Null Ports Parameter", |
|
"Busy", "Method Reserved", "Vendor Specific" }] |
|
uint32 CreateProtocolControllerWithPorts( |
|
[IN, Description ( |
|
"The string to be used in the ElementName of the " |
|
"new ProtocolController." ), |
|
ModelCorrespondence { |
|
"CIM_ProtocolController.ElementName" }] |
|
string ElementName, |
|
[IN, Description ( |
|
"Array of strings containing representations of " |
|
"references to instances of CIM_LogicalPort (or " |
|
"subclass) instances. This is the list of target " |
|
"ports that are associated to the " |
|
"ProtocolController. ProtocolControllerForPort " |
|
"associations are created by the instrumentation " |
|
"associating the new ProtocolController to these " |
|
"ports. If this parameter is null, then all ports " |
|
"in the storage system (this Service\'s \'scoping\' " |
|
"System and all its ComponentCS Systems) are " |
|
"attached to the new ProtocolController." )] |
|
string Ports[], |
|
[IN, Description ( |
|
"The protocol type for the new ProtocolController." ), |
|
ValueMap { "0", "1", "2" }, |
|
Values { "Unknown", "Other", "SCSI" }, |
|
ModelCorrespondence { "CIM_SCSIProtocolController" }] |
|
uint16 Protocol, |
|
[IN, Description ( |
|
"Reference to a CIM_Privilege (or subclass) " |
|
"instance to be used as a template. If supplied, it " |
|
"has a 1:1 correspondence with the Identity " |
|
"parameter and this method will atomically create " |
|
"the new ProtocolController instance and related " |
|
"AuthorizedPrivilege, AuthorizedTarget and " |
|
"AuthorizedSubject instances. \n" |
|
"Note: if " |
|
"ProtocolControllerRequiresAuthorizedIdentity is " |
|
"true, then the Identity/Privilege pair MUST be " |
|
"specified. If false, then the Identity/Privilege " |
|
"pair MUST NOT be specified." ), |
|
ModelCorrespondence { |
|
"CIM_ControllerConfigurationService.CreateProtocolControllerWithPorts.Identity" }] |
|
CIM_Privilege REF Privilege, |
|
[IN, Description ( |
|
"Reference to a CIM_ManagedElement (or subclass) " |
|
"instance. This ManagedElement MUST be either a " |
|
"CIM_Identity, or a CIM_Collection (or subclass, " |
|
"eg. SystemSpecificCollection, Role, or Group) that " |
|
"has CIM_Identities as MemberOfCollection. If " |
|
"ProtocolControllerMaskingCapabilities.ProtocolControllerSupportsCollection " |
|
"is false, the reference MUST be to a CIM_Identity " |
|
"(or subclass). If present, it has a 1:1 " |
|
"correspondence with the Privilege property. If " |
|
"present, this method will atomically create the " |
|
"new ProtocolController instance and instantiate a " |
|
"missing AuthorizedSubject association between the " |
|
"Privilege/Identity pair; and instantiate an " |
|
"AuthorizedTarget association between the " |
|
"AuthorizedPrivilege and the new " |
|
"ProtocolController. \n" |
|
"Note: if " |
|
"ProtocolControllerRequiresAuthorizedIdentity is " |
|
"true, then at least the Identity/Privilege pair " |
|
"MUST be specified." ), |
|
ModelCorrespondence { |
|
"CIM_ControllerConfigurationService.CreateProtocolControllerWithPorts.Privilege" }] |
|
CIM_ManagedElement REF Identity, |
|
[IN ( false ), OUT, Description ( |
|
"A reference to the new ProtocolController that is created." |
|
)] |
|
CIM_ProtocolController REF ProtocolController); |
|
|
|
[Description ( |
|
"The method deletes an instance of ProtocolController and " |
|
"all associations in which this ProtocolController is " |
|
"referenced." ), |
|
ValueMap { "0", "1", "2", "3", "4", "5", "6..4095", "4096", |
|
"4097", "4098..32767", "32768..65535" }, |
|
Values { "Success", "Not Supported", "Unspecified Error", |
|
"Timeout", "Failed", "Invalid Parameter", "DMTF Reserved", |
|
"LogicalDevices Associated to Other ProtocolControllers Not Deleted", |
|
"Busy", "Method Reserved", "Vendor Specific" }] |
|
uint32 DeleteProtocolController( |
|
[IN, Description ( |
|
"The ProtocolController to be deleted." )] |
|
CIM_ProtocolController REF ProtocolController, |
|
[IN, Description ( |
|
"If true, the management instrumentation provider " |
|
"will also delete \'child\' ProtocolControllers " |
|
"(i.e., those defined as Dependent references in " |
|
"instances of AssociatedProtocolController where " |
|
"this ProtocolController is the Antecedent " |
|
"reference). Also, all direct associations " |
|
"involving the \'child\' ProtocolControllers will " |
|
"be removed." )] |
|
boolean DeleteChildrenProtocolControllers, |
|
[IN, Description ( |
|
"If true, the management instrumentation provider " |
|
"will also delete LogicalDevice instances " |
|
"associated via ProtocolControllerForUnit, to this " |
|
"ProtocolController and its children. (Note that " |
|
"\'child\' controllers will only be affected if the " |
|
"DeleteChildrenProtocolControllers input parameter " |
|
"is TRUE). LogicalDevice instances are only deleted " |
|
"if there are NO remaining " |
|
"ProtocolControllerForUnit associations, to other " |
|
"ProtocolControllers." )] |
|
boolean DeleteUnits); |
|
|
|
[Description ( |
|
"This method associates a LogicalDevice subclass " |
|
"(specifically a StorageVolume or MediaAccessDevice " |
|
"subclass) to the referenced ProtocolController. The " |
|
"association is persisted as an instance of " |
|
"ProtocolControllerForUnit. The management " |
|
"instrumentation provider must verify that the logical " |
|
"unit numbers (defined using the DeviceNumber input " |
|
"parameter) are unique for the ProtocolController. When " |
|
"the Protocol Controller is actively masking a device " |
|
"(i.e. is part of an AuthorizedTarget association), the " |
|
"provider should update the access configuration in the " |
|
"underlying hardware as appropriate." ), |
|
ValueMap { "0", "1", "2", "3", "4", "5", "6..4095", "4096", |
|
"4097", "4098", "4099", "4100", "4101..32767", |
|
"32768..65535" }, |
|
Values { "Success", "Not Supported", "Unspecified Error", |
|
"Timeout", "Failed", "Invalid Parameter", "DMTF Reserved", |
|
"Invalid LogicalDevice Instance", |
|
"Device Number Conflict", |
|
"DeviceNumber Parameter Must Be Provided", |
|
"Hardware Implementation Requires Null DeviceNumber", |
|
"Busy", "Method Reserved", "Vendor Specific" }] |
|
uint32 AttachDevice( |
|
[IN, Description ( "The ProtocolController instance." )] |
|
CIM_ProtocolController REF ProtocolController, |
|
[IN, Description ( |
|
"The LogicalDevice instance to attach." )] |
|
CIM_LogicalDevice REF Device, |
|
[IN, OUT, Description ( |
|
"The number assigned to " |
|
"ProtocolControllerForUnit.DeviceNumber (if " |
|
"supported by the hardware). Hardware support is " |
|
"indicated by " |
|
"ProtocolControllerMaskingCapabilities.ClientSelectableDeviceNumbers). " |
|
"If the hardware does not support setting the " |
|
"number, but the DeviceNumber has not been " |
|
"established in an existing " |
|
"ProtocolControllerForDevice subclass, then this " |
|
"parameter\'s value will be used. If the " |
|
"DeviceNumber has been established, then the " |
|
"current number will be reused." ), |
|
ModelCorrespondence { |
|
"CIM_ProtocolControllerForUnit.DeviceNumber" }] |
|
string DeviceNumber); |
|
|
|
[Description ( |
|
"This method removes the ProtocolControllerForDevice " |
|
"association subclass between the ProtocolController and " |
|
"a LogicalDevice, such as a StorageVolume or a " |
|
"MediaAccessDevice. When the ProtocolController is " |
|
"actively masking a device (i.e. is part of an " |
|
"AuthorizedTarget association, the management " |
|
"instrumentation provider should update the hardware " |
|
"access configuration when DetachDevice is called." ), |
|
ValueMap { "0", "1", "2", "3", "4", "5", "6..4095", "4096", |
|
"4097", "4098..32767", "32768..65535" }, |
|
Values { "Success", "Not Supported", "Unspecified Error", |
|
"Timeout", "Failed", "Invalid Parameter", "DMTF Reserved", |
|
"LogicalDevice Instance not Associated with Controller", |
|
"Busy", "Method Reserved", "Vendor Specific" }] |
|
uint32 DetachDevice( |
|
[IN, Description ( "The ProtocolController instance." )] |
|
CIM_ProtocolController REF ProtocolController, |
|
[IN, Description ( |
|
"The LogicalDevice instance to detach." )] |
|
CIM_LogicalDevice REF Device); |
|
|
|
[Description ( |
|
"Expose a list of SCSI logical units (such as RAID " |
|
"volumes or tape drives) to a list of initiators through " |
|
"a list of target ports, through one or more " |
|
"SCSIProtocolControllers (SPCs). \n" |
|
"\n" |
|
"The parameters for this method are: Job - null if no job " |
|
"created, otherwise this is a reference to the job. " |
|
"LUNames - the list of names of the logical units to use. " |
|
"InitiatorPortIDs - the names of the initiator ports to " |
|
"use. TargetPortIDs - the names of the target ports to " |
|
"use. DeviceNumbers - the device numbers (LUNs) to use. " |
|
"DeviceAccesses - permissions for the logical units. " |
|
"ProtocolControllers - SPCs involved in this operation. \n" |
|
"\n" |
|
"There are two modes of operation, create and modify. If " |
|
"a NULL value is passed in for the SPC, then the " |
|
"instrumentation will create at least one SPC that " |
|
"satisfies the request. Depending upon the " |
|
"instrumentation capabilities, more than one SPC MAY be " |
|
"created. (e.g. if " |
|
"CIM_ProtocolControllerMaskingCapabilities.OneHardwareIDPerView " |
|
"is true and more than one initiatorID was passed in, " |
|
"then one SPC per initiatorID will be created). If an SPC " |
|
"is passed in, then the instrumentation attempts to add " |
|
"the new paths to the existing SPC. Depending upon the " |
|
"instrumentation capabilities, this MAY result in the " |
|
"creation of additional SPCs. The instrumentation MAY " |
|
"return an error if honoring this request would violate " |
|
"SCSI semantics. \n" |
|
"\n" |
|
"For creating an SPC, the parameters that MUST be " |
|
"specified are dependent upon the SPCAllows* properties " |
|
"in CIM_ProtocolControllerMaskingCapabilities. If " |
|
"SPCAllowsNoLUs is false, the caller MUST specify a list " |
|
"of LUNames. If it is true, the caller MAY specify a list " |
|
"of LUNames or MAY pass in null. If SPCAllowsNoTargets is " |
|
"false and PortsPerView is not \'All Ports share the same " |
|
"view\' the caller MUST specify a list of TargetPortIDs. " |
|
"If it is true, the caller MAY specify a list of " |
|
"TargetPortIDs or MAY pass in null. If " |
|
"SPCAllowsNoInitiators is false, the caller MUST specify " |
|
"a list of InitiatorPortIDs. If it is true, the caller " |
|
"MAY specify a list of InitiatorPortIDs or MAY pass in " |
|
"null. If LUNames is not null, the caller MUST specify " |
|
"DeviceAccesses for each logical unit. If the " |
|
"instrumentation\'s " |
|
"CIM_ProtocolControllerMaskingCapabilities " |
|
"ClientSelectableDeviceNumbers property is TRUE then the " |
|
"client MAY provide a list of device numbers (LUNs) to " |
|
"use for the paths to be created. If is false, the client " |
|
"MUST pass in NULL for this parameter. \n" |
|
"\n" |
|
"The LUNames, DeviceNumbers, and DeviceAccesses " |
|
"parameters are mutually indexed arrays - any element in " |
|
"DeviceNumbers or DeviceAccesses will set a property " |
|
"relative to the LogicalDevice instance named in the " |
|
"corresponding element of LUNames. LUNames and " |
|
"DeviceAccesses MUST have the same number of elements. " |
|
"DeviceNumbers MUST be null (asking the instrumentation " |
|
"to assign numbers) or have the same number of elements " |
|
"as LUNames. If these conditions are not met, the " |
|
"instrumentation MUST return a \'Invalid Parameter\' " |
|
"status or a CIM_Error. \n" |
|
"\n" |
|
"For modifying an SPC, there are three specific use cases " |
|
"identified. The instrumentation MUST support these use " |
|
"cases. Other permutations are allowed, but are " |
|
"vendor-specific. The use cases are: Add LUs to a view, " |
|
"Add initiator IDs to a view, and Add target port IDs to " |
|
"a view. Add LUs to a view requires that the LUNames " |
|
"parameter not be null and that the InitiatorIDs and " |
|
"TargetPortIDs parameters be null. DeviceNumbers MAY be " |
|
"null if ClientSelectableDeviceNumbers is false. " |
|
"DeviceAccesses MUST be specified. Add initiator IDs to a " |
|
"view requires that the LUNames parameter be null, that " |
|
"the InitiatorIDs not be null, and that the TargetPortIDs " |
|
"parameters be null. DeviceNumbers and DeviceAccesses " |
|
"MUST be null. Add target port IDs to a view requires " |
|
"that the LUNames and InitiatorPortIDs parameters be null " |
|
"and is only possible is PortsPerView is \'Multiple Ports " |
|
"Per View\'. DeviceNumbers and DeviceAccesses MUST also " |
|
"be null \n" |
|
"\n" |
|
"The relevant rules of SCSI semantics are: \n" |
|
"- an SPC MAY NOT be exposed through a particular " |
|
"host/target port pair that is in use by another SPC. (In " |
|
"other words, an SPC and its associated logical units and " |
|
"ports together correspond to the logical unit inventory " |
|
"provided by SCSI REPORT LUNS and INQUIRY commands) \n" |
|
"- each LogicalDevice associated to an SPC MUST have a " |
|
"unique ProtocolControllerForUnit DeviceNumber (logical " |
|
"unit number) \n" |
|
"The instrumentation MUST report an error if the client " |
|
"request would violate one of these rules. \n" |
|
"\n" |
|
"If the instrumentation provides " |
|
"PrivilegeManagementService, the results of setting " |
|
"DeviceAccesses MUST be synchronized with " |
|
"PrivilegeManagementService as described in the " |
|
"ProtocolControllerForUnit DeviceAccess description." ), |
|
ValueMap { "0", "1", "2", "3", "4", "5", "6..4095", "4096", |
|
"4097", "4098", "4099", "4100", "4101", "4102", "4103", |
|
"4104..32767", "32768..65535" }, |
|
Values { "Success", "Not Supported", "Unspecified Error", |
|
"Timeout", "Failed", "Invalid Parameter", "DMTF Reserved", |
|
"Method Parameters Checked - Job Started", |
|
"Invalid logical unit ID", "Invalid initiator port ID", |
|
"Invalid target port ID", "Invalid permission", |
|
"Target/initiator combination already exposed", |
|
"Requested logical unit number in use", |
|
"Maximum Map Count Exceeded", "Method Reserved", |
|
"Vendor Specific" }] |
|
uint32 ExposePaths( |
|
[IN ( false ), OUT, Description ( |
|
"Reference to the job if \'Method Parameters " |
|
"Checked - Job Started\' is returned (MAY be null " |
|
"if job completed)." )] |
|
CIM_ConcreteJob REF Job, |
|
[Required, IN, Description ( |
|
"An array of IDs of logical unit instances. The LU " |
|
"instances MUST already exist. The members of this " |
|
"array MUST match the Name property of " |
|
"LogicalDevice instances that represent SCSI " |
|
"logical units. See the method description for " |
|
"conditions where this MAY be null." ), |
|
ArrayType ( "Indexed" ), |
|
ModelCorrespondence { "CIM_LogicalDevice.Name", |
|
"CIM_ControllerConfigurationService.ExposePaths.DeviceNumbers", |
|
"CIM_ControllerConfigurationService.ExposePaths.DeviceAccesses" }] |
|
string LUNames[], |
|
[IN, Description ( |
|
"IDs of initiator ports. If existing " |
|
"StorageHardwareID instances exist, they MUST be " |
|
"used. If no StorageHardwareID instance matches, " |
|
"then one is implicitly created. See the method " |
|
"description for conditions where this MAY be null." ), |
|
ModelCorrespondence { "CIM_StorageHardwareID.StorageID" }] |
|
string InitiatorPortIDs[], |
|
[IN, Description ( |
|
"IDs of target ports. See the method description " |
|
"for conditions where this MAY be null." ), |
|
ModelCorrespondence { "CIM_SCSIProtocolEndpoint.Name" }] |
|
string TargetPortIDs[], |
|
[IN, Description ( |
|
"A list of logical unit numbers to assign to the " |
|
"corresponding logical unit in the LUNames " |
|
"parameter. (within the context of the elements " |
|
"specified in the other parameters). If the LUNames " |
|
"parameter is null, then this parameter MUST be " |
|
"null. Otherwise, if this parameter is null, all LU " |
|
"numbers are assigned by the hardware or " |
|
"instrumentation." ), |
|
ArrayType ( "Indexed" ), |
|
ModelCorrespondence { |
|
"CIM_ProtocolControllerForUnit.DeviceNumberCIM_ControllerConfigurationService.ExposePaths.LUNames", |
|
"CIM_ControllerConfigurationService.ExposePaths.DeviceAccesses" }] |
|
string DeviceNumbers[], |
|
[IN, Description ( |
|
"A list of permissions to assign to the " |
|
"corresponding logical unit in the LUNames " |
|
"parameter. This specifies the permission to assign " |
|
"within the context of the elements specified in " |
|
"the other parameters. Setting this to \'No Access\' " |
|
"assigns the DeviceNumber for the associated " |
|
"initiators, but does not grant read or write " |
|
"access. If the LUNames parameter is not null then " |
|
"this parameter MUST be specified." ), |
|
ValueMap { "0", "2", "3", "4", "5..15999", "16000.." }, |
|
Values { "Unknown", "Read Write", "Read-Only", |
|
"No Access", "DMTF Reserved", "Vendor Reserved" }, |
|
ArrayType ( "Indexed" ), |
|
ModelCorrespondence { |
|
"CIM_ProtocolControllerForUnit.DeviceAccessCIM_ControllerConfigurationService.ExposePaths.DeviceNumbers", |
|
"CIM_ControllerConfigurationService.ExposePaths.LUNames" }] |
|
uint16 DeviceAccesses[], |
|
[IN, OUT, Description ( |
|
"An array of references to SCSIProtocolControllers " |
|
"(SPCs). On input, this can be null, or contain " |
|
"exactly one element; there MAY be multiple " |
|
"references on output. If null on input, the " |
|
"instrumentation will create one or more new SPC " |
|
"instances. If an SPC is specified, the " |
|
"instrumentation will attempt to add associations " |
|
"to one or more existing SPCs. If the first array " |
|
"element is a valid SPC reference and SCSI " |
|
"semantics can be preserved, the instrumentation " |
|
"MUST attach associations to the specified SPC. If " |
|
"multiple elements are non-null on input, the " |
|
"instrumentation MUST report an invalid parameter. " |
|
"On output, this is an array of references to SPCs " |
|
"created or modified as the result of processing " |
|
"the request." )] |
|
CIM_SCSIProtocolController REF ProtocolControllers[]); |
|
|
|
[Description ( |
|
"Hide a list of SCSI logical units (such as a RAID volume " |
|
"or tape drive) from a list of initiators and/or target " |
|
"ports on a SCSIProtocolController (SPC). \n" |
|
"\n" |
|
"The parameters for this method are: Job - null if no job " |
|
"created, otherwise this is a reference to the job. " |
|
"LUNames - the list of names of the logical units to use. " |
|
"InitiatorPortIDs - the names of the initiator ports to " |
|
"use. TargetPortIDs - the names of the target ports to " |
|
"use. ProtocolControllers - SPCs involved in this " |
|
"operation. \n" |
|
"\n" |
|
"When hiding logical units, there are three specific use " |
|
"cases identified. The instrumentation MUST support these " |
|
"use cases. Other permutations are allowed, but are " |
|
"vendor-specific. The use cases are: Remove LUs from a " |
|
"view, Remove initiator IDs from a view, and Remove " |
|
"target port IDs from a view. Remove LUs from a view " |
|
"requires that the LUNames parameter not be null and that " |
|
"the InitiatorIDs and TargetPortIDs parameters be null. " |
|
"Remove initiator IDs from a view requires that the " |
|
"LUNames parameter be null, that the InitiatorIDs not be " |
|
"null, and that the TargetPortIDs parameters be null. " |
|
"Remove target port IDs from a view requires that the " |
|
"LUNames and InitiatorPortIDs parameters be null. \n" |
|
"\n" |
|
"The disposition of the SPC when the last logical unit, " |
|
"initiator ID, or target port ID is removed depends upon " |
|
"the CIM_ProtocolControllerMaskingCapabilites " |
|
"SPCAllowsNo* properties. If SPCAllowsNoLUs is false, " |
|
"then the SPC is automatically deleted when the last " |
|
"logical unit is removed. If SPCAllowsNoTargets is false, " |
|
"then the SPC is automatically deleted when the last " |
|
"target port ID is removed. If SPCAllowsNoInitiators is " |
|
"false, then the SPC is automatically deleted when the " |
|
"last initiator port ID is removed. In all other cases, " |
|
"the SPC MUST be explicitly deleted via the " |
|
"DeleteInstance intrinsic function." ), |
|
ValueMap { "0", "1", "2", "3", "4", "5", "6..4095", "4096", |
|
"4097", "4098", "4099", "4100", "4101..32767", |
|
"32768..65535" }, |
|
Values { "Success", "Not Supported", "Unspecified Error", |
|
"Timeout", "Failed", "Invalid Parameter", "DMTF Reserved", |
|
"Method Parameters Checked - Job Started", |
|
"Invalid logical unit ID", "Invalid initiator port ID", |
|
"Invalid target port ID", |
|
"Target/initiator combination not exposed", |
|
"Method Reserved", "Vendor Specific" }] |
|
uint32 HidePaths( |
|
[IN ( false ), OUT, Description ( |
|
"Reference to the job if \'Method Parameters " |
|
"Checked - Job Started\' is returned (MAY be null " |
|
"if job completed)." )] |
|
CIM_ConcreteJob REF Job, |
|
[Required, IN, Description ( |
|
"A list of IDs of logical units. Each LU instance " |
|
"MUST already exist. See the method description for " |
|
"conditions where this MAY be null." ), |
|
ModelCorrespondence { "CIM_LogicalDevice.Name" }] |
|
string LUNames[], |
|
[IN, Description ( |
|
"IDs of initiator ports. See the method description " |
|
"for conditions where this MAY be null." ), |
|
ModelCorrespondence { "CIM_StorageHardwareID.StorageID" }] |
|
string InitiatorPortIDs[], |
|
[IN, Description ( |
|
"IDs of target ports. See the method description " |
|
"for conditions where this MAY be null." ), |
|
ModelCorrespondence { "CIM_SCSIProtocolEndpoint.Name" }] |
|
string TargetPortIDs[], |
|
[IN, OUT, Description ( |
|
"An array of references to SCSIProtocolControllers " |
|
"(SPCs). On input, this MUST contain exactly one " |
|
"element; there MAY be multiple references on " |
|
"output. The instrumentation will attempt to remove " |
|
"associations (LUNames, InitiatorPortIDs, or " |
|
"TargetPortIDs) from this SPC. Depending upon the " |
|
"specific implementation, the instrumentation MAY " |
|
"need to create new SPCs with a subset of the " |
|
"remaining associations. On output, this is an " |
|
"array of references to SPCs created or modified as " |
|
"the result of processing the request." )] |
|
CIM_SCSIProtocolController REF ProtocolControllers[]); |
|
|
|
}; |