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 포함) |