On return from the DmiGetRowReq call, the confirm buffer contains a DmiGetRowCnf block, followed by one or more DmiGetAttributeCnf blocks.
The format for the command block is: ┌──────────────────────────────────────────────────────────────────────────────┐
Variable Name
│ Table 40. DmiGetRowCnf Command Block │
├───────────────┬───────────────┬───────────────┬──────────────────────────────┤
│ OFFSET │ SIZE │ TYPE │ VARIABLE NAME │
├───────────────┼───────────────┼───────────────┼──────────────────────────────┤
│ 0 │ 4 │ INT │ iGroupId │
├───────────────┼───────────────┼───────────────┼──────────────────────────────┤
│ 4 │ 4 │ INT │ iGroupKeyCount │
├───────────────┼───────────────┼───────────────┼──────────────────────────────┤
│ 8 │ 4 │ OFFSET │ oGroupKeyList │
├───────────────┼───────────────┼───────────────┼──────────────────────────────┤
│ 12 │ 4 │ INT │ iAttributeCount │
├───────────────┼───────────────┼───────────────┼──────────────────────────────┤
│ 16 │ 12 │ STRUCT │ DmiGetAttributeCnf[] │
└───────────────┴───────────────┴───────────────┴──────────────────────────────┘
iGroupId
Variable Description
In the case where the size of a group exceeds the size of the calling application's confirm buffer, the calling application receives a status of 1, indicating that the command was successful but that there is more of the group to be retrieved. In this case, the command can be re-issued to retrieve the rest of the group. To do this, the calling application sets the iAttributeId field to the value of the last attribute returned in the previous Get Row command. The component instrumentation then returns the attribute values that follow this attribute.
Processing DmiGetRowCnf for DmiGetFirstRowCmd and DmiGetNextRowCmd displays
an example of how to handle the DmiGetRowCnf callback command block in response
to the DmiGetFirstRowCmd and DmiGetNextRowCmd commands. For this example,
all callbacks that are returned to the management application are processed
through a single entry point. ProcessingDmiGetRowCnfforDmiGetFirstRowCmdandDmiGetNextRowCmd
case DmiGetFirstRowCmd: // response to the query row information case DmiGetNextRowCmd: if(miCommand->iStatus == SLERR_NO_ERROR){ // we've got a good return here RowConfirm = (DMI_GetRowCnf_t *)miCommand->pCnfBuf; // Do whatever your application needs to do here } break;