PFNUSBCAMD_WaitOnDeviceEvent回调函数 (usbcamdi.h)
如果相机具有外部事件通知的中断管道,则 USBCAMD_WaitOnDeviceEvent 服务用于执行中断管道的读取。
语法
PFNUSBCAMD_WaitOnDeviceEvent PfnusbcamdWaitondeviceevent;
NTSTATUS PfnusbcamdWaitondeviceevent(
[in] PVOID DeviceContext,
[in] ULONG PipeIndex,
[in] PVOID Buffer,
[in] ULONG BufferLength,
[in] PCOMMAND_COMPLETE_FUNCTION EventComplete,
[in] PVOID EventContext,
[in] BOOLEAN LoopBack
)
{...}
参数
[in] DeviceContext
指向特定于设备的上下文的指针。
[in] PipeIndex
指定中断管道的索引。
[in] Buffer
指向读取缓冲区的指针。
[in] BufferLength
读取缓冲区的长度(以字节为单位)。
[in] EventComplete
指向 CommandCompleteFunction定义的相机微型驱动程序的指针,在完成中断读取时调用此值,此值可以 NULL。
[in] EventContext
指向内存块的指针,该块作为参数传递给 CommandCompleteFunction定义的相机微型驱动程序。
[in] LoopBack
指定每次完成中断读取时,USBCAMD 是否将另一个读取请求重新提交到中断管道。 设置为 TRUE
返回值
如果调用成功,USBCAMD_WaitOnDeviceEvent 返回STATUS_SUCCESS。 其他可能的错误代码包括:
返回代码 | 描述 |
---|---|
STATUS_FILE_CLOSED | 设备已删除。 |
STATUS_INVALID_PARAMETER | USBCAMD 可能出于多种原因返回STATUS_INVALID_PARAMETER,包括:传入 PipeIndex 参数中的值无效,PipeIndex 参数指定的管道类型表示无效类型的管道、已存在大容量读/写请求,或者 Buffer 参数 NULL。 BufferLength 参数中指定的长度小于最大数据包大小。 |
STATUS_PENDING | 事件工作项延迟。 |
STATUS_INSUFFICIENT_RESOURCES | 没有足够的资源来分配工作项以从管道中读取。 |
言论
此函数的典型使用方案是具有快照按钮和与该按钮关联的中断管道的相机。 当用户按下快照按钮时,会满足中断管道上的读取请求,并调用相机微型驱动程序。 如果在 USBCAMD_InitializeNewInterface 调用期间,相机微型驱动程序在 CamControlFlag 参数中设置USBCAMD_CamControlFlag_EnableDeviceEvents,STI 监视器也会收到快照事件的通知。
USBCAMD_WAITONDEVICEEVENT 在 USBCAMD 版本 1.0 中不可用。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | usbcamdi.h (包括 Usbcamdi.h) |