EVT_ACX_STREAM_RUN fonction de rappel (acxstreams.h)
L’événement EvtAcxStreamRun indique au pilote de faire passer l’état du flux de Pause à Exécuter.
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 retournée
Retourne STATUS_SUCCESS
si l’appel a réussi. Sinon, il 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), que l’audio ne circule pas mais que le matériel audio est préparé (état PAUSE), ou que l’audio ne circule pas et que le matériel audio n’est pas préparé (état STOP).
L’événement EvtAcxStreamRun fait passer l’état du flux de l’état Pause à l’état Exécuter. Une fois que le flux est à l’état Exécuter, 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 |
---|---|---|---|
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 les 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 d’ACX
Version minimale d’ACX : 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 |