다음을 통해 공유


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