Partager via


EVT_ACX_STREAM_RUN fonction de rappel (acxstreams.h)

L’événement EvtAcxStreamRun indique au pilote de passer de l’état de flux de Pause à Exécution.

Syntaxe

EVT_ACX_STREAM_RUN EvtAcxStreamRun;

NTSTATUS EvtAcxStreamRun(
  ACXSTREAM Stream
)
{...}

Paramètres

Stream

Un objet ACXSTREAM représente un flux audio créé par un circuit. Le flux est composé d’une liste d’éléments créés en fonction des éléments du circuit parent. Pour plus d’informations, consultez ACX - Résumé des objets ACX.

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

AcxStream prend en charge différents états. Ces états indiquent quand l’audio circule (état RUN), que l’audio ne circule pas, mais que le matériel audio est préparé (état PAUSE) ou que l’audio n’est pas transmis et que le matériel audio n’est pas préparé (état STOP).

L’événement EvtAcxStreamRun va passer de l’état de flux de l’état Pause à l’état d’exécution. Une fois le flux dans l’état d’exécution, le pilote peut recevoir l’événement EvtAcxStreamPause pour passer à l’état Pause.

Les événements ACX sont analogues aux états KS, comme décrit dans ce tableau.

État de début État final Événement du pilote ACX appelé Notes
ARRÊTER ACQUÉRIR PrepareHardware Le pilote effectue des allocations et des préparations matérielles
ACQUÉRIR PAUSE (Aucun appel)
PAUSE COURIR Courir
COURIR PAUSE Pause
PAUSE ACQUÉRIR (Aucun appel)
ACQUÉRIR ARRÊTER ReleaseHardware Le pilote libère des allocations matérielles

Exemple

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

    ACX_STREAM_CALLBACKS streamCallbacks;
    ACX_STREAM_CALLBACKS_INIT(&streamCallbacks);
    streamCallbacks.EvtAcxStreamRun = EvtStreamRun;
    ...
    status = AcxStreamInitAssignAcxStreamCallbacks(StreamInit, &streamCallbacks);
_Use_decl_annotations_
PAGED_CODE_SEG
NTSTATUS
EvtStreamRun(
    _In_ ACXSTREAM Stream
    )
{
    PSTREAM_CONTEXT ctx;
    NTSTATUS        status;

    PAGED_CODE();

    ctx = GetStreamContext(Stream);

    status = TransitionStreamToRun(Stream);

    if (NT_SUCCESS(status))
    {
        ctx->StreamState = AcxStreamStateRun;
    }

    return status;
}

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 acxstreams.h
IRQL PASSIVE_LEVEL

Voir aussi