Функция AcxStreamCreate (acxstreams.h)

AcxStreamCreate создает Stream ACX, который можно использовать для управления поведением потоковой передачи.

Синтаксис

NTSTATUS AcxStreamCreate(
  WDFDEVICE              Device,
  ACXCIRCUIT             Circuit,
  PWDF_OBJECT_ATTRIBUTES Attributes,
  PACXSTREAM_INIT        *Config,
  ACXSTREAM              *Stream
);

Параметры

Device

Объект WDFDEVICE ( описанный в разделе Сводка объектов платформы), связанный с указанным ACXCIRCUIT и его потоком.

Circuit

ACXCIRCUIT, с которым будет связан этот поток.

Attributes

Дополнительные атрибуты, определенные с помощью WDF_OBJECT_ATTRIBUTES , которые используются для задания значений различных объектов: очистки и уничтожения обратных вызовов, типа контекста и указания его родительского объекта.

Config

Структура ACXSTREAM_INIT, определяющая параметры инициализации потока. Дополнительные сведения об объектах ACX см. в разделе ACX — сводка по объектам ACX.

Stream

Указатель на расположение, которое получает дескриптор нового объекта ACXSTREAM.

Объект ACXSTREAM представляет звуковой поток, созданный каналом. Дополнительные сведения см. в разделе ACX — сводка по объектам ACX.

Возвращаемое значение

Возвращает значение STATUS_SUCCESS , если вызов был успешным. В противном случае возвращается соответствующий код ошибки. Дополнительные сведения см. в разделе Использование значений NTSTATUS.

Комментарии

После создания ACXSTREAM драйвер может добавить в поток один или несколько элементов ACX. По умолчанию элементы ACX соединены в одном порядке сборки. ACXSTREAM связан только с одним ACXCIRCUIT. ACX поддерживает два типа потоков: базовые объекты потока ACX, используемые каналами без потоковой передачи, и объекты потока ACX RealTime (RT), используемые каналами потоковой передачи.

ACXSTREAM, созданный с помощью AcxStreamCreate, позволит драйверу получать управляющие сигналы и изменения состояния, связанные с потоком. Однако ACXSTREAM не будет поддерживать потоковую передачу звуковых данных в ос или из нее. Драйвер, поддерживающий потоковую передачу аудиоданных, должен использовать AcxRtStreamCreate для создания ACXSTREAM с поддержкой потоковой передачи. Для конечной точки, которая создается из нескольких ACXCIRCUITs в нескольких драйверах, ACXCIRCUIT, на котором размещается пин-код потоковой передачи, создаст ACX RT Stream в то время как другие ACXCIRCUITs в конечной точке создают потоки ACX, отличные от RT.

Пример

Ниже показан пример создания потока.

    //
    // Init streaming callbacks.
    //
    ACX_STREAM_CALLBACKS streamCallbacks;
    ACX_STREAM_CALLBACKS_INIT(&streamCallbacks);
    streamCallbacks.EvtAcxStreamPrepareHardware     = EvtStreamPrepareHardware;
    streamCallbacks.EvtAcxStreamReleaseHardware     = EvtStreamReleaseHardware;
    streamCallbacks.EvtAcxStreamRun                 = EvtStreamRun;
    streamCallbacks.EvtAcxStreamPause               = EvtStreamPause;
    streamCallbacks.EvtAcxStreamAssignDrmContentId  = EvtStreamAssignDrmContentId;

    status = AcxStreamInitAssignAcxStreamCallbacks(StreamInit, &streamCallbacks);

    //
    // Create the stream.
    //
    WDF_OBJECT_ATTRIBUTES attributes;
    ACXSTREAM stream;
    WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, STREAM_CONTEXT);
    attributes.EvtCleanupCallback = EvtStreamContextCleanup;
    attributes.EvtDestroyCallback = EvtStreamDestroy;
    status = AcxStreamCreate(Device, Circuit, &attributes, &StreamInit, &stream);

Требования ACX

Минимальная версия ACX: 1.0

Дополнительные сведения о версиях ACX см. в статье Обзор версий ACX.

Требования

Требование Значение
Заголовок acxstreams.h
IRQL PASSIVE_LEVEL

См. также раздел