EVT_ACX_VOLUME_ASSIGN_LEVEL función de devolución de llamada (acxelements.h)
El controlador implementa la función de devolución de llamada EVT_ACX_VOLUME_ASSIGN_LEVEL y se llama cuando se establece el nivel de volumen de un canal para un nodo de volumen.
Sintaxis
EVT_ACX_VOLUME_ASSIGN_LEVEL EvtAcxVolumeAssignLevel;
NTSTATUS EvtAcxVolumeAssignLevel(
ACXVOLUME Volume,
ULONG Channel,
LONG VolumeLevel
)
{...}
Parámetros
Volume
Objeto ACXVOLUME existente, inicializado. Para obtener más información sobre los objetos ACX, vea Resumen de objetos ACX.
Channel
Un ULONG que hace referencia a un canal en el nodo de volumen especificado. Si este valor es -1, hace referencia al canal maestro que representa el nivel de volumen de todos los canales del nodo de volumen.
VolumeLevel
Valor LONG que especifica el nivel de volumen de un canal en un nodo de volumen. Si el valor del canal es -1 (que hace referencia al canal maestro), todos los canales de este nodo de volumen se establecerán en este nivel de volumen. Los valores de nivel de volumen usan la siguiente escala:
-2147483648 es -decibelios infinitos (atenuación),
-2147483647 es -32767.999998474 decibeles (atenuación) y
+2147483647 es +32767.99998474 decibels (ganancia).
Valor devuelto
Devuelve STATUS_SUCCESS
si la llamada se realizó correctamente. De lo contrario, devuelve un código de error adecuado. Para obtener más información, vea Uso de valores NTSTATUS.
Comentarios
Ejemplo
A continuación se muestra el uso de ejemplo.
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;
}
Requisitos de ACX
Versión mínima de ACX: 1.0
Para obtener más información sobre las versiones de ACX, consulte Introducción a la versión de ACX.
Requisitos
Requisito | Valor |
---|---|
Header | acxelements.h |
IRQL | PASSIVE_LEVEL |