// 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); };