EVT_ACX_STREAM_PAUSE fonction de rappel (acxstreams.h)
L’événement EvtAcxStreamPause indique au pilote de passer de l’état de 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 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 EvtAcxStreamPause va passer de l’état de flux de l’état d’exécution à l’état Pause. Une fois que le flux est dans l’état pause, le pilote peut recevoir l’événement EvtAcxStreamRun pour passer à l’état d’exécution ou le pilote peut recevoir le EvtAcxStreamReleaseHardware événement 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 à suspendre. Il s’agit de Stream Instance délimitée.
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.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 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 |