dciRemoveInstance removes a list of instances from the metrics name space. This routine takes as input a buffer with an array of DCIMetricId structures. dciRemoveInstance determines if each instanceid in the metricIdList is currently registered in the metrics name space, expands any instance wildcards in the metricOffset buffer, determines if each expanded instance is currently registerd in the metrics name space, and unregisters it from the name space. For each expanded metric instance a DCIRetval references the expanded DCIMetricId structure and the dataOffset member is set to zero and the data buffers are not used. If so configured, this will lead to a final data notification to all interested DCI consumers that have the instance open.
The return address *bufferAddress must be NULL The caller is then responsible for subsequently freeing the allocated memory using dciFree.
The datumId field of the DCIMetricId is ignored.
The instanceId for volatile instances is the wildcard value.
Upon return, dciRemoveInstance will produce a DCIReturn structure at the address pointed to by bufferAddress. Each DCIRetval structure within the DCIReturn structure reflects the status of each instance removed. The metricOffset member of each DCIRetval specifies a location relative to bufferaddress and references the DCIMetricId structure.
The summary status of all individual DCIRetval structure status members is stored in the DCIReturn structure status member. This summary status represents the highest severity of status returned among all DCIRetval structures.
The summary status may contain one of the following values:
DCI_SUCCESS
For each DCIRetval structure returned, the status member may contain one of the following values:
DCI_SUCCESS
The following figure shows the return structures for dciRemoveInstance.