EVT_ACX_VOLUME_ASSIGN_LEVEL fonction de rappel (acxelements.h)
La fonction de rappel EVT_ACX_VOLUME_ASSIGN_LEVEL est implémentée par le pilote et est appelée lorsque le niveau de volume d’un canal est défini pour un nœud de volume.
Syntaxe
EVT_ACX_VOLUME_ASSIGN_LEVEL EvtAcxVolumeAssignLevel;
NTSTATUS EvtAcxVolumeAssignLevel(
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 représente le niveau de volume pour tous les canaux sur le nœud de volume.
VolumeLevel
Valeur LONG qui spécifie le niveau de volume d’un canal dans un nœud de volume. Si la valeur du canal est -1 (faisant référence au canal maître), tous les canaux de ce nœud de volume sont définis sur ce niveau de volume. 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 _VOLUME_ELEMENT_CONTEXT {
LONG VolumeLevel[MAX_CHANNELS];
} VOLUME_ELEMENT_CONTEXT, *PVOLUME_ELEMENT_CONTEXT;
WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(VOLUME_ELEMENT_CONTEXT, GetVolumeElementContext)
EVT_ACX_VOLUME_ASSIGN_LEVEL CodecC_EvtVolumeAssignLevelCallback;
NTSTATUS
CodecC_EvtVolumeAssignLevelCallback(
_In_ ACXVOLUME Volume,
_In_ ULONG Channel,
_In_ LONG VolumeLevel
)
{
PAGED_CODE();
ASSERT(Volume);
PVOLUME_ELEMENT_CONTEXT volumeCtx = GetVolumeElementContext(Volume);
ASSERT(volumeCtx);
if (Channel != ALL_CHANNELS_ID)
{
volumeCtx->VolumeLevel[Channel] = VolumeLevel;
}
else
{
for (ULONG i = 0; i < MAX_CHANNELS; ++i)
{
volumeCtx->VolumeLevel[i] = VolumeLevel;
}
}
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 |