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

> Cancela o registro de um LampArrayCallback registrado anteriormente usando seu token de retorno de chamada e aguarda até um tempo limite especificado para que os retornos de chamada em andamento sejam concluídos.

# UnregisterLampArrayCallback

Cancela o registro de uma função de retorno de chamada de LampArray.

## Sintaxe

```cpp theme={null}
bool UnregisterLampArrayCallback(
    LampArrayCallbackToken callbackToken,
    uint64_t timeoutInMicroseconds);
```

### Parâmetros

*callbackToken*\
Tipo: LampArrayCallbackToken

Token da função de retorno de chamada cujo registro será cancelado. Gerado quando a função foi registrada inicialmente com [RegisterLampArrayCallback](/pt-BR/reference/lighting/lamparray/functions/registerlamparraycallback).

*timeoutInMicroseconds*\
Tipo: uint64\_t

Tempo de espera para que um retorno de chamada seja concluído para que seu registro possa ser cancelado.

### Valor retornado

Tipo: bool

True se o registro do retorno de chamada foi cancelado com êxito. False indica um valor de token de retorno de chamada inválido ou um tempo limite atingido ao aguardar o retorno de um retorno de chamada em andamento. Um retorno false ainda garante que nenhum novo retorno de chamada será despachado. Os retornos de chamada já em andamento ainda serão executados.

## Comentários

Não é seguro liberar nenhum recurso associado ao retorno de chamada (por exemplo, descarregar a DLL que hospeda a função de retorno de chamada) até que a função UnregisterLampArrayCallback retorne com êxito. Portanto, não é possível cancelar o registro de um retorno de chamada de dentro de sua função de retorno de chamada registrada, e tentar fazer isso encerrará o processo.

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)\
[RegisterLampArrayCallback](/pt-BR/reference/lighting/lamparray/functions/registerlamparraycallback)


## Related topics

- [Referência da função LampArrayCallback](/pt-BR/reference/lighting/lamparray/functions/lamparraycallback.md)
- [Referência da função LampArrayStatusCallback](/pt-BR/reference/lighting/lamparray/functions/lamparraystatuscallback.md)
- [Referência da função RegisterLampArrayCallback](/pt-BR/reference/lighting/lamparray/functions/registerlamparraycallback.md)
- [Referência de membros da API LampArray](/pt-BR/reference/lighting/lamparray/lamparray_members.md)
- [Função RegisterLampArrayStatusCallback](/pt-BR/reference/lighting/lamparray/functions/registerlamparraystatuscallback.md)
