> ## 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.

# Fonction RegisterLampArrayStatusCallback

> Inscrit un LampArrayStatusCallback déclenché lors des changements d'état d'un LampArray et contrôle si l'énumération initiale des périphériques est bloquante ou asynchrone.

# RegisterLampArrayStatusCallback

Inscrit une fonction de rappel à appeler chaque fois que l'état du LampArray change.

## Syntaxe

```cpp theme={null}
STDAPI RegisterLampArrayStatusCallback(
    _In_ LampArrayStatusCallback callbackFunc,
    LampArrayEnumerationKind enumerationKind,
    _In_opt_ void * context,
    _Out_ _Result_zeroonfailure_ LampArrayCallbackToken * callbackToken);
```

### Paramètres

*callbackFunc*   \_In\_
Type : [LampArrayStatusCallback](/fr/reference/lighting/lamparray/functions/lamparraystatuscallback)

Fonction définie par l'appelant à inscrire. Elle est appelée lorsque l'état du LampArray change.

*enumerationKind*\
Type : [LampArrayEnumerationKind](/fr/reference/lighting/lamparray/enums/lamparrayenumerationkind)

Spécifie le comportement d'énumération des périphériques souhaité pour la fonction [LampArrayStatusCallback](/fr/reference/lighting/lamparray/functions/lamparraystatuscallback).

*context*   \_In\_opt\_\
Type : void\*

Pointeur vers un objet contenant des informations pertinentes pour la fonction de rappel. Il s'agit généralement de l'objet appelant.

*callbackToken*   \_Out\_ \_Result\_zeroonfailure\_
Type : LampArrayCallbackToken\*

Valeur de jeton pouvant être utilisée pour désinscrire la fonction de rappel ultérieurement.

### Valeur de retour

Type : HRESULT

Résultat de la fonction.

## Remarques

Le paramètre LampArrayEnumerationKind permet à l'appelant de spécifier la manière dont il doit recevoir les rappels pour les périphériques LampArray connectés au moment de cet appel. Si [LampArrayEnumerationKind::Blocking](/fr/reference/lighting/lamparray/enums/lamparrayenumerationkind) est sélectionné, la fonction [RegisterLampArrayStatusCallback](/fr/reference/lighting/lamparray/functions/registerlamparraystatuscallback) bloque jusqu'à ce que ce rappel soit appelé pour chaque périphérique connecté (ce qui signifie que le rappel est appelé sur le thread appelant).

Lorsque le premier rappel est inscrit, l'API LampArray démarre un thread de travail pour gérer les notifications d'état des périphériques ILampArray. Ces événements sont peu fréquents, et le thread de travail reste sinon en état d'attente. Une fois l'appel d'inscription retourné, tous les LampArrayStatusCallbacks suivants sont appelés séquentiellement sur ce thread de travail.

Si [LampArrayEnumerationKind::Async](/fr/reference/lighting/lamparray/enums/lamparrayenumerationkind) est spécifié, cet appel retourne immédiatement, et les LampArrays connectés au moment de l'appel sont énumérés sur le thread de travail des rappels LampArray mentionné ci-dessus.

Le code suivant est un exemple d'inscription et de désinscription d'une fonction [LampArrayStatusCallback](/fr/reference/lighting/lamparray/functions/lamparraystatuscallback) :

```c++ theme={null}
void MyLampArrayStatusCallback(
    _In_opt_ void* context,
    LampArrayStatus currentStatus,
    LampArrayStatus previousStatus,
    _In_ ILampArray* lampArray)
{
    // Application-specific code to handle LampArray status changes
}

void MonitorLampArrays(
    _In_ volatile bool & cancelMonitoring) noexcept
{
    LampArrayCallbackToken token = LAMPARRAY_INVALID_CALLBACK_TOKEN_VALUE;
    if (SUCCEEDED(RegisterLampArrayStatusCallback(
        MyLampArrayStatusCallback,
        LampArrayEnumerationKind::Async,
        nullptr /* context */,
        &token)))
    {
        while (!cancelMonitoring)
        {
            Sleep(100);
        }

        UnregisterLampArrayCallback(token, 5000);
    }
}
```

## Configuration requise

**En-tête :** LampArray.h

**Bibliothèque :** xgameplatform.lib

**Plateformes prises en charge :** consoles de la famille XBOX One et consoles XBOX Series

## Voir aussi

[Vue d'ensemble de l'API d'éclairage](/fr/build/core-features/common/lighting/gc-lighting-toc)\
[Notions de base de l'éclairage](/fr/build/core-features/common/lighting/lighting-basics)\
[LampArrayStatusCallback](/fr/reference/lighting/lamparray/functions/lamparraystatuscallback)\
[UnregisterLampArrayCallback](/fr/reference/lighting/lamparray/functions/unregisterlamparraycallback)\
[LampArrayEnumerationKind](/fr/reference/lighting/lamparray/enums/lamparrayenumerationkind)


## Related topics

- [RegisterLampArrayStatusCallback](/ko/reference/lighting/lamparray/functions/registerlamparraystatuscallback.md)
- [RegisterLampArrayStatusCallback function](/reference/lighting/lamparray/functions/registerlamparraystatuscallback.md)
- [Función RegisterLampArrayStatusCallback](/es/reference/lighting/lamparray/functions/registerlamparraystatuscallback.md)
- [LampArrayStatusCallback](/ko/reference/lighting/lamparray/functions/lamparraystatuscallback.md)
- [LampArrayStatusCallback function reference](/reference/lighting/lamparray/functions/lamparraystatuscallback.md)
