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

# Referencia de la función RegisterLampArrayCallback

> Registra una LampArrayCallback que se activa cuando se conecta o desconecta un periférico LampArray, y devuelve un token para anular el registro más adelante.

# RegisterLampArrayCallback

Registra una función de devolución de llamada que se invocará cada vez que un LampArray se conecte o desconecte del sistema.

## Sintaxis

```cpp theme={null}
HRESULT RegisterLampArrayCallback(
    LampArrayCallback lampArrayCallback,
    void* context,
    LampArrayCallbackToken* callbackToken);
```

### Parámetros

*lampArrayCallback*   \_In\_
Tipo: [LampArrayCallback](/reference/lighting/lamparray/functions/lamparraycallback)

Función definida por el autor de la llamada que se va a registrar. Se invocará cuando se conecten o desconecten LampArrays del sistema.

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

Puntero a un objeto que contiene información relevante para la función de devolución de llamada. Normalmente, es el objeto que realiza la llamada.

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

Valor de token que se puede usar para anular el registro de la función de devolución de llamada más adelante.

### Valor devuelto

Tipo: HRESULT

Resultado de la función.

## Comentarios

Si hay dispositivos LampArray conectados en el momento en que se registra una devolución de llamada, la función RegisterLampArrayCallback se bloqueará hasta que esa devolución de llamada se invoque para cada dispositivo conectado (lo que significa que la devolución de llamada se invocará en el subproceso que realiza la llamada).

Cuando se registra la primera devolución de llamada, la API de LampArray inicia un subproceso de trabajo para gestionar las notificaciones de conexión y eliminación de dispositivos ILampArray. Estos eventos son poco frecuentes y, por lo demás, el subproceso de trabajo permanece en estado de espera. Después de que la llamada de registro se devuelva, todas las LampArrayCallbacks posteriores se invocarán secuencialmente en este subproceso de trabajo.

El código siguiente es un ejemplo de registro y anulación del registro de una devolución de llamada de LampArray:

```cpp theme={null}
void MyLampArrayCallback(
    _In_opt_ void* context,
    bool isAttached,
    _In_ ILampArray* lampArray)
{
    if (isAttached)
    {
        // Application-specific code to handle LampArray connection
    }
    else
    {
        // Application-specific code to handle LampArray disconnection
    }
}

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

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

## Requisitos

**Encabezado:** LampArray.h

**Biblioteca:** xgameplatform.lib

**Plataformas compatibles:** consolas de la familia XBOX One y consolas XBOX Series

## Consulte también

[Información general de la API de iluminación](/build/core-features/common/lighting/gc-lighting-toc)\
[Conceptos básicos de iluminación](/build/core-features/common/lighting/lighting-basics)\
[LampArrayCallback](/reference/lighting/lamparray/functions/lamparraycallback)\
[UnregisterLampArrayCallback](/reference/lighting/lamparray/functions/unregisterlamparraycallback)


## Related topics

- [Referencia de miembros de la API LampArray](/es/reference/lighting/lamparray/lamparray_members.md)
- [Referencia de la función LampArrayCallback](/es/reference/lighting/lamparray/functions/lamparraycallback.md)
- [Referencia de la función UnregisterLampArrayCallback](/es/reference/lighting/lamparray/functions/unregisterlamparraycallback.md)
- [Referencia de la función LampArrayStatusCallback](/es/reference/lighting/lamparray/functions/lamparraystatuscallback.md)
- [Referencia de la enumeración LampArrayEnumerationKind](/es/reference/lighting/lamparray/enums/lamparrayenumerationkind.md)
