167 lines
8.0 KiB
Plaintext

// Copyright (c) 2007-2010, Intel Corporation. All rights reserved.
[Version ( "6.0.0" ),
Description ( "Extends MessageLog with multiple record fetching" )]
class AMT_MessageLog : CIM_MessageLog {
[Description ( "Retrieves multiple records from event log" ),
ValueMap { "0", "1", "2", "3" },
Values { "Completed with No Error", "Not Supported",
"Invalid record pointed", "No record exists in log" }]
uint32 GetRecords(
[Required, IN, OUT]
string IterationIdentifier,
[Required, IN, Description (
"Maximum number of records to read" )]
uint32 MaxReadRecords,
[OUT, Description (
"Indicates that there are no more records to read" )]
boolean NoMoreRecords,
[OUT, Description ( "Array of records encoded as Base64" ),
EOBase64]
string RecordArray[]);
[Override ( "GetRecord" ),
Description (
"Requests that the record indicated by the "
"IterationIdentifier be retrieved from the MessageLog. "
"After retrieval, the IterationIdentifier may be advanced "
"to the next record by setting the PositionToNext input "
"parameter to TRUE. Two output parameters are defined for "
"the method - RecordData which holds the contents of the "
"Log entry (as an array of bytes that can be recast to an "
"appropriate format), and RecordNumber which returns the "
"current record number addressed via the Iteration "
"Identifier. The RecordNumber parameter is only "
"defined/valid when the Capabilities array indicates that "
"ordinal record number addressing is supported (a value "
"of 7). \n"
"\n"
"IterationIdentifier is defined as an Input/Output method "
"parameter to allow the Log to embed state information in "
"the Identifier and potentially let the identifier be "
"maintained by the using application." ),
ValueMap { "0", "1", "2", "3" },
Values { "Completed with No Error", "Not Supported",
"Invalid record pointed", "No record exists in log" }]
uint32 GetRecord(
[Required, IN, OUT, Description (
"An identifier for the iterator." )]
string IterationIdentifier,
[IN, Description (
"Boolean indicating that the Iteration Identifier "
"should be advanced to the next record, after "
"retrieving the current Log entry." )]
boolean PositionToNext,
[Required, IN ( false ), OUT, Description (
"The record number." )]
uint64 RecordNumber,
[IN ( false ), OUT, Description ( "The record data." )]
uint8 RecordData[]);
[Override ( "PositionAtRecord" ),
Description (
"Requests that the Log\'s iteration identifier be "
"advanced or retreated a specific number of records, or "
"set to the entry at a specified numeric location. These "
"two different behaviors are accomplished using the input "
"parameters of the method. Advancing or retreating is "
"achieved by setting the MoveAbsolute boolean to FALSE, "
"and then specifying the number of entries to advance or "
"retreat as positive or negative values in the "
"RecordNumber parameter. Moving to a specific record "
"number is accomplished by setting the MoveAbsolute input "
"parameter to TRUE, and then placing the record number "
"into the RecordNumber parameter. This can only be done "
"if the Capabilities array includes a value of 7, "
"\"Supports Addressing by Ordinal Record Number\". \n"
"\n"
"After the method completes and if ordinal record numbers "
"are supported (the Capabilities array includes a 7), the "
"current record number is returned in the RecordNumber "
"output parameter. Otherwise, the value of the parameter "
"is undefined. \n"
"\n"
"IterationIdentifier is defined as an Input/Output method "
"parameter to allow the Log to embed state information in "
"the Identifier and potentially let the identifier be "
"maintained by the using application. \n"
"\n"
"Note: In a subclass, the set of possible return codes "
"could be described using a ValueMap qualifier on the "
"method. The strings to which the ValueMap contents are "
"\'translated\' may also be specified in the subclass as "
"a Values array qualifier." ),
ValueMap { "0", "1", "2" },
Values { "Completed with No Error", "Not Supported",
"Invalid record pointed" }]
uint32 PositionAtRecord(
[Required, IN, OUT, Description (
"An identifier for the iterator." )]
string IterationIdentifier,
[Required, IN, Description (
"Advancing or retreating the IterationIdentifier is "
"achieved by setting the MoveAbsolute boolean to "
"FALSE, and specifying the number of entries to "
"advance or retreat as positive or negative values "
"in the RecordNumber parameter. Moving to a "
"specific record number is accomplished by setting "
"the MoveAbsolute parameter to TRUE, and placing "
"the record number into the RecordNumber parameter." )]
boolean MoveAbsolute,
[Required, IN, OUT, Description (
"The relative or absolute record number." )]
sint64 RecordNumber);
[Override ( "PositionToFirstRecord" ),
Description (
"Requests that an iteration of the MessageLog be "
"established and that the iterator be set to the first "
"entry in the Log. An identifier for the iterator is "
"returned as an output parameter of the method. \n"
"\n"
"Regarding iteration, you have 2 choices: 1) Embed "
"iteration data in the method call, and allow "
"implementations to track/ store this data manually; or, "
"2) Iterate using a separate object (for example, class "
"ActiveIterator) as an iteration agent. The first "
"approach is used here for interoperability. The second "
"requires an instance of the Iterator object for EACH "
"iteration in progress. 2\'s functionality could be "
"implemented underneath 1." ),
ValueMap { "0", "1", "2" },
Values { "Completed with No Error", "Not Supported",
"No record exists" }]
uint32 PositionToFirstRecord(
[IN ( false ), OUT, Description (
"An identifier for the iterator." )]
string IterationIdentifier);
[Override ( "FreezeLog" ),
Description (
"Requests that the MessageLog be placed in a frozen state "
"(\"Freeze\" input parameter = TRUE) or \'unfrozen\' (= "
"FALSE). If frozen, modifications to the Log will not be "
"allowed. If successful, the Log\'s IsFrozen boolean "
"property will be updated to reflect the desired state. \n"
"\n"
"The method\'s return code should be 0 if the request was "
"successfully executed, 1 if the request is not supported "
"and some other value if an error occurred. If the "
"request is not supported, check the Capabilities array "
"that a value of 5 (\"Freeze Log Supported\") is "
"specified. \n"
"\n"
"Note: In a subclass, the set of possible return codes "
"could be described using a ValueMap qualifier on the "
"method. The strings to which the ValueMap contents are "
"\'translated\' may also be specified in the subclass as "
"a Values array qualifier." )]
uint32 FreezeLog(
[Required, IN, Description (
"If TRUE then freeze the log, if FALSE \'unfreeze\' the log."
)]
boolean Freeze);
};