Fungsi AcxStreamCreate (acxstreams.h)

AcxStreamCreate membuat Stream ACX yang dapat digunakan untuk mengontrol perilaku streaming.

Sintaks

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

Parameter

Device

Objek WDFDEVICE (dijelaskan dalam Ringkasan Objek Kerangka Kerja) yang terkait dengan ACXCIRCUIT yang ditentukan dan alirannya.

Circuit

ACXCIRCUIT yang akan dikaitkan dengan aliran ini.

Attributes

Atribut Tambahan yang ditentukan menggunakan WDF_OBJECT_ATTRIBUTES yang digunakan untuk mengatur berbagai nilai objek: membersihkan dan menghancurkan panggilan balik, jenis konteks, dan untuk menentukan objek induknya.

Config

Struktur ACXSTREAM_INIT yang menentukan parameter inisialisasi aliran. Untuk informasi selengkapnya tentang Objek ACX, lihat ACX - Ringkasan Objek ACX.

Stream

Penunjuk ke lokasi yang menerima handel ke Objek ACXSTREAM baru.

Objek ACXSTREAM mewakili aliran audio yang dibuat oleh sirkuit. Untuk informasi selengkapnya, lihat ACX - Ringkasan Objek ACX.

Menampilkan nilai

Mengembalikan STATUS_SUCCESS jika panggilan berhasil. Jika tidak, kode kesalahan akan menampilkan kode kesalahan yang sesuai. Untuk informasi selengkapnya, lihat Menggunakan Nilai NTSTATUS.

Keterangan

Setelah ACXSTREAM dibuat, driver dapat menambahkan satu atau beberapa elemen ACX ke aliran. Secara default, elemen ACX terhubung dalam urutan perakitan yang sama. ACXSTREAM hanya dikaitkan dengan satu ACXCIRCUIT. ACX mendukung dua jenis aliran: objek aliran ACX dasar yang digunakan oleh sirkuit non-streaming, dan objek aliran ACX RealTime (RT) yang digunakan oleh sirkuit streaming.

ACXSTREAM yang dibuat oleh AcxStreamCreate akan memungkinkan driver menerima sinyal kontrol dan perubahan status yang terkait dengan aliran. Namun, ACXSTREAM tidak akan mendukung data audio streaming ke atau dari OS. Driver yang mendukung data audio streaming harus menggunakan AcxRtStreamCreate untuk membuat ACXSTREAM dengan dukungan untuk streaming. Untuk titik akhir yang dibuat dari beberapa ACXCIRCUITs di beberapa driver, ACXCIRCUIT yang menghosting pin streaming akan membuat ACX RT Stream sementara ACXCIRCUITs lainnya di titik akhir akan membuat Aliran ACX non-RT.

Contoh

Contoh pembuatan aliran ditunjukkan di bawah ini.

    //
    // 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);

Persyaratan ACX

Versi ACX minimum: 1.0

Untuk informasi selengkapnya tentang versi ACX, lihat Gambaran umum versi ACX.

Persyaratan

Persyaratan Nilai
Header acxstreams.h
IRQL PASSIVE_LEVEL

Lihat juga