다음을 통해 공유


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