dciOpen loads the appropriate libraries and/or the Performance Server for the metrics chosen.

dciOpen instructs the Performance Services to perform an access check for every metric in the metricIdList.

Note: If successful for at least one metric, a handle is returned which can be used in subsequent operations to access all or some of the metrics in the metricIdList.

Implementations may perform access checks only at the time of the dciOpen call. The handle is valid only within the task that the dciOpen is issued in. The Performance Services sets up a notify with the name space so that registration changes to the requested metrics are registered with the Performance Services for each task's open sessions for non-volatile metrics. The appropriate change notification is then given to the consumer at the time of dciGetData, dciListClassId, dciListInstanceId, dciGetClassAttr, and dciGetInstanceAttr for the non-volatile metric(s) involved.

Handleflags are not supported for Release 1.

dciOpen performs an existence check for every class and instance in the metricIdList and writes status into the given output buffer using the standard DCI return structure. Only the status and metricOffset fields of the DCIRetval reply are used in the return structure. The dataOffset in DCIRetval is set to zero since it is unused. For each expanded metric identifier a DCIRetval reply is created in the DCIReturn structure stored in the return buffer pointed to by bufferaddress. The metricOffset member of each DCIRetval specifies a location relative to buffer address and references the expanded DCIMetricId structure.

The summary status of all individual DCIRetval structure status members is stored in the status member of the DCIReturn structure. This summary status represents the highest severity of status returned among all DCIRetval structures.