(usbcamdi.h) 的PFNUSBCAMD_WaitOnDeviceEvent回调函数
如果相机具有用于外部事件通知的中断管道,则 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) |