Поделиться через


функция обратного вызова EVT_ACX_MUTE_ASSIGN_STATE (acxelements.h)

Функция обратного вызова EVT_ACX_MUTE_ASSIGN_STATE реализуется драйвером и вызывается при установке состояния указанного канала на узле отключения звука. Состояние канала может быть равно 0 (FALSE) или 1 (TRUE), где 0 означает, что канал не отключен, а 1 указывает, что канал отключен.

Синтаксис

EVT_ACX_MUTE_ASSIGN_STATE EvtAcxMuteAssignState;

NTSTATUS EvtAcxMuteAssignState(
  ACXMUTE Mute,
  ULONG Channel,
  ULONG State
)
{...}

Параметры

Mute

Существующий инициализированный объект ACXMUTE. Дополнительные сведения об объектах ACX см. в разделе Сводка по объектам ACX.

Channel

Объект ULONG, ссылающийся на канал на указанном узле отключения звука. Если это значение равно -1, оно ссылается на канал master, который представляет состояние для всех каналов на узле отключения звука.

State

Значение ULONG, указывающее состояние указанного канала на узле отключения звука (т. е. указывает, отключен ли канал). Значение 0 (FALSE) указывает, что канал не отключен. Значение 1 (TRUE) указывает, что канал отключен. Если значение канала равно -1 (ссылается на канал master), то все каналы на этом узле отключения звука будут иметь это состояние.

Возвращаемое значение

Возвращает значение STATUS_SUCCESS , если вызов был успешным. В противном случае возвращается соответствующий код ошибки. Дополнительные сведения см. в разделе Использование значений NTSTATUS.

Remarks

Пример

Ниже приведен пример использования.

typedef struct _CODEC_MUTE_ELEMENT_CONTEXT {
    BOOL            MuteState[MAX_CHANNELS];
} CODEC_MUTE_ELEMENT_CONTEXT, *PCODEC_MUTE_ELEMENT_CONTEXT;

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(CODEC_MUTE_ELEMENT_CONTEXT, GetCodecMuteElementContext)

EVT_ACX_MUTE_ASSIGN_STATE           CodecR_EvtMuteAssignState;

NTSTATUS
NTAPI
CodecR_EvtMuteAssignState(
    _In_ ACXMUTE    Mute,
    _In_ ULONG      Channel,
    _In_ ULONG      State
    )
{
    PCODEC_MUTE_ELEMENT_CONTEXT muteCtx;
    ULONG                       i;

    PAGED_CODE();

    muteCtx = GetCodecMuteElementContext(Mute);
    ASSERT(muteCtx);

    // use first channel for all channels setting.
    if (Channel != ALL_CHANNELS_ID)
    {
        muteCtx->MuteState[Channel] = State;
    }
    else
    {
        for (i = 0; i < MAX_CHANNELS; ++i)
        {
            muteCtx->MuteState[i] = State;
        }
    }

    return STATUS_SUCCESS;
}

Требования ACX

Минимальная версия ACX: 1.0

Дополнительные сведения о версиях ACX см. в статье Обзор версий ACX.

Требования

Требование Значение
Заголовок acxelements.h
IRQL PASSIVE_LEVEL

См. также раздел