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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk