CreateProtocolControllerWithPorts method of the CIM_ControllerConfigurationService class

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.

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.

Syntax

uint32 CreateProtocolControllerWithPorts(
  [in]  string                     ElementName,
  [in]  string                     Ports[],
  [in]  uint16                     Protocol,
  [in]  CIM_Privilege          REF Privilege,
  [in]  CIM_ManagedElement     REF Identity,
  [out] CIM_ProtocolController REF ProtocolController
);

Parameters

ElementName [in]

The string to be used in the ElementName of the new ProtocolController.

Ports [in]

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 [in]

The protocol type for the new ProtocolController.

Unknown (0)

Other (1)

SCSI (2)

Privilege [in]

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.

Identity [in]

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.

ProtocolController [out]

A reference to the new ProtocolController that is created.

Return value

Success (0)

Not Supported (1)

Unspecified Error (2)

Timeout (3)

Failed (4)

Invalid Parameter (5)

DMTF Reserved (6 4095)

ID Parameter Missing or Not Unique (4096)

Hardware Implementation Requires Null Ports Parameter (4097)

Busy (4098)

Method Reserved (4099 32767)

Vendor Specific (32768 65535)

Requirements

Minimum supported client
None supported
Minimum supported server
Windows Server 2012 R2
Namespace
Root\CIMv2\Storage\iScsiTarget
MOF
SmIscsiTarget.mof
DLL
SMiSCSITargetProv.dll

See also

CIM_ControllerConfigurationService