On return from the DmiListGroupReq call, the confirm buffer contains an array of one or more DmiListGroupCnf blocks. iCnfCount in the DmiMgmtCommand block is set to the number of DmiListGroupCnf blocks returned from this call. iStatus indicates whether there was too much data than would fit in the confirm buffer. In this case, the service layer updates iGroupId in the command buffer so the management application can re-issue the command to continue getting data from where it left off.
The format of the DmiListGroupCnf block is: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Variable Name
³ Table 28. DmiListGroupCnf Command Block ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ OFFSET ³ SIZE ³ TYPE ³ VARIABLE NAME ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ 0 ³ 4 ³ INT ³ iGroupId ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ 4 ³ 4 ³ OFFSET ³ osGroupName ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ 8 ³ 4 ³ OFFSET ³ osClassString ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ 12 ³ 4 ³ INT ³ iGroupKeyCount ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ 16 ³ 4 ³ OFFSET ³ oGroupKeyList ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
iGroupId
Variable Description
Processing DmiListComponentCnf, DmiListGroupCnf, and DmiListAttributeCnf displays an example of how to handle the DmiListGroupCnf callback command block.
Processing DmiListGroupCnf for DmiListFirstGroupCmd and DmiListNextGroupCmd
displays an example of how to handle the DmiListGroupCnf callback command
block in response to the DmiListFirstGroupCmd and DmiListNextGroupCmd commands.
For this example, all callbacks that are returned to the management application
are processed through a single entry point. ProcessingDmiListGroupCnfforDmiListFirstGroupCmdandDmiListNextGroupCmd
case DmiListFirstGroupCmd: case DmiListNextGroupCmd: if(!miCommand->iStatus || (miCommand->iStatus == SLERR_NO_ERROR_MORE_DATA)){ // we found a component: // display it and look for the next one GroupBuf = (DMI_ListGroupCnf_t *)miCommand->pCnfBuf; for(Count = 0;Count != miCommand->iCnfCount;Count++,GroupBuf++){ Work = (DMI_STRING *)((char *)miCommand->pCnfBuf + Gr oupBuf->osGroupName); // get to // component // name // Do whatever your application needs to do here if(AddInfo->KeyCount){ // there is a table here // there is a table here, you may want to get that information } } if(miCommand->iStatus == SLERR_NO_ERROR_MORE_DATA) // we need to do a getnext attr here IssueListGroup(AddInfo->Component,LastAttr,0,miCommand->iCmdHandle); // load up the groups // for this component } break;