---
name: "libvshadow"
section: "3"
platform: "linux"
package: "libvshadow-dev"
version: "20240504-1+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/libvshadow"
---

# libvshadow(3)

Library to access the Windows NT Volume Shadow Snapshot (VSS) format

## NAME

**libvshadow.h** – Library to access the Windows NT Volume Shadow Snapshot (VSS) format

## SYNOPSIS

**#include \<libvshadow.h\>**

Support functions

*const* *char* *\**\

**libvshadow\_get\_version**(*void*);

*int*\

**libvshadow\_get\_access\_flags\_read**(*void*);

*int*\

**libvshadow\_get\_codepage**(*int \*codepage*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_set\_codepage**(*int codepage*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_check\_volume\_signature**(*const char \*filename*, *libvshadow\_error\_t \*\*error*);

Available when compiled with wide character string support:

*int*\

**libvshadow\_check\_volume\_signature\_wide**(*const wchar\_t \*filename*, *libvshadow\_error\_t \*\*error*);

Available when compiled with libbfio support:

*int*\

**libvshadow\_check\_volume\_signature\_file\_io\_handle**(*libbfio\_handle\_t \*file\_io\_handle*, *libvshadow\_error\_t \*\*error*);

Notify functions

*void*\

**libvshadow\_notify\_set\_verbose**(*int verbose*);

*int*\

**libvshadow\_notify\_set\_stream**(*FILE \*stream*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_notify\_stream\_open**(*const char \*filename*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_notify\_stream\_close**(*libvshadow\_error\_t \*\*error*);

Error functions

*void*\

**libvshadow\_error\_free**(*libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_error\_fprint**(*libvshadow\_error\_t \*error*, *FILE \*stream*);

*int*\

**libvshadow\_error\_sprint**(*libvshadow\_error\_t \*error*, *char \*string*, *size\_t size*);

*int*\

**libvshadow\_error\_backtrace\_fprint**(*libvshadow\_error\_t \*error*, *FILE \*stream*);

*int*\

**libvshadow\_error\_backtrace\_sprint**(*libvshadow\_error\_t \*error*, *char \*string*, *size\_t size*);

Volume functions

*int*\

**libvshadow\_volume\_initialize**(*libvshadow\_volume\_t \*\*volume*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_volume\_free**(*libvshadow\_volume\_t \*\*volume*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_volume\_signal\_abort**(*libvshadow\_volume\_t \*volume*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_volume\_open**(*libvshadow\_volume\_t \*volume*, *const char \*filename*, *int access\_flags*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_volume\_close**(*libvshadow\_volume\_t \*volume*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_volume\_get\_size**(*libvshadow\_volume\_t \*volume*, *size64\_t \*size*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_volume\_get\_number\_of\_stores**(*libvshadow\_volume\_t \*volume*, *int \*number\_of\_stores*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_volume\_get\_store**(*libvshadow\_volume\_t \*volume*, *int store\_index*, *libvshadow\_store\_t \*\*store*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_volume\_get\_store\_identifier**(*libvshadow\_volume\_t \*volume*, *int store\_index*, *uint8\_t \*guid*, *size\_t size*, *libvshadow\_error\_t \*\*error*);

Available when compiled with wide character string support:

*int*\

**libvshadow\_volume\_open\_wide**(*libvshadow\_volume\_t \*volume*, *const wchar\_t \*filename*, *int access\_flags*, *libvshadow\_error\_t \*\*error*);

Available when compiled with libbfio support:

*int*\

**libvshadow\_volume\_open\_file\_io\_handle**(*libvshadow\_volume\_t \*volume*, *libbfio\_handle\_t \*file\_io\_handle*, *int access\_flags*, *libvshadow\_error\_t \*\*error*);

Store functions

*int*\

**libvshadow\_store\_free**(*libvshadow\_store\_t \*\*store*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_store\_has\_in\_volume\_data**(*libvshadow\_store\_t \*store*, *libvshadow\_error\_t \*\*error*);

*ssize\_t*\

**libvshadow\_store\_read\_buffer**(*libvshadow\_store\_t \*store*, *void \*buffer*, *size\_t buffer\_size*, *libvshadow\_error\_t \*\*error*);

*ssize\_t*\

**libvshadow\_store\_read\_buffer\_at\_offset**(*libvshadow\_store\_t \*store*, *void \*buffer*, *size\_t buffer\_size*, *off64\_t offset*, *libvshadow\_error\_t \*\*error*);

*off64\_t*\

**libvshadow\_store\_seek\_offset**(*libvshadow\_store\_t \*store*, *off64\_t offset*, *int whence*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_store\_get\_offset**(*libvshadow\_store\_t \*store*, *off64\_t \*offset*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_store\_get\_size**(*libvshadow\_store\_t \*store*, *size64\_t \*size*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_store\_get\_volume\_size**(*libvshadow\_store\_t \*store*, *size64\_t \*volume\_size*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_store\_get\_identifier**(*libvshadow\_store\_t \*store*, *uint8\_t \*guid*, *size\_t size*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_store\_get\_creation\_time**(*libvshadow\_store\_t \*store*, *uint64\_t \*filetime*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_store\_get\_copy\_identifier**(*libvshadow\_store\_t \*store*, *uint8\_t \*guid*, *size\_t size*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_store\_get\_copy\_set\_identifier**(*libvshadow\_store\_t \*store*, *uint8\_t \*guid*, *size\_t size*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_store\_get\_attribute\_flags**(*libvshadow\_store\_t \*store*, *uint32\_t \*attribute\_flags*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_store\_get\_number\_of\_blocks**(*libvshadow\_store\_t \*store*, *int \*number\_of\_blocks*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_store\_get\_block\_by\_index**(*libvshadow\_store\_t \*store*, *int block\_index*, *libvshadow\_block\_t \*\*block*, *libvshadow\_error\_t \*\*error*);

Available when compiled with libbfio support:

*ssize\_t*\

**libvshadow\_store\_read\_buffer\_from\_file\_io\_handle**(*libvshadow\_store\_t \*store*, *libbfio\_handle\_t \*file\_io\_handle*, *void \*buffer*, *size\_t buffer\_size*, *libvshadow\_error\_t \*\*error*);

Block functions

*int*\

**libvshadow\_block\_free**(*libvshadow\_block\_t \*\*block*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_block\_get\_original\_offset**(*libvshadow\_block\_t \*block*, *off64\_t \*original\_offset*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_block\_get\_relative\_offset**(*libvshadow\_block\_t \*block*, *off64\_t \*relative\_offset*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_block\_get\_offset**(*libvshadow\_block\_t \*block*, *off64\_t \*offset*, *libvshadow\_error\_t \*\*error*);

*int*\

**libvshadow\_block\_get\_values**(*libvshadow\_block\_t \*block*, *off64\_t \*original\_offset*, *off64\_t \*relative\_offset*, *off64\_t \*offset*, *uint32\_t \*flags*, *uint32\_t \*bitmap*, *libvshadow\_error\_t \*\*error*);

## DESCRIPTION

The **libvshadow\_get\_version**() function is used to retrieve the library version.

## RETURN VALUES

Most of the functions return NULL or -1 on error, dependent on the return type. For the actual return values see "libvshadow.h".

## ENVIRONMENT

None

## FILES

None

## NOTES

libvshadow can be compiled with wide character support (wchar\_t).

To compile libvshadow with wide character support use: *./configure* *--enable-wide-character-type=yes*\
  or define: *\_UNICODE*\
  or *UNICODE*\
  during compilation.

*LIBVSHADOW\_WIDE\_CHARACTER\_TYPE*\
  in libvshadow/features.h can be used to determine if libvshadow was compiled with wide character support.

## BUGS

Please report bugs of any kind on the project issue tracker: https://github.com/libyal/libvshadow/issues

## AUTHOR

These man pages are generated from "libvshadow.h".

## COPYRIGHT

Copyright (C) 2011-2024, Joachim Metz \<joachim.metz@gmail.com\>.

This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

## SEE ALSO

the libvshadow.h include file
