MS iSCSI Target implementation of ControllerConfigurationService. The ControllerConfigurationService provides methods that allow a client to manipulate LUN Masking in a storage system.
{'Description':'The LogicalDevice instance to attach.'}
DeviceNumber
string
2
-
✓
{'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']}
{'Description':'The string to be used in the ElementName of the new ProtocolController.','ModelCorrespondence':['CIM_ProtocolController.ElementName']}
Ports
string
1
✓
-
{'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.'}
Protocol
uint16
2
✓
-
{'Description':'The protocol type for the new ProtocolController.','ModelCorrespondence':['CIM_SCSIProtocolController'],'ValueMap':['0', '1', '2'],'Values':['Unknown', 'Other', 'SCSI']}
{'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. 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']}
{'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. Note: if ProtocolControllerRequiresAuthorizedIdentity is true, then at least the Identity/Privilege pair MUST be specified.','ModelCorrespondence':['CIM_ControllerConfigurationService.CreateProtocolControllerWithPorts.Privilege']}
{'Description':'The ProtocolController to be deleted.'}
DeleteChildrenProtocolControllers
boolean
1
✓
-
{'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.'}
DeleteUnits
boolean
2
✓
-
{'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.'}
Description
'The method deletes an instance of ProtocolController and all associations in which this ProtocolController is referenced.'
{'Description':'Reference to the job if 'Method Parameters Checked - Job Started' is returned (MAY be null if job completed).'}
LUNames
string
1
✓
-
{'ArrayType':'Indexed','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.','ModelCorrespondence':['CIM_LogicalDevice.Name', 'CIM_ControllerConfigurationService.ExposePaths.DeviceNumbers', 'CIM_ControllerConfigurationService.ExposePaths.DeviceAccesses'],'Required':True}
TargetPortIDs
string
2
✓
-
{'Description':'IDs of target ports. See the method description for conditions where this MAY be null.','ModelCorrespondence':['CIM_SCSIProtocolEndpoint.Name']}
DeviceNumbers
string
3
✓
-
{'ArrayType':'Indexed','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.','ModelCorrespondence':['CIM_ProtocolControllerForUnit.DeviceNumberCIM_ControllerConfigurationService.ExposePaths.LUNames', 'CIM_ControllerConfigurationService.ExposePaths.DeviceAccesses']}
DeviceAccesses
uint16
4
✓
-
{'ArrayType':'Indexed','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 all initiators, but does not grant read or write access. If the LUNames parameter is not null then this parameter MUST be specified.','ModelCorrespondence':['CIM_ProtocolControllerForUnit.DeviceAccessCIM_ControllerConfigurationService.ExposePaths.DeviceNumbers', 'CIM_ControllerConfigurationService.ExposePaths.LUNames'],'ValueMap':['0', '2', '3', '4', '5..15999', '16000..'],'Values':['Unknown', 'Read Write', 'Read-Only', 'No Access', 'DMTF Reserved', 'Vendor Reserved']}
{'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.'}
{'Description':'Reference to the job if 'Method Parameters Checked - Job Started' is returned (MAY be null if job completed).'}
LUNames
string
1
✓
-
{'ArrayType':'Indexed','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.','ModelCorrespondence':['CIM_LogicalDevice.Name', 'CIM_ControllerConfigurationService.ExposePaths.DeviceNumbers', 'CIM_ControllerConfigurationService.ExposePaths.DeviceAccesses']}
InitiatorPortIDs
string
2
✓
-
{'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']}
TargetPortIDs
string
3
✓
-
{'Description':'IDs of target ports. See the method description for conditions where this MAY be null.','ModelCorrespondence':['CIM_SCSIProtocolEndpoint.Name']}
DeviceNumbers
string
4
✓
-
{'ArrayType':'Indexed','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.','ModelCorrespondence':['CIM_ProtocolControllerForUnit.DeviceNumberCIM_ControllerConfigurationService.ExposePaths.LUNames', 'CIM_ControllerConfigurationService.ExposePaths.DeviceAccesses']}
DeviceAccesses
uint16
5
✓
-
{'ArrayType':'Indexed','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.','ModelCorrespondence':['CIM_ProtocolControllerForUnit.DeviceAccessCIM_ControllerConfigurationService.ExposePaths.DeviceNumbers', 'CIM_ControllerConfigurationService.ExposePaths.LUNames'],'ValueMap':['0', '2', '3', '4', '5..15999', '16000..'],'Values':['Unknown', 'Read Write', 'Read-Only', 'No Access', 'DMTF Reserved', 'Vendor Reserved']}
{'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.'}
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).
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.
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.
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.
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.
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
The relevant rules of SCSI semantics are: - 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) - each LogicalDevice associated to an SPC MUST have a unique ProtocolControllerForUnit DeviceNumber (logical unit number) The instrumentation MUST report an error if the client request would violate one of these rules.
If the instrumentation provides PrivilegeManagementService, the results of setting DeviceAccesses MUST be synchronized with PrivilegeManagementService as described in the ProtocolControllerForUnit DeviceAccess description.'
{'Description':'Reference to the job if 'Method Parameters Checked - Job Started' is returned (MAY be null if job completed).'}
LUNames
string
1
✓
-
{'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'],'Required':True}
TargetPortIDs
string
2
✓
-
{'Description':'IDs of target ports. See the method description for conditions where this MAY be null.','ModelCorrespondence':['CIM_SCSIProtocolEndpoint.Name']}
{'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 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.'}
{'Description':'Reference to the job if 'Method Parameters Checked - Job Started' is returned (MAY be null if job completed).'}
LUNames
string
1
✓
-
{'Description':'An array of IDs of logical units. The LU instances MUST already exist. The members of this array MUST match the Name property of LogicalDevice instances. See the method description for conditions where this MAY be null.','ModelCorrespondence':['CIM_LogicalDevice.Name']}
InitiatorPortIDs
string
2
✓
-
{'Description':'IDs of initiator ports. See the method description for conditions where this MAY be null.','ModelCorrespondence':['CIM_StorageHardwareID.StorageID']}
TargetPortIDs
string
3
✓
-
{'Description':'IDs of target ports. See the method description for conditions where this MAY be null.','ModelCorrespondence':['CIM_SCSIProtocolEndpoint.Name']}
{'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.'}
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).
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.
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.
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.'
{'Description':'The state requested for the element. This information will be placed into the RequestedState property of the instance if the return code of the RequestStateChange method is 0 ('Completed with No Error'), 3 ('Timeout'), or 4096 (0x1000) ('Job Started'). Refer to the description of the EnabledState and RequestedState properties for the detailed explanations of the RequestedState values.','ModelCorrespondence':['CIM_EnabledLogicalElement.RequestedState'],'ValueMap':['2', '3', '4', '6', '7', '8', '9', '10', '11', '..', '32768..65535'],'Values':['Enabled', 'Disabled', 'Shut Down', 'Offline', 'Test', 'Defer', 'Quiesce', 'Reboot', 'Reset', 'DMTF Reserved', 'Vendor Reserved']}
{'Description':'Reference to the job (can be null if the task is completed).'}
TimeoutPeriod
datetime
2
✓
-
{'Description':'A timeout period that specifies the maximum amount of time that the client expects the transition to the new state to take. The interval format must be used to specify the TimeoutPeriod. A value of 0 or a null parameter indicates that the client has no time requirements for the transition. If this property does not contain 0 or null and the implementation does not support this parameter, a return code of 'Use Of Timeout Parameter Not Supported' must be returned.'}
'MS iSCSI Target implementation of ControllerConfigurationService. The ControllerConfigurationService provides methods that allow a client to manipulate LUN Masking in a storage system.'
✗
✗
✓
✗
✓
dynamic
True
✓
✗
✓
✗
✓
provider
'MSiSCSITargetProv'
✗
✗
✓
✗
✓
Version
'1.0.0'
✗
✗
✓
✗
✓
MSISCSITARGET_ControllerConfigurationService System properties