Partager via


EVT_ACX_VOLUME_RETRIEVE_LEVEL fonction de rappel (acxelements.h)

La fonction de rappel EVT_ACX_VOLUME_RETRIEVE_LEVEL est implémentée par le pilote et est appelée lorsque le niveau de volume d’un canal spécifié sur un nœud de volume est demandé.

Syntaxe

EVT_ACX_VOLUME_RETRIEVE_LEVEL EvtAcxVolumeRetrieveLevel;

NTSTATUS EvtAcxVolumeRetrieveLevel(
  ACXVOLUME Volume,
  ULONG Channel,
  LONG *VolumeLevel
)
{...}

Paramètres

Volume

Objet ACXVOLUME existant, initialisé. Pour plus d’informations sur les objets ACX, consultez Résumé des objets ACX.

Channel

ULONG faisant référence à un canal sur le nœud de volume spécifié. Si cette valeur est -1, elle fait référence au canal maître qui définit le niveau de tous les canaux sur le nœud de volume.

VolumeLevel

Valeur LONG qui spécifie le niveau de volume d’un canal dans un flux donné. Les valeurs au niveau du volume utilisent l’échelle suivante :

-2147483648 est -infinity décibels (atténuation),

-2147483647 est -32767.99998474 decibels (atténuation) et

+2147483647 est +32767.99998474 decibels (gain).

Valeur de retour

Retourne STATUS_SUCCESS si l’appel a réussi. Sinon, elle retourne un code d’erreur approprié. Pour plus d’informations, consultez Using NTSTATUS Values.

Remarques

Exemple

L’exemple d’utilisation est illustré ci-dessous.

typedef struct _CODEC_VOLUME_ELEMENT_CONTEXT {
    LONG            VolumeLevel[MAX_CHANNELS];
} CODEC_VOLUME_ELEMENT_CONTEXT, *PCODEC_VOLUME_ELEMENT_CONTEXT;

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(CODEC_VOLUME_ELEMENT_CONTEXT, GetCodecVolumeElementContext)

EVT_ACX_VOLUME_RETRIEVE_LEVEL       CodecR_EvtVolumeRetrieveLevel;

NTSTATUS
NTAPI
CodecR_EvtVolumeRetrieveLevel(
    _In_  ACXVOLUME Volume,
    _In_  ULONG     Channel,
    _Out_ LONG *    VolumeLevel
)
{
    PCODEC_VOLUME_ELEMENT_CONTEXT   volumeCtx;

    PAGED_CODE();

    volumeCtx = GetCodecVolumeElementContext(Volume);
    ASSERT(volumeCtx);

    if (Channel != ALL_CHANNELS_ID)
    {
        *VolumeLevel = volumeCtx->VolumeLevel[Channel];
    }
    else
    {
        *VolumeLevel = volumeCtx->VolumeLevel[0];
    }

    return STATUS_SUCCESS;
}

Configuration requise pour ACX

version minimale d’ACX : 1.0

Pour plus d’informations sur les versions ACX, consultez vue d’ensemble de la version ACX.

Exigences

Exigence Valeur
d’en-tête acxelements.h
IRQL PASSIVE_LEVEL

Voir aussi