Instrumentation code, whether for an overlay program or a direct-interface program, must be designed to process the following DMI commands:
These commands are all accessed through the DmiCiInvoke function call, which is sent from the service layer. In addition to these commands, the instrumentation code must also issue the pConfirmFunc function call for every command, including set commands and commands that generate errors.
For the DmiGetFirstRowCmd and DmiGetNextRowCmd commands, the DmiGetRowCnf structure is generated by the service layer before it issues the DmiCiInvoke function call. The GroupKeyData structures are also allocated, and the oGroupKeyList variable in the DmiGetRowCnf structure is supplied. Your instrumentation code can only modify the confirm buffer and not the DmiInvoke command buffer.
For a complete description of the commands and structures used by the DMI, read DMI Command Blocks
The SystemView Agent program also includes the DMI procedures library (DMIAPI) to simplify the writing of instrumentation code. By using the procedures provided by the DMI API and by patterning your code after the sample programs included in the SystemView Agent, many considerations regarding function calls and DMI commands are resolved for you. For a detailed explanation of the DMI procedures library, read DMI Procedure Library (DMIAPI).