description: >
    SMBIOS MDR V2 service
methods:
    - name: GetDirectoryInformation
      description: >
          Get the directory with directory index.
      parameters:
          - name: dirIndex
            type: byte
            description: >
                Directory index of SMBIOS.
      returns:
          - name: dir
            type: array[byte]
            description: >
                Directory of agent.
      errors:
          - self.Error.InvalidParameter

    - name: GetDataInformation
      description: >
          Get the data info with id index and data set ID.
      parameters:
          - name: idIndex
            type: byte
            description: >
                Index of SMBIOS directory.
      returns:
          - name: dataInfo
            type: array[byte]
            description: >
                Data information of SMBIOS.
      errors:
          - self.Error.InvalidParameter

    - name: SendDirectoryInformation
      description: >
          Send directory information to SMBIOS directory.
      parameters:
          - name: dirVersion
            type: byte
            description: >
                A counter which increments each time directory updated.
          - name: dirIndex
            type: byte
            description: >
                Directory index of SMBIOS.
          - name: returnedEntries
            type: byte
            description: >
                Indicates number of directory entries.
          - name: remainingEntries
            type: byte
            description: >
                Remaining entries which are higher than index in this transfer.
          - name: dirEntry
            type: array[byte]
            description: >
                Data set ID of SMBIOS table.
      returns:
          - name: status
            type: boolean
            description: >
                Need to continue directory transmisson or not.
      errors:
          - self.Error.InvalidParameter

    - name: GetDataOffer
      description: >
          Get data set ID.
      returns:
          - name: offer
            type: array[byte]
            description: >
                Data set ID.
      errors:
          - self.Error.UpdateInProgress

    - name: SendDataInformation
      description: >
          Send data information with directory index.
      parameters:
          - name: idIndex
            type: byte
            description: >
                Index of SMBIOS directory.
          - name: flag
            type: byte
            description: >
                Valid flag to set dir entry status.
          - name: dataLen
            type: uint32
            description: >
                The length of the data in bytes.
          - name: dataVer
            type: uint32
            description: >
                The version number of this data.
          - name: timeStamp
            type: uint32
            description: >
                Timestamp determinded by the agent.
      returns:
          - name: status
            type: boolean
            description: >
                Whether data changes.
      errors:
          - self.Error.InvalidParameter

    - name: FindIdIndex
      description: >
          Find id index by data info.
      parameters:
          - name: dataInfo
            type: array[byte]
            description: >
                Data info of data entry.
      returns:
          - name: idIndex
            type: int32
            description: >
                Id index of data entry.
      errors:
          - self.Error.InvalidId

    - name: AgentSynchronizeData
      description: >
          Synchronize SMBIOS data from file.
      returns:
          - name: status
            type: boolean
            description: >
                Whether synchronization succeed or not.

    - name: SynchronizeDirectoryCommonData
      description: >
          Synchronize directory common data.
      parameters:
          - name: idIndex
            type: byte
            description: >
                Index of SMBIOS directory.
          - name: size
            type: uint32
            description: >
                Size of data that BIOS prepare to transfer.
      returns:
          - name: commonData
            type: array[uint32]
            description: >
                Directory common data includes data size, version and timestamp.

properties:
    - name: DirectoryEntries
      type: byte
      description: >
          Numbers of directory entries.
