Fungsi AcxStreamInitAssignAcxRequestPreprocessCallback (acxstreams.h)
Fungsi AcxStreamInitAssignAcxRequestPreprocessCallback menetapkan AcxRequestPreprocessCallback ke aliran.
Sintaks
NTSTATUS AcxStreamInitAssignAcxRequestPreprocessCallback(
PACXSTREAM_INIT StreamInit,
EVT_ACX_OBJECT_PREPROCESS_REQUEST EvtObjectAcxRequestPreprocess,
ACXCONTEXT DriverContext,
ACX_REQUEST_TYPE RequestType,
const GUID *Set,
ULONG Id
);
Parameter
StreamInit
Ditentukan oleh objek ACXSTREAM_INIT, yang digunakan untuk menentukan inisialisasi aliran. Untuk informasi selengkapnya tentang Objek ACX, lihat ACX - Ringkasan Objek ACX.
EvtObjectAcxRequestPreprocess
EvtObjectAcxRequestPreprocess yang akan dipanggil oleh kerangka kerja ACX sebelum penanganan internal permintaan dilakukan.
DriverContext
Objek ACXCONTEXT opsional yang mewakili konteks driver saat ini.
RequestType
Enum ACX_REQUEST_TYPE yang digunakan untuk menentukan jenis permintaan. Jika AcxRequestTypeAny ditentukan, EvtObjectAcxRequestProcess akan dipanggil untuk semua permintaan.
Set
Pointer ke GUID yang mewakili KSPROPERTY SET, misalnya KSPROPSETID_RtAudio. Jika NULL atau GUID_NULL ditentukan, EvtObjectAcxRequestPreprocess akan dipanggil untuk setiap permintaan yang cocok dengan RequestType
Id
Nilai yang mewakili Id KSPROPERTY. Misalnya KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT A yang menggunakan struktur KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY. Jika AcxItemIdAny ditentukan, EvtObjectAcxRequestPreprocess akan dipanggil untuk setiap properti untuk Set yang ditentukan.
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
AcxStreamInitAssignAcxRequestPreprocessCallback memberi driver kesempatan untuk menangani permintaan apa pun sebelum ACX melakukan penanganan kerangka kerja. Driver dapat memanggil AcxStreamDispatchAcxRequest untuk memungkinkan ACX menangani permintaan. Jika driver menangani permintaan itu sendiri, driver dapat memanggil WdfRequestComplete atau WdfRequestCompleteWithInformation untuk menyelesaikan permintaan.
Driver harus memanggil AcxStreamDispatchAcxRequest atau WdfRequestComplete (atau WdfRequestCompleteWithInformation). Driver tidak boleh memanggil lebih dari salah satu API ini dengan permintaan.
Driver dapat mendaftarkan lebih dari satu AcxRequestPreprocessCallback. Kerangka kerja ACX akan memanggil AcxRequestPreprocessCallback pertama yang ditetapkan yang cocok dengan permintaan.
Contoh
Contoh penggunaan ditunjukkan di bawah ini.
//
// Intercept register and unregister events properties.
//
status = AcxStreamInitAssignAcxRequestPreprocessCallback(
StreamInit,
EvtStreamRequestPreprocessRegisterNotificationEvent,
(ACXCONTEXT)Circuit,
AcxRequestTypeProperty,
&KSPROPSETID_RtAudio,
KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT);
//
// Intercept all other RtAudio properties - this must be after the above Assign call
// since the above Assign call is more specific.
//
status = AcxStreamInitAssignAcxRequestPreprocessCallback(
StreamInit,
EvtStreamRequestPreprocessRtAudio,
(ACXCONTEXT)Circuit,
AcxRequestTypeProperty,
&KSPROPSETID_RtAudio,
AcxItemIdAny);
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