---
name: "udev_enumerate_ref"
section: "3"
platform: "linux"
package: "libudev-dev"
version: "257.13-1~deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/udev_enumerate_new"
---

# udev\_enumerate\_ref(3)

Create, acquire and release a udev enumerate object

Part of [udev\_enumerate\_new(3)](/udev_enumerate_new/3.md).

## NAME

udev\_enumerate\_new, udev\_enumerate\_ref, udev\_enumerate\_unref - Create, acquire and release a udev enumerate object

## SYNOPSIS

```
#include <libudev.h>
```

**struct udev\_enumerate \*udev\_enumerate\_new(struct udev \****udev***);**

**struct udev\_enumerate \*udev\_enumerate\_ref(struct udev\_enumerate \****udev\_enumerate***);**

**struct udev\_enumerate \*udev\_enumerate\_unref(struct udev\_enumerate \****udev\_enumerate***);**

## RETURN VALUE

On success, **udev\_enumerate\_new()** returns a pointer to the allocated enumeration object. On failure, **NULL** is returned. **udev\_enumerate\_ref()** returns the argument that it was passed, unmodified. **udev\_enumerate\_unref()** always returns **NULL**.

## HISTORY

**udev\_enumerate\_new()**, **udev\_enumerate\_ref()**, and **udev\_enumerate\_unref()** were added in version 221.

## SEE ALSO

[**udev\_new**(3)](/udev_new/3.md), [**udev\_device\_new\_from\_syspath**(3)](/udev_device_new_from_syspath/3.md), [**udev\_enumerate\_add\_match\_subsystem**(3)](/udev_enumerate_add_match_subsystem/3.md), [**udev\_enumerate\_scan\_devices**(3)](/udev_enumerate_scan_devices/3.md), [**udev\_monitor\_new\_from\_netlink**(3)](/udev_monitor_new_from_netlink/3.md), [**udev\_list\_entry**(3)](/udev_list_entry/3.md), [**systemd**(1)](/systemd/1.md)
