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