EVT_ACX_STREAM_PAUSE fonction de rappel (acxstreams.h)

L’événement EvtAcxStreamPause indique au pilote de passer l’état du flux de Run à Pause.

Syntaxe

EVT_ACX_STREAM_PAUSE EvtAcxStreamPause;

NTSTATUS EvtAcxStreamPause(
  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 retournée

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

Remarques

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

L’événement EvtAcxStreamPause fait passer l’état du flux de l’état d’exécution à l’état Pause. Une fois que le flux est à l’état Pause, le pilote peut recevoir l’événement EvtAcxStreamRun pour passer à l’état Exécuter ou le pilote peut recevoir l’événement EvtAcxStreamReleaseHardware pour passer à l’état Stop.

Pendant la mise hors tension et la suppression de l’appareil ACX, si des flux sont présents, ACX appelle l’EvtAcxStreamPause pour passer des flux à Pause. Il s’agit Stream instance délimitée.

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

État de démarrage État final Événement du pilote ACX appelé Notes
STOP ACQUÉRIR PrepareHardware Le pilote effectue des allocations et des préparations matérielles
ACQUÉRIR PAUSE (Aucun appel)
PAUSE EXÉCUTER Exécuter
EXÉCUTER PAUSE Suspendre
PAUSE ACQUÉRIR (Aucun appel)
ACQUÉRIR STOP 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.EvtAcxStreamPause = EvtStreamPause;
    ...
    status = AcxStreamInitAssignAcxStreamCallbacks(StreamInit, &streamCallbacks);
#pragma code_seg("PAGE")
NTSTATUS
EvtStreamPause(
    _In_ ACXSTREAM Stream
    )
{
    PSTREAM_CONTEXT ctx;
    NTSTATUS        status = STATUS_SUCCESS;

    PAGED_CODE();

    ctx = GetStreamContext(Stream);

    status = TransitionStreamToPause(Stream);

    ctx->StreamState = AcxStreamStatePause;

    return status;
}

Configuration requise pour ACX

Version ACX minimale : 1.0

Pour plus d’informations sur les versions d’ACX, consultez Vue d’ensemble des versions d’ACX.

Configuration requise

Condition requise Valeur
En-tête acxstreams.h
IRQL PASSIVE_LEVEL

Voir aussi