---
name: "Tspi_TPM_PcrExtend"
section: "3"
platform: "linux"
package: "libtspi-dev"
version: "0.3.15-0.4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Tspi_TPM_PcrExtend"
---

# Tspi\_TPM\_PcrExtend(3)

extend a PCR register and optionally write the PCR event log.

TCG Software Stack Developer's Reference

## NAME

Tspi\_TPM\_PcrExtend - extend a PCR register and optionally write the PCR event log.

## SYNOPSIS

```
#include <tss/platform.h>
#include <tss/tcpa_defines.h>
#include <tss/tcpa_typedef.h>
#include <tss/tcpa_struct.h>
#include <tss/tss_typedef.h>
#include <tss/tss_structs.h>
#include <tss/tspi.h>

TSS_RESULT Tspi_TPM_PcrExtend(TSS_HTPM       hTPM,              UINT32 ulPcrIndex,
                              UINT32         ulPcrDataLength,   BYTE*  pbPcrData,
                              TSS_PCR_EVENT* pPcrEvent,
                              UINT32*        pulPcrValueLength, BYTE** prgbPcrValue);
```

## DESCRIPTION

**Tspi\_TPM\_PcrExtend** extends a PCR register and writes the PCR event log if one is supplied by the user.

## PARAMETERS

### hTPM

The *hTPM* parameter is used to specify the handle of the TPM object. The command to get the TPM to test itself will be sent here.

### ulPcrIndex

The *ulPcrIndex* parameter is the index of the PCR to extend.

### ulPcrDataLength

The *ulPcrDataLength* parameter is the length in bytes of the *pbPcrData* parameter.

### pbPcrData

The *pbPcrData* parameter is a pointer to data which will be used in the extend operation.

### pPcrEvent

The *pPcrEvent* parameter is the TSS\_PCR\_EVENT structure to be passed to the TCS to record the extend event. If *pPcrEvent* is not NULL, the application should fill out the members of the structure that it cares about.

### pulPcrValueLength

The *pulPcrValueLength* parameter receives the length in bytes of the *prgbPcrValue* parameter.

### prgbPcrValue

The *prgbPcrValue* receives a pointer to the memory block containing the PCR data after the extend operation.

## RETURN CODES

**Tspi\_TPM\_PcrExtend** returns TSS\_SUCCESS on success, otherwise one of the following values is returned:

- TSS\_E\_INVALID\_HANDLE

  *hTPM* is not a valid handle.

- TSS\_E\_INTERNAL\_ERROR

  An internal SW error has been detected.

- TSS\_E\_BAD\_PARAMETER

  One or more parameters is bad.

## CONFORMING TO

**Tspi\_TPM\_PcrExtend** conforms to the Trusted Computing Group Software Specification version 1.1 Golden

## SEE ALSO

[**Tspi\_TPM\_PcrRead**(3)](/Tspi_TPM_PcrRead/3.md).
