다음을 통해 공유


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

참고 항목

commandCompleteFunction

USBCAMD_INTERFACE

USBCAMD_InitializeNewInterface