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

# Função RegisterLampArrayStatusCallback

> Registra um LampArrayStatusCallback que é disparado em alterações de status de LampArray e controla se a enumeração inicial de dispositivos bloqueia ou é executada de forma assíncrona.

# RegisterLampArrayStatusCallback

Registra uma função de retorno de chamada a ser invocada sempre que o status do LampArray mudar.

## Sintaxe

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

### Parâmetros

*callbackFunc*   \_In\_
Tipo: [LampArrayStatusCallback](/pt-BR/reference/lighting/lamparray/functions/lamparraystatuscallback)

Uma função definida pelo chamador a ser registrada. Ela será invocada quando o status do LampArray mudar.

*enumerationKind*\
Tipo: [LampArrayEnumerationKind](/pt-BR/reference/lighting/lamparray/enums/lamparrayenumerationkind)

Especifica o comportamento desejado de enumeração de dispositivos da função [LampArrayStatusCallback](/pt-BR/reference/lighting/lamparray/functions/lamparraystatuscallback).

*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

O parâmetro LampArrayEnumerationKind permite que o chamador especifique como deve receber retornos de chamada para quaisquer dispositivos LampArray conectados no momento desta chamada. Se [LampArrayEnumerationKind::Blocking](/pt-BR/reference/lighting/lamparray/enums/lamparrayenumerationkind) for selecionado, a função [RegisterLampArrayStatusCallback](/pt-BR/reference/lighting/lamparray/functions/registerlamparraystatuscallback) 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 status 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 LampArrayStatusCallbacks subsequentes serão invocados sequencialmente nesse thread de trabalho.

Se [LampArrayEnumerationKind::Async](/pt-BR/reference/lighting/lamparray/enums/lamparrayenumerationkind) for especificado, esta chamada retornará imediatamente, e quaisquer LampArrays conectados no momento da chamada serão enumerados no thread de trabalho de retorno de chamada do LampArray mencionado anteriormente.

O código a seguir é um exemplo de registro e cancelamento de registro de uma função [LampArrayStatusCallback](/pt-BR/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);
    }
}
```

## 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)\
[LampArrayStatusCallback](/pt-BR/reference/lighting/lamparray/functions/lamparraystatuscallback)\
[UnregisterLampArrayCallback](/pt-BR/reference/lighting/lamparray/functions/unregisterlamparraycallback)\
[LampArrayEnumerationKind](/pt-BR/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)
