다음을 통해 공유


PCAM_PROCESS_PACKET_ROUTINE_EX 콜백 함수(usbcamdi.h)

카메라 미니드라이버의 CamProcessUSBPacketEx 콜백 함수는 USB 패킷을 처리합니다.

구문

PCAM_PROCESS_PACKET_ROUTINE_EX PcamProcessPacketRoutineEx;

ULONG PcamProcessPacketRoutineEx(
  PDEVICE_OBJECT BusDeviceObject,
  PVOID DeviceContext,
  PVOID CurrentFrameContext,
  PUSBD_ISO_PACKET_DESCRIPTOR SyncPacket,
  PVOID SyncBuffer,
  PUSBD_ISO_PACKET_DESCRIPTOR DataPacket,
  PVOID DataBuffer,
  PBOOLEAN FrameComplete,
  PULONG PacketFlag,
  PULONG ValidDataOffset
)
{...}

매개 변수

BusDeviceObject

USB 허브에서 만든 카메라 미니드라이버의 디바이스 개체에 대한 포인터입니다.

DeviceContext

카메라 미니 드라이버의 디바이스 컨텍스트에 대한 포인터입니다.

CurrentFrameContext

카메라 미니드라이버의 프레임 컨텍스트에 대한 포인터입니다.

SyncPacket

동기화 파이프에서 USBD_ISO_PACKET_DESCRIPTOR 구조체에 대한 포인터입니다. 인터페이스에 파이프가 하나만 있는 경우 이 값은 NULL 입니다.

SyncBuffer

SyncPacket의 데이터에 대한 포인터입니다.

DataPacket

데이터 파이프에서 등시 패킷 설명자를 지정합니다.

DataBuffer

DataPacket에 대한 포인터입니다.

FrameComplete

카메라 미니드라이버가 새 비디오 프레임의 첫 번째 데이터 패킷인지 여부를 나타내기 위해 설정하는 BOOLEAN 값에 대한 포인터입니다.

PacketFlag

미니드라이버가 현재 프레임의 내용을 나타내기 위해 설정하는 값에 대한 포인터입니다. 다음 값 중 하나로 설정해야 합니다.

플래그 의미
USBCAMD_PROCESSPACKETEX_DropFrame 현재 프레임은 비정상입니다. 읽기 IRP를 재활용해야 합니다.
USBCAMD_PROCESSPACKETEX_NextFrameIsStill 프레임은 스틸 이미지입니다.
USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill 현재 프레임은 스틸 핀에 대한 것입니다.

ValidDataOffset

패킷의 시작 부분에서 오프셋을 나타내는 ULONG 값에 대한 포인터입니다. USBCAMD는 이 오프셋에서 복사본을 시작해야 합니다. 이렇게 하면 대역 내 신호의 경우 추가 버퍼 복사가 제거됩니다. 카메라가 대역 내 신호를 사용하지 않는 경우 ValidDataOffset 을 0으로 설정해야 합니다.

반환 값

이 함수는 복사해야 하는 바이트 수를 반환합니다.

설명

미니 드라이버는 가능한 한 빨리 CamProcessUSBPacketEx 함수를 완료해야 합니다. 이미지 처리는 CamProcessRawVideoFrameEx 함수로 연기되어야 합니다.

이 콜백 함수는 등시 파이프에만 사용됩니다(비디오 또는 여전히 스트리밍).

원래 USBCAMD는 CamProcessUSBPacketEx를 호출하지 않습니다.

이 함수는 선택 사항입니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 usbcamdi.h(Usbcamdi.h 포함)
IRQL DISPATCH_LEVEL

추가 정보

CamProcessRawVideoFrameEx

USBD_ISO_PACKET_DESCRIPTOR