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

# libfwnt(3)

Library to support common Windows NT specific formats

## NAME

**libfwnt.h** – Library to support common Windows NT specific formats

## SYNOPSIS

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

Support functions

*const* *char* *\**\

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

Notify functions

*void*\

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

*int*\

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

*int*\

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

*int*\

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

Error functions

*void*\

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

*int*\

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

*int*\

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

*int*\

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

*int*\

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

Security descriptor functions

*int*\

**libfwnt\_security\_descriptor\_initialize**(*libfwnt\_security\_descriptor\_t \*\*security\_descriptor*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_descriptor\_free**(*libfwnt\_security\_descriptor\_t \*\*security\_descriptor*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_descriptor\_copy\_from\_byte\_stream**(*libfwnt\_security\_descriptor\_t \*security\_descriptor*, *const uint8\_t \*byte\_stream*, *size\_t byte\_stream\_size*, *int byte\_order*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_descriptor\_get\_owner**(*libfwnt\_security\_descriptor\_t \*security\_descriptor*, *libfwnt\_security\_identifier\_t \*\*security\_identifier*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_descriptor\_get\_group**(*libfwnt\_security\_descriptor\_t \*security\_descriptor*, *libfwnt\_security\_identifier\_t \*\*security\_identifier*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_descriptor\_get\_discretionary\_acl**(*libfwnt\_security\_descriptor\_t \*security\_descriptor*, *libfwnt\_access\_control\_list\_t \*\*access\_control\_list*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_descriptor\_get\_system\_acl**(*libfwnt\_security\_descriptor\_t \*security\_descriptor*, *libfwnt\_access\_control\_list\_t \*\*access\_control\_list*, *libfwnt\_error\_t \*\*error*);

Security identifier (SID) functions

*int*\

**libfwnt\_security\_identifier\_initialize**(*libfwnt\_security\_identifier\_t \*\*security\_identifier*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_identifier\_free**(*libfwnt\_security\_identifier\_t \*\*security\_identifier*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_identifier\_copy\_from\_byte\_stream**(*libfwnt\_security\_identifier\_t \*security\_identifier*, *const uint8\_t \*byte\_stream*, *size\_t byte\_stream\_size*, *int byte\_order*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_identifier\_get\_string\_size**(*libfwnt\_security\_identifier\_t \*security\_identifier*, *size\_t \*string\_size*, *uint32\_t string\_format\_flags*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_identifier\_copy\_to\_utf8\_string**(*libfwnt\_security\_identifier\_t \*security\_identifier*, *uint8\_t \*utf8\_string*, *size\_t utf8\_string\_size*, *uint32\_t string\_format\_flags*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_identifier\_copy\_to\_utf8\_string\_with\_index**(*libfwnt\_security\_identifier\_t \*security\_identifier*, *uint8\_t \*utf8\_string*, *size\_t utf8\_string\_size*, *size\_t \*utf8\_string\_index*, *uint32\_t string\_format\_flags*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_identifier\_copy\_to\_utf16\_string**(*libfwnt\_security\_identifier\_t \*security\_identifier*, *uint16\_t \*utf16\_string*, *size\_t utf16\_string\_size*, *uint32\_t string\_format\_flags*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_identifier\_copy\_to\_utf16\_string\_with\_index**(*libfwnt\_security\_identifier\_t \*security\_identifier*, *uint16\_t \*utf16\_string*, *size\_t utf16\_string\_size*, *size\_t \*utf16\_string\_index*, *uint32\_t string\_format\_flags*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_identifier\_copy\_to\_utf32\_string**(*libfwnt\_security\_identifier\_t \*security\_identifier*, *uint32\_t \*utf32\_string*, *size\_t utf32\_string\_size*, *uint32\_t string\_format\_flags*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_security\_identifier\_copy\_to\_utf32\_string\_with\_index**(*libfwnt\_security\_identifier\_t \*security\_identifier*, *uint32\_t \*utf32\_string*, *size\_t utf32\_string\_size*, *size\_t \*utf32\_string\_index*, *uint32\_t string\_format\_flags*, *libfwnt\_error\_t \*\*error*);

Access control list (ACL) functions

*int*\

**libfwnt\_access\_control\_list\_free**(*libfwnt\_access\_control\_list\_t \*\*access\_control\_list*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_access\_control\_list\_get\_number\_of\_entries**(*libfwnt\_access\_control\_list\_t \*access\_control\_list*, *int \*number\_of\_entries*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_access\_control\_list\_get\_entry\_by\_index**(*libfwnt\_access\_control\_list\_t \*access\_control\_list*, *int entry\_index*, *libfwnt\_access\_control\_entry\_t \*\*access\_control\_entry*, *libfwnt\_error\_t \*\*error*);

Access control entry (ACE) functions

*int*\

**libfwnt\_access\_control\_entry\_free**(*libfwnt\_access\_control\_entry\_t \*\*access\_control\_entry*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_access\_control\_entry\_get\_type**(*libfwnt\_access\_control\_entry\_t \*access\_control\_entry*, *uint8\_t \*type*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_access\_control\_entry\_get\_flags**(*libfwnt\_access\_control\_entry\_t \*access\_control\_entry*, *uint8\_t \*flags*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_access\_control\_entry\_get\_access\_mask**(*libfwnt\_access\_control\_entry\_t \*access\_control\_entry*, *uint32\_t \*access\_mask*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_access\_control\_entry\_get\_security\_identifier**(*libfwnt\_access\_control\_entry\_t \*access\_control\_entry*, *libfwnt\_security\_identifier\_t \*\*security\_identifier*, *libfwnt\_error\_t \*\*error*);

LZNT1 functions

*int*\

**libfwnt\_lznt1\_decompress**(*const uint8\_t \*compressed\_data*, *size\_t compressed\_data\_size*, *uint8\_t \*uncompressed\_data*, *size\_t \*uncompressed\_data\_size*, *libfwnt\_error\_t \*\*error*);

LZX functions

*int*\

**libfwnt\_lzx\_decompress**(*const uint8\_t \*compressed\_data*, *size\_t compressed\_data\_size*, *uint8\_t \*uncompressed\_data*, *size\_t \*uncompressed\_data\_size*, *libfwnt\_error\_t \*\*error*);

LZXPRESS functions

*int*\

**libfwnt\_lzxpress\_decompress**(*const uint8\_t \*compressed\_data*, *size\_t compressed\_data\_size*, *uint8\_t \*uncompressed\_data*, *size\_t \*uncompressed\_data\_size*, *libfwnt\_error\_t \*\*error*);

*int*\

**libfwnt\_lzxpress\_huffman\_decompress**(*const uint8\_t \*compressed\_data*, *size\_t compressed\_data\_size*, *uint8\_t \*uncompressed\_data*, *size\_t \*uncompressed\_data\_size*, *libfwnt\_error\_t \*\*error*);

## DESCRIPTION

The **libfwnt\_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 "libfwnt.h".

## ENVIRONMENT

None

## FILES

None

## BUGS

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

## AUTHOR

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

## COPYRIGHT

Copyright (C) 2009-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 libfwnt.h include file
