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 |