次の方法で共有


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 の場合は、ミュート ノード上のすべてのチャネルの状態を表すマスター チャネルを参照します。

State

ミュート ノード上の指定されたチャネルの状態を示す ULONG (つまり、チャネルがミュートされているかどうか)。 値 0 (FALSE) は、チャネルがミュートされていないことを示します。 値 1 (TRUE) は、チャネルがミュートされていることを示します。 チャネル値が -1 (マスター チャネルを参照) の場合、このミュート ノード上のすべてのチャネルがこの状態に設定されます。

戻り値

STATUS_SUCCESS呼び出しが成功した場合は を返します。 それ以外の場合は、適切なエラー コードを返します。 詳細については、「 NTSTATUS 値の使用」を参照してください。

解説

使用例を次に示します。

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 バージョンの概要」を参照してください。

要件

要件
Header acxelements.h
IRQL PASSIVE_LEVEL

こちらもご覧ください