PCAM_PROCESS_PACKET_ROUTINE_EX função de retorno de chamada (usbcamdi.h)
A função de retorno de chamada CamProcessUSBPacketEx de um minidriver de câmera processa um pacote USB.
Sintaxe
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
)
{...}
Parâmetros
BusDeviceObject
Ponteiro para o objeto de dispositivo do minidriver da câmera criado pelo hub USB.
DeviceContext
Ponteiro para o contexto do dispositivo do minidriver da câmera.
CurrentFrameContext
Ponteiro para o contexto de quadro do minidriver da câmera.
SyncPacket
Ponteiro para uma estrutura USBD_ISO_PACKET_DESCRIPTOR do pipe de sincronização. Esse valor será NULL se a interface tiver apenas um pipe.
SyncBuffer
Ponteiro para os dados do SyncPacket.
DataPacket
Especifica o descritor de pacote isócrono do pipe de dados.
DataBuffer
Ponteiro para DataPacket.
FrameComplete
Ponteiro para um valor BOOLEAN que o minidriver de câmera define para indicar se esse é o primeiro pacote de dados para um novo quadro de vídeo.
PacketFlag
Ponteiro para um valor que o minidriver define para indicar o conteúdo do quadro atual. Ele deve ser definido como um dos seguintes valores:
Sinalizador | Significado |
---|---|
USBCAMD_PROCESSPACKETEX_DropFrame | O quadro atual é inalválível. O IRP de leitura deve ser reciclado. |
USBCAMD_PROCESSPACKETEX_NextFrameIsStill | O quadro é uma imagem parada. |
USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill | O quadro atual é para o pino ainda. |
ValidDataOffset
Ponteiro para um valor ULONG que indica um deslocamento do início do pacote. O USBCAMD deve iniciar a cópia desse deslocamento. Isso elimina a cópia de buffer extra no caso de um sinal em banda. Se a câmera não estiver usando sinalização em banda, ValidDataOffset deverá ser definido como zero.
Retornar valor
Essa função retorna o número de bytes que devem ser copiados.
Comentários
O minidriver deve concluir sua função CamProcessUSBPacketEx o mais rápido possível. O processamento de imagem deve ser adiado para a função CamProcessRawVideoFrameEx .
Essa função de retorno de chamada é usada apenas com pipes isócronos (vídeo ou streaming ainda).
O USBCAMD original não chama CamProcessUSBPacketEx.
Essa função é opcional.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | usbcamdi.h (inclua Usbcamdi.h) |
IRQL | DISPATCH_LEVEL |