The following List Group commands use the DmiListGroupReq command block:
All three List Group commands use the DmiListGroupReq block: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿³Table27
.DmiListGroupReqCommandBlock ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ OFFSET ³ SIZE ³ TYPE ³ VARIABLE NAME ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ 0 ³ 64 ³ STRUCT ³ DmiMgmtCommand ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ 64 ³ 4 ³ INT ³ iComponentId ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ :68 ³ 4 ³ INT ³ iGroupId ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Variable Name
DmiListGroupCmd
Issuing DmiListGroupReq displays an example of how to issue the DmiListGroupReq
command to the MI. IssuingDmiListGroupReq
ULONG IssueListGroup(ULONG ComponentID,ULONG GroupID,SHORT ListType) { DMI_ListGroupReq_t *ListGroup; ULONG RC; ListGroup = (DMI_ListGroupReq_t *)malloc(sizeof(DMI_ListGroupReq_t)); memset((void *)ListGroup,0,sizeof(DMI_ListGroupReq_t)); ListGroup->DmiMgmtCommand.iLevelCheck = DMI_LEVEL_CHECK; ListGroup->DmiMgmtCommand.iMgmtHandle = YOUR_MGMT_HANDLE; // set the app handle ListGroup->DmiMgmtCommand.iCmdHandle = YOUR_COMMAND_HANDLE; // set the command Handle ListGroup->DmiMgmtCommand.iCnfBufLen = 8000UL; // set the size of the response buffer ListGroup->DmiMgmtCommand.pCnfBuf = (void *)malloc(8000UL); // set up the response buffer ListGroup->DmiMgmtCommand.iRequestCount = 1; ListGroup->DmiMgmtCommand.iCmdLen = sizeof(DMI_ListGroupReq_t); ListGroup->iComponentId = ComponentID; // set to the currently selected component ListGroup->iGroupId = GroupID; switch(ListType){ case 1: ListComp->DmiMgmtCommand.iCommand = DmiListFirstGroupCmd; // set the command break; case 0: ListComp->DmiMgmtCommand.iCommand = DmiListNextGroupCmd; // look for the next one in the list break; case 10: ListComp->DmiMgmtCommand.iCommand = DmiListGroupCmd; // list just this one break; } if((RC = DmiInvoke((DMI_MgmtCommand_t *)ListComp)) != SLERR_NO_ERROR){ // call the SL and register free(ListComp->DmiMgmtCommand.pCnfBuf); // free up the confirm buffer free(ListComp); // free the command block } return RC; }