PCAM_PROCESS_RAW_FRAME_ROUTINE_EX fungsi panggilan balik (usbcamdi.h)
Fungsi panggilan balik CamProcessRawVideoFrameEx kamera minidriver mendekode bingkai video mentah.
Sintaks
PCAM_PROCESS_RAW_FRAME_ROUTINE_EX PcamProcessRawFrameRoutineEx;
NTSTATUS PcamProcessRawFrameRoutineEx(
PDEVICE_OBJECT BusDeviceObject,
PVOID DeviceContext,
PVOID FrameContext,
PVOID FrameBuffer,
ULONG FrameLength,
PVOID RawFrameBuffer,
ULONG RawFrameLength,
ULONG NumberOfPackets,
PULONG BytesReturned,
ULONG ActualRawFrameLength,
ULONG StreamNumber
)
{...}
Parameter
BusDeviceObject
Arahkan ke objek perangkat minidriver kamera yang dibuat oleh hub USB.
DeviceContext
Arahkan ke konteks perangkat minidriver kamera.
FrameContext
Arahkan ke konteks bingkai minidriver.
FrameBuffer
Arahkan ke buffer yang menerima bingkai video yang diproses akhir. Lihat bagian Keterangan untuk informasi selengkapnya tentang cara USBCAMD menggunakan parameter ini.
FrameLength
Menentukan panjang buffer bingkai (dari permintaan baca asli) dalam byte.
RawFrameBuffer
Arahkan ke buffer yang berisi paket USB yang diterima. Lihat bagian Keterangan untuk informasi selengkapnya tentang cara USBCAMD menggunakan parameter ini.
RawFrameLength
Menentukan panjang RawFrameBuffer dalam byte.
NumberOfPackets
Menentukan jumlah paket USB yang diterima ke RawFrameBuffer.
BytesReturned
Arahkan ke jumlah byte yang ditransfer. Minidriver harus mengatur ini ke nol jika mengalami kesalahan selama pemrosesan, seperti yang dijelaskan dalam Aliran Data Menggunakan Pipa Isochronous. Lihat bagian Keterangan untuk informasi selengkapnya tentang cara USBCAMD menggunakan parameter ini.
ActualRawFrameLength
Berisi panjang buffer aktual yang diterima dari kamera. Nilai ini ditentukan dalam byte.
StreamNumber
Menunjukkan nomor aliran yang dikaitkan dengan bingkai ini.
Nilai kembali
CamProcessRawVideoFrameEx mengembalikan STATUS_SUCCESS atau kode kesalahan yang sesuai.
Keterangan
Sebelum USBCAMD memanggil panggilan balik CamProcessRawVideoFrameEx minidriver, ia mengatur DWORD pertama dalam buffer yang diarahkan oleh parameter FrameBuffer ke nilai 0xdeadbeef. Setelah memanggil CamProcessRawVideoFrameEx callback minidriver USBCAMD memeriksa DWORD pertama dalam buffer yang diarahkan oleh parameter FrameBuffer untuk nilai yang 0xdeadbeef tentukan jika CamProcessRawVideoFrameEx berhasil menyalin bingkai video dari buffer yang diarahkan oleh parameter RawFrameBuffer ke dalam buffer yang diarahkan oleh parameter FrameBuffer .
Fungsi ini tidak dipanggil jika salah satu bit berikut diatur dalam argumen CamControlFlag yang diteruskan ke fungsi USBCAMD_InitializeNewInterface :
USBCAMD_CamControlFlag_NoVideoRawProcessing
USBCAMD_CamControlFlag_NoStillRawProcessing
USBCAMD menghapus bendera opsi header stream sebelum meneruskan bingkai mentah ke minidriver. Bendera default hanya bingkai kunci. Minidriver kamera harus mengatur bendera opsi header stream dengan tepat jika perlu menunjukkan apa pun selain bingkai kunci.
USBCAMD asli tidak memanggil CamProcessRawVideoFrameEx.
Fungsi ini bersifat opsional.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | usbcamdi.h (termasuk Usbcamdi.h) |
IRQL | PASSIVE_LEVEL |
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