> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# LampArrayEnumerationKind enum reference

> Enum controlling whether initial LampArray enumeration in RegisterLampArrayStatusCallback runs asynchronously or blocks until every device reports.

# LampArrayEnumerationKind Enumeration

Describes the desired device enumeration behavior of a newly registered LampArrayStatusCallback function. Used with [RegisterLampArrayStatusCallback](/reference/lighting/lamparray/functions/registerlamparraystatuscallback), this behavior will apply only to LampArrays that are connected at the time of the registration.

<a id="syntaxSection" />

## Syntax

```cpp theme={null}
enum class LampArrayEnumerationKind : uint32_t
{
    Async       = 1,
    Blocking    = 2
};
```

<a id="constantsSection" />

## Constants

| Constant | Description                                                                                                                                                                                                                                                              |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Async    | The call to [RegisterLampArrayStatusCallback](/reference/lighting/lamparray/functions/registerlamparraystatuscallback) should return immediately, and enumeration of connected LampArrays should occur asynchronously on the dedicated LampArray callback worker thread. |
| Blocking | The call to [RegisterLampArrayStatusCallback](/reference/lighting/lamparray/functions/registerlamparraystatuscallback) should block until all connected LampArrays have been enumerated.                                                                                 |

<a id="remarksSection" />

## Remarks

The **LampArrayEnumerationKind** parameter of [RegisterLampArrayStatusCallback](/reference/lighting/lamparray/functions/registerlamparraystatuscallback) allows the caller to specify how it should receive callbacks for any LampArray devices that are attached at the time of the call. If **LampArrayEnumerationKind::Blocking** is selected, the RegisterLampArrayStatusCallback function will block until that callback is invoked for each attached device (meaning the callback will be invoked on the calling thread).

When the first callback is registered, the LampArray API starts a worker thread to handle **ILampArray** device status notifications. These events are infrequent, and the worker thread otherwise remains in a wait state. After the registration call returns, all subsequent LampArrayStatusCallbacks will be invoked sequentially on this worker thread.

If **LampArrayEnumerationKind::Async** is specified, the registration call will return immediately, and any LampArrays connected at the time of the call will be enumerated on the aforementioned LampArray callback worker thread.

<a id="requirementsSection" />

## Requirements

**Header:** Declared in LampArray.h.

<a id="seealsoSection" />

## See also

[Lighting API Overview](/build/core-features/common/lighting/gc-lighting-toc)\
[RegisterLampArrayStatusCallback](/reference/lighting/lamparray/functions/registerlamparraystatuscallback)


## Related topics

- [LampArrayKind enum reference](/reference/lighting/lamparray/enums/lamparraykind.md)
- [LampArrayStatus enum reference](/reference/lighting/lamparray/enums/lamparraystatus.md)
- [RegisterLampArrayStatusCallback function](/reference/lighting/lamparray/functions/registerlamparraystatuscallback.md)
- [Lighting API reference for LampArray peripherals](/reference/lighting/gc-reference-lighting-toc.md)
- [LampArray API members reference](/reference/lighting/lamparray/lamparray_members.md)
