Compartilhar via


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

Confira também

CamProcessRawVideoFrameEx

USBD_ISO_PACKET_DESCRIPTOR