PSET_DMA_ENGINE_STATE fungsi panggilan balik (hdaudio.h)
Rutinitas SetDmaEngineState mengatur status satu atau beberapa mesin DMA ke status Berjalan, Dihentikan, Dijeda, atau Reset.
Jenis penunjuk fungsi untuk rutinitas SetDmaEngineState didefinisikan sebagai berikut.
Sintaks
PSET_DMA_ENGINE_STATE PsetDmaEngineState;
NTSTATUS PsetDmaEngineState(
[in] PVOID _context,
[in] HDAUDIO_STREAM_STATE StreamState,
[in] ULONG NumberOfHandles,
[in] PHANDLE Handles
)
{...}
Parameter
[in] _context
Menentukan nilai konteks dari anggota Konteks struktur HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2, atau HDAUDIO_BUS_INTERFACE_BDL .
[in] StreamState
Menentukan status aliran baru. Atur parameter ini ke salah satu nilai enumerasi HDAUDIO_STREAM_STATE berikut:
- PauseState (dijeda)
- ResetState (reset)
- RunState (berjalan)
- StopState (dihentikan)
[in] NumberOfHandles
Menentukan jumlah handel dalam array handel . Atur parameter ini ke nilai bukan nol.
[in] Handles
Penunjuk ke array handel ke mesin DMA. Tentukan nilai non-NULL untuk parameter ini.
Nilai kembali
SetDmaEngineState mengembalikan STATUS_SUCCESS jika panggilan berhasil mengubah status mesin DMA. Jika tidak, rutinitas mengembalikan kode kesalahan yang sesuai. Tabel berikut ini memperlihatkan beberapa kemungkinan kode status pengembalian.
Menampilkan kode | Deskripsi |
---|---|
|
Menunjukkan bahwa salah satu handel tidak valid. |
|
Menunjukkan bahwa salah satu nilai parameter salah (nilai parameter tidak valid atau penunjuk buruk). |
|
Menunjukkan bahwa tidak ada buffer yang saat ini dialokasikan untuk salah satu mesin DMA. |
Keterangan
Rutinitas ini mengubah status satu atau beberapa mesin DMA ke status yang ditentukan parameter streamState . Rutinitas menyinkronkan transisi status semua mesin DMA yang ditangani dalam menangani array identifikasi. Untuk informasi selengkapnya, lihat Menyinkronkan Dua Aliran atau Lebih.
Sebelum memanggil rutinitas ini, siapkan setiap mesin DMA dalam array handel :
- Jika menggunakan versi HDAUDIO_BUS_INTERFACE dari HD Audio DDI, panggil AllocateDmaBuffer untuk menyiapkan mesin DMA.
- Jika menggunakan versi HDAUDIO_BUS_INTERFACE_BDL DDI, panggil SetupDmaEngineWithBdl untuk menyiapkan mesin DMA.
Status aliran tidak dapat bertransisi langsung antara Berjalan dan Reset. Sebagai gantinya, aliran harus terlebih dahulu melewati status perantara Dijeda atau Dihentikan:
- Dari status Berjalan atau Reset, status aliran dapat berubah langsung menjadi Dijeda atau Dihentikan.
- Dari status dijeda atau dihentikan, status aliran dapat berubah langsung menjadi Berjalan atau Reset.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | hdaudio.h (termasuk Hdaudio.h) |
IRQL | <=DISPATCH_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