PCAM_PROCESS_RAW_FRAME_ROUTINE_EX função de retorno de chamada (usbcamdi.h)
A função CamProcessRawVideoFrameEx de um minidriver de câmera decodifica um quadro de vídeo bruto.
Sintaxe
PCAM_PROCESS_RAW_FRAME_ROUTINE_EX PcamProcessRawFrameRoutineEx;
NTSTATUS PcamProcessRawFrameRoutineEx(
PDEVICE_OBJECT BusDeviceObject,
PVOID DeviceContext,
PVOID FrameContext,
PVOID FrameBuffer,
ULONG FrameLength,
PVOID RawFrameBuffer,
ULONG RawFrameLength,
ULONG NumberOfPackets,
PULONG BytesReturned,
ULONG ActualRawFrameLength,
ULONG StreamNumber
)
{...}
Parâmetros
BusDeviceObject
Ponteiro para o objeto de dispositivo do minidriver de câmera criado pelo hub USB.
DeviceContext
Ponteiro para o contexto do dispositivo do minidriver da câmera.
FrameContext
Ponteiro para o contexto de quadro do minidriver.
FrameBuffer
Ponteiro para o buffer que recebe o quadro de vídeo processado final. Consulte a seção Comentários para obter mais informações sobre como o USBCAMD usa esse parâmetro.
FrameLength
Especifica o comprimento do buffer de quadro (da solicitação de leitura original) em bytes.
RawFrameBuffer
Ponteiro para o buffer que contém os pacotes USB recebidos. Consulte a seção Comentários para obter mais informações sobre como o USBCAMD usa esse parâmetro.
RawFrameLength
Especifica o comprimento de RawFrameBuffer em bytes.
NumberOfPackets
Especifica o número de pacotes USB recebidos em RawFrameBuffer.
BytesReturned
Ponteiro para o número de bytes transferidos. O minidriver deve definir isso como zero se encontrar erros durante o processamento, conforme descrito em Fluxo de Dados usando pipes isocronos. Consulte a seção Comentários para obter mais informações sobre como o USBCAMD usa esse parâmetro.
ActualRawFrameLength
Contém o comprimento do buffer real recebido da câmera. Esse valor é especificado em bytes.
StreamNumber
Indica o número do fluxo ao qual esse quadro está associado.
Valor de retorno
CamProcessRawVideoFrameEx retorna STATUS_SUCCESS ou um código de erro apropriado.
Observações
Antes que o USBCAMD chame o do minidriver CamProcessRawVideoFrameEx retorno de chamada, ele define o primeiro DWORD no buffer apontado pelo parâmetro FrameBuffer para o valor 0xdeadbeef. Depois de chamar o do minidriver CamProcessRawVideoFrameEx USBCAMD verifica o primeiro DWORD no buffer apontado pelo parâmetro FrameBuffer para o valor 0xdeadbeef determinar se CamProcessRawVideoFrameEx copiado com êxito o quadro de vídeo do buffer apontado pelo parâmetro RawFrameBuffer no buffer apontado pelo parâmetro FrameBuffer.
Essa função não será chamada se um dos bits a seguir for definido no argumento CamControlFlag passado para a função USBCAMD_InitializeNewInterface:
USBCAMD_CamControlFlag_NoVideoRawProcessing
USBCAMD_CamControlFlag_NoStillRawProcessing
O USBCAMD limpa o sinalizador de opções de cabeçalho de fluxo antes de passar o quadro bruto para o minidriver. O sinalizador padrão é somente quadros de chave. O minidriver de câmera deve definir os sinalizadores de opção de cabeçalho de fluxo adequadamente se precisar indicar algo diferente de quadros-chave.
O USBCAMD original não chama CamProcessRawVideoFrameEx.
Essa função é opcional.
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino | Área de trabalho |
cabeçalho | usbcamdi.h (inclua Usbcamdi.h) |
IRQL | PASSIVE_LEVEL |