EVT_ACX_STREAM_PAUSE fungsi panggilan balik (acxstreams.h)
Peristiwa EvtAcxStreamPause memberi tahu driver untuk transisi status aliran dari Jalankan ke Jeda.
Sintaks
EVT_ACX_STREAM_PAUSE EvtAcxStreamPause;
NTSTATUS EvtAcxStreamPause(
ACXSTREAM Stream
)
{...}
Parameter
Stream
Objek ACXSTREAM mewakili aliran audio yang dibuat oleh sirkuit. Aliran terdiri dari daftar elemen yang dibuat berdasarkan elemen sirkuit induk. 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
AcxStream mendukung status yang berbeda. Status ini menunjukkan ketika audio mengalir (status RUN), audio tidak mengalir tetapi perangkat keras audio disiapkan (status JEDA), atau audio tidak mengalir dan perangkat keras audio tidak disiapkan (status STOP).
Peristiwa EvtAcxStreamPause akan mengalihkan status aliran dari status Jalankan ke status Jeda. Setelah aliran dalam status Jeda, driver mungkin menerima peristiwa EvtAcxStreamRun untuk transisi ke status Jalankan atau driver mungkin menerima peristiwa EvtAcxStreamReleaseHardware untuk transisi ke status Berhenti.
Selama perangkat ACX mati dan penghapusan, jika aliran ada, ACX akan memanggil EvtAcxStreamPause ke aliran transisi ke Jeda. Ini adalah instans Stream terlingkup.
Peristiwa ACX dianalogikan dengan status KS seperti yang dijelaskan dalam tabel ini.
Status Mulai | Status Akhir | Peristiwa Driver ACX dipanggil | Catatan |
---|---|---|---|
HENTIKAN | MEMPEROLEH | PrepareHardware | Driver melakukan alokasi dan persiapan perangkat keras |
MEMPEROLEH | JEDA | (Tidak Ada Panggilan) | |
JEDA | RUN | jalankan | |
RUN | JEDA | Pause | |
JEDA | MEMPEROLEH | (Tidak ada panggilan) | |
MEMPEROLEH | HENTIKAN | ReleaseHardware | Driver merilis alokasi perangkat keras |
Contoh
Contoh penggunaan ditunjukkan di bawah ini.
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;
}
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