Component instrumentation code can register with the service layer. Registration is desirable when the component instrumentation code is already running, such as management code associated with a running device driver. Registering management entry points within the running code is called registering the direct interface. The direct interface is also useful when the time required to locate and load an executable file and set up and terminate a process would be excessive.
Component instrumentation that has registered a direct interface causes the service layer to override its current access mechanism for the registered attributes. Instead of manipulating the data in the MIF database or invoking programs, the service layer calls the entry point provided in the registration call. When the component unregisters, the service layer returns to its usual method of processing requests for the data, as defined in the MIF file. In this way, component instrumentation can temporarily interrupt normal processing to perform some special function. Note that registering attributes through the direct interface overrides attributes that are already being served through the direct interface.
The DmiRegisterCiInd block can be used:
For a description of the DmiRegisterCiInd block issued when registering instrumentation, read DmiRegisterCiInd Command Block.
To unregister component instrumentation, the DmiUnregisterCiInd block is issued to the service layer. For a description of the DmiUnregisterCiInd block issued when unregistering instrumentation, read DmiUnregisterCiInd Command Block.