IProfile

Represents a profile that the client controls. The interface provides functions that loads a profile, in XML format, either from a file or from a string. The client can determine whether the user is allowed to update to the profile by adding or removing Event Tracing for Windows (ETW) providers.

Syntax

{
  typedef enum
  {
    LoggingMode_Unknown,
    LoggingMode_Memory,
    LoggingMode_File,
  }
  CLoggingMode;
  typedef enum
  {
    DetailLevel_Unknown,
    DetailLevel_Light,
    DetailLevel_Verbose,
  }
  CDetailLevel;
  [propget, id(1), helpstring("IsMutable")] HRESULT IsMutable
    ([out, retval] VARIANT_BOOL* pfMutable);
  [propput, id(1), helpstring("IsMutable")] HRESULT IsMutable
    ([in] VARIANT_BOOL fMutable);  [propget, id(2), helpstring("Version")] HRESULT Version
    ([out, retval] float* pVersion);
  [propget, id(3), helpstring("Author")] HRESULT Author
    ([out, retval] BSTR* pbstrAuthor);
  [propget, id(4), helpstring("Team")] HRESULT Team
    ([out, retval] BSTR* pbstrTeam);
  [propget, id(5), helpstring("Comments")] HRESULT Comments
    ([out, retval] BSTR* pbstrComments);
  [propget, id(6), helpstring("Company")] HRESULT Company
    ([out, retval] BSTR* pbstrCompany);
  [propget, id(7), helpstring("Copyright")] HRESULT Copyright
    ([out, retval] BSTR* pbstrCopyright);
  [propget, id(8), helpstring("Tag")] HRESULT Tag
    ([out, retval] BSTR* pbstrTag);
  [propget, id(9), helpstring("Id")] HRESULT Id
    ([out, retval] BSTR* pbstrId);
  [propget, id(10), helpstring("Name")] HRESULT Name
    ([out, retval] BSTR* pbstrName);
  [propget, id(11), helpstring("Description")] HRESULT Description
    ([out, retval] BSTR* pbstrDescription);
  [propget, id(12), helpstring("LoggingMode")] HRESULT LoggingMode
    ([out, retval] CLoggingMode* pLoggingMode);
  [propget, id(13), helpstring("LoggingModeString")] HRESULT LoggingModeString
    ([out, retval] BSTR* pbstrLoggingMode);
  [propget, id(14), helpstring("DetailLevel")] HRESULT DetailLevel
    ([out, retval] CDetailLevel* pDetailLevel);
  [propget, id(15), helpstring("DetailLevelString")] HRESULT DetailLevelString
    ([out, retval] BSTR* pbstrDetailLevel);
  [propget, id(16), helpstring("IsStrict")] HRESULT IsStrict
    ([out, retval] VARIANT_BOOL* pfStrict);
  [propget, id(17), helpstring("IsDefault")] HRESULT IsDefault
    ([out, retval] VARIANT_BOOL* pfDefault);
  [propget, id(18), helpstring("ProblemCategories")] HRESULT ProblemCategories
    ([out, retval] BSTR* pbstrProblemCategories);
  [id(19), helpstring("LoadFromFile")] HRESULT LoadFromFile
    ([in] BSTR bstrProfileName,
    [in] BSTR bstrFileName);
  [id(20), helpstring("LoadFromString")] HRESULT LoadFromString
    ([in] BSTR bstrProfile);
  [id(21), helpstring("IsEqual")] HRESULT IsEqual
    ([in] IProfile* pProfile);};

Functions

The following table describes the functions that this interface provides.

Function Description

propget

Returns the value of the specified property.

propput

Sets the specified property.

LoadFromFile

Loads a profile from the specified file.

LoadFromString

Loads a profile from the specified XML profile definition string.

IsEqual

Compares two IProfile objects.

Properties

This interface provides the properties described in the following table.

Property Parameters Description

IsMutable

pfMutable

[out] Returns a Boolean value that indicates that sessions and providers can be added to an existing profile when profiles of the same name are combined with the IProfileCollection::Add method. S_OK indicates success.

IsMutable

fMutable

[in] A Boolean value that indicates whether sessions and providers can be added to the profiles. S_OK indicates success.

Version

pVersion

[out] Indicates the version of the profiles.

Author

pbstrAuthor

[out] Indicates the author of the profiles.

Team

pbstrTeam

[out] Indicates the team that created the profiles.

Comments

pbstrComments

[out] Optional comments about the profiles.

Company

pbstrCompany

[out] Indicates the company that created the profiles.

Copyright

pbstrCopyright

[out] Indicates copyright information related to the profiles.

Tag

pbstrTag

[out] Optional tagged value that can be used to differentiate between profiles.

Id

pbstrId

[out] Indicates the identifier of the profile.

Name

pbstrName

[out] Indicates the name of the profile.

Description

pbstrDescription

[out] Indicates the description of the profile.

LoggingMode

pLoggingMode

[out] Indicates the logging mode.

LoggingModeString

pbstrLoggingMode

[out] Indicates the logging mode string. Possible values are "memory" and "file".

DetailLevel

pDetailLevel

[out] Indicates the detail level.

DetailLevelString

pbstrDetailLevel

[out] Indicates the detail level string. Possible values are "verbose" and "light".

IsStrict

pfStrict

[out] A Boolean that indicates whether the recording rolls back if any collector or provider fails to start.

IsDefault

pfDefault

[out] A Boolean that indicates whether this is a default profile.

ProblemCategories

pbstrProblemCategories

[out] Indicates the issues that this profile is designed to detect.

Interfaces