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

> Anula el registro de una LampArrayCallback registrada previamente mediante su token de devolución de llamada y espera hasta un tiempo de espera especificado a que finalicen las devoluciones de llamada en curso.

# UnregisterLampArrayCallback

Anula el registro de una función de devolución de llamada de LampArray.

## Sintaxis

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

### Parámetros

*callbackToken*\
Tipo: LampArrayCallbackToken

Token de la función de devolución de llamada cuyo registro se va a anular. Se generó cuando la función se registró inicialmente con [RegisterLampArrayCallback](/reference/lighting/lamparray/functions/registerlamparraycallback).

*timeoutInMicroseconds*\
Tipo: uint64\_t

Cantidad de tiempo que se espera a que una devolución de llamada finalice para que se pueda anular su registro.

### Valor devuelto

Tipo: bool

True si el registro de la devolución de llamada se anuló correctamente. False indica un valor de token de devolución de llamada no válido, o un tiempo de espera agotado mientras se esperaba a que se devolviera una devolución de llamada en curso. Un valor devuelto false garantiza de todos modos que no se distribuirá ninguna devolución de llamada nueva. Las devoluciones de llamada ya en curso se seguirán ejecutando.

## Comentarios

No es seguro liberar los recursos asociados a la devolución de llamada (por ejemplo, descargar el archivo DLL que hospeda la función de devolución de llamada) hasta que la función UnregisterLampArrayCallback se devuelva correctamente. Por lo tanto, no es posible anular el registro de una devolución de llamada desde dentro de su propia función de devolución de llamada registrada, e intentar hacerlo finalizará el proceso.

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


## 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 LampArrayStatusCallback](/es/reference/lighting/lamparray/functions/lamparraystatuscallback.md)
- [Referencia de la función RegisterLampArrayCallback](/es/reference/lighting/lamparray/functions/registerlamparraycallback.md)
- [Referencia de la API de iluminación para periféricos LampArray](/es/reference/lighting/gc-reference-lighting-toc.md)
