3.2.4.10 IApiTracingDataCollector

The IApiTraceDataCollector interface is used to specify the executables whose API calls are to be logged.

The following properties MUST be implemented by the objects that implement the IApiTracing DataCollector interface.

Property

Read/write

Description

ExcludeApis

RW

List of APIs to exclude from the log.

ExePath

RW

Specifies the full path to the executable whose API calls are to be logged.

IncludeApis

RW

List of APIs to include in the trace. All calls to these APIs that are made in the specified executable are logged, even if the modules in which the APIs are defined are not included.

IncludeModules

RW

List of modules to include in the trace. All calls to functions defined in these modules that are made in the specified executable are logged.

LogApiNamesOnly

RW

Specifies whether PLA MUST log only the API name or the arguments and return a value as well.

LogApisRecursively

RW

Specifies whether PLA MUST log only calls that are imported directly by the application or all calls to the specified APIs.

LogFilePath

RW

Specifies the name of the file where data MUST be logged to.

A data collector can be represented as an XML file, which can be used to serialize (using Xml (Get) 3.2.4.5.21) and deserialize (using SetXml 3.2.4.5.22) it. The format of the XML that defines a data collector is as follows (note that the full XML specification of the data collector set is in section 3.2.4.19):

 <ApiTracingDataCollector>
   <!-- elements for DataCollectorType -->
     <LogApiNamesOnly/>  
     <ExePath/> 
     <LogFilePath/> 
     <IncludeModule/>  
     <IncludeApis/> 
     <ExcludeApis/>
 </ApiTracingDataCollector> 
  
  

This does not show the property elements inherited from IDataCollector that also need to be specified.

Methods in RPC Opnum Order

Method

Description

LogApiNamesOnly (Get)

Retrieves the LogApiNamesOnly property.

Opnum: 32

LogApiNamesOnly (Put)

Sets the LogApiNamesOnly property.

Opnum: 33

LogApisRecursively (Get)

Retrieves the LogApisRecursively property.

Opnum: 34

LogApisRecursively (Put)

Sets the LogApisRecursively property.

Opnum: 35

ExePath (Get)

Retrieves the ExePath property.

Opnum: 36

ExePath (Put)

Sets the ExePath property.

Opnum: 37

LogFilePath (Get)

Retrieves the LogFilePath property.

Opnum: 38

LogFilePath (Put)

Sets the LogFilePath property.

Opnum: 39

IncludeModules (Get)

Retrieves the IncludeModules property.

Opnum: 40

IncludeModules (Put)

Sets the IncludeModules property.

Opnum: 41

IncludeApis (Get)

Retrieves the IncludeApis property.

Opnum: 42

IncludeApis (Put)

Sets the IncludeApis property.

Opnum: 43

ExcludeApis (Get)

Retrieves the ExcludeApis property.

Opnum: 44

ExcludeApis (Put)

Sets the ExcludeApis property.

Opnum: 45

Opnums 0, 1, and 2 are reserved for the IUnknown interface. Opnums 3, 4, 5, and 6 are reserved for the IDispatch interface. Opnums 7–31 are used by IDataCollector.