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

# Referência da função RegisterLampArrayCallback

> Registra um LampArrayCallback que é disparado quando um periférico LampArray é conectado ou desconectado, retornando um token para cancelar o registro posteriormente.

# RegisterLampArrayCallback

Registra uma função de retorno de chamada a ser invocada sempre que um LampArray for conectado ou desconectado do sistema.

## Sintaxe

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

### Parâmetros

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

Uma função definida pelo chamador a ser registrada. Ela será invocada quando LampArrays forem conectados ou desconectados do sistema.

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

Um ponteiro para um objeto que contém informações relevantes para a função de retorno de chamada. Normalmente, é o objeto que faz a chamada.

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

Um valor de token que pode ser usado para cancelar o registro da função de retorno de chamada posteriormente.

### Valor retornado

Tipo: HRESULT

Resultado da função.

## Comentários

Se houver dispositivos LampArray conectados no momento em que um retorno de chamada for registrado, a função RegisterLampArrayCallback bloqueará até que esse retorno de chamada seja invocado para cada dispositivo conectado (o que significa que o retorno de chamada será invocado no thread de chamada).

Quando o primeiro retorno de chamada é registrado, a API LampArray inicia um thread de trabalho para lidar com as notificações de conexão e remoção de dispositivos ILampArray. Esses eventos são pouco frequentes e, fora isso, o thread de trabalho permanece em estado de espera. Depois que a chamada de registro retorna, todos os LampArrayCallbacks subsequentes serão invocados sequencialmente nesse thread de trabalho.

O código a seguir é um exemplo de registro e cancelamento de registro de um retorno de chamada 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

**Cabeçalho:** LampArray.h

**Biblioteca:** xgameplatform.lib

**Plataformas compatíveis:** consoles da família XBOX One e consoles XBOX Series

## Confira também

[Visão geral da API de iluminação](/pt-BR/build/core-features/common/lighting/gc-lighting-toc)\
[Noções básicas de iluminação](/pt-BR/build/core-features/common/lighting/lighting-basics)\
[LampArrayCallback](/pt-BR/reference/lighting/lamparray/functions/lamparraycallback)\
[UnregisterLampArrayCallback](/pt-BR/reference/lighting/lamparray/functions/unregisterlamparraycallback)


## Related topics

- [Referencia de la función RegisterLampArrayCallback](/es/reference/lighting/lamparray/functions/registerlamparraycallback.md)
- [RegisterLampArrayCallback](/ja-jp/reference/lighting/lamparray/functions/registerlamparraycallback.md)
- [RegisterLampArrayCallback function reference](/reference/lighting/lamparray/functions/registerlamparraycallback.md)
- [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)
