(mozilla-projects-nss-reference-fc-getsessioninfo)=

# FC_GetSessionInfo

## [Name](#name)

:::{container}
FC_GetSessionInfo - obtain information about a session.
:::

## [Syntax](#syntax)

:::{container}

```{code}
CK_RV FC_GetSessionInfo(
  CK_SESSION_HANDLE hSession,
  CK_SESSION_INFO_PTR pInfo
);
```

:::

## [Parameters](#parameters)

:::{container}
`hSession`

: [in] the open session handle.

`pInfo`

: [out] pointer to the [CK_SESSION_INFO](/en-US/CK_SESSION_INFO) structure to be returned.
:::

## [Description](#description)

:::{container}
`FC_GetSessionInfo` obtains information about a session. A user may call `FC_GetSessionInfo`
without logging into the token (to assume the NSS User role).

If the NSS cryptographic module is in the error state, `FC_GetSessionInfo` returns
`CKR_DEVICE_ERROR`. Otherwise, it fills in the `CK_SESSION_INFO` structure with the following
information:

- `state`: the state of the session, i.e., no role is assumed, the User role is assumed, or
  the Crypto Officer role is assumed

- `flags`: bit flags that define the type of session

  - `CKF_RW_SESSION (0x00000002)`: true if the session is read/write; false if the session is
    read-only.
  - `CKF_SERIAL_SESSION (0x00000004)`: this flag is provided for backward compatibility and
    is always set to true.
:::

## [Return value](#return_value)

## [Examples](#examples)

## [See also](#see_also)

:::{container}

- {ref}`mozilla_projects_nss_reference_fc_closesession`,
  [NSC_OpenSession](/en-US/NSC_OpenSession)
:::
