167 lines
8.0 KiB
Plaintext
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);
|
|
|
|
};
|